Skip to content
Snippets Groups Projects
Commit 45413cea authored by RIETTE Sébastien's avatar RIETTE Sébastien
Browse files

Sébastien Riette 18/03/2022 Phasing with P. Marguinaud's version

Small modifications in ice_adjust and condensation
parent 82742582
No related branches found
No related tags found
No related merge requests found
...@@ -443,7 +443,7 @@ IF (KRR==6) THEN ...@@ -443,7 +443,7 @@ IF (KRR==6) THEN
& PEXN=PEXNREF, PCF_MF=PCF_MF,PRC_MF=PRC_MF,PRI_MF=PRI_MF, & & PEXN=PEXNREF, PCF_MF=PCF_MF,PRC_MF=PRC_MF,PRI_MF=PRI_MF, &
& PRV=ZRS(:,:,:,1), PRC=ZRS(:,:,:,2), & & PRV=ZRS(:,:,:,1), PRC=ZRS(:,:,:,2), &
& PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), & & PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), &
& PTH=ZRS(:,:,:,0), PTHS=PTHS,PSRCS=PSRCS, PCLDFR=PCLDFR, & & PTH=ZRS(:,:,:,0), PTHS=PTHS,OCOMPUTE_SRC=.TRUE.,PSRCS=PSRCS, PCLDFR=PCLDFR, &
& PRR=ZRS(:,:,:,3), & & PRR=ZRS(:,:,:,3), &
& PRI=ZRS(:,:,:,4), PRIS=PRS(:,:,:,4), & & PRI=ZRS(:,:,:,4), PRIS=PRS(:,:,:,4), &
& PRS=ZRS(:,:,:,5), & & PRS=ZRS(:,:,:,5), &
...@@ -463,7 +463,7 @@ ELSE ...@@ -463,7 +463,7 @@ ELSE
& PEXN=PEXNREF, PCF_MF=PCF_MF,PRC_MF=PRC_MF,PRI_MF=PRI_MF, & & PEXN=PEXNREF, PCF_MF=PCF_MF,PRC_MF=PRC_MF,PRI_MF=PRI_MF, &
& PRV=ZRS(:,:,:,1), PRC=ZRS(:,:,:,2), & & PRV=ZRS(:,:,:,1), PRC=ZRS(:,:,:,2), &
& PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), & & PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), &
& PTH=ZRS(:,:,:,0), PTHS=PTHS,PSRCS=PSRCS, PCLDFR=PCLDFR, & & PTH=ZRS(:,:,:,0), PTHS=PTHS,OCOMPUTE_SRC=.TRUE.,PSRCS=PSRCS, PCLDFR=PCLDFR, &
& PRR=ZRS(:,:,:,3), & & PRR=ZRS(:,:,:,3), &
& PRI=ZRS(:,:,:,4), PRIS=PRS(:,:,:,4), & & PRI=ZRS(:,:,:,4), PRIS=PRS(:,:,:,4), &
& PRS=ZRS(:,:,:,5), & & PRS=ZRS(:,:,:,5), &
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
!----------------------------------------------------------------- !-----------------------------------------------------------------
! ######spl ! ######spl
SUBROUTINE CONDENSATION(D, CST, ICEP, NEB, & SUBROUTINE CONDENSATION(D, CST, ICEP, NEB, &
HFRAC_ICE, HCONDENS, HLAMBDA3, & &HFRAC_ICE, HCONDENS, HLAMBDA3, &
PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, & &PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, &
PRS, PRG, PSIGS, LMFCONV, PMFCONV, PCLDFR, PSIGRC, OUSERI, & &PRS, PRG, PSIGS, LMFCONV, PMFCONV, PCLDFR, PSIGRC, OUSERI, &
OSIGMAS, OCND2, PSIGQSAT, & &OSIGMAS, OCND2, PSIGQSAT, &
PLV, PLS, PCPH, & &PLV, PLS, PCPH, &
PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, & &PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, &
PICE_CLD_WGT) &PICE_CLD_WGT)
! ################################################################################ ! ################################################################################
! !
!! !!
...@@ -153,25 +153,24 @@ REAL, DIMENSION(D%NIT,D%NJT) :: ZTMIN ! minimum Temp. related to I ...@@ -153,25 +153,24 @@ REAL, DIMENSION(D%NIT,D%NJT) :: ZTMIN ! minimum Temp. related to I
REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZLV, ZLS, ZCPD REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: ZLV, ZLS, ZCPD
REAL :: ZGCOND, ZAUTC, ZAUTI, ZGAUV, ZGAUC, ZGAUI, ZGAUTC, ZGAUTI, ZCRIAUTI ! Used for Gaussian PDF integration REAL :: ZGCOND, ZAUTC, ZAUTI, ZGAUV, ZGAUC, ZGAUI, ZGAUTC, ZGAUTI, ZCRIAUTI ! Used for Gaussian PDF integration
REAL :: ZLVS ! thermodynamics REAL :: ZLVS ! thermodynamics
REAL, DIMENSION(D%NIB:D%NIE) :: ZPV, ZPIV, ZQSL, ZQSI ! thermodynamics REAL, DIMENSION(D%NIT) :: ZPV, ZPIV, ZQSL, ZQSI ! thermodynamics
REAL :: ZLL, DZZ, ZZZ ! used for length scales REAL :: ZLL, DZZ, ZZZ ! used for length scales
REAL :: ZAH, ZDRW, ZDTL, ZSIG_CONV ! related to computation of Sig_s REAL :: ZAH, ZDRW, ZDTL, ZSIG_CONV ! related to computation of Sig_s
REAL, DIMENSION(D%NIB:D%NIE) :: ZA, ZB, ZSBAR, ZSIGMA, ZQ1 ! related to computation of Sig_s REAL, DIMENSION(D%NIT) :: ZA, ZB, ZSBAR, ZSIGMA, ZQ1 ! related to computation of Sig_s
REAL, DIMENSION(D%NIB:D%NIE) :: ZCOND REAL, DIMENSION(D%NIT) :: ZCOND
REAL, DIMENSION(D%NIB:D%NIE) :: ZFRAC ! Ice fraction REAL, DIMENSION(D%NIT) :: ZFRAC ! Ice fraction
INTEGER :: INQ1 INTEGER :: INQ1
REAL :: ZINC REAL :: ZINC
! related to OCND2 noise check : ! related to OCND2 noise check :
REAL :: ZRSP, ZRSW, ZRFRAC, ZRSDIF, ZRCOLD REAL :: ZRSP, ZRSW, ZRFRAC, ZRSDIF, ZRCOLD
! related to OCND2 ice cloud calulation : ! related to OCND2 ice cloud calulation :
REAL, DIMENSION(D%NIB:D%NIE) :: ESATW_T REAL, DIMENSION(D%NIT) :: ESATW_T
REAL :: ZDUM1,ZDUM2,ZDUM3,ZDUM4,ZPRIFACT REAL :: ZDUM1,ZDUM2,ZDUM3,ZDUM4,ZPRIFACT
REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: TCLD REAL, DIMENSION(D%NIT,D%NJT,D%NKT) :: TCLD
REAL :: ZDZ(D%NIB:D%NIE), & REAL, DIMENSION(D%NIT) :: ZDZ, ZARDUM, ZCLDUM
ZARDUM(D%NIE-D%NIB+1), ZCLDUM(D%NIE-D%NIB+1)
! end OCND2 ! end OCND2
REAL(KIND=JPRB) :: ZHOOK_HANDLE REAL(KIND=JPRB) :: ZHOOK_HANDLE
INTEGER, DIMENSION(D%NIT) :: IERR INTEGER :: IERR
! !
! !
!* 0.3 Definition of constants : !* 0.3 Definition of constants :
...@@ -300,8 +299,9 @@ DO JK=D%NKTB,D%NKTE ...@@ -300,8 +299,9 @@ DO JK=D%NKTB,D%NKTE
JKM=MAX(MIN(JK-D%NKL,D%NKTE),D%NKTB) JKM=MAX(MIN(JK-D%NKL,D%NKTE),D%NKTB)
DO JJ=D%NJB,D%NJE DO JJ=D%NJB,D%NJE
IF (OCND2) THEN IF (OCND2) THEN
ZDZ(D%NIB:D%NIE) = PZZ(D%NIB:D%NIE,JJ,JKP) - & DO JI = D%NIB, D%NIE
PZZ(D%NIB:D%NIE,JJ,JKP-D%NKL) ZDZ(JI) = PZZ(JI,JJ,JKP) - PZZ(JI,JJ,JKP-D%NKL)
ENDDO
CALL ICECLOUD(D%NIE-D%NIB+1,PPABS(D%NIB,JJ,JK),PZZ(D%NIB,JJ,JK),ZDZ(D%NIB), & CALL ICECLOUD(D%NIE-D%NIB+1,PPABS(D%NIB,JJ,JK),PZZ(D%NIB,JJ,JK),ZDZ(D%NIB), &
& PT(D%NIB,JJ,JK),PRV_IN(D%NIB,JJ,JK),1.,-1., & & PT(D%NIB,JJ,JK),PRV_IN(D%NIB,JJ,JK),1.,-1., &
& ZCLDUM,1.,TCLD(D%NIB,JJ,JK), & & ZCLDUM,1.,TCLD(D%NIB,JJ,JK), &
...@@ -329,7 +329,9 @@ DO JK=D%NKTB,D%NKTE ...@@ -329,7 +329,9 @@ DO JK=D%NKTB,D%NKTE
ZFRAC(JI) = PRI_IN(JI,JJ,JK) / (PRC_IN(JI,JJ,JK)+PRI_IN(JI,JJ,JK)) ZFRAC(JI) = PRI_IN(JI,JJ,JK) / (PRC_IN(JI,JJ,JK)+PRI_IN(JI,JJ,JK))
ENDIF ENDIF
END DO END DO
CALL COMPUTE_FRAC_ICE(HFRAC_ICE, NEB, ZFRAC(D%NIB:D%NIE), PT(D%NIB:D%NIE,JJ,JK), IERR) !error code IERR cannot be checked here to not break vectorization DO JI=D%NIB,D%NIE
CALL COMPUTE_FRAC_ICE(HFRAC_ICE, NEB, ZFRAC(JI), PT(JI,JJ,JK), IERR) !error code IERR cannot be checked here to not break vectorization
ENDDO
ENDIF ENDIF
DO JI=D%NIB,D%NIE DO JI=D%NIB,D%NIE
ZQSL(JI) = CST%XRD / CST%XRV * ZPV(JI) / ( PPABS(JI,JJ,JK) - ZPV(JI) ) ZQSL(JI) = CST%XRD / CST%XRV * ZPV(JI) / ( PPABS(JI,JJ,JK) - ZPV(JI) )
...@@ -366,7 +368,7 @@ DO JK=D%NKTB,D%NKTE ...@@ -366,7 +368,7 @@ DO JK=D%NKTB,D%NKTE
ZLL = ZL(JI,JJ,JK) ZLL = ZL(JI,JJ,JK)
! standard deviation due to convection ! standard deviation due to convection
ZSIG_CONV =0. ZSIG_CONV =0.
IF( SIZE(PMFCONV) /= 0) ZSIG_CONV = ZCSIG_CONV * PMFCONV(JI,JJ,JK) / ZA(JI) IF(LMFCONV) ZSIG_CONV = ZCSIG_CONV * PMFCONV(JI,JJ,JK) / ZA(JI)
! zsigma should be of order 4.e-4 in lowest 5 km of atmosphere ! zsigma should be of order 4.e-4 in lowest 5 km of atmosphere
ZSIGMA(JI) = SQRT( MAX( 1.E-25, ZCSIGMA * ZCSIGMA * ZLL*ZLL/(DZZ*DZZ)*(& ZSIGMA(JI) = SQRT( MAX( 1.E-25, ZCSIGMA * ZCSIGMA * ZLL*ZLL/(DZZ*DZZ)*(&
ZA(JI)*ZA(JI)*ZDRW*ZDRW - 2.*ZA(JI)*ZB(JI)*ZDRW*ZDTL + ZB(JI)*ZB(JI)*ZDTL*ZDTL) + & ZA(JI)*ZA(JI)*ZDRW*ZDRW - 2.*ZA(JI)*ZB(JI)*ZDRW*ZDTL + ZB(JI)*ZB(JI)*ZDTL*ZDTL) + &
......
...@@ -5,18 +5,19 @@ ...@@ -5,18 +5,19 @@
!----------------------------------------------------------------- !-----------------------------------------------------------------
! ########################################################################## ! ##########################################################################
SUBROUTINE ICE_ADJUST (D, CST, ICEP, NEB, BUCONF, KRR, & SUBROUTINE ICE_ADJUST (D, CST, ICEP, NEB, BUCONF, KRR, &
HFRAC_ICE, HCONDENS, HLAMBDA3,& &HFRAC_ICE, HCONDENS, HLAMBDA3,&
HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF,& &HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF,&
PTSTEP, PSIGQSAT, & &PTSTEP, PSIGQSAT, &
PRHODJ, PEXNREF, PRHODREF, PSIGS, LMFCONV, PMFCONV,& &PRHODJ, PEXNREF, PRHODREF, PSIGS, LMFCONV, PMFCONV,&
PPABST, PZZ, & &PPABST, PZZ, &
PEXN, PCF_MF, PRC_MF, PRI_MF, & &PEXN, PCF_MF, PRC_MF, PRI_MF, &
PRV, PRC, PRVS, PRCS, PTH, PTHS, PSRCS, PCLDFR, & &PRV, PRC, PRVS, PRCS, PTH, PTHS, &
PRR, PRI, PRIS, PRS, PRG, PRH, & &OCOMPUTE_SRC, PSRCS, PCLDFR, &
POUT_RV, POUT_RC, POUT_RI, POUT_TH, & &PRR, PRI, PRIS, PRS, PRG, PRH, &
PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, & &POUT_RV, POUT_RC, POUT_RI, POUT_TH, &
TBUDGETS, KBUDGETS, & &PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, &
PICE_CLD_WGT) &TBUDGETS, KBUDGETS, &
&PICE_CLD_WGT)
! ######################################################################### ! #########################################################################
! !
!!**** *ICE_ADJUST* - compute the ajustment of water vapor in mixed-phase !!**** *ICE_ADJUST* - compute the ajustment of water vapor in mixed-phase
...@@ -136,10 +137,10 @@ CHARACTER(LEN=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 co ...@@ -136,10 +137,10 @@ CHARACTER(LEN=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 co
CHARACTER(LEN=4), INTENT(IN) :: HBUNAME ! Name of the budget CHARACTER(LEN=4), INTENT(IN) :: HBUNAME ! Name of the budget
LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid
! Condensation ! Condensation
LOGICAL :: OSIGMAS ! Switch for Sigma_s: LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s:
! use values computed in CONDENSATION ! use values computed in CONDENSATION
! or that from turbulence scheme ! or that from turbulence scheme
LOGICAL :: OCND2 ! logical switch to sparate liquid LOGICAL, INTENT(IN) :: OCND2 ! logical switch to sparate liquid
! and ice ! and ice
! more rigid (DEFALT value : .FALSE.) ! more rigid (DEFALT value : .FALSE.)
CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF
...@@ -172,9 +173,12 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRVS ! Water vapor m.r. ...@@ -172,9 +173,12 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRVS ! Water vapor m.r.
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRCS ! Cloud water m.r. source REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRCS ! Cloud water m.r. source
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTH ! Theta to adjust REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTH ! Theta to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PTHS ! Theta source REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PTHS ! Theta source
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSRCS ! Second-order flux LOGICAL, INTENT(IN) :: OCOMPUTE_SRC
! s'rc'/2Sigma_s2 at time t+1 REAL, DIMENSION(MERGE(D%NIT,0,OCOMPUTE_SRC),&
! multiplied by Lambda_3 MERGE(D%NJT,0,OCOMPUTE_SRC),&
MERGE(D%NKT,0,OCOMPUTE_SRC)), INTENT(OUT) :: PSRCS ! Second-order flux
! s'rc'/2Sigma_s2 at time t+1
! multiplied by Lambda_3
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PCLDFR ! Cloud fraction REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PCLDFR ! Cloud fraction
! !
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT):: PRIS ! Cloud ice m.r. at t+1 REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT):: PRIS ! Cloud ice m.r. at t+1
...@@ -199,7 +203,7 @@ REAL, DIMENSION(D%NIT,D%NJT), OPTIONAL, INTENT(IN) :: PICE_CLD_ ...@@ -199,7 +203,7 @@ REAL, DIMENSION(D%NIT,D%NJT), OPTIONAL, INTENT(IN) :: PICE_CLD_
! !
! !
REAL :: ZW1,ZW2 ! intermediate fields REAL :: ZW1,ZW2 ! intermediate fields
REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & REAL, DIMENSION(D%NIT,D%NJT,D%NKT) &
:: ZT, & ! adjusted temperature :: ZT, & ! adjusted temperature
ZRV, ZRC, ZRI, & ! adjusted state ZRV, ZRC, ZRI, & ! adjusted state
ZCPH, & ! guess of the CPh for the mixing ZCPH, & ! guess of the CPh for the mixing
...@@ -309,7 +313,7 @@ DO JK=D%NKTB,D%NKTE ...@@ -309,7 +313,7 @@ DO JK=D%NKTB,D%NKTE
ELSE ELSE
PCLDFR(JI,JJ,JK) = 0. PCLDFR(JI,JJ,JK) = 0.
ENDIF ENDIF
IF ( SIZE(PSRCS,3) /= 0 ) THEN IF (OCOMPUTE_SRC) THEN
PSRCS(JI,JJ,JK) = PCLDFR(JI,JJ,JK) PSRCS(JI,JJ,JK) = PCLDFR(JI,JJ,JK)
END IF END IF
ENDDO ENDDO
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
INTERFACE INTERFACE
! !
SUBROUTINE CONDENSATION(D, CST, ICEP, NEB, & SUBROUTINE CONDENSATION(D, CST, ICEP, NEB, &
HFRAC_ICE, HCONDENS, HLAMBDA3, & &HFRAC_ICE, HCONDENS, HLAMBDA3, &
PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, & &PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, &
PRS, PRG, PSIGS, LMFCONV, PMFCONV, PCLDFR, PSIGRC, OUSERI,& &PRS, PRG, PSIGS, LMFCONV, PMFCONV, PCLDFR, PSIGRC, OUSERI,&
OSIGMAS, OCND2, PSIGQSAT, & &OSIGMAS, OCND2, PSIGQSAT, &
PLV, PLS, PCPH, & &PLV, PLS, PCPH, &
PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, PICE_CLD_WGT) &PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, PICE_CLD_WGT)
! !
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_CST, ONLY: CST_t USE MODD_CST, ONLY: CST_t
......
...@@ -5,18 +5,19 @@ ...@@ -5,18 +5,19 @@
INTERFACE INTERFACE
! !
SUBROUTINE ICE_ADJUST (D, CST, ICEP, NEB, BUCONF, KRR, & SUBROUTINE ICE_ADJUST (D, CST, ICEP, NEB, BUCONF, KRR, &
HFRAC_ICE, HCONDENS, HLAMBDA3,& &HFRAC_ICE, HCONDENS, HLAMBDA3,&
HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF,& &HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF,&
PTSTEP, PSIGQSAT, & &PTSTEP, PSIGQSAT, &
PRHODJ, PEXNREF, PRHODREF, PSIGS, LMFCONV, PMFCONV,& &PRHODJ, PEXNREF, PRHODREF, PSIGS, LMFCONV, PMFCONV,&
PPABST, PZZ, & &PPABST, PZZ, &
PEXN, PCF_MF, PRC_MF, PRI_MF, & &PEXN, PCF_MF, PRC_MF, PRI_MF, &
PRV, PRC, PRVS, PRCS, PTH, PTHS, PSRCS, PCLDFR, & &PRV, PRC, PRVS, PRCS, PTH, PTHS, &
PRR, PRI, PRIS, PRS, PRG, PRH, & &OCOMPUTE_SRC, PSRCS, PCLDFR, &
POUT_RV, POUT_RC, POUT_RI, POUT_TH, & &PRR, PRI, PRIS, PRS, PRG, PRH, &
PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, & &POUT_RV, POUT_RC, POUT_RI, POUT_TH, &
TBUDGETS, KBUDGETS, & &PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, &
PICE_CLD_WGT) &TBUDGETS, KBUDGETS, &
&PICE_CLD_WGT)
USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t
USE MODD_CST, ONLY: CST_t USE MODD_CST, ONLY: CST_t
USE MODD_RAIN_ICE_PARAM, ONLY: RAIN_ICE_PARAM_t USE MODD_RAIN_ICE_PARAM, ONLY: RAIN_ICE_PARAM_t
...@@ -40,10 +41,10 @@ CHARACTER(LEN=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 co ...@@ -40,10 +41,10 @@ CHARACTER(LEN=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 co
CHARACTER(LEN=4), INTENT(IN) :: HBUNAME ! Name of the budget CHARACTER(LEN=4), INTENT(IN) :: HBUNAME ! Name of the budget
LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid
! Condensation ! Condensation
LOGICAL :: OSIGMAS ! Switch for Sigma_s: LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s:
! use values computed in CONDENSATION ! use values computed in CONDENSATION
! or that from turbulence scheme ! or that from turbulence scheme
LOGICAL :: OCND2 ! logical switch to sparate liquid LOGICAL, INTENT(IN) :: OCND2 ! logical switch to sparate liquid
! and ice ! and ice
! more rigid (DEFALT value : .FALSE.) ! more rigid (DEFALT value : .FALSE.)
CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF
...@@ -76,9 +77,12 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRVS ! Water vapor m.r. ...@@ -76,9 +77,12 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRVS ! Water vapor m.r.
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRCS ! Cloud water m.r. source REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PRCS ! Cloud water m.r. source
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTH ! Theta to adjust REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PTH ! Theta to adjust
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PTHS ! Theta source REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT) :: PTHS ! Theta source
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PSRCS ! Second-order flux LOGICAL, INTENT(IN) :: OCOMPUTE_SRC
! s'rc'/2Sigma_s2 at time t+1 REAL, DIMENSION(MERGE(D%NIT,0,OCOMPUTE_SRC),&
! multiplied by Lambda_3 MERGE(D%NJT,0,OCOMPUTE_SRC),&
MERGE(D%NKT,0,OCOMPUTE_SRC)), INTENT(OUT) :: PSRCS ! Second-order flux
! s'rc'/2Sigma_s2 at time t+1
! multiplied by Lambda_3
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PCLDFR ! Cloud fraction REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PCLDFR ! Cloud fraction
! !
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT):: PRIS ! Cloud ice m.r. at t+1 REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(INOUT):: PRIS ! Cloud ice m.r. at t+1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment