Skip to content

Commit de1ca4b

Browse files
Merge pull request #53 from SebastienRietteMTO/SR_pyLIMA
LIMA python binding
2 parents dd8ba2f + 38a9d45 commit de1ca4b

File tree

9 files changed

+209
-158
lines changed

9 files changed

+209
-158
lines changed

build/with_fcm/make_fcm.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,13 +433,16 @@ if [ $packupdate -eq 1 -o $packcreation -eq 1 ]; then
433433
if [ ${PYBINDING-yes} == 'yes' ]; then
434434
pybinding.py micro/ice_adjust.F90 sub:ICE_ADJUST pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
435435
pybinding.py micro/rain_ice.F90 sub:RAIN_ICE pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
436-
pybinding.py ~/PHYEX/src/common/micro/mode_ice4_sedimentation.F90 \
436+
pybinding.py micro/mode_ice4_sedimentation.F90 \
437437
module:MODE_ICE4_SEDIMENTATION/sub:ICE4_SEDIMENTATION \
438438
pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
439439
pybinding.py micro/rain_ice_old.F90 sub:RAIN_ICE_OLD pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
440440
pybinding.py turb/shallow_mf.F90 sub:SHALLOW_MF pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
441441
pybinding.py turb/turb.F90 sub:TURB pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
442442
pybinding.py aux/ini_phyex.F90 sub:INI_PHYEX pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
443+
pybinding.py micro/lima_adjust_split.F90 sub:LIMA_ADJUST_SPLIT pyphyex.F90 \
444+
../build/bin/pyphyex.py ./libphyex.so
445+
pybinding.py micro/lima.F90 sub:LIMA pyphyex.F90 ../build/bin/pyphyex.py ./libphyex.so
443446
else
444447
cat <<....EOF > pyphyex.F90
445448
SUBROUTINE PYPHYEX

src/arome/ext/aro_adjust_lima.F90

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,10 +335,11 @@ SUBROUTINE ARO_ADJUST_LIMA(PHYEX, &
335335
CALL LIMA_ADJUST_SPLIT(D=YLDIMPHYEX, CST=PHYEX%CST, BUCONF=TBUCONF, TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), &
336336
KRR=KRR, KMI=1, HCONDENS=PHYEX%NEBN%CCONDENS, HLAMBDA3=PHYEX%NEBN%CLAMBDA3, &
337337
OSUBG_COND=OSUBG_COND, OSIGMAS=OSIGMAS, PTSTEP=2*PTSTEP, PSIGQSAT=PSIGQSAT, &
338-
PRHODREF=PRHODREF, PRHODJ=PRHODJ, PEXNREF=PEXNREF, PSIGS=PSIGS, PMFCONV=PMFCONV, &
339-
PPABST=PPABSM, PPABSTT=PPABSM, PZZ=ZZZ, PDTHRAD=PDTHRAD, PW_NU=PW_NU, &
338+
PRHODREF=PRHODREF, PRHODJ=PRHODJ, PEXNREF=PEXNREF, PSIGS=PSIGS, LMFCONV=.TRUE., PMFCONV=PMFCONV, &
339+
PPABST=PPABSM, PPABSTT=PPABSM, PZZ=ZZZ, ODTHRAD=.TRUE., PDTHRAD=PDTHRAD, PW_NU=PW_NU, &
340340
PRT=PRT, PRS=PRS, PSVT=PSVT, PSVS=PSVS, &
341-
PTHS=PTHS, PSRCS=PSRCS, PCLDFR=PCLDFR, PICEFR=PICEFR, PRC_MF=PRC_MF, PRI_MF=PRI_MF, PCF_MF=PCF_MF )
341+
PTHS=PTHS, OCOMPUTE_SRC=.TRUE., PSRCS=PSRCS, PCLDFR=PCLDFR, PICEFR=PICEFR, &
342+
PRC_MF=PRC_MF, PRI_MF=PRI_MF, PCF_MF=PCF_MF )
342343
!
343344
!-------------------------------------------------------------------------------
344345
!

