|
4 | 4 | !MNH_LIC for details. version 1.
|
5 | 5 | !-----------------------------------------------------------------
|
6 | 6 | ! #####################################################################
|
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, & |
8 | 8 | PTSTEP, OELEC, &
|
9 |
| - PRHODREF, PEXNREF, PDZZ,PTHVREFZIKB, & |
| 9 | + PRHODREF, PEXNREF, PDZZ, PTHVREFZIKB, & |
10 | 10 | PRHODJ, PPABST, &
|
11 | 11 | NCCN, NIFN, NIMM, &
|
12 |
| - PDTHRAD, PTHT, PRT, PSVT, PW_NU, & |
| 12 | + ODTHRAD, PDTHRAD, PTHT, PRT, PSVT, PW_NU, & |
13 | 13 | PTHS, PRS, PSVS, &
|
14 | 14 | PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, &
|
15 | 15 | PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR, &
|
@@ -60,7 +60,7 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
|
60 | 60 | USE MODD_NSV, ONLY: NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, NSV_LIMA_CCN_ACTI, &
|
61 | 61 | NSV_LIMA_NI, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH, &
|
62 | 62 | 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 |
64 | 64 | USE MODD_PARAM_LIMA, ONLY: NMOD_CCN, NMOD_IFN, NMOD_IMM, LHHONI, &
|
65 | 65 | LFEEDBACKT, NMAXITER, XMRSTEP, XTSTEP_TS, &
|
66 | 66 | LSEDC, LSEDI, XRTMIN, XCTMIN, LDEPOC, XVDEPOC, &
|
@@ -91,50 +91,54 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
|
91 | 91 | TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF
|
92 | 92 | TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
|
93 | 93 | INTEGER, INTENT(IN) :: KBUDGETS
|
| 94 | +INTEGER, INTENT(IN) :: KRR |
94 | 95 | !
|
95 | 96 | REAL, INTENT(IN) :: PTSTEP ! Time step
|
96 | 97 | !
|
97 | 98 | LOGICAL, INTENT(IN) :: OELEC ! if true, cloud electrification is activated
|
98 | 99 | !
|
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) |
102 | 103 | !
|
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 |
105 | 106 | !
|
106 | 107 | INTEGER, INTENT(IN) :: NCCN ! for array size declarations
|
107 | 108 | INTEGER, INTENT(IN) :: NIFN ! for array size declarations
|
108 | 109 | INTEGER, INTENT(IN) :: NIMM ! for array size declarations
|
109 | 110 | !
|
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 |
138 | 142 | !
|
139 | 143 | REAL, INTENT(IN) :: PTHVREFZIKB ! Reference thv at IKB for electricity
|
140 | 144 | !* 0.2 Declarations of local variables :
|
@@ -307,7 +311,6 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
|
307 | 311 | !
|
308 | 312 | ! Various parameters
|
309 | 313 | ! domain size and levels (AROME compatibility)
|
310 |
| -INTEGER :: KRR |
311 | 314 | ! loops and packing
|
312 | 315 | INTEGER :: II, IPACK, JN
|
313 | 316 | integer :: idx
|
@@ -555,7 +558,6 @@ SUBROUTINE LIMA ( D, CST, ICED, ICEP, ELECD, ELECP,BUCONF, TBUDGETS, KBUDGETS,&
|
555 | 558 | !
|
556 | 559 | ! Mixing ratios
|
557 | 560 | !
|
558 |
| -KRR=SIZE(PRT,4) |
559 | 561 | ZRVT(:,:,:) = PRS(:,:,:,1) * PTSTEP
|
560 | 562 | ZRVS(:,:,:) = PRS(:,:,:,1)
|
561 | 563 | IF ( KRR .GE. 2 ) ZRCT(:,:,:) = PRS(:,:,:,2) * PTSTEP
|
|
0 commit comments