diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 index 7cb79db508b6720f8c1bfd0fda4c3561749d016d..86da117ed5743c6b1d1d05930909fccdd400e71a 100644 --- a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 +++ b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 @@ -13,6 +13,7 @@ !! ------------- ! Original 01/05/98 ! Juan 19/08/2005: modification INTENT -> INTENT(INOUT) +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- ! @@ -48,9 +49,9 @@ END SUBROUTINE DEL_FIELD2_ll ! -!! ################################################ - SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD ) -!! ################################################ +!! ####################################################### + SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME ) +!! ####################################################### ! USE MODE_ARGSLIST_ll, ONLY : E_ADD1DFIELD_ll => ADD1DFIELD_ll ! @@ -59,14 +60,15 @@ CHARACTER(LEN=1), INTENT(IN) :: HDIR TYPE(LIST1D_ll), POINTER :: TPLIST REAL, DIMENSION(:), TARGET :: PFIELD + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! - CALL E_ADD1DFIELD_ll( HDIR, TPLIST, PFIELD ) + CALL E_ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME ) ! END SUBROUTINE ADD1DFIELD_ll ! -!! ########################################## - SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD ) -!! ########################################## +!! ################################################# + SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME ) +!! ################################################# ! USE MODE_ARGSLIST_ll, ONLY : E_ADD2DFIELD_ll => ADD2DFIELD_ll ! @@ -74,14 +76,15 @@ ! TYPE(LIST_ll), POINTER :: TPLIST REAL, DIMENSION(:,:), TARGET :: PFIELD + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! - CALL E_ADD2DFIELD_ll( TPLIST, PFIELD ) + CALL E_ADD2DFIELD_ll( TPLIST, PFIELD, HNAME ) ! END SUBROUTINE ADD2DFIELD_ll ! -!! ########################################## - SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD ) -!! ########################################## +!! ################################################# + SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME ) +!! ################################################# ! USE MODE_ARGSLIST_ll, ONLY : E_ADD3DFIELD_ll => ADD3DFIELD_ll ! @@ -89,11 +92,28 @@ ! TYPE(LIST_ll), POINTER :: TPLIST REAL, DIMENSION(:,:,:), TARGET :: PFIELD + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! - CALL E_ADD3DFIELD_ll( TPLIST, PFIELD ) + CALL E_ADD3DFIELD_ll( TPLIST, PFIELD, HNAME ) ! END SUBROUTINE ADD3DFIELD_ll ! +!! ################################################# + SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME ) +!! ################################################# +! + USE MODE_ARGSLIST_ll, ONLY : E_ADD4DFIELD_ll => ADD4DFIELD_ll +! + USE MODD_ARGSLIST_ll, ONLY : LIST_ll +! + type(list_ll), pointer :: tplist ! list of fields + real, dimension(:,:,:,:), intent(in) :: pfield ! field to be added to the list of fields + character(len=*), intent(in) :: hname ! name of the field to be added +! + CALL E_ADD4DFIELD_ll( TPLIST, PFIELD, HNAME ) +! + END SUBROUTINE ADD4DFIELD_ll +! !! ################################################# SUBROUTINE DEL1DFIELD_ll( TPLIST, PFIELD, KINFO ) !! ################################################# diff --git a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 index 0d5bf289d1b419cef4bce48fa948e139a2fad748..f21707ecc22db75778043e6484f0f0b23911fd5b 100644 --- a/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modd_argslist_ll.f90 @@ -1,17 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - ! ####################### MODULE MODD_ARGSLIST_ll ! ####################### @@ -42,11 +33,16 @@ !! Modifications ! ------------- !! Original 04/05/98 +! P. Wautelet 20/05/2019: add cname field + set initial values ! !------------------------------------------------------------------------------- ! - USE MODD_STRUCTURE2_ll, ONLY : HALO2_ll -! + USE MODD_STRUCTURE2_ll, ONLY : HALO2_ll + +implicit none + +integer,parameter :: NLISTTYPENAMESIZE = 32 + ! ############ TYPE LIST_ll ! ############ @@ -61,14 +57,18 @@ ! !------------------------------------------------------------------------------- ! - INTEGER :: NCARD - LOGICAL :: L1D, L2D, L3D -! - REAL, DIMENSION(:,:,:), POINTER :: ARRAY3D - REAL, DIMENSION(:,:), POINTER :: ARRAY2D - REAL, DIMENSION(:), POINTER :: ARRAY1D + INTEGER :: NCARD = -1 + LOGICAL :: L1D = .false. + LOGICAL :: L2D = .false. + LOGICAL :: L3D = .false. + + character(len=NLISTTYPENAMESIZE) :: cname = 'UNKNOWN' + + REAL, DIMENSION(:), POINTER :: ARRAY1D => null() + REAL, DIMENSION(:,:), POINTER :: ARRAY2D => null() + REAL, DIMENSION(:,:,:), POINTER :: ARRAY3D => null() ! - TYPE(LIST_ll), POINTER :: NEXT + TYPE(LIST_ll), POINTER :: NEXT => null() ! END TYPE LIST_ll ! @@ -87,12 +87,14 @@ ! !------------------------------------------------------------------------------- ! - INTEGER :: NCARD -! - REAL, DIMENSION(:), POINTER :: ARRAY1D - CHARACTER(LEN=1) :: CDIR + INTEGER :: NCARD = -1 + + character(len=NLISTTYPENAMESIZE) :: cname = 'UNKNOWN' + + REAL, DIMENSION(:), POINTER :: ARRAY1D => null() + CHARACTER(LEN=1) :: CDIR = ' ' ! - TYPE(LIST1D_ll), POINTER :: NEXT + TYPE(LIST1D_ll), POINTER :: NEXT => null() ! END TYPE LIST1D_ll ! @@ -111,11 +113,11 @@ ! !------------------------------------------------------------------------------- ! - INTEGER :: NCARD + INTEGER :: NCARD = -1 ! - TYPE(HALO2_ll), POINTER :: HALO2 + TYPE(HALO2_ll), POINTER :: HALO2 => null() ! - TYPE(HALO2LIST_ll), POINTER :: NEXT + TYPE(HALO2LIST_ll), POINTER :: NEXT => null() ! END TYPE HALO2LIST_ll ! diff --git a/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 b/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 index c88faab8c9d573f85b7d552aed9ca4050fa1f5df..b42ab1c2a6ebd282856ac210b8a5e55247209f44 100644 --- a/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_argslist_ll.f90 @@ -48,6 +48,7 @@ !! ------------- ! Original May 19, 1998 ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine ! !------------------------------------------------------------------------------- ! @@ -57,9 +58,9 @@ ! CONTAINS ! -!! ############################################## - SUBROUTINE ADD1DFIELD_ll(HDIR, TPLIST, PFIELD) -!! ############################################## +!! ##################################################### + SUBROUTINE ADD1DFIELD_ll(HDIR, TPLIST, PFIELD, HNAME) +!! ##################################################### ! !!**** *ADD1DFIELD_ll* - ! @@ -97,10 +98,11 @@ IMPLICIT NONE ! + CHARACTER(LEN=1), INTENT(IN) :: HDIR ! direction of the field ("X" or "Y") TYPE(LIST1D_ll), POINTER :: TPLIST ! list of fields REAL, DIMENSION(:), TARGET :: PFIELD ! field to be added ! to the list of fields - CHARACTER(LEN=1), INTENT(IN) :: HDIR ! direction of the field ("X" or "Y") + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! !* 0.2 declarations of local variables ! @@ -125,6 +127,7 @@ NULLIFY(TPLIST%NEXT) TPLIST%NCARD = 1 TPLIST%CDIR = HDIR + tplist%cname = hname ! ELSE ! @@ -144,6 +147,7 @@ TZLIST%ARRAY1D => PFIELD TZLIST%NCARD = 0 TZLIST%CDIR = HDIR + tzlist%cname = hname NULLIFY(TZLIST%NEXT) ! TPLIST%NCARD = TPLIST%NCARD + 1 @@ -154,9 +158,9 @@ ! END SUBROUTINE ADD1DFIELD_ll ! -!! ######################################## - SUBROUTINE ADD2DFIELD_ll(TPLIST, PFIELD) -!! ######################################## +!! ############################################### + SUBROUTINE ADD2DFIELD_ll(TPLIST, PFIELD, HNAME) +!! ############################################### ! !!**** *ADD2DFIELD_ll* - ! @@ -196,6 +200,7 @@ TYPE(LIST_ll), POINTER :: TPLIST ! list of fields REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be added ! to the list of fields + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! !* 0.2 declarations of local variables ! @@ -213,6 +218,7 @@ TPLIST%ARRAY2D => PFIELD NULLIFY(TPLIST%NEXT) TPLIST%NCARD = 1 + tplist%cname = hname TPLIST%L1D = .FALSE. TPLIST%L2D = .TRUE. TPLIST%L3D = .FALSE. @@ -235,6 +241,7 @@ NULLIFY(TZLIST%ARRAY3D) TZLIST%ARRAY2D => PFIELD TZLIST%NCARD = 0 + tzlist%cname = hname TZLIST%L1D = .FALSE. TZLIST%L2D = .TRUE. TZLIST%L3D = .FALSE. @@ -248,9 +255,9 @@ ! END SUBROUTINE ADD2DFIELD_ll ! -!! ######################################## - SUBROUTINE ADD3DFIELD_ll(TPLIST, PFIELD) -!! ######################################## +!! ############################################### + SUBROUTINE ADD3DFIELD_ll(TPLIST, PFIELD, HNAME) +!! ############################################### ! !!**** *ADD3DFIELD_ll* - ! @@ -290,6 +297,7 @@ TYPE(LIST_ll), POINTER :: TPLIST ! list of fields REAL, DIMENSION(:,:,:), TARGET :: PFIELD ! field to be added to the list ! of fields + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! !* 0.2 declarations of local variables ! @@ -308,6 +316,7 @@ TPLIST%ARRAY3D => PFIELD NULLIFY(TPLIST%NEXT) TPLIST%NCARD = 1 + tplist%cname = hname TPLIST%L1D = .FALSE. TPLIST%L2D = .FALSE. TPLIST%L3D = .TRUE. @@ -331,6 +340,7 @@ NULLIFY(TZLIST%ARRAY2D) TZLIST%ARRAY3D => PFIELD TZLIST%NCARD = 0 + tzlist%cname = hname TZLIST%L1D = .FALSE. TZLIST%L2D = .FALSE. TZLIST%L3D = .TRUE. @@ -343,7 +353,66 @@ !------------------------------------------------------------------------------- ! END SUBROUTINE ADD3DFIELD_ll + + + +!################################################ +subroutine add4dfield_ll( tplist, pfield, hname ) +!################################################ +! +!!**** *ADD3DFIELD_ll* - +! +!! Purpose +!! ------- +! This routine is used to add a 4D field (PFIELD) to a list of +! 4D fields (TPLIST). +! For the moment, it is split in a series of 3D fields +! +!! Reference +!! --------- +! +! User interface for the Meso-NH parallel package +! +!! Implicit Arguments +!! ------------------ +! +! Module MODD_ARGSLIST : +! LIST_ll : list of fields +! +!! Author +!! ------ +! +! P. Wautelet 20/05/2019 +! +!! Modifications +! ------------- +! +!------------------------------------------------------------------------------- +! +!* 0. DECLARATIONS ! +!* 0.1 declarations of arguments +! + implicit none +! + type(list_ll), pointer :: tplist ! list of fields + real, dimension(:,:,:,:), intent(in) :: pfield ! field to be added to the list of fields + character(len=*), intent(in) :: hname ! name of the field to be added +! +!* 0.2 declarations of local variables +! + character(len=6) :: ynum + integer :: ji + + do ji = 1, size( pfield, 4 ) + write ( ynum, '( I6.3 )' ) ji + call add3dfield_ll(tplist, pfield(:,:,:,ji), trim( hname )//':'//trim( adjustl( ynum ) ) ) + end do + +end subroutine add4dfield_ll + + + !! ############################################### SUBROUTINE DEL1DFIELD_ll(TPLIST, PFIELD, KINFO) !! ############################################### diff --git a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 index 1757a95d569e47ec4a0b6e9d004b0b4e8b49d07b..add90dea674bf1dadc69044e7329c0bd211d3a0d 100644 --- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 @@ -6,6 +6,7 @@ ! Modifications: ! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 ! Philippe 12/01/2018: renamed dimension variables NKMAX_ll->NKMAX_TMP_ll in modd_dim_ll to prevent mix-up with modd_dimn +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- ! ######################## @@ -900,7 +901,7 @@ INTEGER :: NB_REQ ! ----------- ! NULLIFY(TZLIST) - CALL ADD3DFIELD_ll(TZLIST,PFIELDOUT) + CALL ADD3DFIELD_ll( TZLIST, PFIELDOUT, 'REMAP_X_2WAY_ll::PFIELDOUT' ) ! CALL UPDATE_HALO_ll(TZLIST, KINFO) CALL CLEANLIST_ll(TZLIST) diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 index 805e607bc4feb4190007d10ce5003fd6bb328221..df07aafd0efd670325b161dc2f29b47c427cfc57 100644 --- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 @@ -5,6 +5,7 @@ !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- ! ################# @@ -209,7 +210,7 @@ ! DO WHILE (ASSOCIATED(TZCHILD)) IF (TZCHILD%NWIDTH == ICOARSE) THEN - CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD) + CALL ADD2DFIELD_ll( TZCHILD%TLIST, PTFIELD, 'SET_LB2DFIELD_ll::PTFIELD' ) EXIT ENDIF TZCHILD => TZCHILD%TNEXT @@ -217,7 +218,7 @@ ! DO WHILE (ASSOCIATED(TZPAR)) IF (ICOARSE == TZPAR%NWIDTH) THEN - CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD) + CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD, 'SET_LB2DFIELD_ll::P2DFIELD' ) EXIT ENDIF TZPAR => TZPAR%TNEXT @@ -373,7 +374,7 @@ ! DO WHILE (ASSOCIATED(TZCHILD)) IF (TZCHILD%NWIDTH == ICOARSE) THEN - CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD) + CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD, 'SET_LB3DFIELD_ll::PTFIELD' ) EXIT ENDIF TZCHILD => TZCHILD%TNEXT @@ -381,7 +382,7 @@ ! DO WHILE (ASSOCIATED(TZPAR)) IF (ICOARSE == TZPAR%NWIDTH) THEN - CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD) + CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD, 'SET_LB3DFIELD_ll::P3DFIELD' ) EXIT ENDIF TZPAR => TZPAR%TNEXT diff --git a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 index 0af00e6c6d1cc7aee2b52b91264a799da758fe4a..5c0a214647c187c66834f224504bfb8495187782 100644 --- a/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ls_ll.f90 @@ -5,6 +5,7 @@ !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- ! ################# @@ -169,9 +170,9 @@ ! !* 3. Put P2DFIELD and PTFIELD in the list of fields ! - CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD) + CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD, 'SET_LS2DFIELD_1WAY_ll::PTFIELD' ) ! - CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD) + CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD, 'SET_LS2DFIELD_1WAY_ll::P2DFIELD' ) ! !------------------------------------------------------------------------------- ! @@ -287,9 +288,9 @@ ! !* 3. Put P3DFIELD and PTFIELD in the list of fields ! - CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD) + CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD, 'SET_LS3DFIELD_1WAY_ll::PTFIELD' ) ! - CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD) + CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD, 'SET_LS3DFIELD_1WAY_ll::P3DFIELD' ) ! !------------------------------------------------------------------------------- ! @@ -463,9 +464,9 @@ ! !* 2. Put P2DFIELD and PTFIELD in the list of fields ! - CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD) + CALL ADD2DFIELD_ll(TZCHILD%TLIST, PTFIELD, 'SET_LS2DFIELD_2WAY_ll::PTFIELD' ) ! - CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD) + CALL ADD2DFIELD_ll(TZPAR%TLIST, P2DFIELD, 'SET_LS2DFIELD_2WAY_ll::P2DFIELD' ) ! !------------------------------------------------------------------------------- ! @@ -551,9 +552,9 @@ ! !* 2. Put P3DFIELD and PTFIELD in the list of fields ! - CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD) + CALL ADD3DFIELD_ll(TZCHILD%TLIST, PTFIELD, 'SET_LS3DFIELD_2WAY_ll::PTFIELD' ) ! - CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD) + CALL ADD3DFIELD_ll(TZPAR%TLIST, P3DFIELD, 'SET_LS3DFIELD_2WAY_ll::P3DFIELD' ) ! !------------------------------------------------------------------------------- ! diff --git a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 b/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 index b854f3df20d20cdc0daaafcde03accfcd7098a00..043aa02d0f8ad3fd05de721e2429d5f4bff5969d 100644 --- a/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 +++ b/src/LIB/SURCOUCHE/src/modi_addndfield_ll.f90 @@ -1,26 +1,20 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information +! Modifications: +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- - ! ######################### MODULE MODI_ADDnDFIELD_ll ! ######################### ! INTERFACE ! -!! ################################################ - SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD ) -!! ################################################ +!! ####################################################### + SUBROUTINE ADD1DFIELD_ll( HDIR, TPLIST, PFIELD, HNAME ) +!! ####################################################### ! USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll ! @@ -29,33 +23,48 @@ INTERFACE TYPE(LIST1D_ll), POINTER :: TPLIST ! list of fields REAL, DIMENSION(:), TARGET :: PFIELD ! field to be added ! to the list of fields + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! END SUBROUTINE ADD1DFIELD_ll ! -!! ########################################## - SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD ) -!! ########################################## +!! ################################################# + SUBROUTINE ADD2DFIELD_ll( TPLIST, PFIELD, HNAME ) +!! ################################################# ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! TYPE(LIST_ll), POINTER :: TPLIST ! list of fields REAL, DIMENSION(:,:), TARGET :: PFIELD ! field to be added ! to the list of fields + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! END SUBROUTINE ADD2DFIELD_ll ! -!! ########################################## - SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD ) -!! ########################################## +!! ################################################# + SUBROUTINE ADD3DFIELD_ll( TPLIST, PFIELD, HNAME ) +!! ################################################# ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! TYPE(LIST_ll), POINTER :: TPLIST ! list of fields REAL, DIMENSION(:,:,:), TARGET :: PFIELD ! field to be added ! to the list of fields + character(len=*), intent(in) :: HNAME ! Name of the field to be added ! END SUBROUTINE ADD3DFIELD_ll ! +!! ################################################# + SUBROUTINE ADD4DFIELD_ll( TPLIST, PFIELD, HNAME ) +!! ################################################# +! + USE MODD_ARGSLIST_ll, ONLY : LIST_ll +! + type(list_ll), pointer :: tplist ! list of fields + real, dimension(:,:,:,:), intent(in) :: pfield ! field to be added to the list of fields + character(len=*), intent(in) :: hname ! name of the field to be added +! + END SUBROUTINE ADD4DFIELD_ll +! END INTERFACE ! END MODULE MODI_ADDnDFIELD_ll diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 3a69a99d0249cc0ebea90194670129390ed0231e..b899c0ce0556d0e8d96eefeaa2f055d23fe84bcb 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -145,6 +145,7 @@ END MODULE MODI_ADVECTION_METSV !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 07/2017 (V. Vionnet) : add advection of 2D variables at !! the surface for the blowing snow scheme +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -649,19 +650,11 @@ END IF ! NULLIFY(TZFIELDS0_ll) !!$IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRTHS_OTHER) - IF (GTKE) CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRTKES_OTHER) - DO JR=1,KRR - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRRS_OTHER(:,:,:,JR)) - END DO - DO JSV=1,KSV - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRSVS_OTHER(:,:,:,JSV)) - END DO - IF(LBLOWSNOW) THEN - DO JSV = 1, (NBLOWSNOW_2D) - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRSNWCS_OTHER(:,:,:,JSV)) - END DO - END IF + CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRTHS_OTHER, 'ADVECTION_METSV::ZRTHS_OTHER' ) + IF (GTKE) CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRTKES_OTHER, 'ADVECTION_METSV::ZRTKES_OTHER' ) + IF ( KRR>0 ) CALL ADD4DFIELD_ll( TZFIELDS0_ll, ZRRS_OTHER(:,:,:,1:KRR), 'ADVECTION_METSV::ZRRS_OTHER' ) + IF ( KSV>0 ) CALL ADD4DFIELD_ll( TZFIELDS0_ll, ZRSVS_OTHER(:,:,:,1:KSV), 'ADVECTION_METSV::ZRSVS_OTHER' ) + IF(LBLOWSNOW) CALL ADD4DFIELD_ll( TZFIELDS0_ll, ZRSNWCS_OTHER(:,:,:,1:NBLOWSNOW_2D), 'ADVECTION_METSV::ZRSNWCS_OTHER' ) CALL UPDATE_HALO_ll(TZFIELDS0_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS0_ll) !!$END IF @@ -811,19 +804,11 @@ DO JSPL=1,KSPLIT ! NULLIFY(TZFIELDS1_ll) !!$ IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZTH) - IF (GTKE) CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZTKE) - DO JR=1,KRR - CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZR(:,:,:,JR)) - END DO - DO JSV=1,KSV - CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZSV(:,:,:,JSV)) - END DO - IF(LBLOWSNOW) THEN - DO JSV=1,(NBLOWSNOW_2D) - CALL ADD3DFIELD_ll(TZFIELDS1_ll, ZSNWC(:,:,:,JSV)) - END DO - END IF + CALL ADD3DFIELD_ll( TZFIELDS1_ll, ZTH, 'ZTH' ) + IF (GTKE) CALL ADD3DFIELD_ll( TZFIELDS1_ll, ZTKE, 'ADVECTION_METSV::ZTKE' ) + IF ( KRR>0 ) CALL ADD4DFIELD_ll( TZFIELDS1_ll, ZR (:,:,:,1:KRR), 'ADVECTION_METSV::ZR' ) + IF ( KSV>0 ) CALL ADD4DFIELD_ll( TZFIELDS1_ll, ZSV(:,:,:,1:KSV), 'ADVECTION_METSV::ZSV' ) + IF ( LBLOWSNOW ) CALL ADD4DFIELD_ll( TZFIELDS1_ll, ZSNWC(:,:,:,1:NBLOWSNOW_2D), 'ADVECTION_METSV::ZSNWC' ) CALL UPDATE_HALO_ll(TZFIELDS1_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS1_ll) !!$ END IF diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90 index 468e7e8b05975d6a3cdb4133cf4527b2364d24cc..30b9f621ae84778631cc439a661040683460acb7 100644 --- a/src/MNH/advection_uvw.f90 +++ b/src/MNH/advection_uvw.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -94,6 +94,7 @@ END MODULE MODI_ADVECTION_UVW !! J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! C.LAC 10/2016 : Add OSPLIT_WENO +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -294,8 +295,8 @@ ZRWT = PWT(:,:,:) * ZMZM_RHODJ ! NULLIFY(TZFIELD_ll) !!$IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZFIELD_ll, ZRUT) - CALL ADD3DFIELD_ll(TZFIELD_ll, ZRVT) + CALL ADD3DFIELD_ll( TZFIELD_ll, ZRUT, 'ADVECTION_UVW::ZRUT' ) + CALL ADD3DFIELD_ll( TZFIELD_ll, ZRVT, 'ADVECTION_UVW::ZRVT' ) CALL UPDATE_HALO_ll(TZFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELD_ll) !!$END IF @@ -311,9 +312,9 @@ CALL CONTRAV_DEVICE (HLBCX,HLBCY,ZRUT,ZRVT,ZRWT,PDXX,PDYY,PDZZ,PDZX,PDZY,ZRUCT,Z ! NULLIFY(TZFIELDS_ll) !!$IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRWCT) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRUCT) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRVCT) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRWCT, 'ADVECTION_UVW::ZRWCT' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRUCT, 'ADVECTION_UVW::ZRUCT' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRVCT, 'ADVECTION_UVW::ZRVCT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !!$END IF @@ -352,9 +353,9 @@ ZRWS_OTHER(:,:,IKE+1) = 0. !$acc update self(ZRUS_OTHER,ZRVS_OTHER,ZRWS_OTHER) NULLIFY(TZFIELDS0_ll) !!$IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRUS_OTHER) - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRVS_OTHER) - CALL ADD3DFIELD_ll(TZFIELDS0_ll, ZRWS_OTHER) + CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRUS_OTHER, 'ADVECTION_UVW::ZRUS_OTHER' ) + CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRVS_OTHER, 'ADVECTION_UVW::ZRVS_OTHER' ) + CALL ADD3DFIELD_ll( TZFIELDS0_ll, ZRWS_OTHER, 'ADVECTION_UVW::ZRWS_OTHER' ) CALL UPDATE_HALO_ll(TZFIELDS0_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS0_ll) !!$END IF diff --git a/src/MNH/advection_uvw_cen.f90 b/src/MNH/advection_uvw_cen.f90 index f7531180008609c23595127a615b95a60347a42d..8004ee8a67dd0303ba83a869c06ec87adca8a471 100644 --- a/src/MNH/advection_uvw_cen.f90 +++ b/src/MNH/advection_uvw_cen.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -91,8 +91,8 @@ END MODULE MODI_ADVECTION_UVW_CEN !! Original 01/2013 (from ADVECTION routine) !! Modif !! J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine ! -!! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -263,9 +263,9 @@ END IF ! NULLIFY(TZFIELDS_ll) !!$IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRWCT) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRUCT) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRVCT) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRWCT, 'ADVECTION_UVW_CEN::ZRWCT' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRUCT, 'ADVECTION_UVW_CEN::ZRUCT' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRVCT, 'ADVECTION_UVW_CEN::ZRVCT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !$acc update device(ZRUCT, ZRVCT, ZRWCT) diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90 index 547384163f0428de088a68617036ad911b1e0c97..bd415b6236585571cff996408a2b5a103fe5047e 100644 --- a/src/MNH/advecuvw_rk.f90 +++ b/src/MNH/advecuvw_rk.f90 @@ -128,6 +128,7 @@ END MODULE MODI_ADVECUVW_RK !! F.Auguste and C.Lac : 08/16 : CEN4TH with RKC4 !! C.Lac 10/16 : Correction on RK loop ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! !------------------------------------------------------------------------------- ! @@ -196,7 +197,8 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PRUS_OTHER , PRVS_OTHER, PRWS_OTHER !* 0.2 declarations of local variables ! ! -! +! +character(len=3) :: ynum INTEGER :: IKE ! indice K End in z direction ! REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZUT, ZVT, ZWT @@ -402,10 +404,10 @@ CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZVT, PVT, 'V' ) CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZWT, PWT, 'W' ) #endif ! -NULLIFY(TZFIELDMT_ll) -CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZUT) -CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZVT) -CALL ADD3DFIELD_ll(TZFIELDMT_ll, ZWT) +NULLIFY(TZFIELDMT_ll) +CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZUT, 'ADVECUVW_RK::ZUT' ) +CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZVT, 'ADVECUVW_RK::ZVT' ) +CALL ADD3DFIELD_ll( TZFIELDMT_ll, ZWT, 'ADVECUVW_RK::ZWT' ) INBVAR = 3 CALL INIT_HALO2_ll(TZHALO2MT_ll,INBVAR,SIZE(PUT,1),SIZE(PUT,2),SIZE(PWT,3)) ! @@ -459,9 +461,10 @@ ZRWS = 0. ! NULLIFY(TZFIELDS4_ll) ! - CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRUS(:,:,:,JS)) - CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRVS(:,:,:,JS)) - CALL ADD3DFIELD_ll(TZFIELDS4_ll, ZRWS(:,:,:,JS)) + write ( ynum, '( I3 )' ) js + CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRUS(:,:,:,JS), 'ADVECUVW_RK::ZRUS(:,:,:,'//trim( adjustl( ynum ) )//')' ) + CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRVS(:,:,:,JS), 'ADVECUVW_RK::ZRVS(:,:,:,'//trim( adjustl( ynum ) )//')' ) + CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRWS(:,:,:,JS), 'ADVECUVW_RK::ZRWS(:,:,:,'//trim( adjustl( ynum ) )//')' ) CALL UPDATE_HALO_ll(TZFIELDS4_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS4_ll) !$acc update device(ZRUS(:,:,:,JS),ZRVS(:,:,:,JS),ZRWS(:,:,:,JS)) diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90 index e5aa55cfe1125bbc0544e16010d78eb13fda0f78..21c83f052591ee0cf8e0540429d0a661075c3a58 100644 --- a/src/MNH/anel_balancen.f90 +++ b/src/MNH/anel_balancen.f90 @@ -101,6 +101,7 @@ END MODULE MODI_ANEL_BALANCE_n !! M.Moge 08/2015 removing UPDATE_HALO_ll(XRHODJ) + EXTRAPOL on ZRU and ZRV in part 3.1 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -223,7 +224,7 @@ CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen1-after TRIDZ::XRHODJ",PRECISION) !* 3.1 multiplication by RHODJ ! !$20140710 UPHALO on XRHODJ -!CALL ADD3DFIELD_ll(TZFIELDS_ll,XRHODJ) +!CALL ADD3DFIELD_ll( TZFIELDS_ll, XRHODJ, 'ANEL_BALANCE_n::XRHODJ' ) !CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) !CALL CLEANLIST_ll(TZFIELDS_ll) CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen3.1-after update halo::XRHODJ",PRECISION) @@ -237,10 +238,10 @@ ZTH(:,:,:) = XTHT(:,:,:) ALLOCATE(ZRR(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),SIZE(XRT,4))) ZRR(:,:,:,:) = XRT(:,:,:,:) !20131112 appli update_halo_ll -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRU) -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRV) -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRW) -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZTH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRU, 'ANEL_BALANCE_n::ZRU' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'ANEL_BALANCE_n::ZRV' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRW, 'ANEL_BALANCE_n::ZRW' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTH, 'ANEL_BALANCE_n::ZTH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) CALL MPPDB_CHECK3D(ZRU,"anel_balancen3.1-after1stupdhalo::ZRU",PRECISION) @@ -289,9 +290,9 @@ XUT(:,:,:) = ZRU(:,:,:) / MXM(XRHODJ) XVT(:,:,:) = ZRV(:,:,:) / MYM(XRHODJ) XWT(:,:,:) = ZRW(:,:,:) / MZM(1,IKU,1,XRHODJ) !20131112 appli update_halo_ll to XUT,XVT,XWT -CALL ADD3DFIELD_ll(TZFIELDS_ll, XUT) -CALL ADD3DFIELD_ll(TZFIELDS_ll, XVT) -CALL ADD3DFIELD_ll(TZFIELDS_ll, XWT) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'ANEL_BALANCE_n::XUT' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'ANEL_BALANCE_n::XVT' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XWT, 'ANEL_BALANCE_n::XWT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) CALL MPPDB_CHECK3D(XUT,"anel_balancen3.2-afterupdhalo::XUT",PRECISION) diff --git a/src/MNH/ch_init_fieldn.f90 b/src/MNH/ch_init_fieldn.f90 index 25992396d0c68c43ed0f5de8db7330bf2c159033..e71d31f36c583398e88c6f77e19ca4b4a565e060 100644 --- a/src/MNH/ch_init_fieldn.f90 +++ b/src/MNH/ch_init_fieldn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 chimie 2006/07/06 15:28:51 -!----------------------------------------------------------------- !! ########################### MODULE MODI_CH_INIT_FIELD_n !! ########################### @@ -75,6 +70,7 @@ END MODULE MODI_CH_INIT_FIELD_n !! 22/01/01 (D. Gazen) add NSV_CHEMBEG and NSV_CHEMEND indices to handle SV !! 04/06/07 (M. Leriche & JP Pinty) add pH initialization !! 20/04/10 (M. Leriche) remove pH initialization to ini_modeln +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! !! EXTERNAL !! -------- @@ -331,12 +327,8 @@ IF ((LCH_INIT_FIELD).AND.(CPROGRAM/='DIAG ')) THEN ENDIF ! ! -DO JN = NSV_CHEMBEG,NSV_CHEMEND - CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN)) -END DO -DO JN = NSV_AERBEG,NSV_AEREND - CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN)) -END DO +CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND), 'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND)' ) +CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_AERBEG:NSV_AEREND), 'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_AERBEG:NSV_AEREND)' ) ! CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) @@ -362,12 +354,8 @@ IF (LORILAM) THEN XM3D(:,:,IKE+JPVEXT,JN) = XM3D(:,:,IKE,JN) END DO ! - DO JN = NSV_CHEMBEG,NSV_CHEMEND - CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN)) - END DO - DO JN = NSV_AERBEG,NSV_AEREND - CALL ADD3DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,JN)) - END DO + CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_CHEMBEG:NSV_CHEMEND), 'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_CHEMBEG,NSV_CHEMEND)' ) + CALL ADD4DFIELD_ll(TZFIELDS_ll, XSVT(:,:,:,NSV_AERBEG:NSV_AEREND), 'CH_INIT_FIELD_n::XSVT(:,:,:,NSV_AERBEG:NSV_AEREND)' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) END IF diff --git a/src/MNH/clustering.f90 b/src/MNH/clustering.f90 index f1dfe3383c6783497882fc53b91efca61d74bbaf..720ef3b0dc232fcc849fefa369b2f30ff2210940 100644 --- a/src/MNH/clustering.f90 +++ b/src/MNH/clustering.f90 @@ -61,6 +61,7 @@ END MODULE MODI_CLUSTERING !! Modified 13/06/17 T. Dauhut to start volume scan from top !! Modified 04/10/17 T. Dauhut to be added to next MNH versions ! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine ! !------------------------------------------------------------------------------- ! @@ -421,9 +422,9 @@ DO JH=1,9999 ! update halo until there is no more changes anywhere ZMAPIDT_ll=IMAPIDT_ll ZMAPLVL_ll=IMAPLVL_ll ZMAPAFL_ll=IMAPAFL_ll -CALL ADD2DFIELD_ll(TZFIELDS_ll,ZMAPIDT_ll) -CALL ADD2DFIELD_ll(TZFIELDS_ll,ZMAPLVL_ll) -CALL ADD2DFIELD_ll(TZFIELDS_ll,ZMAPAFL_ll) +CALL ADD2DFIELD_ll( TZFIELDS_ll, ZMAPIDT_ll, 'CLUSTERING::ZMAPIDT_ll' ) +CALL ADD2DFIELD_ll( TZFIELDS_ll, ZMAPLVL_ll, 'CLUSTERING::ZMAPLVL_ll' ) +CALL ADD2DFIELD_ll( TZFIELDS_ll, ZMAPAFL_ll, 'CLUSTERING::ZMAPAFL_ll' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) IMAPIDT_ll=NINT(ZMAPIDT_ll) IMAPLVL_ll=NINT(ZMAPLVL_ll) diff --git a/src/MNH/contrav.f90 b/src/MNH/contrav.f90 index d187c4cccbcb71176d547415f5b40031f1470e2a..de2d9666d4b3b83cb575c8c6ca5a2d1110014802 100644 --- a/src/MNH/contrav.f90 +++ b/src/MNH/contrav.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 operators 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! #################### MODULE MODI_CONTRAV ! #################### @@ -136,6 +131,7 @@ END MODULE MODI_CONTRAV !! Corrections 19/01/11 (by J.P. Pinty) WC 4th order !! Corrections 28/03/11 (by V.Masson) // of WC 4th order !! J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !---------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -210,15 +206,15 @@ IF (KADV_ORDER == 4 ) THEN IF( .NOT. LFLAT) THEN NULLIFY(TZFIELD_U) NULLIFY(TZFIELD_V) - CALL ADD3DFIELD_ll(TZFIELD_U, PRUCT) - CALL ADD3DFIELD_ll(TZFIELD_V, PRVCT) + CALL ADD3DFIELD_ll( TZFIELD_U, PRUCT, 'CONTRAV::PRUCT' ) + CALL ADD3DFIELD_ll( TZFIELD_V, PRVCT, 'CONTRAV::PRVCT' ) CALL UPDATE_HALO_ll(TZFIELD_U,IINFO_ll) CALL UPDATE_HALO_ll(TZFIELD_V,IINFO_ll) !!$ IF( NHALO==1 ) THEN NULLIFY(TZFIELD_DZX) NULLIFY(TZFIELD_DZY) - CALL ADD3DFIELD_ll(TZFIELD_DZX, PDZX) - CALL ADD3DFIELD_ll(TZFIELD_DZY, PDZY) + CALL ADD3DFIELD_ll( TZFIELD_DZX, PDZX, 'CONTRAV::PDZX' ) + CALL ADD3DFIELD_ll( TZFIELD_DZY, PDZY, 'CONTRAV::PDZY' ) NULLIFY(TZHALO2_U) NULLIFY(TZHALO2_V) NULLIFY(TZHALO2_DZX) @@ -609,15 +605,15 @@ IF (KADV_ORDER == 4 ) THEN IF( .NOT. LFLAT) THEN NULLIFY(TZFIELD_U) NULLIFY(TZFIELD_V) - CALL ADD3DFIELD_ll(TZFIELD_U, PRUCT) - CALL ADD3DFIELD_ll(TZFIELD_V, PRVCT) + CALL ADD3DFIELD_ll( TZFIELD_U, PRUCT, 'CONTRAV::PRUCT' ) + CALL ADD3DFIELD_ll( TZFIELD_V, PRVCT, 'CONTRAV::PRVCT' ) CALL UPDATE_HALO_ll(TZFIELD_U,IINFO_ll) CALL UPDATE_HALO_ll(TZFIELD_V,IINFO_ll) !!$ IF( NHALO==1 ) THEN NULLIFY(TZFIELD_DZX) NULLIFY(TZFIELD_DZY) - CALL ADD3DFIELD_ll(TZFIELD_DZX, PDZX) - CALL ADD3DFIELD_ll(TZFIELD_DZY, PDZY) + CALL ADD3DFIELD_ll( TZFIELD_DZX, PDZX, 'CONTRAV::PDZX' ) + CALL ADD3DFIELD_ll( TZFIELD_DZY, PDZY, 'CONTRAV::PDZY' ) NULLIFY(TZHALO2_U) NULLIFY(TZHALO2_V) NULLIFY(TZHALO2_DZX) diff --git a/src/MNH/dflux_corr.f90 b/src/MNH/dflux_corr.f90 index 61287d64edae715a3eb8a6c6a8a6b24dbb2f3574..20b2b79cbce459f9f3a16947abb5d81c2246d97f 100644 --- a/src/MNH/dflux_corr.f90 +++ b/src/MNH/dflux_corr.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ########################## MODULE MODI_DFLUX_CORR ! ########################## @@ -112,6 +108,7 @@ END MODULE MODI_DFLUX_CORR !! J. Stein & 20/03/01 : bug for the open case at the boundary !! P. Jabouille !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -244,7 +241,7 @@ ZBETAOUT(:,:,IKU) = 1. ! because no velocity is available ! !!$IF(NHALO == 1 .OR. HLBCX(1)=='CYCL' .OR. HLBCY(1)=='CYCL') THEN IF(HLBCX(1)=='CYCL' .OR. HLBCY(1)=='CYCL') THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZBETAOUT) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZBETAOUT, 'DFLUX_CORR::ZBETAOUT' ) !!$ IF(NHALO == 1) THEN CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll) !!$ ELSE @@ -294,13 +291,13 @@ PFZ(:,:,:) = MIN(1., ZFOUT(:,:,:)) * MAX(0.,PFZ(:,:,:)) & ! ! x-direction IF (HLBCX(1)=='CYCL') THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll, PFX) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PFX, 'DFLUX_CORR::PFX' ) CALL UPDATE_BOUNDARIES_ll('XX',TZFIELDS_ll, IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ENDIF ! y-direction IF (HLBCY(1)=='CYCL') THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll, PFY) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PFY, 'DFLUX_CORR::PFY' ) CALL UPDATE_BOUNDARIES_ll('YY',TZFIELDS_ll, IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ENDIF diff --git a/src/MNH/elec_fieldn.f90 b/src/MNH/elec_fieldn.f90 index f39cdc7abf032ef51c076a10a62ec9fc94f5e84a..ee38a7d922012e96176c2fc8e7394fa9d2915386 100644 --- a/src/MNH/elec_fieldn.f90 +++ b/src/MNH/elec_fieldn.f90 @@ -3,6 +3,9 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +!----------------------------------------------------------------- ! ######################## MODULE MODI_ELEC_FIELD_n ! ######################## @@ -160,8 +163,8 @@ END DO !* 3.1 Compute the electrostatic potential ! ----------------------------------- ! -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPHIT) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZDV_SOURCE) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPHIT, 'ELEC_FIELD_n::ZPHIT' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZDV_SOURCE, 'ELEC_FIELD_n::ZDV_SOURCE' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -219,7 +222,7 @@ ZPHIT(:,:,IKB-1) = -ZPHIT(:,:,IKB) ! ! E = rhodj * Nabla V ! -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPHIT) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPHIT, 'ELEC_FIELD_n::ZPHIT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index 3538f4b3e1530b693666d6c7602d8d5650134739..8afdb41aefd43f6996f8a5c7a00afc6665930c81 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -99,6 +99,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n ! P. Wautelet 19/04/2019: use modd_precision kinds ! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -520,9 +521,9 @@ DO WHILE (.NOT. GEND_DOMAIN .AND. INB_CELL .LT. NMAX_CELL) GEND_CELL = .FALSE. DO WHILE (.NOT. GEND_CELL) ! - CALL ADD2DFIELD_ll (TZFIELDS_ll, ZCELL(:,:,IK,INB_CELL)) - CALL UPDATE_HALO_ll (TZFIELDS_ll, IINFO_ll) - CALL CLEANLIST_ll (TZFIELDS_ll) + CALL ADD2DFIELD_ll ( TZFIELDS_ll, ZCELL(:,:,IK,INB_CELL), 'FLASH_GEOM_ELEC_n::ZCELL(:,:,IK,INB_CELL)' ) + CALL UPDATE_HALO_ll ( TZFIELDS_ll, IINFO_ll ) + CALL CLEANLIST_ll ( TZFIELDS_ll ) ! COUNT_BEF = COUNT(ZCELL(IIB:IIE,IJB:IJE,IK,INB_CELL) .EQ. 1.) CALL SUM_ELEC_ll (COUNT_BEF) @@ -1970,9 +1971,9 @@ END DO ! DO WHILE (IEND_GLOB .NE. INB_CELL) DO IL = 1, INB_CELL - CALL ADD3DFIELD_ll (TZFIELDS_ll, ZSIGN_AREA) - CALL UPDATE_HALO_ll (TZFIELDS_ll, IINFO_ll) - CALL CLEANLIST_ll (TZFIELDS_ll) + CALL ADD3DFIELD_ll ( TZFIELDS_ll, ZSIGN_AREA, 'FLASH_GEOM_ELEC_n::ZSIGN_AREA' ) + CALL UPDATE_HALO_ll ( TZFIELDS_ll, IINFO_ll) + CALL CLEANLIST_ll ( TZFIELDS_ll) ! IF (GNEW_FLASH(IL) .AND. (IEND(IL) .NE. 1)) THEN COUNT_BEF2(IL) = COUNT(ZSIGN_AREA(IIB:IIE,IJB:IJE,IKB:IKE) .EQ. ZSIGN(IL)) diff --git a/src/MNH/get_halo.f90 b/src/MNH/get_halo.f90 index a2e65ac3d6ea60c8c000e4bd76161211d7f33ddb..071c893bbecbfe46abebba4d4a576da8777c68b0 100644 --- a/src/MNH/get_halo.f90 +++ b/src/MNH/get_halo.f90 @@ -1,12 +1,10 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 newsrc 2007/03/01 13:18:33 +! Modifications: +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- ! #################### MODULE MODI_GET_HALO @@ -79,7 +77,7 @@ IKU = SIZE(PSRC,3) NULLIFY( TZ_PSRC_ll,TP_PSRC_HALO2_ll) CALL INIT_HALO2_ll(TP_PSRC_HALO2_ll,1,IIU,IJU,IKU) ! -CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC) +CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO2::PSRC' ) CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR) CALL UPDATE_HALO2_ll(TZ_PSRC_ll,TP_PSRC_HALO2_ll,IERROR) ! @@ -107,7 +105,7 @@ INTEGER :: IERROR ! error return code ! NULLIFY( TZ_PSRC_ll) ! -CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC) +CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO::PSRC' ) CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR, HDIR=HDIR ) CALL CLEANLIST_ll(TZ_PSRC_ll) ! @@ -288,7 +286,7 @@ ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF (LX .OR. LY) THEN -CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC) +CALL ADD3DFIELD_ll( TZ_PSRC_ll, PSRC, 'GET_HALO::PSRC' ) CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR, HDIR=HDIR ) CALL CLEANLIST_ll(TZ_PSRC_ll) ELSE diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90 index c1e4886c4be26bb5f011fe800a3057e798a2a8ba..7793c96b1f3f2661988363813b7842b54da5b4ff 100644 --- a/src/MNH/ground_paramn.f90 +++ b/src/MNH/ground_paramn.f90 @@ -110,6 +110,7 @@ END MODULE MODI_GROUND_PARAM_n !! (V. Vionnet) 18/07/2017 add coupling for blowing snow module !! (Bielli S.) 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -782,23 +783,23 @@ IF (LDIAG_IN_RUN) THEN END IF ! NULLIFY(TZFIELDSURF_ll) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_RN ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_H ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LE ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_GFLUX ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SWD ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SWU ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LWD ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LWU ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_T2M ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_Q2M ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_HU2M ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_ZON10M) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_MER10M) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_DSTAOD) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SLTAOD) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_ZWS ) - CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SFCO2 ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_RN, 'GROUND_PARAM_n::XCURRENT_RN' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_H, 'GROUND_PARAM_n::XCURRENT_H' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LE, 'GROUND_PARAM_n::XCURRENT_LE' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_GFLUX, 'GROUND_PARAM_n::XCURRENT_GFLUX' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWD, 'GROUND_PARAM_n::XCURRENT_SWD' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SWU, 'GROUND_PARAM_n::XCURRENT_SWU' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LWD, 'GROUND_PARAM_n::XCURRENT_LWD' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_LWU, 'GROUND_PARAM_n::XCURRENT_LWU' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_T2M, 'GROUND_PARAM_n::XCURRENT_T2M' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_Q2M, 'GROUND_PARAM_n::XCURRENT_Q2M' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_HU2M, 'GROUND_PARAM_n::XCURRENT_HU2M' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_ZON10M, 'GROUND_PARAM_n::XCURRENT_ZON10M' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_MER10M, 'GROUND_PARAM_n::XCURRENT_MER10M' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_DSTAOD, 'GROUND_PARAM_n::XCURRENT_DSTAOD' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SLTAOD, 'GROUND_PARAM_n::XCURRENT_SLTAOD' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_ZWS, 'GROUND_PARAM_n::XCURRENT_ZWS' ) + CALL ADD2DFIELD_ll( TZFIELDSURF_ll,XCURRENT_SFCO2, 'GROUND_PARAM_n::XCURRENT_SFCO2' ) CALL UPDATE_HALO_ll(TZFIELDSURF_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDSURF_ll) diff --git a/src/MNH/ice_adjust_bis.f90 b/src/MNH/ice_adjust_bis.f90 index 6f8415685505458a5450498cd1b7591d90989c63..2b9b233e2b9e80ce9051e0deaa1b02a51d953b5c 100644 --- a/src/MNH/ice_adjust_bis.f90 +++ b/src/MNH/ice_adjust_bis.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_ICE_ADJUST_BIS ! ############################### @@ -57,6 +58,7 @@ END MODULE MODI_ICE_ADJUST_BIS !! ------------- !! Original 09/2012 !! M.Moge 08/2015 UPDATE_HALO_ll on PTH, ZRV, ZRC, ZRI +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! !! -------------------------------------------------------------------------- ! @@ -129,15 +131,15 @@ CALL TH_R_FROM_THL_RT_3D(YFRAC_ICE,ZFRAC_ICE(:,:,:),PP(:,:,:), & ZTHL(:,:,:), ZRW(:,:,:), PTH(:,:,:), & ZRV(:,:,:), ZRC(:,:,:), ZRI(:,:,:), & ZRSATW(:,:,:), ZRSATI(:,:,:) ) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PTH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PTH, 'ICE_ADJUST_BIS::PTH') IF (IRR>=1) THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRV) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'ICE_ADJUST_BIS::ZRV' ) ENDIF IF (IRR>=2) THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRC) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRC, 'ICE_ADJUST_BIS::ZRC' ) ENDIF IF (IRR>=4) THEN - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRI) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRI, 'ICE_ADJUST_BIS::ZRI' ) ENDIF CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) diff --git a/src/MNH/ini_field_elec.f90 b/src/MNH/ini_field_elec.f90 index 86b68ca99cb89d4f3fee06e900293834f20732cd..a4fa7cd9bdf038b73c0cd2c6a88a0ebb9357fba3 100644 --- a/src/MNH/ini_field_elec.f90 +++ b/src/MNH/ini_field_elec.f90 @@ -2,6 +2,7 @@ !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. +!----------------------------------------------------------------- ! ########################## MODULE MODI_INI_FIELD_ELEC ! ########################## @@ -59,6 +60,7 @@ END MODULE MODI_INI_FIELD_ELEC !! (JGR, 1987, 5661-5675) !! J.-P. Pinty 01/07/12 Add a non-homogeneous Neuman fair-weather !! boundary condition at the top +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! !!------------------------------------------------------------------------------- ! @@ -250,9 +252,9 @@ XEFIELDW(:,:,SIZE(PDZZ,3)) = 0. ! either the ground or the ionosphere! !* 3. FAIR WEATHER SPACE CHARGE ! ------------------------- ! -CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDU) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDV) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDW) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDU, 'INI_FIELD_ELEC::XEFIELDU' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDV, 'INI_FIELD_ELEC::XEFIELDV' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDW, 'INI_FIELD_ELEC::XEFIELDW' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90 index c47b99910f656e4f0b4d024e9482bc6df23951c7..d05fc31f52d33570f14a188844102bc2235e15a8 100644 --- a/src/MNH/ini_radiations.f90 +++ b/src/MNH/ini_radiations.f90 @@ -109,6 +109,7 @@ END MODULE MODI_INI_RADIATIONS !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -278,8 +279,8 @@ END IF ! ! 5.2 Update halo of PSLOPANG and PSLOPAZI at the end of ini_modeln ! -CALL ADD2DFIELD_ll (TPINITHALO2D_ll,PSLOPANG) -CALL ADD2DFIELD_ll (TPINITHALO2D_ll,PSLOPAZI) +CALL ADD2DFIELD_ll ( TPINITHALO2D_ll, PSLOPANG, 'INI_RADIATIONS::PSLOPANG' ) +CALL ADD2DFIELD_ll ( TPINITHALO2D_ll, PSLOPAZI, 'INI_RADIATIONS::PSLOPAZI' ) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_spawn_lsn.f90 b/src/MNH/ini_spawn_lsn.f90 index d1274f06b9987ff87bcbf50390a13b2b82970a5d..75354a3f53f1b94993a020d953d37ad8232e4f84 100644 --- a/src/MNH/ini_spawn_lsn.f90 +++ b/src/MNH/ini_spawn_lsn.f90 @@ -139,6 +139,7 @@ END MODULE MODI_INI_SPAWN_LS_n !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -784,20 +785,20 @@ IF ( SIZE(PLSRVS,1) /= 0 ) DEALLOCATE(ZTLSRVS) IF ( SIZE(PLSZWSS,1) /= 0 ) DEALLOCATE(ZTZWSS) !------------------------------------------------------------------------------ NULLIFY(TZLSFIELD_ll) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUM) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVM) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWM) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHM) -IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVM) -IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSM) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSUM , 'INI_SPAWN_LS::PLSUM' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSVM , 'INI_SPAWN_LS::PLSVM' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSWM , 'INI_SPAWN_LS::PLSWM' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSTHM, 'INI_SPAWN_LS::PLSTHM' ) +IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSRVM , 'INI_SPAWN_LS::PLSRVM' ) +IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll( TZLSFIELD_ll, PLSZWSM, 'INI_SPAWN_LS::PLSZWSM' ) IF ( SIZE(PLSTHS,1) /= 0 ) THEN - CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUS) - CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVS) - CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWS) - CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHS) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSUS, 'INI_SPAWN_LS::PLSUS' ) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSVS, 'INI_SPAWN_LS::PLSVS' ) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSWS, 'INI_SPAWN_LS::PLSWS' ) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSTHS, 'INI_SPAWN_LS::PLSTHS' ) ENDIF -IF ( SIZE(PLSRVS,1) /= 0 ) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVS) -IF ( SIZE(PLSZWSS,1) /= 0 ) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSS) +IF ( SIZE(PLSRVS, 1) /= 0 ) CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSRVS, 'INI_SPAWN_LS::PLSRVS' ) +IF ( SIZE(PLSZWSS,1) /= 0 ) CALL ADD2DFIELD_ll( TZLSFIELD_ll, PLSZWSS, 'INI_SPAWN_LS::PLSZWSS' ) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) ! diff --git a/src/MNH/ini_tke_eps.f90 b/src/MNH/ini_tke_eps.f90 index f921bed32e00175de47d54d0cc16de0c5eca27a2..f0aba674f3ec36a83f1284b8fa33713cfd7af53f 100644 --- a/src/MNH/ini_tke_eps.f90 +++ b/src/MNH/ini_tke_eps.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 init 2006/07/19 10:33:46 -!----------------------------------------------------------------- ! ####################### MODULE MODI_INI_TKE_EPS ! ####################### @@ -88,6 +83,7 @@ END MODULE MODI_INI_TKE_EPS !! to compute a real gradient and allow RESTA conf. !! Aug 10, 1998 (N. Asencio) add parallel code !! May 2006 Remove KEPS +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! ------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -164,7 +160,7 @@ IF (HGETTKET == 'INIT' ) THEN ! ! Add PTKET to TPINITHALO3D_ll list of fields updated at the ! end of initialization - CALL ADD3DFIELD_ll (TPINITHALO3D_ll,PTKET) + CALL ADD3DFIELD_ll ( TPINITHALO3D_ll, PTKET, 'INI_TKE_EPS::PTKET' ) END IF ! ! diff --git a/src/MNH/ion_drift.f90 b/src/MNH/ion_drift.f90 index 14ce9fd066e6a1fe22ce67cc00d2bc10b4e75271..73edec604ea8572b9418b0181fabd74761dfcc78 100644 --- a/src/MNH/ion_drift.f90 +++ b/src/MNH/ion_drift.f90 @@ -1,8 +1,8 @@ - -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!------------------------------------------------------------------------------- ! ##################### MODULE MODI_ION_DRIFT ! ##################### @@ -36,7 +36,8 @@ END MODULE MODI_ION_DRIFT !! ------ !! M. Chong 01/2010 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -!! +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -118,16 +119,16 @@ IF (LNORTH_ll()) THEN XEFIELDV(:,IJE+1,:) = XEFIELDV(:,IJE,:) ENDIF ! -CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDU) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XEFIELDV) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDU, 'ION_DRIFT::XEFIELDU' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XEFIELDV, 'ION_DRIFT::XEFIELDV' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! ! specify lateral boundary ion mixing ratio CALL ION_BOUND4DRIFT (HLBCX,HLBCY,XEFIELDU,XEFIELDV,PSVT) ! -CALL ADD3DFIELD_ll(TZFIELDS_ll,PSVT(:,:,:,NSV_ELECBEG)) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PSVT(:,:,:,NSV_ELECEND)) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PSVT(:,:,:,NSV_ELECBEG), 'ION_DRIFT::PSVT(:,:,:,NSV_ELECBEG)' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PSVT(:,:,:,NSV_ELECEND), 'ION_DRIFT::PSVT(:,:,:,NSV_ELECEND)' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/les_budget.f90 b/src/MNH/les_budget.f90 index aac8f80077a70dc6e5e752af92c80705edf619be..c11a00da0efb960488bc86fee48c44f705bf17f0 100644 --- a/src/MNH/les_budget.f90 +++ b/src/MNH/les_budget.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 les 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ###################### MODULE MODI_LES_BUDGET ! ###################### @@ -52,6 +47,7 @@ END MODULE MODI_LES_BUDGET !! ------------- !! Original September 19, 2002 !! 25/11/2016 Q.Rodier correction bug variance u'^2 v'^2 w'^2 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -410,7 +406,7 @@ INTEGER :: IINFO_ll END SELECT NULLIFY(TZFIELDS_ll) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZS) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZS, 'LES_BUDGET_ANOMALY::ZS' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/mode_extrapol.f90 b/src/MNH/mode_extrapol.f90 index fcf03634fda4615c98d6a6e9f84ac8091700683d..fe3cc9b664bbeca42953bca05f35b5801b61b8af 100644 --- a/src/MNH/mode_extrapol.f90 +++ b/src/MNH/mode_extrapol.f90 @@ -5,6 +5,7 @@ !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !----------------------------------------------------------------- MODULE MODE_EXTRAPOL @@ -184,6 +185,7 @@ CONTAINS ! !* 0.2 Declarations of local variables ! + character(len=6) :: ynum INTEGER :: IIB,IJB,IKB ! Begining useful area in x,y,z directions INTEGER :: IIE,IJE,IKE ! End useful area in x,y,z directions INTEGER :: IDIMX_C,IDIMY_C ! size of the child domain (in the father grid) @@ -219,7 +221,8 @@ CONTAINS CALL GO_TOMODEL_ll(1, IINFO_ll) DO II=1,SIZE(PTAB,3) NULLIFY(TZZSFIELD_ll) - CALL ADD2DFIELD_ll(TZZSFIELD_ll, PTAB(:,:,II)) + write ( ynum, '( I6 )' ) ii + CALL ADD2DFIELD_ll( TZZSFIELD_ll, PTAB(:,:,II), 'EXTRAPOL_ON_PSEUDO_HALO3D::PTAB:'//trim( adjustl( ynum ) ) ) CALL UPDATE_HALO_EXTENDED_ll(TZZSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZZSFIELD_ll) ENDDO @@ -355,7 +358,7 @@ CONTAINS CALL GOTO_MODEL(1) CALL GO_TOMODEL_ll(1, IINFO_ll) NULLIFY(TZZSFIELD_ll) - CALL ADD2DFIELD_ll(TZZSFIELD_ll, PTAB) + CALL ADD2DFIELD_ll( TZZSFIELD_ll, PTAB, 'EXTRAPOL_ON_PSEUDO_HALO3D::PTAB' ) CALL UPDATE_HALO_EXTENDED_ll(TZZSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZZSFIELD_ll) CALL GO_TOMODEL_ll(2, IINFO_ll) diff --git a/src/MNH/mode_gridcart.f90 b/src/MNH/mode_gridcart.f90 index 8a701c843ffdb0a8577b9bfeeb4ead775a7f4b4a..65981a6f6eb076380e362e241ec34fa4e67bf774 100644 --- a/src/MNH/mode_gridcart.f90 +++ b/src/MNH/mode_gridcart.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -34,6 +34,7 @@ !! Original 06/05/94 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !-------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -200,8 +201,8 @@ ZBOUNDZ(:,:) = 2.*PZZ(:,:,IKU) - PZZ(:,:,IKU-1) PDXHAT(:) = EOSHIFT(PXHAT(:) ,1,ZBOUNDX) - PXHAT(:) PDYHAT(:) = EOSHIFT(PYHAT(:) ,1,ZBOUNDY) - PYHAT(:) ! update PDXHAT and PDYHAT -CALL ADD1DFIELD_ll("X",TZHALO1_ll,PDXHAT) -CALL ADD1DFIELD_ll("Y",TZHALO1_ll,PDYHAT) +CALL ADD1DFIELD_ll( 'X', TZHALO1_ll, PDXHAT, 'SM_GRIDCART::PDXHAT') +CALL ADD1DFIELD_ll( 'Y', TZHALO1_ll, PDYHAT, 'SM_GRIDCART::PDYHAT') CALL UPDATE_1DHALO_ll(TZHALO1_ll,IINFO_ll) DEALLOCATE(TZHALO1_ll) ! diff --git a/src/MNH/mode_gridproj.f90 b/src/MNH/mode_gridproj.f90 index 8fec230fa1da45eebb5d101a3957f371f60f2ec3..30abee4f32a98a2fc65fe6d379354a90c9d25daf 100644 --- a/src/MNH/mode_gridproj.f90 +++ b/src/MNH/mode_gridproj.f90 @@ -38,8 +38,8 @@ !! 05/02/15 M.Moge (LA-CNRS) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg -!! -!! +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +! !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -348,8 +348,8 @@ ZYHATM(2:IIU,:) = SPREAD(ZYHATM(1,:),1,IIU-1) IF(CPROGRAM/='SPAWN ')& CALL MPPDB_CHECK2D(ZYHATM,"GRIDPROJ:ZYHATM",PRECISION) ! ZXHATM and ZXHATM have to be updated -CALL ADD2DFIELD_ll(TZHALO_ll,ZXHATM) -CALL ADD2DFIELD_ll(TZHALO_ll,ZYHATM) +CALL ADD2DFIELD_ll( TZHALO_ll, ZXHATM, 'SM_GRIDPROJ::ZXHATM' ) +CALL ADD2DFIELD_ll( TZHALO_ll, ZYHATM, 'SM_GRIDPROJ::ZYHATM' ) CALL UPDATE_HALO_ll(TZHALO_ll,IINFO_ll) CALL CLEANLIST_ll(TZHALO_ll) ! @@ -367,8 +367,8 @@ PDYHAT(IJU) = PDYHAT(IJU-1) ZDZ(:,:,1:IKU-1) = PZZ(:,:,2:IKU) - PZZ(:,:,1:IKU-1) ZDZ(:,:,IKU) = ZDZ(:,:,IKU-1) ! PDXHAT and PDYHAT have to be updated -CALL ADD1DFIELD_ll("X",TZHALO1_ll,PDXHAT) -CALL ADD1DFIELD_ll("Y",TZHALO1_ll,PDYHAT) +CALL ADD1DFIELD_ll( 'X', TZHALO1_ll, PDXHAT, 'SM_GRIDPROJ::PDXHAT' ) +CALL ADD1DFIELD_ll( 'Y', TZHALO1_ll, PDYHAT, 'SM_GRIDPROJ::PDYHAT' ) CALL UPDATE_1DHALO_ll(TZHALO1_ll,IINFO_ll) DEALLOCATE(TZHALO1_ll) CALL MPPDB_CHECK3D(ZDZ,"GRIDPROJ:ZDZ",PRECISION) diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 94c45b456313b9f0b9684778c24b942a199f50e1..5acbced05672f5c12e160df4db5137af122d9c5e 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -260,6 +260,7 @@ END MODULE MODI_MODEL_n ! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing ! P. Wautelet 19/04/2019: removed unused dummy arguments and variables ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -612,51 +613,43 @@ IF (KTCOUNT == 1) THEN ! ! a) Sources terms ! - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRUS) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRVS) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRWS) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRTHS) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRUS_PRES) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRVS_PRES) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRWS_PRES) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRTHS_CLD) - IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDS_ll, XRTKES) - DO JRR=1,NRR - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRRS(:,:,:,JRR)) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRRS_CLD(:,:,:,JRR)) - ENDDO - DO JSV=1,NSV - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRSVS(:,:,:,JSV)) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XRSVS_CLD(:,:,:,JSV)) - ENDDO - IF (SIZE(XSRCT,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDS_ll, XSRCT) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRUS, 'MODEL_n::XRUS' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRVS, 'MODEL_n::XRVS' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRWS, 'MODEL_n::XRWS' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRTHS, 'MODEL_n::XRTHS' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRUS_PRES, 'MODEL_n::XRUS_PRES' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRVS_PRES, 'MODEL_n::XRVS_PRES' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRWS_PRES, 'MODEL_n::XRWS_PRES' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XRTHS_CLD, 'MODEL_n::XRTHS_CLD' ) + IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll( TZFIELDS_ll, XRTKES, 'MODEL_n::XRTKES' ) + CALL ADD4DFIELD_ll( TZFIELDS_ll, XRRS (:,:,:,1:NRR), 'MODEL_n::XRRS' ) + CALL ADD4DFIELD_ll( TZFIELDS_ll, XRRS_CLD (:,:,:,1:NRR), 'MODEL_n::XRRS_CLD' ) + CALL ADD4DFIELD_ll( TZFIELDS_ll, XRSVS (:,:,:,1:NSV), 'MODEL_n::XRSVS') + CALL ADD4DFIELD_ll( TZFIELDS_ll, XRSVS_CLD(:,:,:,1:NSV), 'MODEL_n::XRSVS_CLD') + IF (SIZE(XSRCT,1) /= 0) CALL ADD3DFIELD_ll( TZFIELDS_ll, XSRCT, 'MODEL_n::XSRCT' ) ! IF ((LNUMDIFU .OR. LNUMDIFTH .OR. LNUMDIFSV) ) THEN ! ! b) LS fields ! - CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSUM) - CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSVM) - CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSWM) - CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSTHM) - CALL ADD2DFIELD_ll(TZLSFIELD_ll, XLSZWSM) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSUM, 'MODEL_n::XLSUM' ) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSVM, 'MODEL_n::XLSVM' ) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSWM, 'MODEL_n::XLSWM' ) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSTHM, 'MODEL_n::XLSTHM' ) + CALL ADD2DFIELD_ll( TZLSFIELD_ll, XLSZWSM, 'MODEL_n::XLSZWSM' ) IF (NRR >= 1) THEN - CALL ADD3DFIELD_ll(TZLSFIELD_ll, XLSRVM) + CALL ADD3DFIELD_ll( TZLSFIELD_ll, XLSRVM, 'MODEL_n::XLSRVM' ) ENDIF ! ! c) Fields at t ! - CALL ADD3DFIELD_ll(TZFIELDT_ll, XUT) - CALL ADD3DFIELD_ll(TZFIELDT_ll, XVT) - CALL ADD3DFIELD_ll(TZFIELDT_ll, XWT) - CALL ADD3DFIELD_ll(TZFIELDT_ll, XTHT) - IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll(TZFIELDT_ll, XTKET) - DO JRR=1,NRR - CALL ADD3DFIELD_ll(TZFIELDT_ll, XRT(:,:,:,JRR)) - ENDDO - DO JSV=1,NSV - CALL ADD3DFIELD_ll(TZFIELDT_ll, XSVT(:,:,:,JSV)) - ENDDO + CALL ADD3DFIELD_ll( TZFIELDT_ll, XUT, 'MODEL_n::XUT' ) + CALL ADD3DFIELD_ll( TZFIELDT_ll, XVT, 'MODEL_n::XVT' ) + CALL ADD3DFIELD_ll( TZFIELDT_ll, XWT, 'MODEL_n::XWT' ) + CALL ADD3DFIELD_ll( TZFIELDT_ll, XTHT, 'MODEL_n::XTHT' ) + IF (SIZE(XRTKES,1) /= 0) CALL ADD3DFIELD_ll( TZFIELDT_ll, XTKET, 'MODEL_n::XTKET' ) + CALL ADD4DFIELD_ll(TZFIELDT_ll, XRT (:,:,:,1:NRR), 'MODEL_n::XSV' ) + CALL ADD4DFIELD_ll(TZFIELDT_ll, XSVT(:,:,:,1:NSV), 'MODEL_n::XSVT' ) ! !* 1.5 Initialize the list of fields for the halo updates (2nd layer) ! @@ -1535,9 +1528,9 @@ IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR')) THEN IF (CUVW_ADV_SCHEME=='CEN4TH') THEN NULLIFY(TZFIELDC_ll) NULLIFY(TZHALO2C_ll) - CALL ADD3DFIELD_ll(TZFIELDC_ll, XUT) - CALL ADD3DFIELD_ll(TZFIELDC_ll, XVT) - CALL ADD3DFIELD_ll(TZFIELDC_ll, XWT) + CALL ADD3DFIELD_ll( TZFIELDC_ll, XUT, 'MODEL_n::XUT' ) + CALL ADD3DFIELD_ll( TZFIELDC_ll, XVT, 'MODEL_n::XVT' ) + CALL ADD3DFIELD_ll( TZFIELDC_ll, XWT, 'MODEL_n::XWT' ) CALL INIT_HALO2_ll(TZHALO2C_ll,3,IIU,IJU,IKU) CALL UPDATE_HALO_ll(TZFIELDC_ll,IINFO_ll) CALL UPDATE_HALO2_ll(TZFIELDC_ll, TZHALO2C_ll, IINFO_ll) diff --git a/src/MNH/mpdata.f90 b/src/MNH/mpdata.f90 index b3e964ad9861ae8fa1d4347279e4f75463c7d5ca..961d2d98aec37e1372714ba152a3aca51743734d 100644 --- a/src/MNH/mpdata.f90 +++ b/src/MNH/mpdata.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 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. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/12/12 15:06:37 -!----------------------------------------------------------------- ! ################## MODULE MODI_MPDATA ! ################## @@ -103,7 +98,8 @@ END MODULE MODI_MPDATA !! P. Jabouille parallelization !! V. Masson 06/11/02 updates the budget calls !! 05/2006 Remove EPS -!! +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -209,7 +205,7 @@ LBUDGET_R(7) = LBUDGET_RH !* 1. Thermodynamical variable ! ----------------------- ! - CALL ADD3DFIELD_ll(TZFIELDS_ll, PRTHS) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PRTHS, 'MPDATA::PRTHS' ) ! !* 1st iteration (upstream scheme) ! @@ -280,7 +276,7 @@ LBUDGET_R(7) = LBUDGET_RH ! ----------------------------- ! DO JRR=1,KRR - CALL ADD3DFIELD_ll(TZFIELDS_ll, PRRS(:,:,:,JRR)) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PRRS(:,:,:,JRR), 'MPDATA::PRRS(:,:,:,JRR)' ) ZRVARS(:,:,:) = PRRS(:,:,:,JRR) ZFADVU(:,:,:) = -DXF(FXM( PRM(:,:,:,JRR),PRUCT(:,:,:) ) ) ZFADVV(:,:,:) = -DYF(FYM( PRM(:,:,:,JRR),PRVCT(:,:,:) ) ) @@ -348,7 +344,7 @@ LBUDGET_R(7) = LBUDGET_RH ! ------------- IF (SIZE(PTKET,1) /= 0) THEN ! - CALL ADD3DFIELD_ll(TZFIELDS_ll, PRTKES) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PRTKES, 'MPDATA::PRTKES' ) ZRVARS(:,:,:) = PRTKES(:,:,:) ZFADVU(:,:,:) = -DXF(FXM( PTKEM(:,:,:),PRUCT(:,:,:) ) ) ZFADVV(:,:,:) = -DYF(FYM( PTKEM(:,:,:),PRVCT(:,:,:) ) ) diff --git a/src/MNH/mpdata_scalar.f90 b/src/MNH/mpdata_scalar.f90 index 03141645cf58451597cd038bf2fff7670d1f524f..ae29c69b09e8cd4baaf5cddcbb511f7780a9843c 100644 --- a/src/MNH/mpdata_scalar.f90 +++ b/src/MNH/mpdata_scalar.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 newsrc 2006/12/12 15:06:50 -!----------------------------------------------------------------- ! ######################### MODULE MODI_MPDATA_SCALAR ! ######################### @@ -99,7 +94,8 @@ END MODULE MODI_MPDATA_SCALAR !! C.Lac Split meteorological scalar and tracer !! variables routines !! P.Tulet Upstream condition for aerosols -!! +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -183,7 +179,7 @@ IKU=SIZE(PSVM,3) ! -------------------------------- DO JSV=1,KSV ! - CALL ADD3DFIELD_ll(TZFIELDS_ll, PRSVS(:,:,:,JSV)) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PRSVS(:,:,:,JSV), 'MPDATA_SCALAR::PRSVS(:,:,:,JSV)' ) ZRVARS(:,:,:) = PRSVS(:,:,:,JSV) ZFADVU(:,:,:) = -DXF(FXM( PSVM(:,:,:,JSV),PRUCT(:,:,:) ) ) ZFADVV(:,:,:) = -DYF(FYM( PSVM(:,:,:,JSV),PRVCT(:,:,:) ) ) diff --git a/src/MNH/pgdfilter.f90 b/src/MNH/pgdfilter.f90 index 0095523695f8d23a0daabf0028210f384437911e..b3e4d955ab26982b0b8b1c416244d96ea2170e37 100644 --- a/src/MNH/pgdfilter.f90 +++ b/src/MNH/pgdfilter.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! #################### MODULE MODI_PGDFILTER ! #################### @@ -60,6 +56,7 @@ END MODULE MODI_PGDFILTER !! 25/05/96 (V Masson) remove useless ZMASKIJ !! 28/11/96 (V Masson) test on point localisation itself !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -102,7 +99,7 @@ INTEGER :: IIB,IJB,IIE,IJE CALL GET_DIM_EXT_ll('B',IIU,IJU) CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) -CALL ADD2DFIELD_ll(TZFIELDS_ll,PPGDARRAY ) +CALL ADD2DFIELD_ll( TZFIELDS_ll, PPGDARRAY, 'PGDFILTER::PPGDARRAY' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL MPPDB_CHECK2D(PPGDARRAY,"PGDFILTER:PPGDARRAY",PRECISION) @@ -118,7 +115,7 @@ ZARRAY(:,IJU+1)=2.*ZARRAY(:,IJU)-ZARRAY(:,IJU-1) ! -------------- ! ZARRAY_ll(1:IIU,1:IJU) = ZARRAY(1:IIU,1:IJU) -CALL ADD2DFIELD_ll(TZFIELDS_ll,ZARRAY_ll ) +CALL ADD2DFIELD_ll( TZFIELDS_ll, ZARRAY_ll, 'PGDFILTER::ZARRAY_ll' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) ZARRAY(1:IIU,1:IJU) = ZARRAY_ll(1:IIU,1:IJU) DO JITER=1,KPGDFILTER diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 053f539dbdf11feb18c1e306de71d9aed1e11270..bedad9ddef9e7eac9f877bc31387c3100c1ef29e 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -234,6 +234,7 @@ END MODULE MODI_PHYS_PARAM_n ! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -392,6 +393,8 @@ REAL, DIMENSION(0:24) :: ZRAT_HOUR = (/ 326.00, 325.93, 325.12, 324.41, & 347.00, 342.00, 337.00, 332.00, & 326.00 /) ! +! +character(len=6) :: ynum INTEGER :: IHOUR ! parameters necessary for the temporal REAL :: ZTIME, ZDT ! interpolation REAL :: ZTEMP_DIST ! time between 2 instants (in seconds) @@ -1265,19 +1268,20 @@ IF (LLES_CALL) CALL SWITCH_SBG_LES_n IF ( CTURB == 'TKEL' ) THEN ! -!* 6.1 complete surface fluxe fields on the border +!* 6.1 complete surface flux fields on the border ! !!$ IF(NHALO == 1) THEN - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFTH) - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFRV) - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFU) - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFV) + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFTH, 'PHYS_PARAM_n::ZSFTH' ) + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFRV, 'PHYS_PARAM_n::ZSFRV' ) + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFU, 'PHYS_PARAM_n::ZSFU' ) + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFV, 'PHYS_PARAM_n::ZSFV' ) IF(NSV >0)THEN DO JSV=1,NSV - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFSV(:,:,JSV)) + write ( ynum, '( I6 ) ' ) jsv + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFSV(:,:,JSV), 'PHYS_PARAM_n::ZSFSV:'//trim( adjustl( ynum ) ) ) END DO END IF - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZSFCO2) + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZSFCO2, 'PHYS_PARAM_n::ZSFCO2' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !!$ END IF @@ -1379,7 +1383,7 @@ END IF XTHW_FLUX, XRCW_FLUX, XSVW_FLUX,XDYP, XTHP, XTR, XDISS, XLEM ) ! IF (LRMC01) THEN - CALL ADD2DFIELD_ll(TZFIELDS_ll,XSBL_DEPTH) + CALL ADD2DFIELD_ll( TZFIELDS_ll, XSBL_DEPTH, 'PHYS_PARAM_n::XSBL_DEPTH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) IF ( CLBCX(1) /= "CYCL" .AND. LWEST_ll()) THEN @@ -1410,7 +1414,7 @@ IF (CSCONV == 'EDKF') THEN ZEXN(:,:,:)=(XPABST(:,:,:)/XP00)**(XRD/XCPD) !$20131113 check3d on ZEXN CALL MPPDB_CHECK3D(ZEXN,"physparan.7::ZEXN",PRECISION) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZEXN) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZEXN, 'PHYS_PARAM_n::ZEXN' ) !$20131113 add update_halo_ll CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index d1cb76877d062a3859452408d7b0c70070885cb4..19602cccbb662c82974aeecd8a3b779c5d632925 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -317,6 +317,7 @@ ! P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing ! P. Wautelet 19/04/2019: removed unused dummy arguments and variables ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1358,7 +1359,7 @@ IF ( LEN_TRIM(CPGD_FILE) == 0 .OR. .NOT. LREAD_ZS) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','erroneous terrain type') END SELECT ! - CALL ADD2DFIELD_ll(TZ_FIELDS_ll, XZS) + CALL ADD2DFIELD_ll( TZ_FIELDS_ll, XZS, 'PREP_IDEAL_CASE::XZS' ) CALL UPDATE_HALO_ll(TZ_FIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZ_FIELDS_ll) ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 37f5ab5a912946fa4cb3c2e7e179dc8a37c1655b..a499c20078af7eb38472eff996410dec58f15e04 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -382,6 +382,7 @@ ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 20/03/2019: missing use MODI_INIT_SALT +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -841,7 +842,7 @@ ALLOCATE(XDZZ(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))) ! !20131024 add update halo !=> corrects on PDXX calculation in metrics and XDXX !! -CALL ADD3DFIELD_ll(TZFIELDS_ll,XZZ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XZZ, 'PREP_REAL_CASE::XZZ' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -855,10 +856,10 @@ CALL MPPDB_CHECK3D(XDZY,"prc8-beforeupdate_metrics:PDZY",PRECISION) CALL UPDATE_METRICS(CLBCX,CLBCY,XDXX,XDYY,XDZX,XDZY,XDZZ) ! !20131112 add update_halo for XDYY and XDZY!! -CALL ADD3DFIELD_ll(TZFIELDS_ll,XDXX) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XDZX) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XDYY) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XDZY) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XDXX, 'PREP_REAL_CASE::XDXX' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XDZX, 'PREP_REAL_CASE::XDZX' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XDYY, 'PREP_REAL_CASE::XDYY' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XDZY, 'PREP_REAL_CASE::XDZY' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90 index 43a1caeb9866175eadf8ebb0607fb2e2112aac08..0ec507eec7ee8fb1fe94c7bacc2836524e3dc88e 100644 --- a/src/MNH/pressure.f90 +++ b/src/MNH/pressure.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -199,7 +199,8 @@ END MODULE MODI_PRESSURE !! to save it before UPDATE_HALO !! 06/2011 (J.escobar ) Bypass Bug with ifort11/12 on HLBCX,HLBCY !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +! !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -378,9 +379,9 @@ END IF ! -------------------------------------------------- ! ! -CALL ADD3DFIELD_ll(TZFIELDS_ll, PRUS) -CALL ADD3DFIELD_ll(TZFIELDS_ll, PRVS) -CALL ADD3DFIELD_ll(TZFIELDS_ll, PRWS) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRUS, 'PRESSURE::PRUS' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRVS, 'PRESSURE::PRVS' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRWS, 'PRESSURE::PRWS' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -653,7 +654,7 @@ IF ( ABS(PRHODREF(IIB,IJB,IKB)-PRHODREF(IIB,IJB,IKE)) > 1.E-12 & ! END IF ! - CALL ADD3DFIELD_ll(TZFIELDS_2_ll, PPABST) + CALL ADD3DFIELD_ll( TZFIELDS_2_ll, PPABST, 'PRESSURE::PPABST' ) CALL UPDATE_HALO_ll(TZFIELDS_2_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_2_ll) ! diff --git a/src/MNH/pressure_in_prep.f90 b/src/MNH/pressure_in_prep.f90 index 7fafcfd88ec7e3521650a825432b5ae5ec5ab7dd..e012d515b828652f664356a845921c11fd663e38 100644 --- a/src/MNH/pressure_in_prep.f90 +++ b/src/MNH/pressure_in_prep.f90 @@ -65,6 +65,7 @@ END MODULE MODI_PRESSURE_IN_PREP !! 08/2015 M.Moge removing UPDATE_HALO_ll on XUT, XVT, XRHODJ in part 4 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -151,9 +152,9 @@ DO XUT(:,:,:) = ZU(:,:,:) XVT(:,:,:) = ZV(:,:,:) XWT(:,:,:) = ZW(:,:,:) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XUT) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XVT) - CALL ADD3DFIELD_ll(TZFIELDS_ll, XWT) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'PRESSURE_IN_PREP::XUT' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'PRESSURE_IN_PREP::XVT' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XWT, 'PRESSURE_IN_PREP::XWT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) @@ -183,9 +184,9 @@ DO !20131112 check 1st XUT CALL MPPDB_CHECK3D(XUT,"PressInP4-beforeupdhalo::XUT",PRECISION) CALL MPPDB_CHECK3D(XVT,"PressInP4-beforeupdhalo::XVT",PRECISION) -!CALL ADD3DFIELD_ll(TZFIELDS_ll, XUT) -!CALL ADD3DFIELD_ll(TZFIELDS_ll, XVT) -!CALL ADD3DFIELD_ll(TZFIELDS_ll, XRHODJ) +!CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'PRESSURE_IN_PREP::XUT' ) +!CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'PRESSURE_IN_PREP::XVT' ) +!CALL ADD3DFIELD_ll( TZFIELDS_ll, XRHODJ, 'PRESSURE_IN_PREP::XRHODJ' ) ! CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) ! CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -193,9 +194,9 @@ CALL MPPDB_CHECK3D(XVT,"PressInP4-beforeupdhalo::XVT",PRECISION) ZRV(:,:,:) = XVT(:,:,:) * MYM(XRHODJ) ZRW(:,:,:) = XWT(:,:,:) * MZM(1,IKU,1,XRHODJ) ! - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRU) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRV) - CALL ADD3DFIELD_ll(TZFIELDS_ll, ZRW) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRU, 'PRESSURE_IN_PREP::ZRU' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRV, 'PRESSURE_IN_PREP::ZRV' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRW, 'PRESSURE_IN_PREP::ZRW' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) CALL GDIV(CLBCX,CLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,ZRU,ZRV,ZRW,ZDIV) diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index c9eca886954b3cf6d30b5b7690592d9a635f182e..97cc43d0a07feef1abaf31c176e29ecc8aa92a14 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -218,6 +218,7 @@ END MODULE MODI_PRESSUREZ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Philippe Wautelet: 22/01/2019: use standard FLUSH statement instead of non standard intrinsics ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -421,9 +422,9 @@ CALL MPPDB_CHECK3D(PRUS,"pressurez 4-before update_halo_ll::PRUS",PRECISION) CALL MPPDB_CHECK3D(PRVS,"pressurez 4-before update_halo_ll::PRVS",PRECISION) CALL MPPDB_CHECK3D(PRWS,"pressurez 4-before update_halo_ll::PRWS",PRECISION) NULLIFY(TZFIELDS_ll) -CALL ADD3DFIELD_ll(TZFIELDS_ll, PRUS) -CALL ADD3DFIELD_ll(TZFIELDS_ll, PRVS) -CALL ADD3DFIELD_ll(TZFIELDS_ll, PRWS) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRUS, 'PRESSUREZ::PRUS' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRVS, 'PRESSUREZ::PRVS' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRWS, 'PRESSUREZ::PRWS' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) CALL MPPDB_CHECK3D(PRUS,"pressurez 4-after update_halo_ll::PRUS",PRECISION) @@ -623,9 +624,9 @@ END IF PRVS(:,:,IKE+1)=PRVS(:,:,IKE) ! NULLIFY(TZFIELDS2_ll) -CALL ADD3DFIELD_ll(TZFIELDS2_ll, PRUS) -CALL ADD3DFIELD_ll(TZFIELDS2_ll, PRVS) -CALL ADD3DFIELD_ll(TZFIELDS2_ll, PRWS) +CALL ADD3DFIELD_ll( TZFIELDS2_ll, PRUS, 'PRESSUREZ::PRUS' ) +CALL ADD3DFIELD_ll( TZFIELDS2_ll, PRVS, 'PRESSUREZ::PRVS' ) +CALL ADD3DFIELD_ll( TZFIELDS2_ll, PRWS, 'PRESSUREZ::PRWS' ) CALL UPDATE_HALO_ll(TZFIELDS2_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS2_ll) ! @@ -724,7 +725,7 @@ IF ((ZMAX_ll > 1.E-12) .AND. KTCOUNT >0 ) THEN ! END IF ! - CALL ADD3DFIELD_ll(TZFIELDS_ll, PPABST) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PPABST, 'PRESSUREZ::PPABST' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/qlap.f90 b/src/MNH/qlap.f90 index 7e78f44dcd667bfa4b3b9d5a9580d82418a11c5f..75f8c728fd2b2ac86cdd9ae57f907c2bf1752207 100644 --- a/src/MNH/qlap.f90 +++ b/src/MNH/qlap.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ################ MODULE MODI_QLAP ! ################ @@ -113,6 +109,7 @@ END MODULE MODI_QLAP !! at the lbc ( Stein ) !! 06/12 V.Masson : update_halo due to CONTRAV changes !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -254,9 +251,9 @@ END IF ! ---------------------- ! NULLIFY(TZFIELDS_ll) -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZU) -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZV) -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZW) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZU, 'QLAP::ZU' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZV, 'QLAP::ZV' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZW, 'QLAP::ZW' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/read_all_data_mesonh_case.f90 b/src/MNH/read_all_data_mesonh_case.f90 index 01c538421733253be7d23140abe417bd99ff1add..2a1e021c2fd779d3159cd0cf9d376f90fadf4c60 100644 --- a/src/MNH/read_all_data_mesonh_case.f90 +++ b/src/MNH/read_all_data_mesonh_case.f90 @@ -106,6 +106,7 @@ END MODULE MODI_READ_ALL_DATA_MESONH_CASE !! 19/03/2008 (J.Escobar) rename INIT to INIT_MNH --> grib problem !! 2014 (M.Faivre) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -329,9 +330,9 @@ XPS_LS(:,:) = XP00* ( & )**(XCPD/XRD) ! !20131113 add update_halo -CALL ADD2DFIELD_ll(TZFIELDS_ll,XPS_LS ) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD2DFIELD_ll( TZFIELDS_ll, XPS_LS, 'READ_ALL_DATA_MESONH_CASE::XPS_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) CALL MPPDB_CHECK2D(XPS_LS,"PGDFILTER9:XPS_LS",PRECISION) ! ! diff --git a/src/MNH/read_prc_fmfile.f90 b/src/MNH/read_prc_fmfile.f90 index e78dd974aed6c9d12329a1b5fe62b9c85f6f6c22..e65d36357bb6261985143735798d9da9145d1215 100644 --- a/src/MNH/read_prc_fmfile.f90 +++ b/src/MNH/read_prc_fmfile.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -92,6 +92,7 @@ END MODULE MODI_READ_PRC_FMFILE !! 2014 (M.Faivre) !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -367,7 +368,7 @@ END IF CALL MPPDB_CHECK3D(XU_LS,"read_prc_fmfile7.1::XU_LS",PRECISION) !ok calculated in 3. using trunc_field ! !20131105 use ADD3DFIELD and UPDATE_HALO -CALL ADD3DFIELD_ll(TZFIELDS_ll, XU_LS) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XU_LS, 'READ_PRC_FMFILE::XU_LS' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) !20131112 add cleanlist CALL CLEANLIST_ll(TZFIELDS_ll) @@ -388,7 +389,7 @@ CALL MPPDB_CHECK3D(XU_LS,"read_prc_fmfile7.1::XU_LS",PRECISION) ! -------------------------------- ! !20131112 update_halo_ll for XV_LS -CALL ADD3DFIELD_ll(TZFIELDS_ll, XV_LS) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XV_LS, 'READ_PRC_FMFILE::XV_LS') CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) !20131112 add cleanlist CALL CLEANLIST_ll(TZFIELDS_ll) @@ -405,7 +406,7 @@ CALL MPPDB_CHECK3D(XV_LS,"read_prc_fmfile7.2::XV_LS",PRECISION) !20131106 : also here IF (LWEST_ll()) XU_LS(IIB-1 ,:,:)=2.*XU_LS( IIB ,:,:)-XU_LS( IIB+1 ,:,:) !20131105 use UPDATE_HALO -CALL ADD3DFIELD_ll(TZFIELDS_ll, XU_LS) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XU_LS, 'READ_PRC_FMFILE::XU_LS' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) !20131105 use LEAST_ll() as in pressurez or phys_paramn IF (LEAST_ll()) XU_LS(IIE+1,:,:)=2.*XU_LS(IIE,:,:)-XU_LS(IIE-1,:,:) diff --git a/src/MNH/set_dircos.f90 b/src/MNH/set_dircos.f90 index b7f4197089439609dd01dd2c4e6eec8f70ceb989..1aabc3282307134809cab47d19dbf232baa02503 100644 --- a/src/MNH/set_dircos.f90 +++ b/src/MNH/set_dircos.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 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. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ###################### MODULE MODI_SET_DIRCOS ! ###################### @@ -118,6 +114,7 @@ END MODULE MODI_SET_DIRCOS !! (J.Stein) 15/11/95 add the slope angle !! V. DUCROCQ 14/08/98 // !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -197,9 +194,9 @@ PDIRCOSXW(:,:) = - ZWORK1(:,:,IKB) * PDIRCOSZW(:,:) ! PDIRCOSYW(:,:) = - ZWORK2(:,:,IKB) * PDIRCOSZW(:,:) ! -CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PDIRCOSZW) -CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PDIRCOSXW) -CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PDIRCOSYW) +CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PDIRCOSZW, 'SET_DIRCOS::PDIRCOSZW' ) +CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PDIRCOSXW, 'SET_DIRCOS::PDIRCOSXW' ) +CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PDIRCOSYW, 'SET_DIRCOS::PDIRCOSYW' ) ! !* 2. COMPUTE THE SLOPE COSINUS AND SINUS ! ----------------------------------- @@ -215,8 +212,8 @@ ELSEWHERE PSINSLOPE(:,:) = ZWORK2(:,:,IKB) / & SQRT ( ZWORK1(:,:,IKB)**2 + ZWORK2(:,:,IKB)**2 ) END WHERE -CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PCOSSLOPE) -CALL ADD2DFIELD_ll(TPINITHALO2D_ll,PSINSLOPE) +CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PCOSSLOPE, 'SET_DIRCOS::PCOSSLOPE' ) +CALL ADD2DFIELD_ll( TPINITHALO2D_ll, PSINSLOPE, 'SET_DIRCOS::PSINSLOPE' ) ! ! !------------------------------------------------------------------------------ diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90 index b886c5c22694297077bd0e1201dbdfd9ed99f8cd..acb2014ea5e5a4223d218ed518acf2f24c58017f 100644 --- a/src/MNH/set_mass.f90 +++ b/src/MNH/set_mass.f90 @@ -2,6 +2,7 @@ !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. +!----------------------------------------------------------------- ! ######################## MODULE MODI_SET_MASS ! ######################## @@ -119,6 +120,7 @@ SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine ! !------------------------------------------------------------------------------- !! @@ -465,9 +467,9 @@ ELSE XTHT(:,:,1)=XTHT(:,:,2) XRT(:,:,1,:)=XRT(:,:,2,:) NULLIFY( TZFIELDS_ll ) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XTHT) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV3D) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XRT(:,:,1,:)) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XTHT, 'SET_MASS::XTHT' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV3D, 'SET_MASS::ZTHV3D' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XRT(:,:,1,:), 'SET_MASS::XRT(:,:,1,:)' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90 index 74890f3e829b5e588a56db66d74bcfa60853c3ac..925fd52efdf6c0189af56d44e594453beaf3bd85 100644 --- a/src/MNH/set_ref.f90 +++ b/src/MNH/set_ref.f90 @@ -149,6 +149,7 @@ END MODULE MODI_SET_REF !! Modification 07/13 (M.Moge) calling UPDATE_HALO_ll on PRHODJ, PRVREF, !! PRHODREF, PEXNREF, PTHVREF after computation !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -390,11 +391,11 @@ END IF ! update halo of PRHODJ and PRVREF for future use ( notably in anel_balance_n ) ! NULLIFY( TZFIELDS_ll ) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PRHODJ) -IF ( SIZE(PRVREF,1) /= 0 ) CALL ADD3DFIELD_ll(TZFIELDS_ll,PRVREF) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PRHODREF) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PEXNREF) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PTHVREF) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRHODJ, 'SET_REF::PRHODJ' ) +IF ( SIZE(PRVREF,1) /= 0 ) CALL ADD3DFIELD_ll( TZFIELDS_ll, PRVREF, 'SET_REF::PRVREF' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PRHODREF, 'SET_REF::PRHODREF') +CALL ADD3DFIELD_ll( TZFIELDS_ll, PEXNREF, 'SET_REF::PEXNREF') +CALL ADD3DFIELD_ll( TZFIELDS_ll, PTHVREF, 'SET_REF::PTHVREF') CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/spawn_lsn.f90 b/src/MNH/spawn_lsn.f90 index d72774348bbcf8e84d88176a208ed056217f4a52..36a0341493c70d13ef181fe81596a5b7fb16b84a 100644 --- a/src/MNH/spawn_lsn.f90 +++ b/src/MNH/spawn_lsn.f90 @@ -125,6 +125,7 @@ END MODULE MODI_SPAWN_LS_n !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes ! P. Wautelet 20/03/2019: fixes: wrong order of the dummy arguments + double deallocate +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -475,12 +476,12 @@ IF(GVERT_INTERP) DEALLOCATE(ZTZS,ZZS) IF(GVERT_INTERP) DEALLOCATE(ZTZSMT,ZZSMT) ! NULLIFY(TZLSFIELD_ll) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSUS) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSVS) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSWS) -CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSTHS) -IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll(TZLSFIELD_ll, PLSRVS) -IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll(TZLSFIELD_ll, PLSZWSS) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSUS, 'SPAWN_LS_n::PLSUS' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSVS, 'SPAWN_LS_n::PLSVS' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSWS, 'SPAWN_LS_n::PLSWS' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSTHS,'SPAWN_LS_n::PLSTHS' ) +IF(SIZE(PLSRVM) /= 0) CALL ADD3DFIELD_ll( TZLSFIELD_ll, PLSRVS, 'SPAWN_LS_n::PLSRVS' ) +IF(SIZE(PLSZWSM) /= 0) CALL ADD2DFIELD_ll( TZLSFIELD_ll, PLSZWSS, 'SPAWN_LS_n::PLSZWSS' ) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) !------------------------------------------------------------------------------ diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 33c2a15786a8a92e74f21b6969f1b52bf10baa54..ff2edc1eaabb3935cb93357fdb1430abe4e042a5 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -197,6 +197,7 @@ END MODULE MODI_SPAWN_MODEL2 ! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) ! P. Wautelet 14/03/2019: correct ZWS when variable not present in file ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1080,7 +1081,7 @@ END IF ! !* 5.4 Compute the metric coefficients ! -CALL ADD3DFIELD_ll(TZFIELDS_ll,XZZ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XZZ, 'SPAWN_MODEL2::XZZ' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90 index fc12915cca3825c01cea9fef34d8d52cdec7f841..830d2cb4939bb237ce277eba16be7afa87236829 100644 --- a/src/MNH/spawn_zs.f90 +++ b/src/MNH/spawn_zs.f90 @@ -98,6 +98,7 @@ END MODULE MODI_SPAWN_ZS ! Modification 10/02/15 M. Moge : paralellization !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -507,7 +508,7 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN END DO ! NULLIFY(TZZSFIELD_ll) - CALL ADD2DFIELD_ll(TZZSFIELD_ll, ZZS1CHILDGRID_C) + CALL ADD2DFIELD_ll( TZZSFIELD_ll, ZZS1CHILDGRID_C, 'SPAWN_ZS::ZZS1CHILDGRID_C' ) CALL UPDATE_HALO_EXTENDED_ll(TZZSFIELD_ll,IINFO) CALL CLEANLIST_ll(TZZSFIELD_ll) ! west and east boundaries - distant points diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 25f1eb52b6455c72321e16188016ac1e07f89e83..8153adf2d1ccb5be911b25abea7eab02b15f52b9 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -171,6 +171,7 @@ END MODULE MODI_TKE_EPS_SOURCES !! 2015-01 (J. Escobar) missing get_halo(ZRES) for JPHEXT<> 1 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -383,7 +384,7 @@ IF (LDIAG_IN_RUN) THEN XCURRENT_TKE_DISS = ZFLX(:,:,:) * PTKEM(:,:,:) & *(PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) !$acc end data - CALL ADD3DFIELD_ll(TZFIELDDISS_ll,XCURRENT_TKE_DISS) + CALL ADD3DFIELD_ll( TZFIELDDISS_ll, XCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::XCURRENT_TKE_DISS' ) CALL UPDATE_HALO_ll(TZFIELDDISS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDDISS_ll) ENDIF diff --git a/src/MNH/to_elec_fieldn.f90 b/src/MNH/to_elec_fieldn.f90 index 9640bbef3517e2338e20ff53cfa7170c50dc28a3..3b078b6562e046c60c7c3843f49b31b14f25b2d2 100644 --- a/src/MNH/to_elec_fieldn.f90 +++ b/src/MNH/to_elec_fieldn.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ########################### MODULE MODI_TO_ELEC_FIELD_n ! ########################### @@ -63,6 +64,7 @@ END MODULE MODI_TO_ELEC_FIELD_n !! Original 2002 !! C. Barthe 06/11/09 update to version 4.8.1 !! M. Chong 26/01/10 Add Small ions +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! !------------------------------------------------------------------------------- ! @@ -155,7 +157,7 @@ ZW(:,:,1:IKB-1) = 0.0 ! Setup to neutralize the computation on the ! at IKB-1 ZW(:,:,IKE:IKE+JPVEXT) = XESOURCEFW(:,:,IKE:IKE+JPVEXT) ! -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZW) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZW, 'TO_ELEC_FIELD_n::ZW' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 02b24d631243821ad07b1c8c6af50d4f2e39c918..75a410e40cabedd54e28ddb5d04f2396c6136625 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -340,6 +340,7 @@ END MODULE MODI_TURB !! 04/2016 (C.Lac) correction of negativity for KHKO !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 01/2018 (Q.Rodier) Introduction of RM17 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1513,8 +1514,8 @@ CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) ! !!$IF (NHALO == 1) THEN !$acc update self(PUSLOPE,PVSLOPE) - CALL ADD2DFIELD_ll(TZFIELDS_ll,PUSLOPE) - CALL ADD2DFIELD_ll(TZFIELDS_ll,PVSLOPE) + CALL ADD2DFIELD_ll( TZFIELDS_ll, PUSLOPE, 'UPDATE_ROTATE_WIND::PUSLOPE' ) + CALL ADD2DFIELD_ll( TZFIELDS_ll, PVSLOPE, 'UPDATE_ROTATE_WIND::PVSLOPE' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !$acc update device(PUSLOPE,PVSLOPE) diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90 index ed514e98a3fe789e356ee4f969aa878d2c37b378..8f4de6488a7a4d659ee2a2c212463cfca9c3c1c8 100644 --- a/src/MNH/turb_hor_dyn_corr.f90 +++ b/src/MNH/turb_hor_dyn_corr.f90 @@ -142,6 +142,7 @@ END MODULE MODI_TURB_HOR_DYN_CORR !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! M.Moge 04/2016 Use openACC directives to port the TURB part of Meso-NH on GPU !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -325,7 +326,7 @@ CALL GZ_W_M_DEVICE(1,IKU,1,PWM,PDZZ,GZ_W_M_PWM) CALL MZF_DEVICE(1,IKU,1,PDZZ,ZMZF_DZZ) #endif ! -CALL ADD3DFIELD_ll(TZFIELDS_ll, ZFLX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZFLX, 'TURB_HOR_DYN_CORR::ZFLX' ) ! compute the coefficients for the uncentred gradient computation near the diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90 index ac27858c6095a1b63afcf08921aec124e4207dff..e74b0c3f87f0f0f93b230143d5f1c4394efc04c7 100644 --- a/src/MNH/turb_hor_splt.f90 +++ b/src/MNH/turb_hor_splt.f90 @@ -260,6 +260,7 @@ END MODULE MODI_TURB_HOR_SPLT !! advection schemes !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -460,21 +461,13 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN !* 2.2 list for parallel exchanges ! --------------------------- ! - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZUM) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZVM) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZWM) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHLM) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTKEM) - IF (ISV>0) THEN - DO JSV=1,ISV - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZSVM(:,:,:,JSV)) - END DO - END IF - IF (KRR>0) THEN - DO JRR=1,KRR - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRM(:,:,:,JRR)) - END DO - END IF + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZUM, 'TURB_HOR_SPLT::ZUM' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZVM, 'TURB_HOR_SPLT::ZVM' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZWM, 'TURB_HOR_SPLT::ZWM' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHLM, 'TURB_HOR_SPLT::ZTHLM' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTKEM, 'TURB_HOR_SPLT::ZTKEM' ) + CALL ADD4DFIELD_ll( TZFIELDS_ll, ZSVM(:,:,:,1:ISV), 'TURB_HOR_SPLT::ZSVM(:,:,:,1:ISV)' ) + CALL ADD4DFIELD_ll( TZFIELDS_ll, ZRM(:,:,:,1:KRR), 'TURB_HOR_SPLT::ZRM(:,:,:,1:KRR)' ) ! ! !* 2.3 initializations diff --git a/src/MNH/update_lm.f90 b/src/MNH/update_lm.f90 index bb3116ab38a9142dd7f8bcb8b77328a997e4dea6..9edc121e329a7069f678ef9392b5968026953967 100644 --- a/src/MNH/update_lm.f90 +++ b/src/MNH/update_lm.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 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. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ################### MODULE MODI_UPDATE_LM ! ################### @@ -60,6 +56,7 @@ END MODULE MODI_UPDATE_LM !! Original april 2006 !! V.Masson : Exchange of East and North sides !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -108,8 +105,8 @@ NULLIFY(TZLM_ll) ! !!$IF(NHALO == 1) THEN !$acc update self(PLM,PLEPS) - CALL ADD3DFIELD_ll(TZLM_ll,PLM) - CALL ADD3DFIELD_ll(TZLM_ll,PLEPS) + CALL ADD3DFIELD_ll( TZLM_ll, PLM, 'UPDATE_LM::PLM' ) + CALL ADD3DFIELD_ll( TZLM_ll, PLEPS, 'UPDATE_LM::PLEPS' ) CALL UPDATE_HALO_ll(TZLM_ll,IINFO_ll) CALL CLEANLIST_ll(TZLM_ll) !$acc update device(PLM,PLEPS) diff --git a/src/MNH/update_metrics.f90 b/src/MNH/update_metrics.f90 index d5af55d7d6a92d79c6cfc1418fe64c92eb92b1d5..d1b4b2ddd366453c27478227410ce2044d45a93c 100644 --- a/src/MNH/update_metrics.f90 +++ b/src/MNH/update_metrics.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ################### MODULE MODI_UPDATE_METRICS ! ################### @@ -61,6 +57,7 @@ END MODULE MODI_UPDATE_METRICS !! Original april 2006 !! J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -125,11 +122,11 @@ END IF ! ! !!$IF(NHALO == 1) THEN - CALL ADD3DFIELD_ll(TZMETRICS_ll,PDXX) - CALL ADD3DFIELD_ll(TZMETRICS_ll,PDYY) - CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZX) - CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZY) - CALL ADD3DFIELD_ll(TZMETRICS_ll,PDZZ) + CALL ADD3DFIELD_ll( TZMETRICS_ll, PDXX, 'UPDATE_METRICS::PDXX' ) + CALL ADD3DFIELD_ll( TZMETRICS_ll, PDYY, 'UPDATE_METRICS::PDYY' ) + CALL ADD3DFIELD_ll( TZMETRICS_ll, PDZX, 'UPDATE_METRICS::PDZX' ) + CALL ADD3DFIELD_ll( TZMETRICS_ll, PDZY, 'UPDATE_METRICS::PDZY' ) + CALL ADD3DFIELD_ll( TZMETRICS_ll, PDZZ, 'UPDATE_METRICS::PDZZ' ) CALL UPDATE_HALO_ll(TZMETRICS_ll,IINFO_ll) CALL CLEANLIST_ll(TZMETRICS_ll) !!$END IF diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90 index 009e8bd33abd589b5039ba81f1ad81dcc1ca5d51..49b6ef42936c3747e2784377d34bee9ae7ee0850 100644 --- a/src/MNH/ver_dyn.f90 +++ b/src/MNH/ver_dyn.f90 @@ -128,6 +128,7 @@ END MODULE MODI_VER_DYN !! M.Faivre 2014 !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -251,9 +252,9 @@ CALL MPPDB_CHECK3D(ZRHODVA,"VERDYN::ZRHODVA",PRECISION) ! !20131105 add UPDATE_HALO on ZRHODUA, ZRHODVA and PJ(needed) : ok ZRHODJU,V !20131112 impact of PJ update_halo =>ZRHODJU,V error => XUM,XVM error -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODUA) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODVA) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PJ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODUA, 'VERDYN::ZRHODUA' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODVA, 'VERDYN::ZRHODVA' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PJ, 'VERDYN::PJ' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -261,8 +262,8 @@ ZRHODJU(:,:,:)=MXM(ZRHODUA(:,:,:)*PJ(:,:,:)) ZRHODJV(:,:,:)=MYM(ZRHODVA(:,:,:)*PJ(:,:,:)) ! !20131112 add update_halo_ll though checking on vars is correct -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJU) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJV) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJU, 'VERDYN::ZRHODJU' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJV, 'VERDYN::ZRHODJV' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -297,15 +298,15 @@ ZRHOD(:,:,:)=XPABST(:,:,:)/(XPABST(:,:,:)/XP00)**(XRD/XCPD) & /(XRD*XTHT(:,:,:)*(1.+XRV/XRD*XRT(:,:,:,1))) ! CALL MPPDB_CHECK3D(ZRHOD,"VER_DYN4::ZRHOD",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHOD) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHOD, 'VERDYN::ZRHOD' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! XUT(:,:,:)=ZRHODJU(:,:,:)/MXM(ZRHOD(:,:,:)*PJ(:,:,:)) XVT(:,:,:)=ZRHODJV(:,:,:)/MYM(ZRHOD(:,:,:)*PJ(:,:,:)) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XUT) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XVT) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XUT, 'VERDYN::XUT' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XVT, 'VERDYN::XVT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) CALL EXTRAPOL('W',XUT) @@ -333,9 +334,9 @@ IF( HATMFILETYPE == 'MESONH' ) THEN CALL MPPDB_CHECK3D(ZRHODJU,"VER_DYN5::ZRHODJU",PRECISION) ! !20131105 add UPDATE_HALO on ZRHODUA, ZRHODVA and PJ(needed): ok ZRHODJU,V - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODUA) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODVA) - CALL ADD3DFIELD_ll(TZFIELDS_ll,PJ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODUA, 'VERDYN::ZRHODUA' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODVA, 'VERDYN::ZRHODVA' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, PJ, 'VERDYN::PJ' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -343,13 +344,13 @@ IF( HATMFILETYPE == 'MESONH' ) THEN ZRHODJV(:,:,:)=MYM(ZRHODVA(:,:,:)*PJ(:,:,:)) ! !20131112 add update_halo_ll though checking on vars is correct - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJU) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHODJV) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJU, 'VERDYN::ZRHODJU' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHODJV, 'VERDYN::ZRHODJV' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! !20131105 add UPDATE_HALO on ZRHOD - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZRHOD) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZRHOD, 'VERDYN::ZRHOD' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -357,8 +358,8 @@ IF( HATMFILETYPE == 'MESONH' ) THEN XLSVM(:,:,:)=ZRHODJV(:,:,:)/MYM(ZRHOD(:,:,:)*PJ(:,:,:)) ! !20131112 add update_halo_ll though checking on vars is correct - CALL ADD3DFIELD_ll(TZFIELDS_ll,XLSUM) - CALL ADD3DFIELD_ll(TZFIELDS_ll,XLSVM) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XLSUM, 'VERDYN::XLSUM' ) + CALL ADD3DFIELD_ll( TZFIELDS_ll, XLSVM, 'VERDYN::XLSVM' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131126 add check on XLSUN, XLSVM @@ -396,8 +397,8 @@ XWT(:,:,:)=XWT(:,:,:)*MAX(MIN( (4.-4.*ZCOEF(:,:,:)) ,1.),0.) !------------------------------------------------------------------------------- ! !20131112 add update_halo_ll though checking on vars is correct -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZCOEF) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XWT) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZCOEF, 'VERDYN::ZCOEF' ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XWT, 'VERDYN::XWT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index 0463f3006389a1eb7e2022e1b07b647026303091..caace8ad5fa37979d8840f7c279c6c98bf95ce92 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -135,6 +135,7 @@ END MODULE MODI_VER_INT_THERMO !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 22/02/2019: replace Hollerith edit descriptor (deleted from Fortran 95 standard) +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -300,7 +301,7 @@ ZP_MX(:,:,:)=PPMHP_MX(:,:,:) + XP00 * ZHEXNMASS_MX(:,:,:) ** (XCPD/XRD) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZP_MX,"ver_int_thermo2a::ZP_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZP_MX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZP_MX, 'VER_INT_THERMO::ZP_MX' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -316,7 +317,7 @@ ZEXNMASS_MX(:,:,:)= (ZP_MX(:,:,:)/XP00) ** (XRD/XCPD) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZEXNMASS_MX,"ver_int_thermo2a::ZEXNMASS_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZEXNMASS_MX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZEXNMASS_MX, 'VER_INT_THERMO::ZEXNMASS_MX' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -329,7 +330,7 @@ ZPMHPOHP_SH(:,:,:) = PPMHP_MX(:,:,:) / (XP00*ZHEXNMASS_MX(:,:,:) ** (XCPD/XRD)) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZPMHPOHP_SH,"ver_int_thermo2a::ZPMHPOHP_SH",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMHPOHP_SH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMHPOHP_SH, 'VER_INT_THERMO::ZPMHPOHP_SH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -356,7 +357,7 @@ CALL MPPDB_CHECK3D(ZTHV_FREE_MX,"VER_INT_THERMO:ZTHV_FREE_MX",PRECISION) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZTHV_FREE_MX,"ver_int_thermo3a::ZTHV_FREE_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV_FREE_MX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV_FREE_MX, 'VER_INT_THERMO::ZTHV_FREE_MX' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -368,7 +369,7 @@ CALL MPPDB_CHECK3D(ZTHV_FREE_SH,"VER_INT_THERMO:ZTHV_FREE_SH",PRECISION) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZTHV_FREE_SH,"ver_int_thermo3a::ZTHV_FREE_SH",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV_FREE_SH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV_FREE_SH, 'VER_INT_THERMO::ZTHV_FREE_SH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -378,7 +379,7 @@ ZTHV_SH(:,:,:) = PTHV_MX(:,:,:) - ZTHV_FREE_MX(:,:,:) + ZTHV_FREE_SH(:,:,:) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZTHV_SH,"ver_int_thermo3a::ZTHV_SH",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTHV_SH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTHV_SH, 'VER_INT_THERMO::ZTHV_SH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -398,7 +399,7 @@ ZTH_MX(:,:,:)=PTHV_MX(:,:,:)*(1.+WATER_SUM(PR_MX(:,:,:,:)))/(1.+XRV/XRD*ZRV_MX(: ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZTH_MX,"ver_int_thermo4a::ZTH_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTH_MX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTH_MX, 'VER_INT_THERMO::ZTH_MX' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -408,7 +409,7 @@ ZT_MX(:,:,:)=ZTH_MX(:,:,:)*ZEXNMASS_MX(:,:,:) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZT_MX,"ver_int_thermo4a::ZT_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZT_MX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZT_MX, 'VER_INT_THERMO::ZT_MX' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -419,7 +420,7 @@ ZHU_MX(:,:,:)=100.*ZP_MX(:,:,:)/(XRD/XRV/ZRV_MX(:,:,:)+1.)/ZES_MX(:,:,:) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZHU_MX,"ver_int_thermo4a::ZHU_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZHU_MX) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZHU_MX, 'VER_INT_THERMO::ZHU_MX' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -445,7 +446,7 @@ ZPMASS_SH(:,:,:)= (ZPMHPOHP_SH(:,:,:)+1.) * XP00 * ZHEXNMASS_SH(:,:,:)**(XCPD/XR ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZPMASS_SH,"ver_int_thermo4a::ZPMASS_SH",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMASS_SH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMASS_SH, 'VER_INT_THERMO::ZPMASS_SH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -460,7 +461,7 @@ CALL MPPDB_CHECK3D(ZPMHP_SH,"VER_INT_THERMO:ZPMHP_SH",PRECISION) ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZPMHP_SH,"ver_int_thermo4a::ZPMHP_SH",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMHP_SH) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMHP_SH, 'VER_INT_THERMO::ZPMHP_SH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -486,7 +487,7 @@ IF (NVERB>4) THEN ! !20131113 add update_halo here CALL MPPDB_CHECK3D(ZTV_SH,"ver_int_thermo5a::ZTV_SH",PRECISION) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTV_SH) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTV_SH, 'VER_INT_THERMO::ZTV_SH' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131113 check3d @@ -551,7 +552,7 @@ ZP(:,:,:) = PPMHP(:,:,:) + XP00 * ZHEXNMASS(:,:,:) ** (XCPD/XRD) ! !20131113 add update_halo here !CALL MPPDB_CHECK3D(ZP,"ver_int_thermo6a::ZP",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZP) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZP, 'VER_INT_THERMO::ZP' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d @@ -560,7 +561,7 @@ CALL MPPDB_CHECK3D(ZP,"ver_int_thermo6b::ZP",PRECISION) PR(:,:,:,1)=SM_PMR_HU(ZP(:,:,:), & PTHV(:,:,:)*(ZP(:,:,:)/XP00)**(XRD/XCPD), & ZHU(:,:,:),PR(:,:,:,:),KITERMAX=100) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PR(:,:,:,1)) +CALL ADD3DFIELD_ll( TZFIELDS_ll, PR(:,:,:,1), 'VER_INT_THERMO::PR(:,:,:,1)' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/ver_interp_field.f90 b/src/MNH/ver_interp_field.f90 index 92759dcb65ef518cfd6afdb2b4060d46f7f31693..1eb52591ae889b6f813b5238972b3f79384bb79f 100644 --- a/src/MNH/ver_interp_field.f90 +++ b/src/MNH/ver_interp_field.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 spawn 2006/05/19 18:48:54 -!----------------------------------------------------------------- !####################### MODULE MODI_VER_INTERP_FIELD !####################### @@ -86,6 +81,7 @@ END MODULE MODI_VER_INTERP_FIELD !! 14/09/97 (V. Masson) Interpolation of relative humidity !! 05/06 Remobe KEPS !! 2014 (M.Faivre) +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -181,8 +177,8 @@ DO JI=JPHEXT,1,-1 ENDDO !$20140710 update_halo NULLIFY(TZLSFIELD_ll) -CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID1) -CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID2) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID1, 'VER_INTERP_FIELD::ZGRID1' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID2, 'VER_INTERP_FIELD::ZGRID2' ) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) ! @@ -219,8 +215,8 @@ DO JJ=JPHEXT,1,-1 ENDDO !$20140711 updatehalo(zg1,2) also here NULLIFY(TZLSFIELD_ll) -CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID1) -CALL ADD3DFIELD_ll(TZLSFIELD_ll,ZGRID2) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID1, 'VER_INTERP_FIELD::ZGRID1' ) +CALL ADD3DFIELD_ll( TZLSFIELD_ll, ZGRID2, 'VER_INTERP_FIELD::ZGRID2' ) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) !$ diff --git a/src/MNH/ver_prep_mesonh_case.f90 b/src/MNH/ver_prep_mesonh_case.f90 index 5d532fbba1f36fa3bb77ecfb55f99650f7952f09..15ea1cc313fc52f699651a95190f5dab63a50c35 100644 --- a/src/MNH/ver_prep_mesonh_case.f90 +++ b/src/MNH/ver_prep_mesonh_case.f90 @@ -80,6 +80,7 @@ END MODULE MODI_VER_PREP_MESONH_CASE !! 2014 (M.Faivre) parallelization !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -155,9 +156,9 @@ ALLOCATE(XZMASS_LS(IIU,IJU,ILU)) XTHV_LS(:,:,:)=XTH_LS(:,:,:)*(1.+XRV/XRD*XR_LS(:,:,:,1))/(1.+WATER_SUM(XR_LS(:,:,:,:))) ! !20131112 add update_halo for this type of calculation -CALL ADD3DFIELD_ll(TZFIELDS_ll, XTHV_LS) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XTHV_LS, 'VER_PREP_MESONH_CASE::XTHV_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(XTHV_LS,"ver_prep_mesonh_case1.1::XTHV_LS",PRECISION) ! @@ -171,9 +172,9 @@ CALL VERT_COORD(LSLEVE_LS,XZS_LS,XZSMT_LS,XLEN1_LS,XLEN2_LS,XZHAT_LS,XZFLUX_LS) XZMASS_LS(:,:,:)=MZF(1,ILU,1,XZFLUX_LS(:,:,:)) !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(XZMASS_LS,"ver_prep_mesonh_case1.2a::XZMASS_LS",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll, XZMASS_LS) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XZMASS_LS, 'VER_PREP_MESONH_CASE::XZMASS_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(XZMASS_LS,"ver_prep_mesonh_case1.2b::XZMASS_LS",PRECISION) ! @@ -222,9 +223,9 @@ ZHEXNSURF2D(:,:)=(XPS_LS(:,:)/XP00)**(XRD/XCPD) ! !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK2D(ZHEXNSURF2D,"ver_prep_mesonh_case1.5::ZHEXNSURF2D",PRECISION) -CALL ADD2DFIELD_ll(TZFIELDS_ll, ZHEXNSURF2D) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD2DFIELD_ll( TZFIELDS_ll, ZHEXNSURF2D, 'VER_PREP_MESONH_CASE::ZHEXNSURF2D' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check2d CALL MPPDB_CHECK2D(ZHEXNSURF2D,"ver_prep_mesonh_case1.5::ZHEXNSURF2D",PRECISION) ! @@ -233,9 +234,9 @@ ZHPMASS_LS(:,:,:)=XP00*(ZHEXNMASS_LS(:,:,:))**(XCPD/XRD) ! !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(ZHPMASS_LS,"ver_prep_mesonh_case1.5a::ZHPMASS_LS",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZHPMASS_LS) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZHPMASS_LS, 'VER_PREP_MESONH_CASE::ZHPMASS_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(ZHPMASS_LS,"ver_prep_mesonh_case1.5b::ZHPMASS_LS",PRECISION) ! @@ -243,9 +244,9 @@ XPMHP_LS(:,:,:)=XPMASS_LS(:,:,:)-ZHPMASS_LS(:,:,:) ! !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(XPMHP_LS,"ver_prep_mesonh_case1.5c::XPMHP_LS",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XPMHP_LS) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XPMHP_LS, 'VER_PREP_MESONH_CASE::XPMHP_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(XPMHP_LS,"ver_prep_mesonh_case1.5d::XPMHP_LS",PRECISION) ! @@ -266,9 +267,9 @@ ZES_LS(:,:,:)=SM_FOES( XTHV_LS(:,:,:) & *(XPMASS_LS(:,:,:)/XP00)**(XRD/XCPD) ) !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(ZES_LS,"ver_prep_mesonh_case1.6a::ZES_LS",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZES_LS) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZES_LS, 'VER_PREP_MESONH_CASE::ZES_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(ZES_LS,"ver_prep_mesonh_case1.6b::ZES_LS",PRECISION) ! @@ -276,9 +277,9 @@ XHU_LS(:,:,:)=100.*XPMASS_LS(:,:,:)/(XRD/XRV/MAX(XR_LS(:,:,:,1),1.E-12)+1.)/ZES_ ! !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(XHU_LS,"ver_prep_mesonh_case1.6c::XHU_LS",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,XHU_LS) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XHU_LS, 'VER_PREP_MESONH_CASE::XHU_LS' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(XHU_LS,"ver_prep_mesonh_case1.6d::XHU_LS",PRECISION) ! @@ -311,9 +312,9 @@ IF (NVERB>=5) THEN ! !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(ZTH_MX,"ver_prep_mesonh_case3a::ZTH_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZTH_MX) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZTH_MX, 'VER_PREP_MESONH_CASE::ZTH_MX' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(ZTH_MX,"ver_prep_mesonh_case3b::ZTH_MX",PRECISION) ! @@ -328,9 +329,9 @@ CALL MPPDB_CHECK3D(ZTH_MX,"ver_prep_mesonh_case3b::ZTH_MX",PRECISION) ! !20131112 add update_halo for this type of calculation CALL MPPDB_CHECK3D(ZPMASS_MX,"ver_prep_mesonh_case3c::ZPMASS_MX",PRECISION) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZPMASS_MX) - CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) - CALL CLEANLIST_ll(TZFIELDS_ll) +CALL ADD3DFIELD_ll( TZFIELDS_ll, ZPMASS_MX, 'VER_PREP_MESONH_CASE::ZPMASS_MX' ) +CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) +CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(ZPMASS_MX,"ver_prep_mesonh_case3d::ZPMASS_MX",PRECISION) ! diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index 25f46514d304aa77598eea6b7e3fdf070aea5109..8da4d84de6d7035719490d242b73f17ffb41efed 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -148,6 +148,7 @@ END MODULE MODI_VER_THERMO !! because we now do it in SET_REF !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -271,7 +272,7 @@ END IF XTHT(:,:,:)=ZTHV(:,:,:)*(1.+WATER_SUM(XRT(:,:,:,:)))/(1.+XRV/XRD*XRT(:,:,:,1)) ! !20131113 add update_halo here -CALL ADD3DFIELD_ll(TZFIELDS_ll,XTHT ) +CALL ADD3DFIELD_ll( TZFIELDS_ll, XTHT, 'VER_THERMO::XTHT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) CALL MPPDB_CHECK3D(XTHT,"PGDFILTER9:XTHT",PRECISION) diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90 index f047a5405a3a638958afbd3f21e42fb770188a10..3b348d47d3fcd02ab1cf41e01de0606a5498808f 100644 --- a/src/MNH/viscosity.f90 +++ b/src/MNH/viscosity.f90 @@ -90,6 +90,7 @@ SUBROUTINE VISCOSITY(HLBCX, HLBCY, KRR, KSV, PNU, PPRANDTL, & !! MODIFICATIONS !! ------------- !! 01/18 (C.Lac) Add budgets +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -260,7 +261,7 @@ IF (OVISC_UVW) THEN PDZY,PDZZ,PRHODJ,ZY1) !! Update halo to compute the source term NULLIFY(TZFIELDS_ll) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPu) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZLAPu, 'VISCOSITY::ZLAPu' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! @@ -281,7 +282,7 @@ IF (OVISC_UVW) THEN !! Update halo to compute the source term ! NULLIFY(TZFIELDS_ll) - CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPv) + CALL ADD3DFIELD_ll( TZFIELDS_ll, ZLAPv, 'VISCOSITY::ZLAPv' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! diff --git a/src/MNH/zdiffusetup.f90 b/src/MNH/zdiffusetup.f90 index b6751b5eaa29f58ca781b51bfac70ec70991f4bf..3b7abb83c752596d0e25eb7aa264231b45efe6b0 100644 --- a/src/MNH/zdiffusetup.f90 +++ b/src/MNH/zdiffusetup.f90 @@ -54,6 +54,7 @@ END MODULE MODI_ZDIFFUSETUP ! J. Escobar 07/10/2015: remove print ! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg ! P. Wautelet 26/04/2019: use modd_precision parameters for datatypes of MPI communications +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine ! !* 0. DECLARATIONS ! ------------ @@ -153,7 +154,7 @@ NULLIFY(TZHGTMASS_ll,TZHGTHALO2_ll) ZZMASS = MZF(1,IKU,1,PZZ) CALL INIT_HALO2_ll(TZHGTHALO2_ll,1,IIU,IJU,IKU) -CALL ADD3DFIELD_ll(TZHGTMASS_ll,ZZMASS) +CALL ADD3DFIELD_ll( TZHGTMASS_ll, ZZMASS, 'ZDIFFUSETUP::ZZMASS' ) CALL UPDATE_HALO2_ll(TZHGTMASS_ll,TZHGTHALO2_ll,IERROR) !JUAN diff --git a/src/MNH/zs_boundaryn.f90 b/src/MNH/zs_boundaryn.f90 index b26462efd793b2cebedd6ebf2961bd32991d3db2..4e2f7935a8910fe093c2241ea8c7ecde1023de7a 100644 --- a/src/MNH/zs_boundaryn.f90 +++ b/src/MNH/zs_boundaryn.f90 @@ -83,7 +83,8 @@ END MODULE MODI_ZS_BOUNDARY_n !! MODIFICATIONS !! ------------- !! Original 1/2/99 -!! +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine +! !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -194,7 +195,7 @@ IF(HLBCY(1)/='CYCL' .AND. LSOUTH_ll()) PZS(IIB:IIE,1) = ZZSLS(IIB:IIE,1,1) IF(HLBCY(2)/='CYCL' .AND. LNORTH_ll()) PZS(IIB:IIE,IJU) = ZZSLS(IIB:IIE,IJU,1) ! NULLIFY(TZLSFIELD_ll) -CALL ADD2DFIELD_ll(TZLSFIELD_ll, PZS) +CALL ADD2DFIELD_ll( TZLSFIELD_ll, PZS, 'ZS_BOUNDARY_n::PZS' ) CALL UPDATE_HALO_ll(TZLSFIELD_ll,IINFO_ll) CALL CLEANLIST_ll(TZLSFIELD_ll) ! diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90 index 4fa76acf100db303d96422853df7bbd998f7f663..de9025e0f7668d7f4d216f2741999e9c84d36aeb 100644 --- a/src/MNH/zsmt_pgd.f90 +++ b/src/MNH/zsmt_pgd.f90 @@ -62,6 +62,7 @@ END MODULE MODI_ZSMT_PGD !! J.Escobar 23/06/2015 : correction for JPHEXT<>1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Q. Rodier 01/2019 : add a new filtering for very high slopes (applied locally) +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -177,7 +178,7 @@ ZMASK(:,IJE+JI) = ZMASK(:,IJE) ENDDO ! ZMASK= 1.-ZMASK -CALL ADD2DFIELD_ll(THALO_ll,ZMASK) +CALL ADD2DFIELD_ll( THALO_ll, ZMASK, 'ZSMT_PGD::ZMASK' ) CALL UPDATE_HALO_ll(THALO_ll,INFO_ll) CALL CLEANLIST_ll(THALO_ll) ! @@ -189,10 +190,10 @@ CALL CLEANLIST_ll(THALO_ll) ! ZSMOOTH_ZS = ZZS ! -CALL ADD2DFIELD_ll(THALO_ll,ZZS) -CALL ADD2DFIELD_ll(THALO_ll,ZSMOOTH_ZS) -CALL ADD2DFIELD_ll(THALO_ll,ZSLOPEX) -CALL ADD2DFIELD_ll(THALO_ll,ZSLOPEY) +CALL ADD2DFIELD_ll( THALO_ll, ZZS, 'ZSMT_PGD::ZZS' ) +CALL ADD2DFIELD_ll( THALO_ll, ZSMOOTH_ZS, 'ZSMT_PGD::ZSMOOTH_ZS' ) +CALL ADD2DFIELD_ll( THALO_ll, ZSLOPEX, 'ZSMT_PGD::ZSLOPEX' ) +CALL ADD2DFIELD_ll( THALO_ll, ZSLOPEY, 'ZSMT_PGD::ZSLOPEY' ) ! CALL UPDATE_HALO_ll(THALO_ll,INFO_ll) diff --git a/src/MNH/zsmt_pic.f90 b/src/MNH/zsmt_pic.f90 index 403b2a4635ef063d8b9009cff4123e54cfcf3928..7bb4c89c76a736ee9975cf1af88f08ed21650b5d 100644 --- a/src/MNH/zsmt_pic.f90 +++ b/src/MNH/zsmt_pic.f90 @@ -52,6 +52,7 @@ END MODULE MODI_ZSMT_PIC !! MODIFICATIONS !! ------------- !! Original nov 2005 +! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -121,8 +122,8 @@ ELSE ENDDO XZSMT(:,1) = ZZS(:,1) XZSMT(:,IJU) = ZZS(:,IJU) - CALL ADD2DFIELD_ll(TZFIELDS_ll,ZZS) - CALL ADD2DFIELD_ll(TZFIELDS_ll,XZSMT) + CALL ADD2DFIELD_ll( TZFIELDS_ll, ZZS, 'ZSMT_PIC::ZZS' ) + CALL ADD2DFIELD_ll( TZFIELDS_ll, XZSMT, 'ZSMT_PIC::XZSMT' ) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ENDDO