src/arome/ext/aro_lima.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,12 +294,12 @@ SUBROUTINE ARO_LIMA(PHYEX,KKA,KKU,KKL,KLON,KLEV,KFDIA,KRR, KSV, &
294294
!
295295
CALL LIMA (D=YLDIMPHYEX, CST=PHYEX%CST, ICED=PHYEX%RAIN_ICE_DESCRN, ICEP=PHYEX%RAIN_ICE_PARAMN, &
296296
ELECD=PHYEX%ELEC_DESCR, ELECP=PHYEX%ELEC_PARAM, &
297-
BUCONF=TBUCONF, TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), &
297+
BUCONF=TBUCONF, TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), KRR=KRR, &
298298
PTSTEP=2*PTSTEP, OELEC=PHYEX%MISC%OELEC, &
299299
PRHODREF=PRHODREF, PEXNREF=PEXNREF, PDZZ=PDZZ, PTHVREFZIKB=ZTHVREFZIKB, &
300300
PRHODJ=PRHODJ, PPABST=PPABSM, &
301301
NCCN=NMOD_CCN, NIFN=NMOD_IFN, NIMM=NMOD_IMM, &
302-
PDTHRAD=PDTHRAD, PTHT=PTHT, PRT=PRT, PSVT=PSVT, PW_NU=PW_NU, &
302+
ODTHRAD=.TRUE., PDTHRAD=PDTHRAD, PTHT=PTHT, PRT=PRT, PSVT=PSVT, PW_NU=PW_NU, &
303303
PTHS=PTHS, PRS=PRS, PSVS=PSVS, &
304304
PINPRC=ZINPRC, PINDEP=ZINDEP, PINPRR=PINPRR, PINPRI=ZINPRI, PINPRS=PINPRS, PINPRG=PINPRG, PINPRH=PINPRH, &
305305
PEVAP3D=PEVAP, PCLDFR=PCLDFR, PICEFR=PICEFR, PPRCFR=PPRCFR, PFPR=PFPR )

src/common/micro/lima.F90

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
!MNH_LIC for details. version 1.
55
!-----------------------------------------------------------------
66
! #####################################################################
7-
SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
7+
SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP, BUCONF, TBUDGETS, KBUDGETS, KRR, &
88
PTSTEP, OELEC, &
9-
PRHODREF, PEXNREF, PDZZ,PTHVREFZIKB, &
9+
PRHODREF, PEXNREF, PDZZ, PTHVREFZIKB, &
1010
PRHODJ, PPABST, &
1111
NCCN, NIFN, NIMM, &
12-
PDTHRAD, PTHT, PRT, PSVT, PW_NU, &
12+
ODTHRAD, PDTHRAD, PTHT, PRT, PSVT, PW_NU, &
1313
PTHS, PRS, PSVS, &
1414
PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, &
1515
PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR, &
@@ -60,7 +60,7 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
6060
USE MODD_NSV, ONLY: NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, NSV_LIMA_CCN_ACTI, &
6161
NSV_LIMA_NI, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH, &
6262
NSV_LIMA_IFN_FREE, NSV_LIMA_IFN_NUCL, NSV_LIMA_IMM_NUCL, NSV_LIMA_HOM_HAZE, &
63-
NSV_LIMA_BEG, NSV_ELECBEG
63+
NSV_LIMA_BEG, NSV_ELECBEG, NSV
6464
USE MODD_PARAM_LIMA, ONLY: NMOD_CCN, NMOD_IFN, NMOD_IMM, LHHONI, &
6565
LFEEDBACKT, NMAXITER, XMRSTEP, XTSTEP_TS, &
6666
LSEDC, LSEDI, XRTMIN, XCTMIN, LDEPOC, XVDEPOC, &
@@ -91,50 +91,54 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
9191
TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF
9292
TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
9393
INTEGER, INTENT(IN) :: KBUDGETS
94+
INTEGER, INTENT(IN) :: KRR
9495
!
9596
REAL, INTENT(IN) :: PTSTEP ! Time step
9697
!
9798
LOGICAL, INTENT(IN) :: OELEC ! if true, cloud electrification is activated
9899
!
99-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density
100-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function
101-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m)
100+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PRHODREF ! Reference density
101+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PEXNREF ! Reference Exner function
102+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PDZZ ! Layer thikness (m)
102103
!
103-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian
104-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t
104+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PRHODJ ! Dry density * Jacobian
105+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PPABST ! absolute pressure at t
105106
!
106107
INTEGER, INTENT(IN) :: NCCN ! for array size declarations
107108
INTEGER, INTENT(IN) :: NIFN ! for array size declarations
108109
INTEGER, INTENT(IN) :: NIMM ! for array size declarations
109110
!
110-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! dT/dt due to radiation
111-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t
112-
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! Mixing ratios at time t
113-
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t
114-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! w for CCN activation
115-
!
116-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source
117-
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! Mixing ratios sources
118-
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources
119-
!
120-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC ! Cloud instant precip
121-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP ! Cloud droplets deposition
122-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR ! Rain instant precip
123-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRI ! Rain instant precip
124-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS ! Snow instant precip
125-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG ! Graupel instant precip
126-
REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRH ! Rain instant precip
127-
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D ! Rain evap profile
128-
!
129-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction
130-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction
131-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Cloud fraction
132-
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PFPR ! Precipitation fluxes in altitude
133-
!
134-
REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PLATHAM_IAGGS ! Factor for IAGGS modification due to Efield
135-
REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PEFIELDW ! Vertical component of the electric field
136-
REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PSV_ELEC_T ! Charge density at time t
137-
REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(INOUT) :: PSV_ELEC_S ! Charge density sources
111+
LOGICAL, INTENT(IN) :: ODTHRAD ! Use radiative temperature tendency
112+
REAL, DIMENSION(MERGE(D%NIT,0,ODTHRAD), &
113+
MERGE(D%NJT,0,ODTHRAD), &
114+
MERGE(D%NKT,0,ODTHRAD)), INTENT(IN) :: PDTHRAD ! dT/dt due to radiation
115+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PTHT ! Theta at time t
116+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, KRR), INTENT(IN) :: PRT ! Mixing ratios at time t
117+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, NSV), INTENT(IN) :: PSVT ! Concentrations at time t
118+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PW_NU ! w for CCN activation
119+
!
120+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PTHS ! Theta source
121+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, KRR), INTENT(INOUT) :: PRS ! Mixing ratios sources
122+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, NSV), INTENT(INOUT) :: PSVS ! Concentration sources
123+
!
124+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINPRC ! Cloud instant precip
125+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINDEP ! Cloud droplets deposition
126+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINPRR ! Rain instant precip
127+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINPRI ! Rain instant precip
128+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINPRS ! Snow instant precip
129+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINPRG ! Graupel instant precip
130+
REAL, DIMENSION(D%NIT, D%NJT), INTENT(OUT) :: PINPRH ! Rain instant precip
131+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(OUT) :: PEVAP3D ! Rain evap profile
132+
!
133+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PCLDFR ! Cloud fraction
134+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PICEFR ! Cloud fraction
135+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PPRCFR ! Cloud fraction
136+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, KRR), INTENT(INOUT) :: PFPR ! Precipitation fluxes in altitude
137+
!
138+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), OPTIONAL, INTENT(IN) :: PLATHAM_IAGGS ! Factor for IAGGS modification due to Efield
139+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), OPTIONAL, INTENT(IN) :: PEFIELDW ! Vertical component of the electric field
140+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, NSV), OPTIONAL, INTENT(IN) :: PSV_ELEC_T ! Charge density at time t
141+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, NSV), OPTIONAL, INTENT(INOUT) :: PSV_ELEC_S ! Charge density sources
138142
!
139143
REAL, INTENT(IN) :: PTHVREFZIKB ! Reference thv at IKB for electricity
140144
!* 0.2 Declarations of local variables :
@@ -307,7 +311,6 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
307311
!
308312
! Various parameters
309313
! domain size and levels (AROME compatibility)
310-
INTEGER :: KRR
311314
! loops and packing
312315
INTEGER :: II, IPACK, JN
313316
integer :: idx
@@ -555,7 +558,6 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
555558
!
556559
! Mixing ratios
557560
!
558-
KRR=SIZE(PRT,4)
559561
ZRVT(:,:,:) = PRS(:,:,:,1) * PTSTEP
560562
ZRVS(:,:,:) = PRS(:,:,:,1)
561563
IF ( KRR .GE. 2 ) ZRCT(:,:,:) = PRS(:,:,:,2) * PTSTEP

