From 5d5692666459a2b3f6ab92dc1e5377181962ee33 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Mon, 17 Oct 2022 19:49:56 +0200 Subject: [PATCH] Quentin 17/10/2022: bugfix compilation arome (introduced in d9f4884) --- src/arome/ext/aro_turb_mnh.F90 | 1 - src/arome/ext/aroini_turb.h | 3 ++- src/arome/ext/suphmpa.F90 | 4 ++-- src/common/turb/mode_turb_hor.F90 | 17 ++++++++++------- src/common/turb/mode_turb_hor_splt.F90 | 15 ++++++++------- src/common/turb/mode_turb_hor_sv_corr.F90 | 11 ++++++----- src/common/turb/mode_turb_hor_sv_flux.F90 | 11 ++++++----- src/common/turb/modi_turb.F90 | 8 ++++---- src/common/turb/turb.F90 | 2 +- 9 files changed, 39 insertions(+), 33 deletions(-) diff --git a/src/arome/ext/aro_turb_mnh.F90 b/src/arome/ext/aro_turb_mnh.F90 index 377c38fc9..619f5392b 100644 --- a/src/arome/ext/aro_turb_mnh.F90 +++ b/src/arome/ext/aro_turb_mnh.F90 @@ -452,7 +452,6 @@ CALL TURB (CST,CSTURB,TBUCONF,TURBN, YLDIMPHYEX,& & OCOMPUTE_SRC, 1.0, & & OOCEAN,ODEEPOC, .FALSE., & & 'NONE',CMICRO, & - & ZIMPL, & & 2*PTSTEP,ZTFILE, & & ZDXX,ZDYY,ZDZZ,ZDZX,ZDZY,ZZZ, & & ZDIRCOSXW,ZDIRCOSYW,ZDIRCOSZW,ZCOSSLOPE,ZSINSLOPE, & diff --git a/src/arome/ext/aroini_turb.h b/src/arome/ext/aroini_turb.h index eeb0a5ab3..fd98cf451 100644 --- a/src/arome/ext/aroini_turb.h +++ b/src/arome/ext/aroini_turb.h @@ -1,8 +1,9 @@ INTERFACE -SUBROUTINE AROINI_TURB(PLINI,OHARATU,OSTATNW) +SUBROUTINE AROINI_TURB(PLINI,OHARATU,OSTATNW,OSUBG_COND) USE PARKIND1 ,ONLY : JPRB REAL(KIND=JPRB),INTENT(IN)::PLINI LOGICAL, INTENT(IN) ::OHARATU LOGICAL, INTENT(IN) ::OSTATNW +LOGICAL, INTENT(IN) :: OSUBG_COND END SUBROUTINE AROINI_TURB END INTERFACE diff --git a/src/arome/ext/suphmpa.F90 b/src/arome/ext/suphmpa.F90 index cafaf9bef..681a037ce 100644 --- a/src/arome/ext/suphmpa.F90 +++ b/src/arome/ext/suphmpa.F90 @@ -106,7 +106,7 @@ ASSOCIATE(XDETR_LUP=>YDPARAR%XDETR_LUP, XCMF=>YDPARAR%XCMF, & & LAROBU_ENABLE=>YDPARAR%LAROBU_ENABLE, LCRIAUTI=>YDPARAR%LCRIAUTI, & & XKRC_MF=>YDPARAR%XKRC_MF, XALPHA_MF=>YDPARAR%XALPHA_MF, & & XPRES_UV=>YDPARAR%XPRES_UV, NRR=>YDPARAR%NRR, XCRAD_MF=>YDPARAR%XCRAD_MF, & - & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, LSUBG_COND=>YDPARAR%LSUBG_COND,& + & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, LOSUBG_COND=>YDPARAR%LOSUBG_COND,& & LSTATNW=>YDPARAR%LSTATNW, & & LMPA=>YDARPHY%LMPA, LKFBCONV=>YDARPHY%LKFBCONV, LMFSHAL=>YDARPHY%LMFSHAL, & & LGRADHPHY=>YDARPHY%LGRADHPHY, & @@ -166,7 +166,7 @@ CALL AROINI_BUDGET(LAROBU_ENABLE) ! 4. Initialisation of Turbulence scheme -CALL AROINI_TURB(XLINI,LHARATU,LSTATNW,LSUBG_COND) +CALL AROINI_TURB(XLINI,LHARATU,LSTATNW,LOSUBG_COND) ! 5. Initialisation of Mass Flux Shallow convection scheme diff --git a/src/common/turb/mode_turb_hor.F90 b/src/common/turb/mode_turb_hor.F90 index 576cb3268..8679d4cc7 100644 --- a/src/common/turb/mode_turb_hor.F90 +++ b/src/common/turb/mode_turb_hor.F90 @@ -7,9 +7,9 @@ IMPLICIT NONE CONTAINS SUBROUTINE TURB_HOR(D,CST,CSTURB,TURBN, & KSPLT, KRR, KRRL, KRRI, PTSTEP, & - OOCEAN,OCOMPUTE_SRC, & + OOCEAN,OCOMPUTE_SRC,OBLOWSNOW, & TPFILE, & - PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,PRSNOW, & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, & PCOSSLOPE,PSINSLOPE, & PINV_PDXX, PINV_PDYY, PINV_PDZZ, PMZM_PRHODJ, & @@ -169,13 +169,16 @@ INTEGER, INTENT(IN) :: KRR ! number of moist var. INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. INTEGER, INTENT(IN) :: KRRI ! number of ice water var. REAL, INTENT(IN) :: PTSTEP ! -LOGICAL, INTENT(IN) :: OOCEAN ! switch for ocean version +LOGICAL, INTENT(IN) :: OOCEAN ! switch for ocean version LOGICAL, INTENT(IN) :: OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables +LOGICAL, INTENT(IN) :: OBLOWSNOW ! switch to activate pronostic blowing snow + TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX, PDYY, PDZZ, PDZX, PDZY ! Metric coefficients REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! vertical grid +REAL, INTENT(IN) :: PRSNOW ! Ratio for diffusion coeff. scalar (blowing snow) REAL, DIMENSION(:,:), INTENT(IN) :: PDIRCOSXW, PDIRCOSYW, PDIRCOSZW ! Director Cosinus along x, y and z directions at surface w-point REAL, DIMENSION(:,:), INTENT(IN) :: PCOSSLOPE ! cosinus of the angle @@ -347,10 +350,10 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSIGS ! !* 15. HORIZONTAL FLUXES OF PASSIVE SCALARS ! - CALL TURB_HOR_SV_FLUX(TURBN,KSPLT, & + CALL TURB_HOR_SV_FLUX(TURBN,KSPLT,OBLOWSNOW, & TPFILE, & PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ, & - PDXX,PDYY,PDZZ,PDZX,PDZY, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW, & PDIRCOSXW,PDIRCOSYW, & PRHODJ,PWM, & PSFSVM, & @@ -359,8 +362,8 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSIGS ! IF (KSPLT==1 .AND. LLES_CALL) & CALL TURB_HOR_SV_CORR(D,CST,CSTURB, & - KRR,KRRL,KRRI,OOCEAN,OCOMPUTE_SRC, & - PDXX,PDYY,PDZZ,PDZX,PDZY, & + KRR,KRRL,KRRI,OOCEAN,OCOMPUTE_SRC,OBLOWSNOW, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW, & PLM,PLEPS,PTKEM,PTHVREF, & PTHLM,PRM, & PLOCPEXNM,PATHETA,PAMOIST,PSRCM, & diff --git a/src/common/turb/mode_turb_hor_splt.F90 b/src/common/turb/mode_turb_hor_splt.F90 index 75d35905d..afc97c422 100644 --- a/src/common/turb/mode_turb_hor_splt.F90 +++ b/src/common/turb/mode_turb_hor_splt.F90 @@ -7,7 +7,7 @@ IMPLICIT NONE CONTAINS SUBROUTINE TURB_HOR_SPLT(D,CST,CSTURB,TURBN, & KSPLIT, KRR,KRRL,KRRI,KSV, PTSTEP,HLBCX,HLBCY, & - OOCEAN,OCOMPUTE_SRC, & + OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,PRSNOW, & TPFILE, & PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, & @@ -191,7 +191,8 @@ REAL, INTENT(IN) :: PTSTEP ! timestep CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX,HLBCY LOGICAL, INTENT(IN) :: OOCEAN ! switch for Ocean model version LOGICAL, INTENT(IN) :: OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables - +LOGICAL, INTENT(IN) :: OBLOWSNOW ! switch to activate pronostic blowing snow +REAL, INTENT(IN) :: PRSNOW ! Ratio for diffusion coeff. scalar (blowing snow) TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file ! REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PDXX, PDYY, PDZZ, PDZX, PDZY @@ -365,10 +366,10 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN ! ! compute the turbulent tendencies for the small time step CALL TURB_HOR(D,CST,CSTURB,TURBN, & - JSPLT, KRR, KRRL, KRRI, PTSTEP, & - OOCEAN,OCOMPUTE_SRC, & + JSPLT, KRR, KRRL, KRRI, PTSTEP, & + OOCEAN,OCOMPUTE_SRC,OBLOWSNOW, & TPFILE, & - PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,PRSNOW, & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, & PCOSSLOPE,PSINSLOPE, & ZINV_PDXX, ZINV_PDYY, ZINV_PDZZ, ZMZM_PRHODJ, & @@ -508,9 +509,9 @@ ELSE ! CALL TURB_HOR(D,CST,CSTURB,TURBN, & 1, KRR, KRRL, KRRI, PTSTEP, & - OOCEAN,OCOMPUTE_SRC, & + OOCEAN,OCOMPUTE_SRC,OBLOWSNOW, & TPFILE, & - PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,PRSNOW, & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, & PCOSSLOPE,PSINSLOPE, & ZINV_PDXX, ZINV_PDYY, ZINV_PDZZ, ZMZM_PRHODJ, & diff --git a/src/common/turb/mode_turb_hor_sv_corr.F90 b/src/common/turb/mode_turb_hor_sv_corr.F90 index be965cc09..693d1979c 100644 --- a/src/common/turb/mode_turb_hor_sv_corr.F90 +++ b/src/common/turb/mode_turb_hor_sv_corr.F90 @@ -6,8 +6,8 @@ MODULE MODE_TURB_HOR_SV_CORR IMPLICIT NONE CONTAINS SUBROUTINE TURB_HOR_SV_CORR(D,CST,CSTURB, & - KRR,KRRL,KRRI,OOCEAN,OCOMPUTE_SRC, & - PDXX,PDYY,PDZZ,PDZX,PDZY, & + KRR,KRRL,KRRI,OOCEAN,OCOMPUTE_SRC,OBLOWSNOW, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW, & PLM,PLEPS,PTKEM,PTHVREF, & PTHLM,PRM, & PLOCPEXNM,PATHETA,PAMOIST,PSRCM, & @@ -55,7 +55,6 @@ USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_PARAMETERS USE MODD_NSV, ONLY : NSV,NSV_LGBEG,NSV_LGEND USE MODD_LES -USE MODD_BLOWSNOW ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -83,6 +82,8 @@ INTEGER, INTENT(IN) :: KRRL ! number of liquid var. INTEGER, INTENT(IN) :: KRRI ! number of ice var. LOGICAL, INTENT(IN) :: OOCEAN ! switch for Ocean model version LOGICAL, INTENT(IN) :: OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables +LOGICAL, INTENT(IN) :: OBLOWSNOW ! switch to activate pronostic blowing snow +REAL, INTENT(IN) :: PRSNOW ! Ratio for diffusion coeff. scalar (blowing snow) REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX, PDYY, PDZZ, PDZX, PDZY ! Metric coefficients REAL, DIMENSION(:,:,:), INTENT(IN) :: PLM ! mixing length @@ -121,9 +122,9 @@ REAL :: ZCSV !constant for the scalar flux IKU=SIZE(PTKEM,3) CALL SECOND_MNH(ZTIME1) ! -IF(LBLOWSNOW) THEN +IF(OBLOWSNOW) THEN ! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables - ZCSV= CSTURB%XCHF/XRSNOW + ZCSV= CSTURB%XCHF/PRSNOW ELSE ZCSV= CSTURB%XCHF ENDIF diff --git a/src/common/turb/mode_turb_hor_sv_flux.F90 b/src/common/turb/mode_turb_hor_sv_flux.F90 index d490806f6..67f785919 100644 --- a/src/common/turb/mode_turb_hor_sv_flux.F90 +++ b/src/common/turb/mode_turb_hor_sv_flux.F90 @@ -6,10 +6,10 @@ MODULE MODE_TURB_HOR_SV_FLUX IMPLICIT NONE CONTAINS - SUBROUTINE TURB_HOR_SV_FLUX(TURBN,KSPLT, & + SUBROUTINE TURB_HOR_SV_FLUX(TURBN,KSPLT,OBLOWSNOW, & TPFILE, & PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ, & - PDXX,PDYY,PDZZ,PDZX,PDZY, & + PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW, & PDIRCOSXW,PDIRCOSYW, & PRHODJ,PWM, & PSFSVM, & @@ -69,7 +69,6 @@ USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_NSV, ONLY: NSV_LGBEG, NSV_LGEND USE MODD_LES -USE MODD_BLOWSNOW ! USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE ! @@ -93,9 +92,11 @@ IMPLICIT NONE TYPE(TURB_t), INTENT(IN) :: TURBN INTEGER, INTENT(IN) :: KSPLT ! split process index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file +LOGICAL, INTENT(IN) :: OBLOWSNOW ! switch to activate pronostic blowing snow ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PK ! Turbulent diffusion doef. ! PK = PLM * SQRT(PTKEM) +REAL, INTENT(IN) :: PRSNOW ! Ratio for diffusion coeff. scalar (blowing snow) REAL, DIMENSION(:,:,:), INTENT(IN) :: PINV_PDXX ! 1./PDXX REAL, DIMENSION(:,:,:), INTENT(IN) :: PINV_PDYY ! 1./PDYY REAL, DIMENSION(:,:,:), INTENT(IN) :: PINV_PDZZ ! 1./PDZZ @@ -149,9 +150,9 @@ IKU = SIZE(PSVM,3) ! ISV = SIZE(PSVM,4) ! -IF(LBLOWSNOW) THEN +IF(OBLOWSNOW) THEN ! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables - ZCSV= XCHF/XRSNOW + ZCSV= XCHF/PRSNOW ELSE ZCSV= XCHF ENDIF diff --git a/src/common/turb/modi_turb.F90 b/src/common/turb/modi_turb.F90 index e8572e60d..84215a366 100644 --- a/src/common/turb/modi_turb.F90 +++ b/src/common/turb/modi_turb.F90 @@ -95,10 +95,10 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTKET ! TKE REAL, DIMENSION(D%NIT,D%NJT,D%NKT,KSV), INTENT(IN) :: PSVT ! passive scal. var. REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PSRCT ! Second-order flux ! s'rc'/2Sigma_s2 at time t-1 multiplied by Lambda_3 -REAL, DIMENSION(MERGE(D%NIT,0,HTOM=='TM06'),& - MERGE(D%NJT,0,HTOM=='TM06')),INTENT(INOUT) :: PBL_DEPTH ! BL height for TOMS -REAL, DIMENSION(MERGE(D%NIT,0,ORMC01),& - MERGE(D%NJT,0,ORMC01)),INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01 +REAL, DIMENSION(MERGE(D%NIT,0,TURBN%CTOM=='TM06'),& + MERGE(D%NJT,0,TURBN%CTOM=='TM06')),INTENT(INOUT) :: PBL_DEPTH ! BL height for TOMS +REAL, DIMENSION(MERGE(D%NIT,0,TURBN%LRMC01),& + MERGE(D%NJT,0,TURBN%LRMC01)),INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01 ! ! variables for cloud mixing length REAL, DIMENSION(MERGE(D%NIT,0,KMODEL_CL==KMI .AND. HTURBLEN_CL/='NONE'),& diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90 index 2d0d318e1..8c445ed9d 100644 --- a/src/common/turb/turb.F90 +++ b/src/common/turb/turb.F90 @@ -1078,7 +1078,7 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN #else CALL TURB_HOR_SPLT(D,CST,CSTURB, TURBN, & KSPLIT, KRR, KRRL, KRRI, KSV, PTSTEP,HLBCX,HLBCY, & - OOCEAN,OCOMPUTE_SRC, & + OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,PRSNOW, & TPFILE, & PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ, & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW, & -- GitLab