972 INTEGER,
INTENT( IN) :: i,j,istep,kts,kte
974 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3DTEN
975 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3DTEN
976 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3DTEN
977 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3DTEN
978 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3DTEN
979 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3DTEN
980 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3DTEN
981 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3D
982 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3D
983 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3D
984 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3D
985 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3D
986 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3D
987 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3D
988 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3DTEN
989 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3DTEN
990 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3D
991 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3D
992 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRES
993 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DZQ
994 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: W3D
995 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO_ERF
997 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3d
998 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3dten
999 integer,
intent(in) :: iinum
1002 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3DTEN
1003 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3DTEN
1004 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3D
1005 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3D
1009 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QGSTEN
1010 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QRSTEN
1011 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QISTEN
1012 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNISTEN
1013 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QCSTEN
1016 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qrcu1d
1017 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qscu1d
1018 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qicu1d
1022 REAL(C_DOUBLE) PRECRT
1023 REAL(C_DOUBLE) SNOWRT
1025 REAL(C_DOUBLE) SNOWPRT
1026 REAL(C_DOUBLE) GRPLPRT
1028 REAL(C_DOUBLE) RAINONLYPRT
1029 REAL(C_DOUBLE) SNOWONLYPRT
1031 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFC
1032 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFI
1033 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFS
1034 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFR
1035 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFG
1048 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMC
1049 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMI
1050 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMS
1051 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMR
1052 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMG
1053 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CDIST1
1054 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0I
1055 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0S
1056 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0RR
1057 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0G
1058 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGAM
1062 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBC
1063 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBI
1064 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBS
1065 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBR
1066 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRD
1067 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRE
1068 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDS
1069 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCC
1070 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCC
1071 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRA
1072 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRC
1073 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCC
1074 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCD
1075 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCD
1076 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCR
1077 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCR
1078 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRA
1079 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NRAGG
1080 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSAGG
1081 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC
1082 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC1
1083 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRAI
1084 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRCI
1085 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWS
1086 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWS
1087 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWI
1088 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWI
1089 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRCI
1090 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRAI
1091 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTS
1092 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTR
1093 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTS
1094 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTR
1095 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACS
1096 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACS
1097 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCCN
1098 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSMLT
1099 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMS
1100 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTS
1101 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTR
1103 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACR
1104 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACR
1105 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACI
1106 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACRS
1107 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACRS
1108 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACIS
1109 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRD
1110 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDS
1112 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACG
1113 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWG
1114 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGSACW
1115 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGRACS
1116 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDG
1117 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDG
1118 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMG
1119 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGMLT
1120 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACG
1121 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWG
1122 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSCNG
1123 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGRACS
1124 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTG
1125 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTR
1126 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBG
1127 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACR
1128 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTG
1129 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTRG
1130 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTG
1131 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTRG
1135 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: KAP
1136 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVS
1137 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EIS
1138 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVS
1139 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVI
1140 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVS
1141 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVSI
1142 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DV
1143 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLS
1144 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLV
1145 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CPM
1146 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MU
1147 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: SC
1148 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XLF
1149 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO
1150 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AB
1151 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: ABI
1155 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DAP
1156 REAL(C_DOUBLE) NACNT
1157 REAL(C_DOUBLE) FMULT
1158 REAL(C_DOUBLE) COFFI
1162 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMI,DUMR,DUMFNI,DUMG,DUMFNG
1163 REAL(C_DOUBLE) UNI, UMI,UMR
1164 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FR, FI, FNI,FG,FNG
1166 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FALOUTR,FALOUTI,FALOUTNI
1167 REAL(C_DOUBLE) FALTNDR,FALTNDI,FALTNDNI,RHO2
1168 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMQS,DUMFNS
1169 REAL(C_DOUBLE) UMS,UNS
1170 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FS,FNS, FALOUTS,FALOUTNS,FALOUTG
1171 REAL(C_DOUBLE) FALTNDS,FALTNDNS,UNR,FALTNDG,FALTNDNG
1172 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMC,DUMFNC
1173 REAL(C_DOUBLE) UNC,UMC,UNG,UMG
1174 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FC,FALOUTC,FALOUTNC
1175 REAL(C_DOUBLE) FALTNDC,FALTNDNC
1176 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNC,DUMFNR,FALOUTNR
1177 REAL(C_DOUBLE) FALTNDNR
1178 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNR
1182 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AIN,ARN,ASN,ACN,AGN
1192 REAL(C_DOUBLE) DUM,DUM1,DUM2,DUMT,DUMQV,DUMQSS,DUMQSI,DUMS
1196 REAL(C_DOUBLE) DQSDT
1197 REAL(C_DOUBLE) DQSIDT
1209 REAL(C_DOUBLE) DUMACT,DUM3
1225 REAL(C_DOUBLE) TEMP1
1227 REAL(C_DOUBLE) SIGVL
1231 REAL(C_DOUBLE) CRY,KRY
1235 REAL(C_DOUBLE) DUMQI,DUMNI,DC0,DS0,DG0
1236 REAL(C_DOUBLE) DUMQC,DUMQR,RATIO,SUM_DEP,FUDGEF
1243 REAL(C_DOUBLE) ANUC,BNUC
1247 REAL(C_DOUBLE) AACT,GAMM,GG,PSI,ETA1,ETA2,SM1,SM2,SMAX,UU1,UU2,ALPHA
1251 REAL(C_DOUBLE) DLAMS,DLAMR,DLAMI,DLAMC,DLAMG,LAMMAX,LAMMIN
1256 REAL(C_DOUBLE),
DIMENSION(KTS:KTE)::C2PREC,CSED,ISED,SSED,GSED,RSED
1257 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: tqimelt
1287 xxlv(k) = 3.1484e6-2370.*t3d(k)
1291 xxls(k) = 3.15e6-2370.*t3d(k)+0.3337e6
1293 cpm(k) = cp*(1.+0.887*qv3d(k))
1299 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
1300 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
1304 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
1306 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
1307 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
1309 qvqvs(k) = qv3d(k)/qvs(k)
1310 qvqvsi(k) = qv3d(k)/qvi(k)
1314 rho(k) = pres(k)/(r*t3d(k))
1321 IF (qrcu1d(k).GE.1.e-10)
THEN
1322 dum=1.8e5*(qrcu1d(k)*dt/(pi*rhow*rho(k)**3))**0.25
1325 IF (qscu1d(k).GE.1.e-10)
THEN
1326 dum=3.e5*(qscu1d(k)*dt/(cons1*rho(k)**3))**(1./(ds+1.))
1329 IF (qicu1d(k).GE.1.e-10)
THEN
1330 dum=qicu1d(k)*dt/(ci*(80.e-6)**di)
1337 IF (qvqvs(k).LT.0.9)
THEN
1338 IF (qr3d(k).LT.1.e-8)
THEN
1339 qv3d(k)=qv3d(k)+qr3d(k)
1340 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
1343 IF (qc3d(k).LT.1.e-8)
THEN
1344 qv3d(k)=qv3d(k)+qc3d(k)
1345 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
1350 IF (qvqvsi(k).LT.0.9)
THEN
1351 IF (qi3d(k).LT.1.e-8)
THEN
1352 qv3d(k)=qv3d(k)+qi3d(k)
1353 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
1356 IF (qni3d(k).LT.1.e-8)
THEN
1357 qv3d(k)=qv3d(k)+qni3d(k)
1358 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
1361 IF (qg3d(k).LT.1.e-8)
THEN
1362 qv3d(k)=qv3d(k)+qg3d(k)
1363 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
1370 xlf(k) = xxls(k)-xxlv(k)
1375 IF (qc3d(k).LT.qsmall)
THEN
1380 IF (qr3d(k).LT.qsmall)
THEN
1385 IF (qi3d(k).LT.qsmall)
THEN
1390 IF (qni3d(k).LT.qsmall)
THEN
1395 IF (qg3d(k).LT.qsmall)
THEN
1413 mu(k) = 1.496e-6*t3d(k)**1.5/(t3d(k)+120.)
1417 dum = (rhosu/rho(k))**0.54
1422 ain(k) = (rhosu/rho(k))**0.35*ai
1427 acn(k) = g*rhow/(18.*mu(k))
1437 IF ( qc3d(k).LT.qsmall.AND. &
1438 qi3d(k).LT.qsmall.AND. &
1439 qni3d(k).LT.qsmall.AND. &
1440 qr3d(k).LT.qsmall.AND. &
1441 qg3d(k).LT.qsmall)
THEN
1442 IF (t3d(k).LT.273.15.AND.qvqvsi(k).LT.0.999)
then
1445 IF (t3d(k).GE.273.15.AND.qvqvs(k).LT.0.999)
then
1453 kap(k) = 1.414e3*mu(k)
1457 dv(k) = 8.794e-5*t3d(k)**1.81/pres(k)
1462 sc(k) = mu(k)/(rho(k)*dv(k))
1468 dum = (rv*t3d(k)**2)
1470 dqsdt = xxlv(k)*qvs(k)/dum
1471 dqsidt = xxls(k)*qvi(k)/dum
1473 abi(k) = 1.+dqsidt*xxls(k)/cpm(k)
1474 ab(k) = 1.+dqsdt*xxlv(k)/cpm(k)
1480 IF (t3d(k).GE.273.15)
THEN
1487 IF (iinum.EQ.1)
THEN
1489 nc3d(k)=ndcnst*1.e6/rho_erf(k)
1495 IF (qni3d(k).LT.1.e-6)
THEN
1496 qr3d(k)=qr3d(k)+qni3d(k)
1497 nr3d(k)=nr3d(k)+ns3d(k)
1498 t3d(k)=t3d(k)-qni3d(k)*xlf(k)/cpm(k)
1502 IF (qg3d(k).LT.1.e-6)
THEN
1503 qr3d(k)=qr3d(k)+qg3d(k)
1504 nr3d(k)=nr3d(k)+ng3d(k)
1505 t3d(k)=t3d(k)-qg3d(k)*xlf(k)/cpm(k)
1509 IF (qc3d(k).LT.qsmall.AND.qni3d(k).LT.1.e-8.AND.qr3d(k).LT.qsmall.AND.qg3d
THEN
1515 ns3d(k) = max(0.,ns3d(k))
1516 nc3d(k) = max(0.,nc3d(k))
1517 nr3d(k) = max(0.,nr3d(k))
1518 ng3d(k) = max(0.,ng3d(k))
1523 IF (qr3d(k).GE.qsmall)
THEN
1524 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
1525 n0rr(k) = nr3d(k)*lamr(k)
1531 IF (lamr(k).LT.lamminr)
THEN
1535 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1537 nr3d(k) = n0rr(k)/lamr(k)
1538 ELSE IF (lamr(k).GT.lammaxr)
THEN
1540 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1542 nr3d(k) = n0rr(k)/lamr(k)
1551 IF (qc3d(k).GE.qsmall)
THEN
1553 dum = pres(k)/(287.15*t3d(k))
1554 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
1555 pgam(k)=1./(pgam(k)**2)-1.
1556 pgam(k)=max(pgam(k),2.)
1557 pgam(k)=min(pgam(k),10.)
1561 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
1562 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
1567 lammin = (pgam(k)+1.)/60.e-6
1568 lammax = (pgam(k)+1.)/1.e-6
1570 IF (lamc(k).LT.lammin)
THEN
1573 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1574 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1575 ELSE IF (lamc(k).GT.lammax)
THEN
1578 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1579 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1588 IF (qni3d(k).GE.qsmall)
THEN
1589 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
1590 n0s(k) = ns3d(k)*lams(k)
1596 IF (lams(k).LT.lammins)
THEN
1598 n0s(k) = lams(k)**4*qni3d(k)/cons1
1600 ns3d(k) = n0s(k)/lams(k)
1602 ELSE IF (lams(k).GT.lammaxs)
THEN
1605 n0s(k) = lams(k)**4*qni3d(k)/cons1
1607 ns3d(k) = n0s(k)/lams(k)
1614 IF (qg3d(k).GE.qsmall)
THEN
1615 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
1616 n0g(k) = ng3d(k)*lamg(k)
1620 IF (lamg(k).LT.lamming)
THEN
1622 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1624 ng3d(k) = n0g(k)/lamg(k)
1626 ELSE IF (lamg(k).GT.lammaxg)
THEN
1629 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1631 ng3d(k) = n0g(k)/lamg(k)
1673 IF (qc3d(k).GE.1.e-6)
THEN
1678 prc(k)=1350.*qc3d(k)**2.47* &
1679 (nc3d(k)/1.e6*rho(k))**(-1.79)
1684 nprc1(k) = prc(k)/cons29
1685 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
1688 nprc(k) = min(nprc(k),nc3d(k)/dt)
1689 nprc1(k) = min(nprc1(k),nprc(k))
1697 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
1699 ums = asn(k)*cons3/(lams(k)**bs)
1700 umr = arn(k)*cons4/(lamr(k)**br)
1701 uns = asn(k)*cons5/lams(k)**bs
1702 unr = arn(k)*cons6/lamr(k)**br
1707 dum=(rhosu/rho(k))**0.54
1708 ums=min(ums,1.2*dum)
1709 uns=min(uns,1.2*dum)
1710 umr=min(umr,9.1*dum)
1711 unr=min(unr,9.1*dum)
1723 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
1724 0.08*ums*umr)**0.5*rho(k)* &
1725 n0rr(k)*n0s(k)/lamr(k)**3*
1726 (5./(lamr(k)**3*lams(k))+ &
1727 2./(lamr(k)**2*lams(k)**2)+ &
1728 0.5/(lamr(k)*lams(k)**3)))
1743 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
1745 umg = agn(k)*cons7/(lamg(k)**bg)
1746 umr = arn(k)*cons4/(lamr(k)**br)
1747 ung = agn(k)*cons8/lamg(k)**bg
1748 unr = arn(k)*cons6/lamr(k)**br
1752 dum=(rhosu/rho(k))**0.54
1753 umg=min(umg,20.*dum)
1754 ung=min(ung,20.*dum)
1755 umr=min(umr,9.1*dum)
1756 unr=min(unr,9.1*dum)
1759 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
1760 0.08*umg*umr)**0.5*rho(k)* &
1761 n0rr(k)*n0g(k)/lamr(k)**3*
1762 (5./(lamr(k)**3*lamg(k))+ &
1763 2./(lamr(k)**2*lamg(k)**2)+
1764 0.5/(lamr(k)*lamg(k)**3)))
1768 dum = pracg(k)/5.2e-7
1770 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
1771 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
1772 (1./(lamr(k)**3*lamg(k))+ &
1773 1./(lamr(k)**2*lamg(k)**2)+ &
1774 1./(lamr(k)*lamg(k)**3))
1779 npracg(k)=npracg(k)-dum
1788 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
1793 dum=(qc3d(k)*qr3d(k))
1794 pra(k) = 67.*(dum)**1.15
1795 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
1804 IF (qr3d(k).GE.1.e-8)
THEN
1807 if (1./lamr(k).lt.dum1)
then
1809 else if (1./lamr(k).ge.dum1)
then
1810 dum=2.-exp(2300.*(1./lamr(k)-dum1))
1813 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
1819 IF (qr3d(k).GE.qsmall)
THEN
1820 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
1821 (f1r/(lamr(k)*lamr(k))+ &
1822 f2r*(arn(k)*rho(k)/mu(k))**0.5*
1823 sc(k)**(1./3.)*cons9/ &
1830 IF (qv3d(k).LT.qvs(k))
THEN
1831 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
1832 pre(k) = min(pre(k),0.)
1842 IF (qni3d(k).GE.1.e-8)
THEN
1847 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracs(k)
1855 psmlt(k)=2.*pi*n0s(k)*kap(k)*(273.15-t3d(k))/ &
1856 xlf(k)*(f1s/(lams(k)*lams(k))+ &
1857 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1858 sc(k)**(1./3.)*cons10/ &
1859 (lams(k)**cons35))+dum
1863 IF (qvqvs(k).LT.1.)
THEN
1864 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
1865 (f1s/(lams(k)*lams(k))+ &
1866 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1867 sc(k)**(1./3.)*cons10/ &
1870 evpms(k) = (qv3d(k)-qvs(k))*epss/ab(k)
1871 evpms(k) = max(evpms(k),psmlt(k))
1872 psmlt(k) = psmlt(k)-evpms(k)
1882 IF (qg3d(k).GE.1.e-8)
THEN
1887 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracg(k)
1895 pgmlt(k)=2.*pi*n0g(k)*kap(k)*(273.15-t3d(k))/
1896 xlf(k)*(f1s/(lamg(k)*lamg(k))+ &
1897 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1898 sc(k)**(1./3.)*cons11/ &
1899 (lamg(k)**cons36))+dum
1903 IF (qvqvs(k).LT.1.)
THEN
1904 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
1905 (f1s/(lamg(k)*lamg(k))+
1906 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1907 sc(k)**(1./3.)*cons11/ &
1910 evpmg(k) = (qv3d(k)-qvs(k))*epsg/ab(k)
1911 evpmg(k) = max(evpmg(k),pgmlt(k))
1912 pgmlt(k) = pgmlt(k)-evpmg(k)
1932 dum = (prc(k)+pra(k))*dt
1934 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
1938 prc(k) = prc(k)*ratio
1939 pra(k) = pra(k)*ratio
1945 dum = (-psmlt(k)-evpms(k)+pracs(k))*dt
1947 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
1950 ratio = qni3d(k)/dum
1952 psmlt(k) = psmlt(k)*ratio
1953 evpms(k) = evpms(k)*ratio
1954 pracs(k) = pracs(k)*ratio
1960 dum = (-pgmlt(k)-evpmg(k)+pracg(k))*dt
1962 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
1967 pgmlt(k) = pgmlt(k)*ratio
1968 evpmg(k) = evpmg(k)*ratio
1969 pracg(k) = pracg(k)*ratio
1976 dum = (-pracs(k)-pracg(k)-pre(k)-pra(k)-prc(k)+psmlt(k)+pgmlt(k)
1978 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
1980 ratio = (qr3d(k)/dt+pracs(k)+pracg(k)+pra(k)+prc(k)-psmlt(k)-pgmlt
1982 pre(k) = pre(k)*ratio
1987 qv3dten(k) = qv3dten(k)+(-pre(k)-evpms(k)-evpmg(k))
1989 t3dten(k) = t3dten(k)+(pre(k)*xxlv(k)+(evpms(k)+evpmg(k))*xxls(k)+
1990 (psmlt(k)+pgmlt(k)-pracs(k)-pracg(k))*xlf(k))/cpm(k)
1992 qc3dten(k) = qc3dten(k)+(-pra(k)-prc(k))
1993 qr3dten(k) = qr3dten(k)+(pre(k)+pra(k)+prc(k)-psmlt(k)-pgmlt(k)+pracs
1994 qni3dten(k) = qni3dten(k)+(psmlt(k)+evpms(k)-pracs(k))
1995 qg3dten(k) = qg3dten(k)+(pgmlt(k)+evpmg(k)-pracg(k))
2000 nc3dten(k) = nc3dten(k)+ (-npra(k)-nprc(k))
2001 nr3dten(k) = nr3dten(k)+ (nprc1(k)+nragg(k)-npracg(k))
2005 c2prec(k) = pra(k)+prc(k)
2006 IF (pre(k).LT.0.)
THEN
2007 dum = pre(k)*dt/qr3d(k)
2009 nsubr(k) = dum*nr3d(k)/dt
2012 IF (evpms(k)+psmlt(k).LT.0.)
THEN
2013 dum = (evpms(k)+psmlt(k))*dt/qni3d(k)
2015 nsmlts(k) = dum*ns3d(k)/dt
2017 IF (psmlt(k).LT.0.)
THEN
2018 dum = psmlt(k)*dt/qni3d(k)
2020 nsmltr(k) = dum*ns3d(k)/dt
2022 IF (evpmg(k)+pgmlt(k).LT.0.)
THEN
2023 dum = (evpmg(k)+pgmlt(k))*dt/qg3d(k)
2025 ngmltg(k) = dum*ng3d(k)/dt
2027 IF (pgmlt(k).LT.0.)
THEN
2028 dum = pgmlt(k)*dt/qg3d(k)
2030 ngmltr(k) = dum*ng3d(k)/dt
2033 ns3dten(k) = ns3dten(k)+(nsmlts(k))
2034 ng3dten(k) = ng3dten(k)+(ngmltg(k))
2035 nr3dten(k) = nr3dten(k)+(nsubr(k)-nsmltr(k)-ngmltr(k))
2043 dumt = t3d(k)+dt*t3dten(k)
2044 dumqv = qv3d(k)+dt*qv3dten(k)
2046 dum=min(0.99*pres(k),polysvp(dumt,0))
2047 dumqss = ep_2*dum/(pres(k)-dum)
2048 dumqc = qc3d(k)+dt*qc3dten(k)
2049 dumqc = max(dumqc,0.)
2054 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
2055 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
2059 qv3dten(k) = qv3dten(k)-pcc(k)
2060 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
2061 qc3dten(k) = qc3dten(k)+pcc(k)
2091 IF (iinum.EQ.1)
THEN
2093 nc3d(k)=ndcnst*1.e6/rho_erf(k)
2099 ni3d(k) = max(0.,ni3d(k))
2100 ns3d(k) = max(0.,ns3d(k))
2101 nc3d(k) = max(0.,nc3d(k))
2102 nr3d(k) = max(0.,nr3d(k))
2103 ng3d(k) = max(0.,ng3d(k))
2108 IF (qi3d(k).GE.qsmall)
THEN
2109 lami(k) = (cons12* &
2110 ni3d(k)/qi3d(k))**(1./di)
2111 n0i(k) = ni3d(k)*lami(k)
2117 IF (lami(k).LT.lammini)
THEN
2121 n0i(k) = lami(k)**4*qi3d(k)/cons12
2123 ni3d(k) = n0i(k)/lami(k)
2124 ELSE IF (lami(k).GT.lammaxi)
THEN
2126 n0i(k) = lami(k)**4*qi3d(k)/cons12
2128 ni3d(k) = n0i(k)/lami(k)
2135 IF (qr3d(k).GE.qsmall)
THEN
2136 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
2137 n0rr(k) = nr3d(k)*lamr(k)
2143 IF (lamr(k).LT.lamminr)
THEN
2147 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2149 nr3d(k) = n0rr(k)/lamr(k)
2150 ELSE IF (lamr(k).GT.lammaxr)
THEN
2152 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2154 nr3d(k) = n0rr(k)/lamr(k)
2162 IF (qc3d(k).GE.qsmall)
THEN
2164 dum = pres(k)/(287.15*t3d(k))
2165 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
2166 pgam(k)=1./(pgam(k)**2)-1.
2167 pgam(k)=max(pgam(k),2.)
2168 pgam(k)=min(pgam(k),10.)
2172 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
2173 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
2178 lammin = (pgam(k)+1.)/60.e-6
2179 lammax = (pgam(k)+1.)/1.e-6
2181 IF (lamc(k).LT.lammin)
THEN
2184 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2185 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2186 ELSE IF (lamc(k).GT.lammax)
THEN
2188 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2189 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2195 cdist1(k) = nc3d(k)/gamma(pgam(k)+1.)
2202 IF (qni3d(k).GE.qsmall)
THEN
2203 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
2204 n0s(k) = ns3d(k)*lams(k)
2210 IF (lams(k).LT.lammins)
THEN
2212 n0s(k) = lams(k)**4*qni3d(k)/cons1
2214 ns3d(k) = n0s(k)/lams(k)
2216 ELSE IF (lams(k).GT.lammaxs)
THEN
2219 n0s(k) = lams(k)**4*qni3d(k)/cons1
2221 ns3d(k) = n0s(k)/lams(k)
2228 IF (qg3d(k).GE.qsmall)
THEN
2229 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
2230 n0g(k) = ng3d(k)*lamg(k)
2236 IF (lamg(k).LT.lamming)
THEN
2238 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2240 ng3d(k) = n0g(k)/lamg(k)
2242 ELSE IF (lamg(k).GT.lammaxg)
THEN
2245 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2247 ng3d(k) = n0g(k)/lamg(k)
2320 IF (qc3d(k).GE.qsmall .AND. t3d(k).LT.269.15)
THEN
2327 nacnt = exp(-2.80+0.262*(273.15-t3d(k)))*1000.
2339 dum = 7.37*t3d(k)/(288.*10.*pres(k))/100.
2344 dap(k) = cons37*t3d(k)*(1.+dum/rin)/mu(k)
2346 mnuccc(k) = cons38*dap(k)*nacnt*exp(log(cdist1(k))+ &
2347 log(gamma(pgam(k)+5.))-4.*log(lamc(k)))
2348 nnuccc(k) = 2.*pi*dap(k)*nacnt*cdist1(k)* &
2349 gamma(pgam(k)+2.)/ &
2363 mnuccc(k) = mnuccc(k)+cons39* &
2364 exp(log(cdist1(k))+log(gamma(7.+pgam(k)))-6.*log(lamc(k
2365 (exp(aimm*(273.15-t3d(k)))-1.)
2367 nnuccc(k) = nnuccc(k)+ &
2368 cons40*exp(log(cdist1(k))+log(gamma(pgam(k)+4.))-3.*log(lamc
2369 *(exp(aimm*(273.15-t3d(k)))-1.)
2374 nnuccc(k) = min(nnuccc(k),nc3d(k)/dt)
2388 IF (qc3d(k).GE.1.e-6)
THEN
2393 prc(k)=1350.*qc3d(k)**2.47* &
2394 (nc3d(k)/1.e6*rho(k))**(-1.79)
2399 nprc1(k) = prc(k)/cons29
2400 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
2403 nprc(k) = min(nprc(k),nc3d(k)/dt)
2404 nprc1(k) = min(nprc1(k),nprc(k))
2413 IF (qni3d(k).GE.1.e-8)
THEN
2414 nsagg(k) = cons15*asn(k)*rho(k)** &
2415 ((2.+bs)/3.)*qni3d(k)**((2.+bs)/3.)* &
2416 (ns3d(k)*rho(k))**((4.-bs)/3.)/ &
2427 IF (qni3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2429 psacws(k) = cons13*asn(k)*qc3d(k)*rho(k)* &
2432 npsacws(k) = cons13*asn(k)*nc3d(k)*rho(k)* &
2441 IF (qg3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2443 psacwg(k) = cons14*agn(k)*qc3d(k)*rho(k)* &
2446 npsacwg(k) = cons14*agn(k)*nc3d(k)*rho(k)* &
2457 IF (qi3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2462 IF (1./lami(k).GE.100.e-6)
THEN
2464 psacwi(k) = cons16*ain(k)*qc3d(k)*rho(k)* &
2467 npsacwi(k) = cons16*ain(k)*nc3d(k)*rho(k)* &
2477 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
2479 ums = asn(k)*cons3/(lams(k)**bs)
2480 umr = arn(k)*cons4/(lamr(k)**br)
2481 uns = asn(k)*cons5/lams(k)**bs
2482 unr = arn(k)*cons6/lamr(k)**br
2487 dum=(rhosu/rho(k))**0.54
2488 ums=min(ums,1.2*dum)
2489 uns=min(uns,1.2*dum)
2490 umr=min(umr,9.1*dum)
2491 unr=min(unr,9.1*dum)
2493 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
2494 0.08*ums*umr)**0.5*rho(k)* &
2495 n0rr(k)*n0s(k)/lamr(k)**3*
2496 (5./(lamr(k)**3*lams(k))+ &
2497 2./(lamr(k)**2*lams(k)**2)+ &
2498 0.5/(lamr(k)*lams(k)**3)))
2500 npracs(k) = cons32*rho(k)*(1.7*(unr-uns)**2+ &
2501 0.3*unr*uns)**0.5*n0rr(k)*n0s(k)* &
2502 (1./(lamr(k)**3*lams(k))+ &
2503 1./(lamr(k)**2*lams(k)**2)+ &
2504 1./(lamr(k)*lams(k)**3))
2510 pracs(k) = min(pracs(k),qr3d(k)/dt)
2517 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2518 psacr(k) = cons31*(((1.2*umr-0.95*ums)**2+ &
2519 0.08*ums*umr)**0.5*rho(k)* &
2520 n0rr(k)*n0s(k)/lams(k)**3*
2521 (5./(lams(k)**3*lamr(k))+ &
2522 2./(lams(k)**2*lamr(k)**2)+ &
2523 0.5/(lams(k)*lamr(k)**3)))
2533 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
2535 umg = agn(k)*cons7/(lamg(k)**bg)
2536 umr = arn(k)*cons4/(lamr(k)**br)
2537 ung = agn(k)*cons8/lamg(k)**bg
2538 unr = arn(k)*cons6/lamr(k)**br
2542 dum=(rhosu/rho(k))**0.54
2543 umg=min(umg,20.*dum)
2544 ung=min(ung,20.*dum)
2545 umr=min(umr,9.1*dum)
2546 unr=min(unr,9.1*dum)
2548 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
2549 0.08*umg*umr)**0.5*rho(k)* &
2550 n0rr(k)*n0g(k)/lamr(k)**3*
2551 (5./(lamr(k)**3*lamg(k))+ &
2552 2./(lamr(k)**2*lamg(k)**2)+
2553 0.5/(lamr(k)*lamg(k)**3)))
2555 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
2556 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
2557 (1./(lamr(k)**3*lamg(k))+ &
2558 1./(lamr(k)**2*lamg(k)**2)+ &
2559 1./(lamr(k)*lamg(k)**3))
2565 pracg(k) = min(pracg(k),qr3d(k)/dt)
2581 IF (qni3d(k).GE.0.1e-3)
THEN
2582 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2583 IF (psacws(k).GT.0..OR.pracs(k).GT.0.)
THEN
2584 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2586 IF (t3d(k).GT.270.16)
THEN
2588 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2589 fmult = (270.16-t3d(k))/2.
2590 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2591 fmult = (t3d(k)-265.16)/3.
2592 ELSE IF (t3d(k).LT.265.16)
THEN
2600 IF (psacws(k).GT.0.)
THEN
2601 nmults(k) = 35.e4*psacws(k)*fmult*1000.
2602 qmults(k) = nmults(k)*mmult
2607 qmults(k) = min(qmults(k),psacws(k))
2608 psacws(k) = psacws(k)-qmults(k)
2614 IF (pracs(k).GT.0.)
THEN
2615 nmultr(k) = 35.e4*pracs(k)*fmult*1000.
2616 qmultr(k) = nmultr(k)*mmult
2621 qmultr(k) = min(qmultr(k),pracs(k))
2623 pracs(k) = pracs(k)-qmultr(k)
2644 IF (qg3d(k).GE.0.1e-3)
THEN
2645 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2646 IF (psacwg(k).GT.0..OR.pracg(k).GT.0.)
THEN
2647 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2649 IF (t3d(k).GT.270.16)
THEN
2651 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2652 fmult = (270.16-t3d(k))/2.
2653 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2654 fmult = (t3d(k)-265.16)/3.
2655 ELSE IF (t3d(k).LT.265.16)
THEN
2663 IF (psacwg(k).GT.0.)
THEN
2664 nmultg(k) = 35.e4*psacwg(k)*fmult*1000.
2665 qmultg(k) = nmultg(k)*mmult
2670 qmultg(k) = min(qmultg(k),psacwg(k))
2671 psacwg(k) = psacwg(k)-qmultg(k)
2677 IF (pracg(k).GT.0.)
THEN
2678 nmultrg(k) = 35.e4*pracg(k)*fmult*1000.
2679 qmultrg(k) = nmultrg(k)*mmult
2684 qmultrg(k) = min(qmultrg(k),pracg(k))
2685 pracg(k) = pracg(k)-qmultrg(k)
2698 IF (psacws(k).GT.0.)
THEN
2700 IF (qni3d(k).GE.0.1e-3.AND.qc3d(k).GE.0.5e-3)
THEN
2703 pgsacw(k) = min(psacws(k),cons17*dt*n0s(k)*qc3d(k)*qc3d(k)*
2705 (rho(k)*lams(k)**(2.*bs+2.)))
2708 dum = max(rhosn/(rhog-rhosn)*pgsacw(k),0.)
2711 nscng(k) = dum/mg0*rho(k)
2713 nscng(k) = min(nscng(k),ns3d(k)/dt)
2716 psacws(k) = psacws(k) - pgsacw(k)
2722 IF (pracs(k).GT.0.)
THEN
2724 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2726 dum = cons18*(4./lams(k))**3*(4./lams(k))**3 &
2727 /(cons18*(4./lams(k))**3*(4./lams(k))**3+ &
2728 cons19*(4./lamr(k))**3*(4./lamr(k))**3)
2731 pgracs(k) = (1.-dum)*pracs(k)
2732 ngracs(k) = (1.-dum)*npracs(k)
2734 ngracs(k) = min(ngracs(k),nr3d(k)/dt)
2735 ngracs(k) = min(ngracs(k),ns3d(k)/dt)
2738 pracs(k) = pracs(k) - pgracs(k)
2739 npracs(k) = npracs(k) - ngracs(k)
2741 psacr(k)=psacr(k)*(1.-dum)
2750 IF (t3d(k).LT.269.15.AND.qr3d(k).GE.qsmall)
THEN
2759 mnuccr(k) = cons20*nr3d(k)*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2762 nnuccr(k) = pi*nr3d(k)*bimm*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2765 nnuccr(k) = min(nnuccr(k),nr3d(k)/dt)
2774 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
2779 dum=(qc3d(k)*qr3d(k))
2780 pra(k) = 67.*(dum)**1.15
2781 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
2790 IF (qr3d(k).GE.1.e-8)
THEN
2793 if (1./lamr(k).lt.dum1)
then
2795 else if (1./lamr(k).ge.dum1)
then
2796 dum=2.-exp(2300.*(1./lamr(k)-dum1))
2799 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
2808 IF (qi3d(k).GE.1.e-8 .AND.qvqvsi(k).GE.1.)
THEN
2812 nprci(k) = cons21*(qv3d(k)-qvi(k))*rho(k)
2813 *n0i(k)*exp(-lami(k)*dcs)*dv(k)/abi(k)
2814 prci(k) = cons22*nprci(k)
2815 nprci(k) = min(nprci(k),ni3d(k)/dt)
2825 IF (qni3d(k).GE.1.e-8 .AND. qi3d(k).GE.qsmall)
THEN
2826 prai(k) = cons23*asn(k)*qi3d(k)*rho(k)*n0s(k)/ &
2828 nprai(k) = cons23*asn(k)*ni3d(k)*
2831 nprai(k)=min(nprai(k),ni3d(k)/dt)
2839 IF (qr3d(k).GE.1.e-8.AND.qi3d(k).GE.1.e-8.AND.t3d(k).LE.273.15)
THEN
2844 IF (qr3d(k).GE.0.1e-3)
THEN
2845 niacr(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2846 /lamr(k)**(br+3.)*rho(k)
2847 piacr(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2848 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2849 praci(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2850 lamr(k)**(br+3.)*rho(k)
2851 niacr(k)=min(niacr(k),nr3d(k)/dt)
2852 niacr(k)=min(niacr(k),ni3d(k)/dt)
2854 niacrs(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2855 /lamr(k)**(br+3.)*rho(k)
2856 piacrs(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2857 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2858 pracis(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2859 lamr(k)**(br+3.)*rho(k)
2860 niacrs(k)=min(niacrs(k),nr3d(k)/dt)
2861 niacrs(k)=min(niacrs(k),ni3d(k)/dt)
2872 if ((qvqvs(k).GE.0.999.and.t3d(k).le.265.15).or. &
2873 qvqvsi(k).ge.1.08)
then
2876 kc2 = 0.005*exp(0.304*(273.15-t3d(k)))*1000.
2878 kc2 = min(kc2,500.e3)
2879 kc2=max(kc2/rho(k),0.)
2881 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2882 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2883 mnuccd(k) = nnuccd(k)*mi0
2888 ELSE IF (inuc.EQ.1)
THEN
2890 IF (t3d(k).LT.273.15.AND.qvqvsi(k).GT.1.)
THEN
2892 kc2 = 0.16*1000./rho(k)
2893 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2894 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2895 mnuccd(k) = nnuccd(k)*mi0
2910 IF (qi3d(k).GE.qsmall)
THEN
2912 epsi = 2.*pi*n0i(k)*rho(k)*dv(k)/(lami(k)*lami(k))
2918 IF (qni3d(k).GE.qsmall)
THEN
2919 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
2920 (f1s/(lams(k)*lams(k))+ &
2921 f2s*(asn(k)*rho(k)/mu(k))**0.5*
2922 sc(k)**(1./3.)*cons10/ &
2928 IF (qg3d(k).GE.qsmall)
THEN
2929 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
2930 (f1s/(lamg(k)*lamg(k))+
2931 f2s*(agn(k)*rho(k)/mu(k))**0.5*
2932 sc(k)**(1./3.)*cons11/ &
2940 IF (qr3d(k).GE.qsmall)
THEN
2941 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
2942 (f1r/(lamr(k)*lamr(k))+ &
2943 f2r*(arn(k)*rho(k)/mu(k))**0.5*
2944 sc(k)**(1./3.)*cons9/ &
2954 IF (qi3d(k).GE.qsmall)
THEN
2955 dum=(1.-exp(-lami(k)*dcs)*(1.+lami(k)*dcs))
2956 prd(k) = epsi*(qv3d(k)-qvi(k))/abi(k)*dum
2961 IF (qni3d(k).GE.qsmall)
THEN
2962 prds(k) = epss*(qv3d(k)-qvi(k))/abi(k)+ &
2963 epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2966 prd(k) = prd(k)+epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2969 prdg(k) = epsg*(qv3d(k)-qvi(k))/abi(k)
2973 IF (qv3d(k).LT.qvs(k))
THEN
2974 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
2975 pre(k) = min(pre(k),0.)
2983 dum = (qv3d(k)-qvi(k))/dt
2986 sum_dep = prd(k)+prds(k)+mnuccd(k)+prdg(k)
2988 IF( (dum.GT.0. .AND. sum_dep.GT.dum*fudgef) .OR.
2989 (dum.LT.0. .AND. sum_dep.LT.dum*fudgef) )
THEN
2990 mnuccd(k) = fudgef*mnuccd(k)*dum/sum_dep
2991 prd(k) = fudgef*prd(k)*dum/sum_dep
2992 prds(k) = fudgef*prds(k)*dum/sum_dep
2993 prdg(k) = fudgef*prdg(k)*dum/sum_dep
2998 IF (prd(k).LT.0.)
THEN
3002 IF (prds(k).LT.0.)
THEN
3006 IF (prdg(k).LT.0.)
THEN
3038 IF (igraup.EQ.1)
THEN
3054 piacrs(k)=piacrs(k)+piacr(k)
3057 pracis(k)=pracis(k)+praci(k)
3059 psacws(k)=psacws(k)+pgsacw(k)
3061 pracs(k)=pracs(k)+pgracs(k)
3067 dum = (prc(k)+pra(k)+mnuccc(k)+psacws(k)+psacwi(k)+qmults(k)+psacwg
3069 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
3072 prc(k) = prc(k)*ratio
3073 pra(k) = pra(k)*ratio
3074 mnuccc(k) = mnuccc(k)*ratio
3075 psacws(k) = psacws(k)*ratio
3076 psacwi(k) = psacwi(k)*ratio
3077 qmults(k) = qmults(k)*ratio
3078 qmultg(k) = qmultg(k)*ratio
3079 psacwg(k) = psacwg(k)*ratio
3080 pgsacw(k) = pgsacw(k)*ratio
3085 dum = (-prd(k)-mnuccc(k)+prci(k)+prai(k)-qmults(k)-qmultg(k)-qmultr
3086 -mnuccd(k)+praci(k)+pracis(k)-eprd(k)-psacwi(k))*dt
3088 IF (dum.GT.qi3d(k).AND.qi3d(k).GE.qsmall)
THEN
3090 ratio = (qi3d(k)/dt+prd(k)+mnuccc(k)+qmults(k)+qmultg(k)+qmultr(k
3091 mnuccd(k)+psacwi(k))/ &
3092 (prci(k)+prai(k)+praci(k)+pracis(k)-eprd(k))
3094 prci(k) = prci(k)*ratio
3095 prai(k) = prai(k)*ratio
3096 praci(k) = praci(k)*ratio
3097 pracis(k) = pracis(k)*ratio
3098 eprd(k) = eprd(k)*ratio
3104 dum=((pracs(k)-pre(k))+(qmultr(k)+qmultrg(k)-prc(k))+(mnuccr(k)-pra
3105 piacr(k)+piacrs(k)+pgracs(k)+pracg(k))*dt
3107 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
3109 ratio = (qr3d(k)/dt+prc(k)+pra(k))/ &
3110 (-pre(k)+qmultr(k)+qmultrg(k)+pracs(k)+mnuccr(k)+piacr(k)+piacrs
3112 pre(k) = pre(k)*ratio
3113 pracs(k) = pracs(k)*ratio
3114 qmultr(k) = qmultr(k)*ratio
3115 qmultrg(k) = qmultrg(k)*ratio
3116 mnuccr(k) = mnuccr(k)*ratio
3117 piacr(k) = piacr(k)*ratio
3118 piacrs(k) = piacrs(k)*ratio
3119 pgracs(k) = pgracs(k)*ratio
3120 pracg(k) = pracg(k)*ratio
3127 IF (igraup.EQ.0)
THEN
3129 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3131 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3133 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3135 eprds(k) = eprds(k)*ratio
3136 psacr(k) = psacr(k)*ratio
3141 ELSE IF (igraup.EQ.1)
THEN
3143 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3145 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3147 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3149 eprds(k) = eprds(k)*ratio
3150 psacr(k) = psacr(k)*ratio
3158 dum = (-psacwg(k)-pracg(k)-pgsacw(k)-pgracs(k)-prdg(k)-mnuccr(k)-eprdg
3160 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
3162 ratio = (qg3d(k)/dt+psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+prdg(k
3163 piacr(k)+praci(k))/(-eprdg(k))
3165 eprdg(k) = eprdg(k)*ratio
3171 qv3dten(k) = qv3dten(k)+(-pre(k)-prd(k)-prds(k)-mnuccd(k)-eprd(k)-eprds
3174 t3dten(k) = t3dten(k)+(pre(k) &
3175 *xxlv(k)+(prd(k)+prds(k)+ &
3176 mnuccd(k)+eprd(k)+eprds(k)+prdg(k)+eprdg(k))*xxls(k)+
3177 (psacws(k)+psacwi(k)+mnuccc(k)+mnuccr(k)+
3178 qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+pracs(k) &
3179 +psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+piacr(k)+piacrs(k
3181 qc3dten(k) = qc3dten(k)+ &
3182 (-pra(k)-prc(k)-mnuccc(k)+pcc(k)- &
3183 psacws(k)-psacwi(k)-qmults(k)-qmultg(k)-psacwg(k)-pgsacw
3184 qi3dten(k) = qi3dten(k)+ &
3185 (prd(k)+eprd(k)+psacwi(k)+mnuccc(k)-prci(k)-
3186 prai(k)+qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+mnuccd
3187 qr3dten(k) = qr3dten(k)+ &
3188 (pre(k)+pra(k)+prc(k)-pracs(k)-mnuccr(k)-qmultr(k)-qmultrg
3189 -piacr(k)-piacrs(k)-pracg(k)-pgracs(k))
3190 IF (igraup.EQ.0)
THEN
3192 qni3dten(k) = qni3dten(k)+ &
3193 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3194 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3195 qg3dten(k) = qg3dten(k)+(pracg(k)+psacwg(k)+pgsacw(k)+pgracs(k)+ &
3196 prdg(k)+eprdg(k)+mnuccr(k)+piacr(k)+praci(k)+psacr(k
3197 ng3dten(k) = ng3dten(k)+(nscng(k)+ngracs(k)+nnuccr(k)+niacr(k))
3200 ELSE IF (igraup.EQ.1)
THEN
3202 qni3dten(k) = qni3dten(k)+ &
3203 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3204 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3208 nc3dten(k) = nc3dten(k)+(-nnuccc(k)-npsacws(k) &
3209 -npra(k)-nprc(k)-npsacwi(k)-npsacwg(k))
3211 ni3dten(k) = ni3dten(k)+ &
3212 (nnuccc(k)-nprci(k)-nprai(k)+nmults(k)+nmultg(k)+nmultr(k)+nmultrg
3213 nnuccd(k)-niacr(k)-niacrs(k))
3215 nr3dten(k) = nr3dten(k)+(nprc1(k)-npracs(k)-nnuccr(k) &
3216 +nragg(k)-niacr(k)-niacrs(k)-npracg(k)-ngracs(k))
3220 c2prec(k) = pra(k)+prc(k)+psacws(k)+qmults(k)+qmultg(k)+psacwg(k
3221 pgsacw(k)+mnuccc(k)+psacwi(k)
3226 dumt = t3d(k)+dt*t3dten(k)
3227 dumqv = qv3d(k) + dt * qv3dten(k)
3230 dum=min(0.99*pres(k),polysvp(dumt,0))
3231 dumqss = ep_2*dum/(pres(k)-dum)
3233 dumqc = qc3d(k) + dt * qc3dten(k)
3235 dumqc = max(dumqc,0.)
3241 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
3243 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
3247 qv3dten(k) = qv3dten(k)-pcc(k)
3248 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
3249 qc3dten(k) = qc3dten(k)+pcc(k)
3267 IF (eprd(k).LT.0.)
THEN
3268 dum = eprd(k)*dt/qi3d(k)
3270 nsubi(k) = dum*ni3d(k)/dt
3272 IF (eprds(k).LT.0.)
THEN
3273 dum = eprds(k)*dt/qni3d(k)
3275 nsubs(k) = dum*ns3d(k)/dt
3277 IF (pre(k).LT.0.)
THEN
3278 dum = pre(k)*dt/qr3d(k)
3280 nsubr(k) = dum*nr3d(k)/dt
3282 IF (eprdg(k).LT.0.)
THEN
3283 dum = eprdg(k)*dt/qg3d(k)
3285 nsubg(k) = dum*ng3d(k)/dt
3295 ni3dten(k) = ni3dten(k)+nsubi(k)
3296 ns3dten(k) = ns3dten(k)+nsubs(k)
3297 ng3dten(k) = ng3dten(k)+nsubg(k)
3298 nr3dten(k) = nr3dten(k)+nsubr(k)
3322 IF (ltrue.EQ.0)
GOTO 400
3337 dumi(k) = qi3d(k)+qi3dten(k)*dt
3338 dumqs(k) = qni3d(k)+qni3dten(k)*dt
3339 dumr(k) = qr3d(k)+qr3dten(k)*dt
3340 dumfni(k) = ni3d(k)+ni3dten(k)*dt
3341 dumfns(k) = ns3d(k)+ns3dten(k)*dt
3342 dumfnr(k) = nr3d(k)+nr3dten(k)*dt
3343 dumc(k) = qc3d(k)+qc3dten(k)*dt
3344 dumfnc(k) = nc3d(k)+nc3dten(k)*dt
3345 dumg(k) = qg3d(k)+qg3dten(k)*dt
3346 dumfng(k) = ng3d(k)+ng3dten(k)*dt
3349 IF (iinum.EQ.1)
THEN
3356 dumfni(k) = max(0.,dumfni(k))
3357 dumfns(k) = max(0.,dumfns(k))
3358 dumfnc(k) = max(0.,dumfnc(k))
3359 dumfnr(k) = max(0.,dumfnr(k))
3360 dumfng(k) = max(0.,dumfng(k))
3365 IF (dumi(k).GE.qsmall)
THEN
3366 dlami = (cons12*dumfni(k)/dumi(k))**(1./di)
3367 dlami=max(dlami,lammini)
3368 dlami=min(dlami,lammaxi)
3373 IF (dumr(k).GE.qsmall)
THEN
3374 dlamr = (pi*rhow*dumfnr(k)/dumr(k))**(1./3.)
3375 dlamr=max(dlamr,lamminr)
3376 dlamr=min(dlamr,lammaxr)
3381 IF (dumc(k).GE.qsmall)
THEN
3382 dum = pres(k)/(287.15*t3d(k))
3383 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3384 pgam(k)=1./(pgam(k)**2)-1.
3385 pgam(k)=max(pgam(k),2.)
3386 pgam(k)=min(pgam(k),10.)
3388 dlamc = (cons26*dumfnc(k)*gamma(pgam(k)+4.)/(dumc(k)*gamma(pgam(k
3389 lammin = (pgam(k)+1.)/60.e-6
3390 lammax = (pgam(k)+1.)/1.e-6
3391 dlamc=max(dlamc,lammin)
3392 dlamc=min(dlamc,lammax)
3397 IF (dumqs(k).GE.qsmall)
THEN
3398 dlams = (cons1*dumfns(k)/ dumqs(k))**(1./ds)
3399 dlams=max(dlams,lammins)
3400 dlams=min(dlams,lammaxs)
3405 IF (dumg(k).GE.qsmall)
THEN
3406 dlamg = (cons2*dumfng(k)/ dumg(k))**(1./dg)
3407 dlamg=max(dlamg,lamming)
3408 dlamg=min(dlamg,lammaxg)
3415 IF (dumc(k).GE.qsmall)
THEN
3416 unc = acn(k)*gamma(1.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+1.))
3417 umc = acn(k)*gamma(4.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+4.))
3423 IF (dumi(k).GE.qsmall)
THEN
3424 uni = ain(k)*cons27/dlami**bi
3425 umi = ain(k)*cons28/(dlami**bi)
3431 IF (dumr(k).GE.qsmall)
THEN
3432 unr = arn(k)*cons6/dlamr**br
3433 umr = arn(k)*cons4/(dlamr**br)
3439 IF (dumqs(k).GE.qsmall)
THEN
3440 ums = asn(k)*cons3/(dlams**bs)
3441 uns = asn(k)*cons5/dlams**bs
3447 IF (dumg(k).GE.qsmall)
THEN
3448 umg = agn(k)*cons7/(dlamg**bg)
3449 ung = agn(k)*cons8/dlamg**bg
3458 dum=(rhosu/rho(k))**0.54
3459 ums=min(ums,1.2*dum)
3460 uns=min(uns,1.2*dum)
3463 umi=min(umi,1.2*(rhosu/rho(k))**0.35)
3464 uni=min(uni,1.2*(rhosu/rho(k))**0.35)
3465 umr=min(umr,9.1*dum)
3466 unr=min(unr,9.1*dum)
3467 umg=min(umg,20.*dum)
3468 ung=min(ung,20.*dum)
3483 IF (k.LE.kte-1)
THEN
3484 IF (fr(k).LT.1.e-10)
THEN
3487 IF (fi(k).LT.1.e-10)
THEN
3490 IF (fni(k).LT.1.e-10)
THEN
3493 IF (fs(k).LT.1.e-10)
THEN
3496 IF (fns(k).LT.1.e-10)
THEN
3499 IF (fnr(k).LT.1.e-10)
THEN
3502 IF (fc(k).LT.1.e-10)
THEN
3505 IF (fnc(k).LT.1.e-10)
THEN
3508 IF (fg(k).LT.1.e-10)
THEN
3511 IF (fng(k).LT.1.e-10)
THEN
3518 rgvm = max(fr(k),fi(k),fs(k),fc(k),fni(k),fnr(k),fns(k),fnc(k),fg(k
3520 nstep = max(int(rgvm*dt/dzq(k)+1.),nstep)
3523 dumr(k) = dumr(k)*rho(k)
3524 dumi(k) = dumi(k)*rho(k)
3525 dumfni(k) = dumfni(k)*rho(k)
3526 dumqs(k) = dumqs(k)*rho(k)
3527 dumfns(k) = dumfns(k)*rho(k)
3528 dumfnr(k) = dumfnr(k)*rho(k)
3529 dumc(k) = dumc(k)*rho(k)
3530 dumfnc(k) = dumfnc(k)*rho(k)
3531 dumg(k) = dumg(k)*rho(k)
3532 dumfng(k) = dumfng(k)*rho(k)
3539 faloutr(k) = fr(k)*dumr(k)
3540 falouti(k) = fi(k)*dumi(k)
3541 faloutni(k) = fni(k)*dumfni(k)
3542 falouts(k) = fs(k)*dumqs(k)
3543 faloutns(k) = fns(k)*dumfns(k)
3544 faloutnr(k) = fnr(k)*dumfnr(k)
3545 faloutc(k) = fc(k)*dumc(k)
3546 faloutnc(k) = fnc(k)*dumfnc(k)
3547 faloutg(k) = fg(k)*dumg(k)
3548 faloutng(k) = fng(k)*dumfng(k)
3554 faltndr = faloutr(k)/dzq(k)
3555 faltndi = falouti(k)/dzq(k)
3556 faltndni = faloutni(k)/dzq(k)
3557 faltnds = falouts(k)/dzq(k)
3558 faltndns = faloutns(k)/dzq(k)
3559 faltndnr = faloutnr(k)/dzq(k)
3560 faltndc = faloutc(k)/dzq(k)
3561 faltndnc = faloutnc(k)/dzq(k)
3562 faltndg = faloutg(k)/dzq(k)
3563 faltndng = faloutng(k)/dzq(k)
3566 qrsten(k) = qrsten(k)-faltndr/nstep/rho(k)
3567 qisten(k) = qisten(k)-faltndi/nstep/rho(k)
3568 ni3dten(k) = ni3dten(k)-faltndni/nstep/rho(k)
3569 qnisten(k) = qnisten(k)-faltnds/nstep/rho(k)
3570 ns3dten(k) = ns3dten(k)-faltndns/nstep/rho(k)
3571 nr3dten(k) = nr3dten(k)-faltndnr/nstep/rho(k)
3572 qcsten(k) = qcsten(k)-faltndc/nstep/rho(k)
3573 nc3dten(k) = nc3dten(k)-faltndnc/nstep/rho(k)
3574 qgsten(k) = qgsten(k)-faltndg/nstep/rho(k)
3575 ng3dten(k) = ng3dten(k)-faltndng/nstep/rho(k)
3577 dumr(k) = dumr(k)-faltndr*dt/nstep
3578 dumi(k) = dumi(k)-faltndi*dt/nstep
3579 dumfni(k) = dumfni(k)-faltndni*dt/nstep
3580 dumqs(k) = dumqs(k)-faltnds*dt/nstep
3581 dumfns(k) = dumfns(k)-faltndns*dt/nstep
3582 dumfnr(k) = dumfnr(k)-faltndnr*dt/nstep
3583 dumc(k) = dumc(k)-faltndc*dt/nstep
3584 dumfnc(k) = dumfnc(k)-faltndnc*dt/nstep
3585 dumg(k) = dumg(k)-faltndg*dt/nstep
3586 dumfng(k) = dumfng(k)-faltndng*dt/nstep
3589 faltndr = (faloutr(k+1)-faloutr(k))/dzq(k)
3590 faltndi = (falouti(k+1)-falouti(k))/dzq(k)
3591 faltndni = (faloutni(k+1)-faloutni(k))/dzq(k)
3592 faltnds = (falouts(k+1)-falouts(k))/dzq(k)
3593 faltndns = (faloutns(k+1)-faloutns(k))/dzq(k)
3594 faltndnr = (faloutnr(k+1)-faloutnr(k))/dzq(k)
3595 faltndc = (faloutc(k+1)-faloutc(k))/dzq(k)
3596 faltndnc = (faloutnc(k+1)-faloutnc(k))/dzq(k)
3597 faltndg = (faloutg(k+1)-faloutg(k))/dzq(k)
3598 faltndng = (faloutng(k+1)-faloutng(k))/dzq(k)
3602 qrsten(k) = qrsten(k)+faltndr/nstep/rho(k)
3603 qisten(k) = qisten(k)+faltndi/nstep/rho(k)
3604 ni3dten(k) = ni3dten(k)+faltndni/nstep/rho(k)
3605 qnisten(k) = qnisten(k)+faltnds/nstep/rho(k)
3606 ns3dten(k) = ns3dten(k)+faltndns/nstep/rho(k)
3607 nr3dten(k) = nr3dten(k)+faltndnr/nstep/rho(k)
3608 qcsten(k) = qcsten(k)+faltndc/nstep/rho(k)
3609 nc3dten(k) = nc3dten(k)+faltndnc/nstep/rho(k)
3610 qgsten(k) = qgsten(k)+faltndg/nstep/rho(k)
3611 ng3dten(k) = ng3dten(k)+faltndng/nstep/rho(k)
3613 dumr(k) = dumr(k)+faltndr*dt/nstep
3614 dumi(k) = dumi(k)+faltndi*dt/nstep
3615 dumfni(k) = dumfni(k)+faltndni*dt/nstep
3616 dumqs(k) = dumqs(k)+faltnds*dt/nstep
3617 dumfns(k) = dumfns(k)+faltndns*dt/nstep
3618 dumfnr(k) = dumfnr(k)+faltndnr*dt/nstep
3619 dumc(k) = dumc(k)+faltndc*dt/nstep
3620 dumfnc(k) = dumfnc(k)+faltndnc*dt/nstep
3621 dumg(k) = dumg(k)+faltndg*dt/nstep
3622 dumfng(k) = dumfng(k)+faltndng*dt/nstep
3625 csed(k)=csed(k)+faloutc(k)/nstep
3626 ised(k)=ised(k)+falouti(k)/nstep
3627 ssed(k)=ssed(k)+falouts(k)/nstep
3628 gsed(k)=gsed(k)+faloutg(k)/nstep
3629 rsed(k)=rsed(k)+faloutr(k)/nstep
3636 precrt = precrt+(faloutr(kts)+faloutc(kts)+falouts(kts)+falouti(kts
3638 snowrt = snowrt+(falouts(kts)+falouti(kts)+faloutg(kts))*dt/nstep
3640 snowprt = snowprt+(falouti(kts)+falouts(kts))*dt/nstep
3641 grplprt = grplprt+(faloutg(kts))*dt/nstep
3642 rainonlyprt = rainonlyprt+(faloutr(kts))*dt/nstep
3643 snowonlyprt = snowonlyprt+(falouts(kts))*dt/nstep
3650 qr3dten(k)=qr3dten(k)+qrsten(k)
3651 qi3dten(k)=qi3dten(k)+qisten(k)
3652 qc3dten(k)=qc3dten(k)+qcsten(k)
3653 qg3dten(k)=qg3dten(k)+qgsten(k)
3654 qni3dten(k)=qni3dten(k)+qnisten(k)
3660 IF (qi3d(k).GE.qsmall.AND.t3d(k).LT.273.15.AND.lami(k).GE.1.e-10
THEN
3661 IF (1./lami(k).GE.2.*dcs)
THEN
3662 qni3dten(k) = qni3dten(k)+qi3d(k)/dt+ qi3dten(k)
3663 ns3dten(k) = ns3dten(k)+ni3d(k)/dt+ ni3dten(k)
3664 qi3dten(k) = -qi3d(k)/dt
3665 ni3dten(k) = -ni3d(k)/dt
3672 qc3d(k) = qc3d(k)+qc3dten(k)*dt
3673 qi3d(k) = qi3d(k)+qi3dten(k)*dt
3674 qni3d(k) = qni3d(k)+qni3dten(k)*dt
3675 qr3d(k) = qr3d(k)+qr3dten(k)*dt
3676 nc3d(k) = nc3d(k)+nc3dten(k)*dt
3677 ni3d(k) = ni3d(k)+ni3dten(k)*dt
3678 ns3d(k) = ns3d(k)+ns3dten(k)*dt
3679 nr3d(k) = nr3d(k)+nr3dten(k)*dt
3681 IF (igraup.EQ.0)
THEN
3682 qg3d(k) = qg3d(k)+qg3dten(k)*dt
3683 ng3d(k) = ng3d(k)+ng3dten(k)*dt
3687 t3d(k) = t3d(k)+t3dten(k)*dt
3688 qv3d(k) = qv3d(k)+qv3dten(k)*dt
3693 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
3694 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
3698 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
3700 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
3701 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
3703 qvqvs(k) = qv3d(k)/qvs(k)
3704 qvqvsi(k) = qv3d(k)/qvi(k)
3709 IF (qvqvs(k).LT.0.9)
THEN
3710 IF (qr3d(k).LT.1.e-8)
THEN
3711 qv3d(k)=qv3d(k)+qr3d(k)
3712 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
3715 IF (qc3d(k).LT.1.e-8)
THEN
3716 qv3d(k)=qv3d(k)+qc3d(k)
3717 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
3721 IF (qvqvsi(k).LT.0.9)
THEN
3722 IF (qi3d(k).LT.1.e-8)
THEN
3723 qv3d(k)=qv3d(k)+qi3d(k)
3724 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
3727 IF (qni3d(k).LT.1.e-8)
THEN
3728 qv3d(k)=qv3d(k)+qni3d(k)
3729 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
3732 IF (qg3d(k).LT.1.e-8)
THEN
3733 qv3d(k)=qv3d(k)+qg3d(k)
3734 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
3742 IF (qc3d(k).LT.qsmall)
THEN
3747 IF (qr3d(k).LT.qsmall)
THEN
3752 IF (qi3d(k).LT.qsmall)
THEN
3757 IF (qni3d(k).LT.qsmall)
THEN
3762 IF (qg3d(k).LT.qsmall)
THEN
3771 IF (qc3d(k).LT.qsmall.AND.qi3d(k).LT.qsmall.AND.qni3d(k).LT.qsmall
3772 .AND.qr3d(k).LT.qsmall.AND.qg3d(k).LT.qsmall)
GOTO 500
3779 IF (qi3d(k).GE.qsmall.AND.t3d(k).GE.273.15)
THEN
3780 qr3d(k) = qr3d(k)+qi3d(k)
3781 t3d(k) = t3d(k)-qi3d(k)*xlf(k)/cpm(k)
3783 nr3d(k) = nr3d(k)+ni3d(k)
3788 IF (iliq.EQ.1)
GOTO 778
3792 IF (t3d(k).LE.233.15.AND.qc3d(k).GE.qsmall)
THEN
3793 qi3d(k)=qi3d(k)+qc3d(k)
3794 t3d(k)=t3d(k)+qc3d(k)*xlf(k)/cpm(k)
3796 ni3d(k)=ni3d(k)+nc3d(k)
3802 IF (igraup.EQ.0)
THEN
3804 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3805 qg3d(k) = qg3d(k)+qr3d(k)
3806 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3808 ng3d(k) = ng3d(k)+ nr3d(k)
3812 ELSE IF (igraup.EQ.1)
THEN
3814 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3815 qni3d(k) = qni3d(k)+qr3d(k)
3816 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3818 ns3d(k) = ns3d(k)+nr3d(k)
3828 ni3d(k) = max(0.,ni3d(k))
3829 ns3d(k) = max(0.,ns3d(k))
3830 nc3d(k) = max(0.,nc3d(k))
3831 nr3d(k) = max(0.,nr3d(k))
3832 ng3d(k) = max(0.,ng3d(k))
3837 IF (qi3d(k).GE.qsmall)
THEN
3838 lami(k) = (cons12* &
3839 ni3d(k)/qi3d(k))**(1./di)
3845 IF (lami(k).LT.lammini)
THEN
3849 n0i(k) = lami(k)**4*qi3d(k)/cons12
3851 ni3d(k) = n0i(k)/lami(k)
3852 ELSE IF (lami(k).GT.lammaxi)
THEN
3854 n0i(k) = lami(k)**4*qi3d(k)/cons12
3856 ni3d(k) = n0i(k)/lami(k)
3863 IF (qr3d(k).GE.qsmall)
THEN
3864 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
3870 IF (lamr(k).LT.lamminr)
THEN
3874 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3876 nr3d(k) = n0rr(k)/lamr(k)
3877 ELSE IF (lamr(k).GT.lammaxr)
THEN
3879 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3881 nr3d(k) = n0rr(k)/lamr(k)
3891 IF (qc3d(k).GE.qsmall)
THEN
3893 dum = pres(k)/(287.15*t3d(k))
3894 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3895 pgam(k)=1./(pgam(k)**2)-1.
3896 pgam(k)=max(pgam(k),2.)
3897 pgam(k)=min(pgam(k),10.)
3901 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
3902 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
3907 lammin = (pgam(k)+1.)/60.e-6
3908 lammax = (pgam(k)+1.)/1.e-6
3910 IF (lamc(k).LT.lammin)
THEN
3912 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3913 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3915 ELSE IF (lamc(k).GT.lammax)
THEN
3917 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3918 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3927 IF (qni3d(k).GE.qsmall)
THEN
3928 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
3934 IF (lams(k).LT.lammins)
THEN
3936 n0s(k) = lams(k)**4*qni3d(k)/cons1
3938 ns3d(k) = n0s(k)/lams(k)
3940 ELSE IF (lams(k).GT.lammaxs)
THEN
3943 n0s(k) = lams(k)**4*qni3d(k)/cons1
3944 ns3d(k) = n0s(k)/lams(k)
3952 IF (qg3d(k).GE.qsmall)
THEN
3953 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
3959 IF (lamg(k).LT.lamming)
THEN
3961 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3963 ng3d(k) = n0g(k)/lamg(k)
3965 ELSE IF (lamg(k).GT.lammaxg)
THEN
3968 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3970 ng3d(k) = n0g(k)/lamg(k)
3979 IF (qi3d(k).GE.qsmall)
THEN
3980 effi(k) = 3./lami(k)/2.*1.e6
3985 IF (qni3d(k).GE.qsmall)
THEN
3986 effs(k) = 3./lams(k)/2.*1.e6
3991 IF (qr3d(k).GE.qsmall)
THEN
3992 effr(k) = 3./lamr(k)/2.*1.e6
3997 IF (qc3d(k).GE.qsmall)
THEN
3998 effc(k) = gamma(pgam(k)+4.)/ &
3999 gamma(pgam(k)+3.)/lamc(k)/2.*1.e6
4004 IF (qg3d(k).GE.qsmall)
THEN
4005 effg(k) = 3./lamg(k)/2.*1.e6
4017 ni3d(k) = min(ni3d(k),0.3e6/rho(k))
4020 IF (iinum.EQ.0.AND.iact.EQ.2)
THEN
4021 nc3d(k) = min(nc3d(k),(nanew1+nanew2)/rho(k))
4024 IF (iinum.EQ.1)
THEN
4026 nc3d(k) = ndcnst*1.e6/rho_erf(k)