src/common/micro/lima_adjust_split.F90

Lines changed: 50 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
SUBROUTINE LIMA_ADJUST_SPLIT(D, CST, BUCONF, TBUDGETS, KBUDGETS, &
88
KRR, KMI, HCONDENS, HLAMBDA3, &
99
OSUBG_COND, OSIGMAS, PTSTEP, PSIGQSAT, &
10-
PRHODREF, PRHODJ, PEXNREF, PSIGS, PMFCONV, &
11-
PPABST, PPABSTT, PZZ, PDTHRAD, PW_NU, &
10+
PRHODREF, PRHODJ, PEXNREF, PSIGS, LMFCONV, PMFCONV,&
11+
PPABST, PPABSTT, PZZ, ODTHRAD, PDTHRAD, PW_NU, &
1212
PRT, PRS, PSVT, PSVS, &
13-
PTHS, PSRCS, PCLDFR, PICEFR, PRC_MF, PRI_MF, PCF_MF)
13+
PTHS, OCOMPUTE_SRC, PSRCS, PCLDFR, PICEFR, &
14+
PRC_MF, PRI_MF, PCF_MF)
1415
! ###########################################################################
1516
!
1617
!!**** *MIMA_ADJUST* - compute the fast microphysical sources
@@ -123,46 +124,57 @@ SUBROUTINE LIMA_ADJUST_SPLIT(D, CST, BUCONF, TBUDGETS, KBUDGETS,
123124
!
124125
INTEGER, INTENT(IN) :: KRR ! Number of moist variables
125126
INTEGER, INTENT(IN) :: KMI ! Model index
126-
CHARACTER(len=80), INTENT(IN) :: HCONDENS
127-
CHARACTER(len=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 coeff
128-
LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid
127+
CHARACTER(len=80), INTENT(IN) :: HCONDENS
128+
CHARACTER(len=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 coeff
129+
LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid
129130
! Condensation
130-
LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s:
131+
LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s:
131132
! use values computed in CONDENSATION
132133
! or that from turbulence scheme
133-
REAL, INTENT(IN) :: PTSTEP ! Time step
134+
REAL, INTENT(IN) :: PTSTEP ! Time step
134135
REAL, INTENT(IN) :: PSIGQSAT ! coeff applied to qsat variance contribution
135136
!
136-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Dry density of the
137-
! reference state
138-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian
139-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function
140-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t
141-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PMFCONV !
142-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t
143-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABSTT ! Absolute Pressure at t+dt
144-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ !
145-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! Radiative temperature tendency
146-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! updraft velocity used for
147-
!
148-
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! m.r. at t
149-
!
150-
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! m.r. source
151-
!
152-
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t
153-
!
154-
REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources
155-
!
156-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source
157-
!
158-
REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux
159-
! s'rc'/2Sigma_s2 at time t+1
160-
! multiplied by Lambda_3
161-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction
162-
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction
163-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRC_MF! Convective Mass Flux liquid mixing ratio
164-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRI_MF! Convective Mass Flux ice mixing ratio
165-
REAL, DIMENSION(:,:,:), INTENT(IN) :: PCF_MF! Convective Mass Flux Cloud fraction
137+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PRHODREF ! Dry density of the
138+
! reference state
139+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PRHODJ ! Dry density * Jacobian
140+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PEXNREF ! Reference Exner function
141+
REAL, DIMENSION(MERGE(D%NIT,0,NEBN%LSUBG_COND), &
142+
MERGE(D%NJT,0,NEBN%LSUBG_COND), &
143+
MERGE(D%NKT,0,NEBN%LSUBG_COND)), INTENT(IN) :: PSIGS ! Sigma_s at time t
144+
LOGICAL, INTENT(IN) :: LMFCONV ! T to use PMFCONV
145+
REAL, DIMENSION(MERGE(D%NIT,0,LMFCONV), &
146+
MERGE(D%NJT,0,LMFCONV), &
147+
MERGE(D%NKT,0,LMFCONV)), INTENT(IN) :: PMFCONV !
148+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PPABST ! Absolute Pressure at t
149+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PPABSTT ! Absolute Pressure at t+dt
150+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PZZ !
151+
LOGICAL, INTENT(IN) :: ODTHRAD ! Use radiative temperature tendency
152+
REAL, DIMENSION(MERGE(D%NIT,0,ODTHRAD), &
153+
MERGE(D%NJT,0,ODTHRAD), &
154+
MERGE(D%NKT,0,ODTHRAD)), INTENT(IN) :: PDTHRAD ! Radiative temperature tendency
155+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PW_NU ! updraft velocity used for
156+
!
157+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, KRR), INTENT(IN) :: PRT ! m.r. at t
158+
!
159+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, KRR), INTENT(INOUT) :: PRS ! m.r. source
160+
!
161+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, NSV), INTENT(IN) :: PSVT ! Concentrations at time t
162+
!
163+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT, NSV), INTENT(INOUT) :: PSVS ! Concentration sources
164+
!
165+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PTHS ! Theta source
166+
!
167+
LOGICAL, INTENT(IN) :: OCOMPUTE_SRC ! T to comput PSRCS
168+
REAL, DIMENSION(MERGE(D%NIT,0,OCOMPUTE_SRC), &
169+
MERGE(D%NJT,0,OCOMPUTE_SRC), &
170+
MERGE(D%NKT,0,OCOMPUTE_SRC)), INTENT(OUT) :: PSRCS ! Second-order flux
171+
! s'rc'/2Sigma_s2 at time t+1
172+
! multiplied by Lambda_3
173+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PCLDFR ! Cloud fraction
174+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(INOUT) :: PICEFR ! Cloud fraction
175+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PRC_MF! Convective Mass Flux liquid mixing ratio
176+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PRI_MF! Convective Mass Flux ice mixing ratio
177+
REAL, DIMENSION(D%NIT, D%NJT, D%NKT), INTENT(IN) :: PCF_MF! Convective Mass Flux Cloud fraction
166178
!
167179
!
168180
!* 0.2 Declarations of local variables :

0 commit comments

Comments
 (0)