diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90 index 62c2a57f2ded20d222a00b38ac196f9be3807477..44ab4453a51533e5dd6308f1a0b1c88a900e333d 100644 --- a/src/MNH/ground_paramn.f90 +++ b/src/MNH/ground_paramn.f90 @@ -113,6 +113,7 @@ END MODULE MODI_GROUND_PARAM_n ! P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine ! P. Wautelet 09/02/2022: bugfix: add missing XCURRENT_LEI computation ! P. Wautelet 30/09/2022: bugfix: missing communications for SWDIFF, SWDIR and LEI +! P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -130,7 +131,7 @@ USE MODD_DYN_n, ONLY : DYN_MODEL ! USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_CST, ONLY : XP00, XCPD, XRD, XRV,XRHOLW, XDAY, XPI, XLVTT, XMD, XAVOGADRO -USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF +USE MODD_PARAMETERS, ONLY : JPVEXT USE MODD_DYN_n, ONLY : XTSTEP USE MODD_CH_MNHC_n, ONLY : LUSECHEM USE MODD_FIELD_n, ONLY : XUT, XVT, XWT, XTHT, XRT, XPABST, XSVT, XTKET, XZWS @@ -162,6 +163,7 @@ USE MODD_CSTS_DUST, ONLY : XMOLARWEIGHT_DUST USE MODD_CSTS_SALT, ONLY : XMOLARWEIGHT_SALT USE MODD_CH_FLX_n, ONLY : XCHFLX USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG +USE MODD_SURF_PAR, ONLY: XUNDEF_SFX => XUNDEF ! USE MODI_NORMAL_INTERPOL USE MODI_ROTATE_WIND @@ -366,16 +368,16 @@ IKE=IKU-JPVEXT ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) ! -PSFTH = XUNDEF -PSFRV = XUNDEF -PSFSV = XUNDEF -PSFCO2 = XUNDEF -PSFU = XUNDEF -PSFV = XUNDEF -PDIR_ALB = XUNDEF -PSCA_ALB = XUNDEF -PEMIS = XUNDEF -PTSRAD = XUNDEF +PSFTH = XUNDEF_SFX +PSFRV = XUNDEF_SFX +PSFSV = XUNDEF_SFX +PSFCO2 = XUNDEF_SFX +PSFU = XUNDEF_SFX +PSFV = XUNDEF_SFX +PDIR_ALB = XUNDEF_SFX +PSCA_ALB = XUNDEF_SFX +PEMIS = XUNDEF_SFX +PTSRAD = XUNDEF_SFX ! ! !------------------------------------------------------------------------------- @@ -660,7 +662,7 @@ FF_TIME = FF_TIME + XTSTEP PSFU(:,:) = 0. PSFV(:,:) = 0. ! -WHERE (ZSFU(:,:)/=XUNDEF .AND. ZWIND(:,:)>0.) +WHERE (ZSFU(:,:)/=XUNDEF_SFX .AND. ZWIND(:,:)>0.) PSFU(:,:) = - SQRT(ZSFU**2+ZSFV**2) * ZUA(:,:) / ZWIND(:,:) / XRHODREF(:,:,IKB) PSFV(:,:) = - SQRT(ZSFU**2+ZSFV**2) * ZVA(:,:) / ZWIND(:,:) / XRHODREF(:,:,IKB) END WHERE @@ -943,12 +945,12 @@ ISHAPE_2 = (/KDIM1,KDIM2/) ! ! Arguments in call to surface: ! -ZSFTH = XUNDEF -ZSFTQ = XUNDEF -IF (NSV>0) ZSFTS = XUNDEF -ZSFCO2 = XUNDEF -ZSFU = XUNDEF -ZSFV = XUNDEF +ZSFTH = XUNDEF_SFX +ZSFTQ = XUNDEF_SFX +IF (NSV>0) ZSFTS = XUNDEF_SFX +ZSFCO2 = XUNDEF_SFX +ZSFU = XUNDEF_SFX +ZSFV = XUNDEF_SFX ! ZSFTH (IIB:IIE,IJB:IJE) = RESHAPE(ZP_SFTH(:), ISHAPE_2) ZSFTQ (IIB:IIE,IJB:IJE) = RESHAPE(ZP_SFTQ(:), ISHAPE_2) @@ -979,7 +981,7 @@ IF (LDIAG_IN_RUN) THEN XCURRENT_HU2M (IIB:IIE,IJB:IJE) = RESHAPE(ZP_HU2M(:), ISHAPE_2) XCURRENT_ZON10M (IIB:IIE,IJB:IJE) = RESHAPE(ZP_ZON10M(:), ISHAPE_2) XCURRENT_MER10M (IIB:IIE,IJB:IJE) = RESHAPE(ZP_MER10M(:), ISHAPE_2) - XCURRENT_ZWS (IIB:IIE,IJB:IJE) = RESHAPE(ZP_ZWS(:), ISHAPE_2) + XCURRENT_ZWS (IIB:IIE,IJB:IJE) = RESHAPE(ZP_ZWS(:), ISHAPE_2) ENDIF ! DO JLAYER=1,SIZE(PDIR_ALB,3) diff --git a/src/MNH/ini_diag_in_run.f90 b/src/MNH/ini_diag_in_run.f90 index d44800cdcd9db3fe83ddd67555e70ae68b186440..6f39e805a357747f41972243e967fbdbd58700e1 100644 --- a/src/MNH/ini_diag_in_run.f90 +++ b/src/MNH/ini_diag_in_run.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2022 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 profiler 2006/10/24 10:07:46 -!----------------------------------------------------------------- ! ######################### MODULE MODI_INI_DIAG_IN_RUN ! ######################### @@ -61,18 +56,19 @@ END MODULE MODI_INI_DIAG_IN_RUN !! !! MODIFICATIONS !! ------------- -!! Original 11/2003 -!! 02/2018 Q.Libois ECRAD -!! Bielli S. 02/2019 Sea salt : significant sea wave height influences salt emission; 5 salt modes -!! -!! -------------------------------------------------------------------------- -! +! Original 11/2003 +! Q. Libois 02/2018: ECRAD +! S. Bielli 02/2019: sea salt: significant sea wave height influences salt emission; 5 salt modes +! P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX +! -------------------------------------------------------------------------- +! !* 0. DECLARATIONS ! ------------ ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_PARAMETERS, ONLY : XUNDEF USE MODD_DIAG_IN_RUN +USE MODD_PARAMETERS, ONLY : XUNDEF +USE MODD_SURF_PAR, ONLY: XUNDEF_SFX => XUNDEF ! IMPLICIT NONE ! @@ -118,27 +114,27 @@ IF (LDIAG_IN_RUN) THEN ALLOCATE(XCURRENT_ZWS(KIU,KJU)) ! Significant height of waves ! ! - XCURRENT_RN = XUNDEF - XCURRENT_H = XUNDEF - XCURRENT_LE = XUNDEF - XCURRENT_LEI = XUNDEF - XCURRENT_GFLUX = XUNDEF + XCURRENT_RN = XUNDEF_SFX + XCURRENT_H = XUNDEF_SFX + XCURRENT_LE = XUNDEF_SFX + XCURRENT_LEI = XUNDEF_SFX + XCURRENT_GFLUX = XUNDEF_SFX XCURRENT_LWD = XUNDEF XCURRENT_LWU = XUNDEF XCURRENT_SWD = XUNDEF XCURRENT_SWU = XUNDEF XCURRENT_SWDIR = XUNDEF XCURRENT_SWDIFF= XUNDEF - XCURRENT_T2M = XUNDEF - XCURRENT_Q2M = XUNDEF - XCURRENT_HU2M = XUNDEF - XCURRENT_ZON10M= XUNDEF - XCURRENT_MER10M= XUNDEF + XCURRENT_T2M = XUNDEF_SFX + XCURRENT_Q2M = XUNDEF_SFX + XCURRENT_HU2M = XUNDEF_SFX + XCURRENT_ZON10M= XUNDEF_SFX + XCURRENT_MER10M= XUNDEF_SFX XCURRENT_DSTAOD= XUNDEF - XCURRENT_SFCO2 = XUNDEF + XCURRENT_SFCO2 = XUNDEF_SFX XCURRENT_TKE_DISS = XUNDEF XCURRENT_SLTAOD= XUNDEF - XCURRENT_ZWS = XUNDEF + XCURRENT_ZWS = XUNDEF_SFX ELSE ALLOCATE(XCURRENT_RN (0,0))! net radiation ALLOCATE(XCURRENT_H (0,0))! sensible heat flux diff --git a/src/MNH/statprof_tools.f90 b/src/MNH/statprof_tools.f90 index 4a0ac4239da1e3e4b218781251bcb24ecaeae442..a1daff5695c836a6ee4e7913b0732052427c4898 100644 --- a/src/MNH/statprof_tools.f90 +++ b/src/MNH/statprof_tools.f90 @@ -8,6 +8,7 @@ ! P. Wautelet 08/04/2022 !----------------------------------------------------------------- ! Modifications: +! P. Wautelet 30/09/2022: bugfix: use XUNDEF from SURFEX for surface variables computed by SURFEX !----------------------------------------------------------------- ! ################### MODULE MODE_STATPROF_TOOLS @@ -41,6 +42,7 @@ SUBROUTINE PROFILER_ALLOCATE( TPPROFILER, KSTORE ) USE MODD_PARAMETERS, ONLY: JPVEXT, XUNDEF USE MODD_PARAM_n, ONLY: CCLOUD, CRAD, CTURB USE MODD_RADIATIONS_n, ONLY: NAER + USE MODD_SURF_PAR, ONLY: XUNDEF_SFX => XUNDEF IMPLICIT NONE @@ -133,16 +135,16 @@ SUBROUTINE PROFILER_ALLOCATE( TPPROFILER, KSTORE ) TPPROFILER%XZHD(:) = XUNDEF ! IF ( LDIAG_IN_RUN ) THEN - TPPROFILER%XT2M (:) = XUNDEF - TPPROFILER%XQ2M (:) = XUNDEF - TPPROFILER%XHU2M (:) = XUNDEF - TPPROFILER%XZON10M(:) = XUNDEF - TPPROFILER%XMER10M(:) = XUNDEF - TPPROFILER%XRN (:) = XUNDEF - TPPROFILER%XH (:) = XUNDEF - TPPROFILER%XLE (:) = XUNDEF - TPPROFILER%XLEI (:) = XUNDEF - TPPROFILER%XGFLUX (:) = XUNDEF + TPPROFILER%XT2M (:) = XUNDEF_SFX + TPPROFILER%XQ2M (:) = XUNDEF_SFX + TPPROFILER%XHU2M (:) = XUNDEF_SFX + TPPROFILER%XZON10M(:) = XUNDEF_SFX + TPPROFILER%XMER10M(:) = XUNDEF_SFX + TPPROFILER%XRN (:) = XUNDEF_SFX + TPPROFILER%XH (:) = XUNDEF_SFX + TPPROFILER%XLE (:) = XUNDEF_SFX + TPPROFILER%XLEI (:) = XUNDEF_SFX + TPPROFILER%XGFLUX (:) = XUNDEF_SFX IF ( CRAD /= 'NONE' ) THEN TPPROFILER%XSWD (:) = XUNDEF TPPROFILER%XSWU (:) = XUNDEF @@ -163,6 +165,7 @@ SUBROUTINE STATION_ALLOCATE( TPSTATION, KSTORE ) USE MODD_NSV, ONLY: NSV USE MODD_PARAMETERS, ONLY: XUNDEF USE MODD_PARAM_n, ONLY: CRAD, CTURB + USE MODD_SURF_PAR, ONLY: XUNDEF_SFX => XUNDEF IMPLICIT NONE @@ -219,16 +222,16 @@ SUBROUTINE STATION_ALLOCATE( TPSTATION, KSTORE ) TPSTATION%XSV(:,:) = XUNDEF TPSTATION%XTSRAD(:) = XUNDEF IF ( LDIAG_SURFRAD ) THEN - TPSTATION%XT2M(:) = XUNDEF - TPSTATION%XQ2M(:) = XUNDEF - TPSTATION%XHU2M(:) = XUNDEF - TPSTATION%XZON10M(:) = XUNDEF - TPSTATION%XMER10M(:) = XUNDEF - TPSTATION%XRN(:) = XUNDEF - TPSTATION%XH(:) = XUNDEF - TPSTATION%XLE(:) = XUNDEF - TPSTATION%XLEI(:) = XUNDEF - TPSTATION%XGFLUX(:) = XUNDEF + TPSTATION%XT2M(:) = XUNDEF_SFX + TPSTATION%XQ2M(:) = XUNDEF_SFX + TPSTATION%XHU2M(:) = XUNDEF_SFX + TPSTATION%XZON10M(:) = XUNDEF_SFX + TPSTATION%XMER10M(:) = XUNDEF_SFX + TPSTATION%XRN(:) = XUNDEF_SFX + TPSTATION%XH(:) = XUNDEF_SFX + TPSTATION%XLE(:) = XUNDEF_SFX + TPSTATION%XLEI(:) = XUNDEF_SFX + TPSTATION%XGFLUX(:) = XUNDEF_SFX IF ( CRAD /= 'NONE' ) THEN TPSTATION%XSWD(:) = XUNDEF TPSTATION%XSWU(:) = XUNDEF @@ -238,7 +241,7 @@ SUBROUTINE STATION_ALLOCATE( TPSTATION, KSTORE ) TPSTATION%XSWDIFF(:) = XUNDEF TPSTATION%XDSTAOD(:) = XUNDEF END IF - TPSTATION%XSFCO2(:) = XUNDEF + TPSTATION%XSFCO2(:) = XUNDEF_SFX END IF END SUBROUTINE STATION_ALLOCATE