From c44e9258069243bedadfe6f1d56f411f6d82cdb1 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 30 May 2023 10:27:54 +0200 Subject: [PATCH] Philippe 30/05/2023: add CNAME field to HALO2LIST_ll and set it in INIT_HALO2_ll --- src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 | 7 +++++-- src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 | 13 +++++++++---- src/MNH/advecuvw_rk.f90 | 8 ++++---- src/MNH/contrav.f90 | 16 ++++++++-------- src/MNH/get_halo.f90 | 2 +- src/MNH/modeln.f90 | 12 ++++++------ src/MNH/zdiffusetup.f90 | 6 +++--- 7 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 index 5eafaed27..232041b2d 100644 --- a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2023 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -35,6 +35,7 @@ ! ------------- !! Original 04/05/98 ! P. Wautelet 20/05/2019: add cname field + set initial values +! P. Wautelet 23/05/2023: add cname field to HALO2LIST_ll ! !------------------------------------------------------------------------------- ! @@ -115,7 +116,9 @@ TYPE HALO2LIST_ll !------------------------------------------------------------------------------- ! INTEGER :: NCARD = 0 -! + + character(len=NLISTTYPENAMESIZE) :: cname = 'UNKNOWN' + TYPE(HALO2_ll), POINTER :: HALO2 => null() ! TYPE(HALO2LIST_ll), POINTER :: NEXT => null() diff --git a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 index e124cb81e..6b83f235b 100644 --- a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1998-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2023 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -75,9 +75,9 @@ implicit none ! !----------------------------------------------------------------------- ! -! ###################################################################### - SUBROUTINE INIT_HALO2_ll(TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ) -! ###################################################################### +! ########################################################################## + SUBROUTINE INIT_HALO2_ll(TPHALO2LIST, KNBVAR, KDIMX, KDIMY, KDIMZ, HNAME ) +! ########################################################################## ! !!**** *INIT_HALO2_ll* initialise the second layer of the halo !! @@ -99,6 +99,8 @@ implicit none !! Author !! ------ ! P. Kloos * CERFACS - CNRM * +! Modifications: +! P. Wautelet 23/05/2023: add HNAME dummy argument ! !------------------------------------------------------------------------------- ! @@ -114,6 +116,7 @@ implicit none TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list of HALO2_lls INTEGER :: KNBVAR ! number of HALO2_lls to allocate INTEGER :: KDIMX, KDIMY, KDIMZ ! dimensions of the HALO2_lls + CHARACTER(LEN=*), INTENT(IN) :: HNAME ! ! !* 0.2 Declarations of local variables : @@ -153,6 +156,8 @@ implicit none ZNORTH=0. !$acc end kernels + WRITE( TZHALO2LIST%CNAME, FMT = '( A, " ", I0 )' ) HNAME, KNBVAR + ALLOCATE(TZHALO2LIST%NEXT) ! !* 1.2 Go to the next HALO2_ll, or terminate the list diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90 index 18bbbffa4..0189d6039 100644 --- a/src/MNH/advecuvw_rk.f90 +++ b/src/MNH/advecuvw_rk.f90 @@ -459,7 +459,7 @@ CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZVT, 'ADVECUVW_RK::ZVT' ) CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZWT, 'ADVECUVW_RK::ZWT' ) INBVAR = 3 #ifndef MNH_OPENACC -CALL INIT_HALO2_ll(TZHALO2MT_ll,INBVAR,SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3)) +CALL INIT_HALO2_ll( TZHALO2MT_ll, INBVAR, SIZE(PUT,1), SIZE(PUT,2), SIZE(PWT,3), 'ADVECUVW_RK' ) #endif ! !$acc kernels present_cr(ZRUS,ZRVS,ZRWS) @@ -492,9 +492,9 @@ RKLOOP: DO JS = 1, ISPL IF (GFIRST_CALL_ADVECUVW_RK) THEN GFIRST_CALL_ADVECUVW_RK = .FALSE. NULLIFY(TZHALO2_UT,TZHALO2_VT,TZHALO2_WT) - CALL INIT_HALO2_ll(TZHALO2_UT,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_VT,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_WT,1,IIU,IJU,IKU) + CALL INIT_HALO2_ll( TZHALO2_UT, 1, IIU, IJU, IKU, 'ADVECUVW_RK::ZUT' ) + CALL INIT_HALO2_ll( TZHALO2_VT, 1, IIU, IJU, IKU, 'ADVECUVW_RK::ZVT' ) + CALL INIT_HALO2_ll( TZHALO2_WT, 1, IIU, IJU, IKU, 'ADVECUVW_RK::ZWT' ) END IF CALL GET_HALO2_DF(ZUT,TZHALO2_UT,HNAME='ADVECUVW_RK::ZUT') diff --git a/src/MNH/contrav.f90 b/src/MNH/contrav.f90 index 3c16c7e64..8d41cbf3d 100644 --- a/src/MNH/contrav.f90 +++ b/src/MNH/contrav.f90 @@ -217,10 +217,10 @@ IF (KADV_ORDER == 4 ) THEN NULLIFY(TZHALO2_V) NULLIFY(TZHALO2_DZX) NULLIFY(TZHALO2_DZY) - CALL INIT_HALO2_ll(TZHALO2_U,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_V,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_DZX,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_DZY,1,IIU,IJU,IKU) + CALL INIT_HALO2_ll( TZHALO2_U, 1, IIU, IJU, IKU, 'CONTRAV::U' ) + CALL INIT_HALO2_ll( TZHALO2_V, 1, IIU, IJU, IKU, 'CONTRAV::V' ) + CALL INIT_HALO2_ll( TZHALO2_DZX, 1, IIU, IJU, IKU, 'CONTRAV::DZX' ) + CALL INIT_HALO2_ll( TZHALO2_DZY, 1, IIU, IJU, IKU, 'CONTRAV::DZY' ) CALL UPDATE_HALO2_ll(TZFIELD_U, TZHALO2_U, IINFO_ll) CALL UPDATE_HALO2_ll(TZFIELD_V, TZHALO2_V, IINFO_ll) CALL UPDATE_HALO2_ll(TZFIELD_DZX, TZHALO2_DZX, IINFO_ll) @@ -621,10 +621,10 @@ IF (KADV_ORDER == 4 ) THEN NULLIFY(TZHALO2_V) NULLIFY(TZHALO2_DZX) NULLIFY(TZHALO2_DZY) - CALL INIT_HALO2_ll(TZHALO2_U,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_V,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_DZX,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_DZY,1,IIU,IJU,IKU) + CALL INIT_HALO2_ll( TZHALO2_U, 1, IIU, IJU, IKU, 'CONTRAV::U' ) + CALL INIT_HALO2_ll( TZHALO2_V, 1, IIU, IJU, IKU, 'CONTRAV::V' ) + CALL INIT_HALO2_ll( TZHALO2_DZX,1, IIU, IJU, IKU, 'CONTRAV::DZX' ) + CALL INIT_HALO2_ll( TZHALO2_DZY,1, IIU, IJU, IKU, 'CONTRAV::DZY' ) END IF ZU_EAST => TZHALO2_U%HALO2%EAST ZDZX_EAST => TZHALO2_DZX%HALO2%EAST diff --git a/src/MNH/get_halo.f90 b/src/MNH/get_halo.f90 index bc3491ba4..eab1bc956 100644 --- a/src/MNH/get_halo.f90 +++ b/src/MNH/get_halo.f90 @@ -228,7 +228,7 @@ else end if NULLIFY( TZ_PSRC_ll,TP_PSRC_HALO2_ll) -CALL INIT_HALO2_ll(TP_PSRC_HALO2_ll,1,IIU,IJU,IKU) +CALL INIT_HALO2_ll( TP_PSRC_HALO2_ll, 1, IIU, IJU, IKU, 'GET_HALO2::' // TRIM( yname ) ) ! CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO2::'//trim( yname ) ) CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR) diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index ab883121e..9dcd0490b 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -725,8 +725,8 @@ IF (KTCOUNT == 1) THEN ! INBVAR = 4+NRR+NSV IF (SIZE(XRTKES,1) /= 0) INBVAR=INBVAR+1 - CALL INIT_HALO2_ll(THALO2T_ll,INBVAR,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TLSHALO2_ll,4+MIN(1,NRR),IIU,IJU,IKU) + CALL INIT_HALO2_ll (THALO2T_ll, INBVAR, IIU, IJU, IKU, 'MODEL_n::HALO2T' ) + CALL INIT_HALO2_ll (TLSHALO2_ll, 4+MIN(1,NRR), IIU, IJU, IKU, 'MODEL_n::LSHALO2' ) ! !* 1.6 Initialise the 2nd layer of the halo of the LS fields ! @@ -1721,16 +1721,16 @@ IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR')) THEN CALL ADD3DFIELD_ll( TZFIELDC_ll, XVT, 'MODEL_n::XVT' ) CALL ADD3DFIELD_ll( TZFIELDC_ll, XWT, 'MODEL_n::XWT' ) #ifndef MNH_OPENACC - CALL INIT_HALO2_ll(TZHALO2C_ll,3,IIU,IJU,IKU) + CALL INIT_HALO2_ll( TZHALO2C_ll, 3, IIU, IJU, IKU, 'MODEL_n::HALO2C' ) CALL UPDATE_HALO_ll(TZFIELDC_ll,IINFO_ll) CALL UPDATE_HALO2_ll(TZFIELDC_ll, TZHALO2C_ll, IINFO_ll) #else IF (GFIRST_CALL_MODELN) THEN GFIRST_CALL_MODELN = .FALSE. NULLIFY(TZHALO2_UT,TZHALO2_VT,TZHALO2_WT) - CALL INIT_HALO2_ll(TZHALO2_UT,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_VT,1,IIU,IJU,IKU) - CALL INIT_HALO2_ll(TZHALO2_WT,1,IIU,IJU,IKU) + CALL INIT_HALO2_ll( TZHALO2_UT, 1, IIU, IJU, IKU, 'MODEL_n::XUT' ) + CALL INIT_HALO2_ll( TZHALO2_VT, 1, IIU, IJU, IKU, 'MODEL_n::XVT' ) + CALL INIT_HALO2_ll( TZHALO2_WT, 1, IIU, IJU, IKU, 'MODEL_n::XWT' ) END IF CALL GET_HALO2_DF(XUT,TZHALO2_UT,HNAME='XUT') diff --git a/src/MNH/zdiffusetup.f90 b/src/MNH/zdiffusetup.f90 index 41e271e21..1dee69db7 100644 --- a/src/MNH/zdiffusetup.f90 +++ b/src/MNH/zdiffusetup.f90 @@ -41,14 +41,14 @@ END MODULE MODI_ZDIFFUSETUP !! REFERENCE !! --------- !! -!! Z�ngl, G., 2002: An improved method for computing horizontal diffusion in a +!! Zangl, G., 2002: An improved method for computing horizontal diffusion in a !! sigma-coordinate model and its application to simulations !! over mountainous topography. Mon. Wea. Rev. 130, 1423-1432. !! !! AUTHOR !! ------ !! -!! G. Z�ngl * University of Munich* +!! G. Zangl * University of Munich* ! ! Modifications: ! J. Escobar 07/10/2015: remove print @@ -153,7 +153,7 @@ NULLIFY(TZHGTMASS_ll,TZHGTHALO2_ll) ! Compute height field at mass points ZZMASS = MZF(PZZ) -CALL INIT_HALO2_ll(TZHGTHALO2_ll,1,IIU,IJU,IKU) +CALL INIT_HALO2_ll( TZHGTHALO2_ll, 1, IIU, IJU, IKU, 'ZDIFFSETUP::HGTHALO2' ) CALL ADD3DFIELD_ll( TZHGTMASS_ll, ZZMASS, 'ZDIFFUSETUP::ZZMASS' ) CALL UPDATE_HALO2_ll(TZHGTMASS_ll,TZHGTHALO2_ll,IERROR) -- GitLab