100 logical :: Heter_Freezng = .
false.
101 logical :: Homog_Sublima = .
false.
102 logical :: Meyers = .
true.
103 logical :: AUTO_w_Sundqv = .
true.
104 logical :: AUTO_w_LiouOu = .
false.
105 logical :: AUTO_w_LinAll = .
false.
106 logical :: AUTO_i_Levkov = .
true.
107 logical :: AUTO_i_LevkXX = .
true.
108 logical :: AUTO_i_EmdeKa = .
false.
109 logical :: AUTO_i_Sundqv = .
false.
111 logical :: fracSC = .
false.
112 logical :: fraCEP = .
false.
113 logical :: HalMos = .
true.
114 logical :: graupel_shape = .
true.
115 logical :: planes__shape = .
false.
116 logical :: aggrega_shape = .
false.
118 logical :: NO_Vec = .
true.
120 real(kind=real8) :: rad_ww
121 real(kind=real8) :: qvs_wi
123 real(kind=real8) :: BNUCVI
124 real(kind=real8) :: SSat_I
126 real(kind=real8) :: Flag_T_NuId
127 real(kind=real8) :: CCNiId
129 real(kind=real8) :: Flag___NuIc
130 real(kind=real8) :: Flag_T_NuIc
131 real(kind=real8) :: qw__OK
132 real(kind=real8) :: qi__OK
133 real(kind=real8) :: CCNiOK
134 real(kind=real8) :: CCNiIc
136 real(kind=real8) :: Flag_TmaxHM
137 real(kind=real8) :: Flag_TminHM
138 real(kind=real8) :: Flag_wa__HM
139 real(kind=real8) :: SplinJ
140 real(kind=real8) :: SplinP
142 real(kind=real8) :: Flag_Ta_Neg
143 real(kind=real8) :: Flag_TqwFrz
145 real(kind=real8) :: RHumid
147 real(kind=real8) :: qi_Nu1,qi_Nu2
148 real(kind=real8) :: qi_Nuc
149 real(kind=real8) :: NuIdOK
150 real(kind=real8) :: BSPRWI
151 real(kind=real8) :: BHAMWI
152 real(kind=real8) :: BNUFWI
153 real(kind=real8) :: BDEPVI
154 real(kind=real8) :: Flag_SURSat
155 real(kind=real8) :: Flag_SUBSat
156 real(kind=real8) :: Flag_Sublim
157 real(kind=real8) :: RH_Ice
158 real(kind=real8) :: RH_Liq
159 real(kind=real8) :: DenDi1,DenDi2
160 real(kind=real8) :: dqsiqv
161 real(kind=real8) :: dqvSUB
162 real(kind=real8) :: dqvDUM
163 real(kind=real8) :: dqiDUM
165 real(kind=real8) :: qCloud
166 real(kind=real8) :: coefC2
167 real(kind=real8) :: pa_hPa,es_hPa
168 real(kind=real8) :: Qsat_L
170 real(kind=real8) :: t_qvqw
171 real(kind=real8) :: d_qvqw
172 real(kind=real8) :: Kdqvqw
173 real(kind=real8) :: ww_TKE
174 real(kind=real8) :: RH_TKE
175 real(kind=real8) :: qt_TKE
176 real(kind=real8) :: TLiqid
177 real(kind=real8) :: CFr_t1,CFr_t2
178 real(kind=real8) :: CFrCoe
179 real(kind=real8) :: CFraOK
180 real(kind=real8) :: qwCFra
181 real(kind=real8) :: qwMesh
182 real(kind=real8) :: dwMesh
183 real(kind=real8) :: signdw
184 real(kind=real8) :: Flag_dqwPos
185 real(kind=real8) :: updatw
186 real(kind=real8) :: SCuLim
187 real(kind=real8) :: ARGerf
188 real(kind=real8) :: OUTerf
189 real(kind=real8) :: erf
190 real(kind=real8) :: dwTUR4,dwTURi
191 real(kind=real8) :: dwTUR3,dwTUR2
192 real(kind=real8) :: dwTUR8,dwTURc
193 real(kind=real8) :: dwTUR5,dwTUR1
195 real(kind=real8) :: Di_Pri
196 real(kind=real8) :: c1saut,cnsaut
197 real(kind=real8) :: dtsaut
198 real(kind=real8) :: ps_AUT
199 real(kind=real8) :: qs_AUT
201 real(kind=real8) :: Flag_Ta_Pos
202 real(kind=real8) :: Flag_qiMELT
203 real(kind=real8) :: qxMelt
204 real(kind=real8) :: qiMELT
205 real(kind=real8) :: CiMelt
207 real(kind=real8) :: Flag_qsMELT
208 real(kind=real8) :: xCoefM
209 real(kind=real8) :: AcoefM,BcoefM
210 real(kind=real8) :: dTMELT
211 real(kind=real8) :: qsMELT
213 real(kind=real8) :: qs_ACW
214 real(kind=real8) :: Flag_qs_ACW
215 real(kind=real8) :: Flag_qs_ACI
216 real(kind=real8) :: effACI
217 real(kind=real8) :: ps_ACI
218 real(kind=real8) :: qs_ACI
219 real(kind=real8) :: CNsACI
220 real(kind=real8) :: Flag_qs_ACR
221 real(kind=real8) :: coeACR
222 real(kind=real8) :: qs_ACR
223 real(kind=real8) :: qs_ACR_R
224 real(kind=real8) :: qs_ACR_S
225 real(kind=real8) :: Flag_qr_ACS
226 real(kind=real8) :: coeACS
227 real(kind=real8) :: pr_ACS
228 real(kind=real8) :: qr_ACS
229 real(kind=real8) :: qr_ACS_S
230 real(kind=real8) :: ps_SUB
231 real(kind=real8) :: qs_SUB
232 real(kind=real8) :: ls_NUM
233 real(kind=real8) :: ls_DEN
235 real(kind=real8) :: Flag_Freeze
236 real(kind=real8) :: ps_FRZ
237 real(kind=real8) :: qs_FRZ
239 real(kind=real8) :: rwMEAN
241 real(kind=real8) :: th_AUT
242 real(kind=real8) :: pr_AUT
243 real(kind=real8) :: qr_AUT
244 real(kind=real8) :: Flag_qr_ACW
245 real(kind=real8) :: pr_ACW
246 real(kind=real8) :: qr_ACW
247 real(kind=real8) :: Flag_qr_ACI
248 real(kind=real8) :: pr_ACI
249 real(kind=real8) :: qr_ACI
250 real(kind=real8) :: CNrACI
251 real(kind=real8) :: pi_ACR
252 real(kind=real8) :: qi_ACR
253 real(kind=real8) :: Flag_DryAir
254 real(kind=real8) :: Flag_qr_EVP
255 real(kind=real8) :: lr_NUM
256 real(kind=real8) :: lr_DEN
257 real(kind=real8) :: pr_EVP
258 real(kind=real8) :: qr_EVP
260 real(kind=real8) :: effACS
262 real(kind=real8) :: a_rodz
263 real(kind=real8) :: qwFlux
264 real(kind=real8) :: qwrodz
265 real(kind=real8) :: wRatio
266 real(kind=real8) :: qiFlux
267 real(kind=real8) :: qirodz
268 real(kind=real8) :: iRatio
269 real(kind=real8) :: qsFlux
270 real(kind=real8) :: qsrodz
271 real(kind=real8) :: sRatio
272 real(kind=real8) :: qrFlux
273 real(kind=real8) :: qrrodz
274 real(kind=real8) :: rRatio
276 real(kind=real8) :: Vw_MAX
277 real(kind=real8) :: Flag_Fall_i
278 real(kind=real8) :: Vi_MAX
279 real(kind=real8) :: Vs_MAX,VsMMAX
280 real(kind=real8) :: Vs__OK
281 real(kind=real8) :: Vr_MAX,VrMMAX
282 real(kind=real8) :: Vr__OK
283 real(kind=real8) :: dtPrec
284 real(kind=real8) :: d_Snow
285 real(kind=real8) :: d_Rain
287 real(kind=real8) :: SatiOK
288 real(kind=real8) :: FlagNu
290 real(kind=real8) :: Qw0_OK
291 real(kind=real8) :: Qi0_OK
292 real(kind=real8) :: Qi0qOK
293 real(kind=real8) :: Ci0_OK
294 real(kind=real8) :: Ci0cOK
295 real(kind=real8) :: Qs0_OK
296 real(kind=real8) :: Qr0_OK
298 real(kind=real8) :: qiBerg
299 real(kind=real8) :: qwBerg
300 real(kind=real8) :: qxBerg
301 real(kind=real8) :: a1Berg,a2Berg
302 real(kind=real8) :: a0Berg,afBerg
304 real(kind=real8) :: WaterB
306 real(kind=real8) :: argEXP
310 integer :: nItMAX,itFall
311 integer :: ikl_io,io__Pt
507 ci0_ok = max(ci0cok,qi0qok)
508 qi0_ok = ci0_ok*
qi__cm(ikl,k)
602 & / exp(0.8 *log(
lamdar(ikl,k)))
627 IF (graupel_shape)
THEN
629 & / exp(0.25*log(
lamdas(ikl,k)))
632 ELSE IF (planes__shape)
THEN
634 & / exp(0.99*log(
lamdas(ikl,k)))
638 ELSE IF (aggrega_shape)
THEN
640 & / exp(0.41*log(
lamdas(ikl,k)))
644 stop
'Snow Particles Shape is not defined'
697 qw__ok =
qw__cm(ikl,k) * flag_tqwfrz
716 IF (heter_freezng)
THEN
723 bnufwi = flag_ta_neg*(exp(argexp) -1. ) &
725 bnufwi = min( bnufwi ,
qw__cm(ikl,k) )
765 IF (homog_sublima)
THEN
767 & /(1.00 +1.733e7*
qsieff(ikl,k) &
770 dqvsub = flag_tqwfrz*max(
zer0,dqvsub)
831 satiok = max(
zer0,sign(
un_1,dqvdum))
833 dqvdum = max(
zer0, dqvdum)
835 nuidok = flag_t_nuid * satiok
837 ssat_i = 1.e2*dqvdum /
qsieff(ikl,k)
838 ssat_i = min(ssat_i,
ssimax)
843 dqidum = 1.e-15* ccniid/
roa_dy(ikl,k)
844 dqidum = min(dqidum , dqvdum)
872 flag___nuic = flag_t_nuic * qw__ok
874 ccniic = 1.e3 * flag___nuic &
878 rad_ww = (1.e3 *
roa_dy(ikl,k) &
883 ccniic = 603.2e+3 * ccniic * rad_ww &
889 dqidum = 1.e-15 * ccniic/
roa_dy(ikl,k)
891 dqidum = min(
qw__cm(ikl,k) , dqidum)
923 splinj = 1.358e12 *
qw__cm(ikl,k) &
927 splinp = 0.003 * (1. - 0.05 *splinj) * flag_tmaxhm &
928 & * flag_tminhm * flag_wa__hm
929 splinp = max(
zer0, splinp)
931 dqidum = 1.e-15 * splinp /
roa_dy(ikl,k)
932 splinp = (min(1.0,
qs__cm(ikl,k)/max(dqidum,
epsn))) *splinp
934 dqidum = min(
qs__cm(ikl,k), dqidum)
996 flagnu = flag_tqwfrz * flag_ta_neg * satiok
1004 qi_nu1 = flagnu * 1.d-15 *
fletch(ikl,k) /
roa_dy(ikl,k)
1010 & /(1.0d0+1.733d7*
qsieff(ikl,k) &
1012 qi_nu2 = flagnu * max(
zer0 ,qi_nu2)
1014 qi_nuc = min(qi_nu1,qi_nu2)
1066 IF (.NOT.auto_i_levkxx)
THEN
1085 qi0_ok = flag_ta_neg * qi0_ok
1094 i_berg = min(i_berg,31)
1095 i_berg = max(i_berg, 1)
1096 a1berg =
aa1(i_berg)
1097 a2berg =
aa2(i_berg)
1100 afberg =(a1berg *(1.0-a2berg) *
dt__cm &
1101 & +a0berg**(1.0-a2berg))**(1.0/(1.0-a2berg))
1104 qxberg = max(
zer0,qxberg)
1108 qxberg = qi0_ok*min(qwberg,qxberg)
1171 flag_sublim = qi0_ok &
1186 dendi2 = 1.0d0 / (1.875d-2*
roa_dy(ikl,k)*
qsieff(ikl,k))
1190 bdepvi = max(bdepvi, -
qv__dy(ikl,k))
1191 bdepvi = min(bdepvi,
qi__cm(ikl,k))
1192 bdepvi = min(bdepvi, dqsiqv ) &
1229 IF (
qi__cm(ikl,k).le.0.e0)
THEN
1259 flag_qimelt = flag_ta_pos * qi0_ok
1268 qimelt = min(
qi__cm(ikl,k) , qxmelt)*flag_qimelt
1269 cimelt =
ccnicm(ikl,k) * qimelt &
1339 qsat_l = .622d0*es_hpa /(pa_hpa - .378d0*es_hpa)
1348 ww_tke = 0.66d+0 *
tke_at(ikl,k)
1350 coefc2 = kdqvqw/(sqrt(ww_tke)*qsat_l)
1354 qt_tke = sqrt(rh_tke)*qsat_l
1356 argerf = (t_qvqw-qsat_l)/(1.414d+0*qt_tke)
1357 outerf = erf(argerf)
1359 cfracm(ikl,k) = 0.5d+0 * (1.d+0 + outerf)
1361 cfrcoe = 1.d+0/(1.d+0+1.349d7*qsat_l/(tliqid*tliqid))
1363 & * exp(-min(argerf*argerf,
ea_max))
1364 cfr_t2 =
cfracm(ikl,k) *(t_qvqw-qsat_l)
1370 qwmesh = cfrcoe * (cfr_t1+cfr_t2) * cfraok
1371 dwmesh = qwmesh -
qw__cm(ikl,k)
1382 signdw = sign(
un_1,dwmesh)
1383 flag_dqwpos = max(
zer0,signdw)
1384 updatw = flag_dqwpos *
qv__dy(ikl,k) &
1385 & + (1.d0 -flag_dqwpos)*
qw__cm(ikl,k)
1387 dwmesh = signdw *min(updatw, signdw*dwmesh) &
1452 & / (1.0d0+1.349d7*
qvswcm(ikl,k) &
1465 signdw = sign(
un_1,dwmesh)
1466 flag_dqwpos = max(
zer0,signdw)
1467 updatw = flag_dqwpos *
qv__dy(ikl,k) &
1468 & + (1.d0 -flag_dqwpos)*
qw__cm(ikl,k)
1469 dwmesh = signdw *min(updatw,signdw*dwmesh) &
1527 & +
qs__cm(ikl,k) * 0.33 &
1528 & * (1.-min(
un_1,exp((
ta__cm(ikl,k) -258.15)*0.1))))&
1529 & / (0.02 *
qvswcm(ikl,k) )
1533 & +
qs__cm(ikl,k) -3.e-9 ))
1544 argexp= ( (
rh_max -rhumid) * qvs_wi) ** 0.49
1546 & +
qs__cm(ikl,k) * 0.33 &
1547 & * (1.-min(1.,exp((
ta__cm(ikl,k) -258.15)*0.1))))&
1548 & /max(
epsn , argexp ) &
1551 cfracm(ikl,k) = ( rhumid ** 0.25 )&
1552 & * (1. - exp(-argexp) )
1616 qw__ok = qw__ok * cfraok
1626 IF (auto_w_sundqv)
THEN
1630 & *(1.-exp(-min(dwmesh*dwmesh,
ea_max))) &
1636 ELSE IF (auto_w_liouou)
THEN
1642 dwturi = qwcfra *
roa_dy(ikl,k) &
1644 dwtur3 = exp(
r_1by3*log(dwturi))
1645 dwtur2 = dwtur3 * dwtur3
1647 dwturc = exp(dwtur8) * dwtur2 * dwtur2
1648 rwmean = 0.5 *sqrt(sqrt(dwturc))
1653 & *
ccnwcm(ikl,k) *dwturc*qwcfra
1657 ELSE IF (auto_w_linall)
THEN
1659 pr_aut = dwmesh * dwmesh *dwmesh/(
cc1*dwmesh+1000.d0*
cc2/
dd0)
1661 stop
'AutoConversion of Cloud droplets is not defined'
1665 qr_aut = min(qr_aut,
qw__cm(ikl,k))
1705 IF (auto_i_levkov)
THEN
1712 IF (auto_i_levkxx)
THEN
1728 qi__ok = qi__ok * ccniok *
qi__cm(ikl,k)
1743 & +1.0 /(2.36e-2 *
roa_dy(ikl,k) &
1748 qs_aut =
dt__cm *qi__ok*(rh_ice-1.)/dtsaut
1749 qs_aut = min(
qi__cm(ikl,k) , qs_aut)
1750 qs_aut = max(-
qs__cm(ikl,k) , qs_aut)
1797 qi__ok = qi__ok * ccniok *
qi__cm(ikl,k)
1813 c1saut = max(
epsn,qi__ok) *
roa_dy(ikl,k) *35.0 &
1816 dtsaut =-6.d0*log(di_pri/
qs__d0) /c1saut
1817 dtsaut = max(
dt__cm, dtsaut)
1827 qs_aut =
dt__cm*qi__ok / dtsaut
1828 qs_aut = min(
qi__cm(ikl,k) , qs_aut)
1829 qs_aut = max(-
qs__cm(ikl,k) , qs_aut)
1873 ELSE IF (auto_i_emdeka)
THEN
1883 & *exp(0.025d0*
ta_dgc(ikl,k))
1885 qs_aut = max(qs_aut,
zer0 )
1886 qs_aut = min(qs_aut,
qi__cm(ikl,k))
1887 cnsaut = qs_aut*
ccnicm(ikl,k) &
1925 ELSE IF (auto_i_sundqv)
THEN
1941 & *(1.-exp(-dqidum *dqidum)) &
1945 qs_aut = min(
qi__cm(ikl,k) , qs_aut)
1946 qs_aut = max(
zer0 , qs_aut)
1947 cnsaut =
ccnicm(ikl,k) * qs_aut &
1973 stop
'AutoConversion of Cloud crystals is not defined'
2027 flag_qr_acw = qw__ok * qr0_ok
2037 qr_acw = pr_acw*
dt__cm *flag_qr_acw
2038 qr_acw = min(qr_acw,
qw__cm(ikl,k))
2084 flag_qs_acw = qw__ok * qs0_ok
2096 IF (graupel_shape) then
2101 ELSE IF (planes__shape) then
2105 ELSE IF (aggrega_shape) then
2110 stop
'Snow Particles Shape is not defined'
2114 qs_acw = min(qs_acw,
qw__cm(ikl,k))
2122 flag_qs_acw = (1.d0 - flag_ta_pos) * qs_acw
2219 flag_qs_aci = qi__ok * qs0_ok * flag_ta_neg
2227 effaci = exp(0.025d0*
ta_dgc(ikl,k))
2234 IF (graupel_shape)
THEN
2238 ELSE IF (planes__shape)
THEN
2242 ELSE IF (aggrega_shape)
THEN
2246 stop
'Snow Particles Shape is not defined'
2249 qs_aci = ps_aci *
dt__cm * flag_qs_aci
2250 qs_aci = min(qs_aci,
qi__cm(ikl,k))
2252 cnsaci =
ccnicm(ikl,k) * qs_aci &
2348 flag_qr_aci = qi__ok * qr0_ok * flag_ta_neg
2362 qr_aci = pr_aci*
dt__cm * flag_qr_aci
2363 qr_aci = min(qr_aci,
qi__cm(ikl,k))
2399 qi_acr = pi_acr*
dt__cm * flag_qr_aci
2400 qi_acr = min(qi_acr,
qr__cm(ikl,k))
2467 flag_qr_acs = qr0_ok * qs0_ok
2486 qr_acs = pr_acs *
dt__cm * flag_qr_acs
2487 qr_acs = min(qr_acs,
qr__cm(ikl,k))
2502 flag_qs_acr = max(qr0_ok,qs0_ok)
2512 qs_acr =
ps_acr(ikl,k)*
dt__cm *flag_qr_acs *flag_qs_acr
2513 qs_acr = min(qs_acr,
qs__cm(ikl,k))
2526 qr_acs_s = qr_acs * flag_ta_neg
2527 qs_acr_r = qs_acr *(1.d0-flag_ta_neg)
2693 flag_qr_evp = qr0_ok * flag_dryair
2696 & + 3940.d0 * sqrt(
sqrrro(ikl,k)) &
2697 & /exp(2.9d0 *log(
lamdar(ikl,k)))
2701 pr_evp = 2. *
pinmbr*(1.d0 -rh_liq)*
n0___r*lr_num/lr_den
2703 qr_evp = min(qr_evp,
qr__cm(ikl,k))
2708 qr_evp = max(qr_evp,
zer0) * flag_qr_evp
2765 & + 238.d0 * sqrt(
sqrrro(ikl,k)) &
2766 & /exp(2.625d0*log(
lamdas(ikl,k)))
2773 & /(1.d3*
roa_dy(ikl,k)*ls_den)
2782 qs_sub = max(qs_sub ,dqsiqv)* flag_sursat &
2783 & + min(min(qs_sub,
qs__cm(ikl,k)),dqsiqv)*(1.-flag_sursat)
2785 qs_sub = qs_sub * qs0_ok
2843 flag_qsmelt = qs0_ok * flag_ta_pos
2852 & + 238. * sqrt(
sqrrro(ikl,k)) &
2853 & / exp(2.625d0 *log(
lamdas(ikl,k)))
2859 acoefm = 0.025d00 *xcoefm &
2862 bcoefm = 62.34d+3 *
roa_dy(ikl,k) &
2865 bcoefm = min(-
epsn,bcoefm)
2870 qsmelt = max( qsmelt,0. ) *flag_qsmelt
2871 qsmelt = min( qsmelt,
qs__cm(ikl,k))
2931 flag_freeze = qr0_ok * flag_ta_neg
2939 ps_frz = 1.974d4 *
n0___r &
2941 & *(exp(-0.66d0 *
ta_dgc(ikl,k))-1.d0)
2942 qs_frz = ps_frz *
dt__cm *flag_freeze
2943 qs_frz = min(qs_frz,
qr__cm(ikl,k))
2989 6022
format(/,
'CMiPhy STATISTICS' &
2990 & /,
'=================')
2992 6026
format(
' T_Air Qv Qw g/kg Qi g/kg CLOUDS % ' &
2993 & ,
' Qs g/kg Qr g/kg' &
3012 6023
format(i3,f6.1,f5.2,2f9.6,f9.1,2f9.3,8f9.6)
3017 6024
format( 8
x,
'Z [km]' &
3019 & ,
' RH.i.[%]' ,9
x &
3037 6025
format(i3,f11.3, 2f9.1,9
x, 2f9.1,8f9.6)
3094 flag_fall_i = qi__ok * ccniok
3099 fallvi(ikl,k) = flag_fall_i * 7.d2*di_pri &
3148 qirodz =
qi__cm(ikl,k) *a_rodz &
3150 qsrodz =
qs__cm(ikl,k) *a_rodz &
3152 qrrodz =
qr__cm(ikl,k) *a_rodz &
3158 & min(2.,qiflux /a_rodz )
3160 & min(2.,qsflux /a_rodz )
3162 & min(2.,qrflux /a_rodz )
3166 qiloss(k) = qirodz *iratio &
3168 qsloss(k) = qsrodz *sratio &
3170 qrloss(k) = qrrodz *rratio &
3175 qirodz = qirodz -
qiloss(k) &
3177 qsrodz = qsrodz -
qsloss(k) &
3179 qrrodz = qrrodz -
qrloss(k) &
3185 & (
ta__cm(ikl,k ) * a_rodz &
3190 qi__cm(ikl,k) = qirodz /a_rodz
3191 qs__cm(ikl,k) = qsrodz /a_rodz
3192 qr__cm(ikl,k) = qrrodz /a_rodz
3221 & +
qs__cm(ikl,k) * 0.33 &
3222 & * (1.-min(1.,exp((
ta__cm(ikl,k) -258.15)*0.1)))) &
3223 & / (0.02 *
qvswcm(ikl,k) )
3227 & +
qs__cm(ikl,k) -3.e-9 ))
3237 argexp= ((
rh_max -rhumid) * qvs_wi)**0.49
3239 & +
qs__cm(ikl,k) * 0.33 &
3240 & * (1.-min(1.,exp((
ta__cm(ikl,k)-258.15)*0.1)))) &
3243 cfracm(ikl,k) = ( rhumid ** 0.25 ) * ( 1. - exp(-argexp) )
3325 1030
format(//,i4,
'UT',i2,
'm',i2,
's (iter.',i6,
') / Pt.(',2i4,
')' &
3326 & ,/,
' ==========================================')
3332 &
' | Water Vapor | Cloud Ice, Time n & n+1', &
3333 &
' Cloud Ice Nucleation Processes |', &
3334 &
' Bergeron Sublimation Melting ', &
3335 & /,
' k z[m] | qv [g/kg] | qi_n [g/kg] qi_n+[g/kg]', &
3336 &
' QiHm1[g/kg] QiHm2[g/kg] QiCnd[g/kg] |', &
3337 &
' QiDep[g/kg] QiSub[g/kg] QiMlt[q/kg]', &
3338 & /,
'------------+--------------+-------------------------', &
3339 &
'-------------------------------------+', &
3340 &
'-------------------------------------', &
3341 & /,(i3,f8.1,
' | ',f12.6,
' | ',2f12.6,3d12.4,
' | ',3d12.4))
3350 &
' | Snow Flakes, Time n&n+1 Autoconver. |', &
3351 &
' Accretion Processes ===> Snow Flakes |', &
3352 &
' Sublimation | Term.F.Vel', &
3353 & /,
' k z[m] | qs_n [g/kg] qs_n+[g/kg] QsAUT[g/kg] |', &
3354 &
' Qsaci[g/kg] Qsacw[g/kg] Qiacr[g/kg] Qsacr[g/kg] |', &
3355 &
' QsSub[g/kg] | vs [m/s]', &
3356 & /,
'------------+--------------------------------------+', &
3357 &
'--------------------------------------------------+', &
3358 &
'--------------+-----------', &
3359 & /,(i3,f8.1,
' | ',2f12.6,e12.4,
' | ',4d12.4,
' | ',e12.4, &
3366 & /,
' | Temperat.| Cloud Water, Time n&n+1', &
3367 &
' Condens/Evp | Cloud ', &
3368 & /,
' k z[m] | T [K] | qw_n [g/kg] qw_n+[g/kg]', &
3369 &
' QwEvp[g/kg] | Fract.', &
3370 & /,
'------------+----------+-------------------------', &
3371 &
'-------------+-------', &
3372 & /,(i3,f8.1,
' | ',f8.3,
' | ',2f12.6,e12.4,
' | ',f5.1))
3381 & /,
' | Rain Drops, Time n&n+1 Autoconver. |', &
3382 &
' Accretion Processes ===> Rain Drops |', &
3383 &
' Evaporation Freezing | Term.F.Vel', &
3384 & /,
' k z[m] | qr_n [g/kg] qr_n+[g/kg] Qraut[g/kg] |', &
3385 &
' Qracw[g/kg] Qraci[g/kg] Qracs[g/kg] |', &
3386 &
' QrEvp[g/kg] QsFre[g/kg] | vr [m/s]', &
3387 & /,
'------------+--------------------------------------+', &
3388 &
'--------------------------------------+', &
3389 &
'--------------------------+-----------', &
3390 & /,(i3,f8.1,
' | ',2f12.6,e12.4,
' | ',3d12.4,
' | ',2d12.4, &
3430 606
format(i9,
' Before mPhy: E0 =',f12.6,
' W0 = ',f9.6,3
x,a20 &
3431 & ,3
x,/,9
x,
' Before Prec: E1 =',f12.6,
' W1 = ',f9.6 &
3432 & , /,9
x,
' After Prec: E2 =',f12.6,
' W2 = ',f9.6 &
3433 & ,
' W Flux =',f9.6 &
3434 & ,
' Div(W) =',e9.3)
3443 1037
format(/,
' Ice-Crystal mPhy ', &
3444 & 2
x,
' ',2
x,1
x,i2,
'h',i2,
'UT', &
3445 &
' -- Grid Point (',i5,
',',i5,
')', &
3446 & /,
' =========================================================='&
3447 & , /,
' | z [m] | T [K] | qi[g/kg] |' &
3448 & ,
' Ni [m-3] | Ni0[m-3] | vi [m/s] | qs[g/kg] |' &
3449 & , /,
'-----+---------+--------+----------+' &
3450 & ,
'----------+----------+----------+----------+')
3456 1038
format((i4,
' |' , f8.1,
' |',f7.2,
' |',f9.6,
' |', &
3457 & 2(d9.3,
' |'),2(f9.6,
' |')))
real(kind=real8), save r_1by3
real(kind=real8), save ea_min
real(kind=real8), save c_sund
real(kind=real8), dimension(31), save aa1
real(kind=real8), save rhcrit
real(kind=real8), dimension(:,:), allocatable, save qvswcm
real(kind=real8), save wa__hm
real(kind=real8), dimension(:,:), allocatable, save fallvr
real(kind=real8), save c2_ekm
real(kind=real8), dimension(:,:), allocatable, save fallvi
real(kind=real8), dimension(:,:), allocatable, save lamdas
real(kind=real8), save cc2
real(kind=real8), save un_1
real(kind=real8), dimension(:), allocatable, save qi_io0
real(kind=real8), dimension(:,:), allocatable, save qid_cm
real(kind=real8), dimension(:,:), allocatable, save kzh_at
real(kind=real8), dimension(:,:), allocatable, save qv__dy
real(kind=real8), dimension(:,:), allocatable, save qwd_cm
integer, dimension(npt_cm), save j0__cm
real(kind=real8), save qi0_dc
real(kind=real8), dimension(:,:), allocatable, save ta_dgc
real(kind=real8), dimension(:,:), allocatable, save qw__cm
real(kind=real8), dimension(:,:), allocatable, save ccnwcm
real(kind=real8), save tmaxhm
integer, parameter mz1_cm
real(kind=real8), save t_nuic
real(kind=real8), save c1_ekm
real(kind=real8), dimension(:,:), allocatable, save qr__cm
real(kind=real8), dimension(:), allocatable, save raincm
real(kind=real8), save qw_vol
real(kind=real8), save cfrmin
real(kind=real8), save pinmbr
real(kind=real8), dimension(:,:), allocatable, save ps_acr
real(kind=real8), dimension(:,:), allocatable, save cfracm
real(kind=real8), save b_nuic
real(kind=real8), save lc_cpd
real(kind=real8), save a_nuic
real(kind=real8), dimension(:), allocatable, save dsigmi
real(kind=real8), save a_nuid
real(kind=real8), save grav_i
real(kind=real8), dimension(:,:), allocatable, save ps_acw
real(kind=real8), save expwat
real(kind=real8), dimension(:,:), allocatable, save fletch
real(kind=real8), dimension(:), allocatable, save qrloss
real(kind=real8), dimension(:,:), allocatable, save qsieff
real(kind=real8), save t_nuid
integer, dimension(npt_cm), save i0__cm
real(kind=real8), save qs__d0
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
real(kind=real8), save rh_max
real(kind=real8), dimension(:,:), allocatable, save wa__dy
real(kind=real8), save qwturb
real(kind=real8), dimension(:,:), allocatable, save qvsicm
real(kind=real8), save r_dair
real(kind=real8), dimension(:,:), allocatable, save ccnicm
real(kind=real8), save n0___r
real(kind=real8), dimension(:), allocatable, save ice_cm
real(kind=real8), save tminhm
real(kind=real8), save rwcrit
real(kind=real8), dimension(:), allocatable, save qsloss
real(kind=real8), save watice
real(kind=real8), save di_hex
real(kind=real8), dimension(:,:), allocatable, save z___dy
real(kind=real8), save cc1
integer, parameter npt_cm
real(kind=real8), dimension(:,:), allocatable, save fallvs
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
real(kind=real8), save tqwfrz
real(kind=real8), dimension(:), allocatable, save qw_io0
real(kind=real8), save qv_min
real(kind=real8), dimension(:,:), allocatable, save roa_dy
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
real(kind=real8), dimension(:), allocatable, save snowcm
real(kind=real8), save r_1000
real(kind=real8), dimension(:), allocatable, save psa_dy
real(kind=real8), dimension(:,:), allocatable, save tke_at
real(kind=real8), save qismax
real(kind=real8), save epsq
real(kind=real8), save pt__dy
real(kind=real8), dimension(:), allocatable, save sigma
real(kind=real8), dimension(:,:), allocatable, save qi__cm
real(kind=real8), dimension(:), allocatable, save qiloss
integer, dimension(npt_cm), save ikl0cm
real(kind=real8), dimension(:,:), allocatable, save lamdar
real(kind=real8), dimension(:), allocatable, save qwloss
real(kind=real8), save tf_sno
real(kind=real8), save zer0
real(kind=real8), dimension(:,:), allocatable, save qs__cm
real(kind=real8), save b_nuid
real(kind=real8), dimension(:,:), allocatable, save ta__cm
real(kind=real8), save n0___s
real(kind=real8), save dd0
real(kind=real8), dimension(:,:), allocatable, save qr___0
real(kind=real8), dimension(:,:), allocatable, save qs___0
real(kind=real8), dimension(31), save aa2
real(kind=real8), save qw_max
real(kind=real8), dimension(:,:), allocatable, save fallvw
real(kind=real8), save ssimax
real(kind=real8), save epsn
real(kind=real8), save ls_cpd
real(kind=real8), dimension(:,:), allocatable, save sqrrro
real(kind=real8), save dt__cm
real(kind=real8), save ea_max
real(kind=real8), save lv_cpd
real(kind=real8), save expwa2