diff --git a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 index 5eafaed2757a253dc6171b6c287df64b80f1ee17..232041b2d3d7fe7ed52243df6da356e9210dd01d 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 e124cb81efd95aeaabf28cadfd248daddd467772..6b83f235bf041a893a0c0990e8265abe9d2606a8 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 18bbbffa4aff2ea0ac2f0afe26c91f10cf08369f..0189d60392b06114853e2f112d5ab431d0d0b307 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 3c16c7e643ae4806e14100bc8305c67a887b57d6..8d41cbf3df19b428e0ac148ea19ca8f4511d5c0d 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 bc3491ba4b3c24c1d446fbb2e757ac71194316bb..eab1bc956feb8be538a1fde72129c819da1d4299 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 ab883121e072c6a3369736d6f8913a0bf17eb647..9dcd0490b6c29c72e17a79337310018c30c47c04 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 41e271e2140f2e7c108b27906b270cbc776a20c2..1dee69db7896fb1538ebe26852bb0c84993a0756 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)