960 INTEGER,
INTENT( IN) :: i,j,istep,kts,kte
962 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3DTEN
963 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3DTEN
964 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3DTEN
965 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3DTEN
966 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3DTEN
967 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3DTEN
968 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3DTEN
969 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3D
970 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3D
971 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3D
972 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3D
973 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3D
974 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3D
975 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3D
976 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3DTEN
977 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3DTEN
978 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3D
979 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3D
980 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRES
981 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DZQ
982 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: W3D
984 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3d
985 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3dten
986 integer,
intent(in) :: iinum
989 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3DTEN
990 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3DTEN
991 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3D
992 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3D
996 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QGSTEN
997 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QRSTEN
998 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QISTEN
999 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNISTEN
1000 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QCSTEN
1003 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qrcu1d
1004 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qscu1d
1005 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qicu1d
1009 REAL(C_DOUBLE) PRECRT
1010 REAL(C_DOUBLE) SNOWRT
1012 REAL(C_DOUBLE) SNOWPRT
1013 REAL(C_DOUBLE) GRPLPRT
1015 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFC
1016 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFI
1017 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFS
1018 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFR
1019 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFG
1032 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMC
1033 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMI
1034 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMS
1035 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMR
1036 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMG
1037 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CDIST1
1038 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0I
1039 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0S
1040 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0RR
1041 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0G
1042 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGAM
1046 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBC
1047 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBI
1048 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBS
1049 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBR
1050 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRD
1051 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRE
1052 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDS
1053 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCC
1054 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCC
1055 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRA
1056 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRC
1057 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCC
1058 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCD
1059 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCD
1060 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCR
1061 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCR
1062 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRA
1063 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NRAGG
1064 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSAGG
1065 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC
1066 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC1
1067 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRAI
1068 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRCI
1069 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWS
1070 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWS
1071 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWI
1072 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWI
1073 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRCI
1074 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRAI
1075 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTS
1076 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTR
1077 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTS
1078 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTR
1079 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACS
1080 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACS
1081 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCCN
1082 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSMLT
1083 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMS
1084 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTS
1085 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTR
1087 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACR
1088 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACR
1089 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACI
1090 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACRS
1091 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACRS
1092 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACIS
1093 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRD
1094 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDS
1096 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACG
1097 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWG
1098 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGSACW
1099 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGRACS
1100 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDG
1101 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDG
1102 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMG
1103 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGMLT
1104 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACG
1105 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWG
1106 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSCNG
1107 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGRACS
1108 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTG
1109 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTR
1110 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBG
1111 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACR
1112 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTG
1113 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTRG
1114 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTG
1115 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTRG
1119 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: KAP
1120 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVS
1121 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EIS
1122 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVS
1123 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVI
1124 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVS
1125 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVSI
1126 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DV
1127 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLS
1128 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLV
1129 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CPM
1130 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MU
1131 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: SC
1132 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XLF
1133 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO
1134 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AB
1135 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: ABI
1139 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DAP
1140 REAL(C_DOUBLE) NACNT
1141 REAL(C_DOUBLE) FMULT
1142 REAL(C_DOUBLE) COFFI
1146 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMI,DUMR,DUMFNI,DUMG,DUMFNG
1147 REAL(C_DOUBLE) UNI, UMI,UMR
1148 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FR, FI, FNI,FG,FNG
1150 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FALOUTR,FALOUTI,FALOUTNI
1151 REAL(C_DOUBLE) FALTNDR,FALTNDI,FALTNDNI,RHO2
1152 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMQS,DUMFNS
1153 REAL(C_DOUBLE) UMS,UNS
1154 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FS,FNS, FALOUTS,FALOUTNS,FALOUTG
1155 REAL(C_DOUBLE) FALTNDS,FALTNDNS,UNR,FALTNDG,FALTNDNG
1156 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMC,DUMFNC
1157 REAL(C_DOUBLE) UNC,UMC,UNG,UMG
1158 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FC,FALOUTC,FALOUTNC
1159 REAL(C_DOUBLE) FALTNDC,FALTNDNC
1160 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNC,DUMFNR,FALOUTNR
1161 REAL(C_DOUBLE) FALTNDNR
1162 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNR
1166 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AIN,ARN,ASN,ACN,AGN
1176 REAL(C_DOUBLE) DUM,DUM1,DUM2,DUMT,DUMQV,DUMQSS,DUMQSI,DUMS
1180 REAL(C_DOUBLE) DQSDT
1181 REAL(C_DOUBLE) DQSIDT
1193 REAL(C_DOUBLE) DUMACT,DUM3
1209 REAL(C_DOUBLE) TEMP1
1211 REAL(C_DOUBLE) SIGVL
1215 REAL(C_DOUBLE) CRY,KRY
1219 REAL(C_DOUBLE) DUMQI,DUMNI,DC0,DS0,DG0
1220 REAL(C_DOUBLE) DUMQC,DUMQR,RATIO,SUM_DEP,FUDGEF
1227 REAL(C_DOUBLE) ANUC,BNUC
1231 REAL(C_DOUBLE) AACT,GAMM,GG,PSI,ETA1,ETA2,SM1,SM2,SMAX,UU1,UU2,ALPHA
1235 REAL(C_DOUBLE) DLAMS,DLAMR,DLAMI,DLAMC,DLAMG,LAMMAX,LAMMIN
1240 REAL(C_DOUBLE),
DIMENSION(KTS:KTE)::C2PREC,CSED,ISED,SSED,GSED,RSED
1241 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: tqimelt
1271 xxlv(k) = 3.1484e6-2370.*t3d(k)
1275 xxls(k) = 3.15e6-2370.*t3d(k)+0.3337e6
1277 cpm(k) = cp*(1.+0.887*qv3d(k))
1283 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
1284 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
1288 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
1290 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
1291 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
1293 qvqvs(k) = qv3d(k)/qvs(k)
1294 qvqvsi(k) = qv3d(k)/qvi(k)
1298 rho(k) = pres(k)/(r*t3d(k))
1305 IF (qrcu1d(k).GE.1.e-10)
THEN
1306 dum=1.8e5*(qrcu1d(k)*dt/(pi*rhow*rho(k)**3))**0.25
1309 IF (qscu1d(k).GE.1.e-10)
THEN
1310 dum=3.e5*(qscu1d(k)*dt/(cons1*rho(k)**3))**(1./(ds+1.))
1313 IF (qicu1d(k).GE.1.e-10)
THEN
1314 dum=qicu1d(k)*dt/(ci*(80.e-6)**di)
1321 IF (qvqvs(k).LT.0.9)
THEN
1322 IF (qr3d(k).LT.1.e-8)
THEN
1323 qv3d(k)=qv3d(k)+qr3d(k)
1324 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
1327 IF (qc3d(k).LT.1.e-8)
THEN
1328 qv3d(k)=qv3d(k)+qc3d(k)
1329 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
1334 IF (qvqvsi(k).LT.0.9)
THEN
1335 IF (qi3d(k).LT.1.e-8)
THEN
1336 qv3d(k)=qv3d(k)+qi3d(k)
1337 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
1340 IF (qni3d(k).LT.1.e-8)
THEN
1341 qv3d(k)=qv3d(k)+qni3d(k)
1342 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
1345 IF (qg3d(k).LT.1.e-8)
THEN
1346 qv3d(k)=qv3d(k)+qg3d(k)
1347 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
1354 xlf(k) = xxls(k)-xxlv(k)
1359 IF (qc3d(k).LT.qsmall)
THEN
1364 IF (qr3d(k).LT.qsmall)
THEN
1369 IF (qi3d(k).LT.qsmall)
THEN
1374 IF (qni3d(k).LT.qsmall)
THEN
1379 IF (qg3d(k).LT.qsmall)
THEN
1397 mu(k) = 1.496e-6*t3d(k)**1.5/(t3d(k)+120.)
1401 dum = (rhosu/rho(k))**0.54
1406 ain(k) = (rhosu/rho(k))**0.35*ai
1411 acn(k) = g*rhow/(18.*mu(k))
1421 IF ( qc3d(k).LT.qsmall.AND. &
1422 qi3d(k).LT.qsmall.AND. &
1423 qni3d(k).LT.qsmall.AND. &
1424 qr3d(k).LT.qsmall.AND. &
1425 qg3d(k).LT.qsmall)
THEN
1426 IF (t3d(k).LT.273.15.AND.qvqvsi(k).LT.0.999)
then
1429 IF (t3d(k).GE.273.15.AND.qvqvs(k).LT.0.999)
then
1437 kap(k) = 1.414e3*mu(k)
1441 dv(k) = 8.794e-5*t3d(k)**1.81/pres(k)
1446 sc(k) = mu(k)/(rho(k)*dv(k))
1452 dum = (rv*t3d(k)**2)
1454 dqsdt = xxlv(k)*qvs(k)/dum
1455 dqsidt = xxls(k)*qvi(k)/dum
1457 abi(k) = 1.+dqsidt*xxls(k)/cpm(k)
1458 ab(k) = 1.+dqsdt*xxlv(k)/cpm(k)
1464 IF (t3d(k).GE.273.15)
THEN
1471 IF (iinum.EQ.1)
THEN
1473 nc3d(k)=ndcnst*1.e6/rho(k)
1479 IF (qni3d(k).LT.1.e-6)
THEN
1480 qr3d(k)=qr3d(k)+qni3d(k)
1481 nr3d(k)=nr3d(k)+ns3d(k)
1482 t3d(k)=t3d(k)-qni3d(k)*xlf(k)/cpm(k)
1486 IF (qg3d(k).LT.1.e-6)
THEN
1487 qr3d(k)=qr3d(k)+qg3d(k)
1488 nr3d(k)=nr3d(k)+ng3d(k)
1489 t3d(k)=t3d(k)-qg3d(k)*xlf(k)/cpm(k)
1493 IF (qc3d(k).LT.qsmall.AND.qni3d(k).LT.1.e-8.AND.qr3d(k).LT.qsmall.AND.qg3d
THEN
1499 ns3d(k) = max(0.,ns3d(k))
1500 nc3d(k) = max(0.,nc3d(k))
1501 nr3d(k) = max(0.,nr3d(k))
1502 ng3d(k) = max(0.,ng3d(k))
1507 IF (qr3d(k).GE.qsmall)
THEN
1508 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
1509 n0rr(k) = nr3d(k)*lamr(k)
1515 IF (lamr(k).LT.lamminr)
THEN
1519 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1521 nr3d(k) = n0rr(k)/lamr(k)
1522 ELSE IF (lamr(k).GT.lammaxr)
THEN
1524 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1526 nr3d(k) = n0rr(k)/lamr(k)
1535 IF (qc3d(k).GE.qsmall)
THEN
1537 dum = pres(k)/(287.15*t3d(k))
1538 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
1539 pgam(k)=1./(pgam(k)**2)-1.
1540 pgam(k)=max(pgam(k),2.)
1541 pgam(k)=min(pgam(k),10.)
1545 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
1546 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
1551 lammin = (pgam(k)+1.)/60.e-6
1552 lammax = (pgam(k)+1.)/1.e-6
1554 IF (lamc(k).LT.lammin)
THEN
1557 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1558 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1559 ELSE IF (lamc(k).GT.lammax)
THEN
1562 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1563 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1572 IF (qni3d(k).GE.qsmall)
THEN
1573 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
1574 n0s(k) = ns3d(k)*lams(k)
1580 IF (lams(k).LT.lammins)
THEN
1582 n0s(k) = lams(k)**4*qni3d(k)/cons1
1584 ns3d(k) = n0s(k)/lams(k)
1586 ELSE IF (lams(k).GT.lammaxs)
THEN
1589 n0s(k) = lams(k)**4*qni3d(k)/cons1
1591 ns3d(k) = n0s(k)/lams(k)
1598 IF (qg3d(k).GE.qsmall)
THEN
1599 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
1600 n0g(k) = ng3d(k)*lamg(k)
1604 IF (lamg(k).LT.lamming)
THEN
1606 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1608 ng3d(k) = n0g(k)/lamg(k)
1610 ELSE IF (lamg(k).GT.lammaxg)
THEN
1613 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1615 ng3d(k) = n0g(k)/lamg(k)
1657 IF (qc3d(k).GE.1.e-6)
THEN
1662 prc(k)=1350.*qc3d(k)**2.47* &
1663 (nc3d(k)/1.e6*rho(k))**(-1.79)
1668 nprc1(k) = prc(k)/cons29
1669 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
1672 nprc(k) = min(nprc(k),nc3d(k)/dt)
1673 nprc1(k) = min(nprc1(k),nprc(k))
1681 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
1683 ums = asn(k)*cons3/(lams(k)**bs)
1684 umr = arn(k)*cons4/(lamr(k)**br)
1685 uns = asn(k)*cons5/lams(k)**bs
1686 unr = arn(k)*cons6/lamr(k)**br
1691 dum=(rhosu/rho(k))**0.54
1692 ums=min(ums,1.2*dum)
1693 uns=min(uns,1.2*dum)
1694 umr=min(umr,9.1*dum)
1695 unr=min(unr,9.1*dum)
1707 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
1708 0.08*ums*umr)**0.5*rho(k)* &
1709 n0rr(k)*n0s(k)/lamr(k)**3*
1710 (5./(lamr(k)**3*lams(k))+ &
1711 2./(lamr(k)**2*lams(k)**2)+ &
1712 0.5/(lamr(k)*lams(k)**3)))
1727 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
1729 umg = agn(k)*cons7/(lamg(k)**bg)
1730 umr = arn(k)*cons4/(lamr(k)**br)
1731 ung = agn(k)*cons8/lamg(k)**bg
1732 unr = arn(k)*cons6/lamr(k)**br
1736 dum=(rhosu/rho(k))**0.54
1737 umg=min(umg,20.*dum)
1738 ung=min(ung,20.*dum)
1739 umr=min(umr,9.1*dum)
1740 unr=min(unr,9.1*dum)
1743 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
1744 0.08*umg*umr)**0.5*rho(k)* &
1745 n0rr(k)*n0g(k)/lamr(k)**3*
1746 (5./(lamr(k)**3*lamg(k))+ &
1747 2./(lamr(k)**2*lamg(k)**2)+
1748 0.5/(lamr(k)*lamg(k)**3)))
1752 dum = pracg(k)/5.2e-7
1754 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
1755 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
1756 (1./(lamr(k)**3*lamg(k))+ &
1757 1./(lamr(k)**2*lamg(k)**2)+ &
1758 1./(lamr(k)*lamg(k)**3))
1763 npracg(k)=npracg(k)-dum
1772 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
1777 dum=(qc3d(k)*qr3d(k))
1778 pra(k) = 67.*(dum)**1.15
1779 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
1788 IF (qr3d(k).GE.1.e-8)
THEN
1791 if (1./lamr(k).lt.dum1)
then
1793 else if (1./lamr(k).ge.dum1)
then
1794 dum=2.-exp(2300.*(1./lamr(k)-dum1))
1797 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
1803 IF (qr3d(k).GE.qsmall)
THEN
1804 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
1805 (f1r/(lamr(k)*lamr(k))+ &
1806 f2r*(arn(k)*rho(k)/mu(k))**0.5*
1807 sc(k)**(1./3.)*cons9/ &
1814 IF (qv3d(k).LT.qvs(k))
THEN
1815 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
1816 pre(k) = min(pre(k),0.)
1826 IF (qni3d(k).GE.1.e-8)
THEN
1831 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracs(k)
1839 psmlt(k)=2.*pi*n0s(k)*kap(k)*(273.15-t3d(k))/ &
1840 xlf(k)*(f1s/(lams(k)*lams(k))+ &
1841 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1842 sc(k)**(1./3.)*cons10/ &
1843 (lams(k)**cons35))+dum
1847 IF (qvqvs(k).LT.1.)
THEN
1848 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
1849 (f1s/(lams(k)*lams(k))+ &
1850 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1851 sc(k)**(1./3.)*cons10/ &
1854 evpms(k) = (qv3d(k)-qvs(k))*epss/ab(k)
1855 evpms(k) = max(evpms(k),psmlt(k))
1856 psmlt(k) = psmlt(k)-evpms(k)
1866 IF (qg3d(k).GE.1.e-8)
THEN
1871 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracg(k)
1879 pgmlt(k)=2.*pi*n0g(k)*kap(k)*(273.15-t3d(k))/
1880 xlf(k)*(f1s/(lamg(k)*lamg(k))+ &
1881 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1882 sc(k)**(1./3.)*cons11/ &
1883 (lamg(k)**cons36))+dum
1887 IF (qvqvs(k).LT.1.)
THEN
1888 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
1889 (f1s/(lamg(k)*lamg(k))+
1890 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1891 sc(k)**(1./3.)*cons11/ &
1894 evpmg(k) = (qv3d(k)-qvs(k))*epsg/ab(k)
1895 evpmg(k) = max(evpmg(k),pgmlt(k))
1896 pgmlt(k) = pgmlt(k)-evpmg(k)
1916 dum = (prc(k)+pra(k))*dt
1918 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
1922 prc(k) = prc(k)*ratio
1923 pra(k) = pra(k)*ratio
1929 dum = (-psmlt(k)-evpms(k)+pracs(k))*dt
1931 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
1934 ratio = qni3d(k)/dum
1936 psmlt(k) = psmlt(k)*ratio
1937 evpms(k) = evpms(k)*ratio
1938 pracs(k) = pracs(k)*ratio
1944 dum = (-pgmlt(k)-evpmg(k)+pracg(k))*dt
1946 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
1951 pgmlt(k) = pgmlt(k)*ratio
1952 evpmg(k) = evpmg(k)*ratio
1953 pracg(k) = pracg(k)*ratio
1960 dum = (-pracs(k)-pracg(k)-pre(k)-pra(k)-prc(k)+psmlt(k)+pgmlt(k)
1962 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
1964 ratio = (qr3d(k)/dt+pracs(k)+pracg(k)+pra(k)+prc(k)-psmlt(k)-pgmlt
1966 pre(k) = pre(k)*ratio
1971 qv3dten(k) = qv3dten(k)+(-pre(k)-evpms(k)-evpmg(k))
1973 t3dten(k) = t3dten(k)+(pre(k)*xxlv(k)+(evpms(k)+evpmg(k))*xxls(k)+
1974 (psmlt(k)+pgmlt(k)-pracs(k)-pracg(k))*xlf(k))/cpm(k)
1976 qc3dten(k) = qc3dten(k)+(-pra(k)-prc(k))
1977 qr3dten(k) = qr3dten(k)+(pre(k)+pra(k)+prc(k)-psmlt(k)-pgmlt(k)+pracs
1978 qni3dten(k) = qni3dten(k)+(psmlt(k)+evpms(k)-pracs(k))
1979 qg3dten(k) = qg3dten(k)+(pgmlt(k)+evpmg(k)-pracg(k))
1984 nc3dten(k) = nc3dten(k)+ (-npra(k)-nprc(k))
1985 nr3dten(k) = nr3dten(k)+ (nprc1(k)+nragg(k)-npracg(k))
1989 c2prec(k) = pra(k)+prc(k)
1990 IF (pre(k).LT.0.)
THEN
1991 dum = pre(k)*dt/qr3d(k)
1993 nsubr(k) = dum*nr3d(k)/dt
1996 IF (evpms(k)+psmlt(k).LT.0.)
THEN
1997 dum = (evpms(k)+psmlt(k))*dt/qni3d(k)
1999 nsmlts(k) = dum*ns3d(k)/dt
2001 IF (psmlt(k).LT.0.)
THEN
2002 dum = psmlt(k)*dt/qni3d(k)
2004 nsmltr(k) = dum*ns3d(k)/dt
2006 IF (evpmg(k)+pgmlt(k).LT.0.)
THEN
2007 dum = (evpmg(k)+pgmlt(k))*dt/qg3d(k)
2009 ngmltg(k) = dum*ng3d(k)/dt
2011 IF (pgmlt(k).LT.0.)
THEN
2012 dum = pgmlt(k)*dt/qg3d(k)
2014 ngmltr(k) = dum*ng3d(k)/dt
2017 ns3dten(k) = ns3dten(k)+(nsmlts(k))
2018 ng3dten(k) = ng3dten(k)+(ngmltg(k))
2019 nr3dten(k) = nr3dten(k)+(nsubr(k)-nsmltr(k)-ngmltr(k))
2027 dumt = t3d(k)+dt*t3dten(k)
2028 dumqv = qv3d(k)+dt*qv3dten(k)
2030 dum=min(0.99*pres(k),polysvp(dumt,0))
2031 dumqss = ep_2*dum/(pres(k)-dum)
2032 dumqc = qc3d(k)+dt*qc3dten(k)
2033 dumqc = max(dumqc,0.)
2038 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
2039 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
2043 qv3dten(k) = qv3dten(k)-pcc(k)
2044 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
2045 qc3dten(k) = qc3dten(k)+pcc(k)
2075 IF (iinum.EQ.1)
THEN
2077 nc3d(k)=ndcnst*1.e6/rho(k)
2083 ni3d(k) = max(0.,ni3d(k))
2084 ns3d(k) = max(0.,ns3d(k))
2085 nc3d(k) = max(0.,nc3d(k))
2086 nr3d(k) = max(0.,nr3d(k))
2087 ng3d(k) = max(0.,ng3d(k))
2092 IF (qi3d(k).GE.qsmall)
THEN
2093 lami(k) = (cons12* &
2094 ni3d(k)/qi3d(k))**(1./di)
2095 n0i(k) = ni3d(k)*lami(k)
2101 IF (lami(k).LT.lammini)
THEN
2105 n0i(k) = lami(k)**4*qi3d(k)/cons12
2107 ni3d(k) = n0i(k)/lami(k)
2108 ELSE IF (lami(k).GT.lammaxi)
THEN
2110 n0i(k) = lami(k)**4*qi3d(k)/cons12
2112 ni3d(k) = n0i(k)/lami(k)
2119 IF (qr3d(k).GE.qsmall)
THEN
2120 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
2121 n0rr(k) = nr3d(k)*lamr(k)
2127 IF (lamr(k).LT.lamminr)
THEN
2131 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2133 nr3d(k) = n0rr(k)/lamr(k)
2134 ELSE IF (lamr(k).GT.lammaxr)
THEN
2136 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2138 nr3d(k) = n0rr(k)/lamr(k)
2146 IF (qc3d(k).GE.qsmall)
THEN
2148 dum = pres(k)/(287.15*t3d(k))
2149 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
2150 pgam(k)=1./(pgam(k)**2)-1.
2151 pgam(k)=max(pgam(k),2.)
2152 pgam(k)=min(pgam(k),10.)
2156 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
2157 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
2162 lammin = (pgam(k)+1.)/60.e-6
2163 lammax = (pgam(k)+1.)/1.e-6
2165 IF (lamc(k).LT.lammin)
THEN
2168 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2169 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2170 ELSE IF (lamc(k).GT.lammax)
THEN
2172 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2173 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2179 cdist1(k) = nc3d(k)/gamma(pgam(k)+1.)
2186 IF (qni3d(k).GE.qsmall)
THEN
2187 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
2188 n0s(k) = ns3d(k)*lams(k)
2194 IF (lams(k).LT.lammins)
THEN
2196 n0s(k) = lams(k)**4*qni3d(k)/cons1
2198 ns3d(k) = n0s(k)/lams(k)
2200 ELSE IF (lams(k).GT.lammaxs)
THEN
2203 n0s(k) = lams(k)**4*qni3d(k)/cons1
2205 ns3d(k) = n0s(k)/lams(k)
2212 IF (qg3d(k).GE.qsmall)
THEN
2213 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
2214 n0g(k) = ng3d(k)*lamg(k)
2220 IF (lamg(k).LT.lamming)
THEN
2222 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2224 ng3d(k) = n0g(k)/lamg(k)
2226 ELSE IF (lamg(k).GT.lammaxg)
THEN
2229 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2231 ng3d(k) = n0g(k)/lamg(k)
2304 IF (qc3d(k).GE.qsmall .AND. t3d(k).LT.269.15)
THEN
2311 nacnt = exp(-2.80+0.262*(273.15-t3d(k)))*1000.
2323 dum = 7.37*t3d(k)/(288.*10.*pres(k))/100.
2328 dap(k) = cons37*t3d(k)*(1.+dum/rin)/mu(k)
2330 mnuccc(k) = cons38*dap(k)*nacnt*exp(log(cdist1(k))+ &
2331 log(gamma(pgam(k)+5.))-4.*log(lamc(k)))
2332 nnuccc(k) = 2.*pi*dap(k)*nacnt*cdist1(k)* &
2333 gamma(pgam(k)+2.)/ &
2347 mnuccc(k) = mnuccc(k)+cons39* &
2348 exp(log(cdist1(k))+log(gamma(7.+pgam(k)))-6.*log(lamc(k
2349 (exp(aimm*(273.15-t3d(k)))-1.)
2351 nnuccc(k) = nnuccc(k)+ &
2352 cons40*exp(log(cdist1(k))+log(gamma(pgam(k)+4.))-3.*log(lamc
2353 *(exp(aimm*(273.15-t3d(k)))-1.)
2358 nnuccc(k) = min(nnuccc(k),nc3d(k)/dt)
2372 IF (qc3d(k).GE.1.e-6)
THEN
2377 prc(k)=1350.*qc3d(k)**2.47* &
2378 (nc3d(k)/1.e6*rho(k))**(-1.79)
2383 nprc1(k) = prc(k)/cons29
2384 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
2387 nprc(k) = min(nprc(k),nc3d(k)/dt)
2388 nprc1(k) = min(nprc1(k),nprc(k))
2397 IF (qni3d(k).GE.1.e-8)
THEN
2398 nsagg(k) = cons15*asn(k)*rho(k)** &
2399 ((2.+bs)/3.)*qni3d(k)**((2.+bs)/3.)* &
2400 (ns3d(k)*rho(k))**((4.-bs)/3.)/ &
2411 IF (qni3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2413 psacws(k) = cons13*asn(k)*qc3d(k)*rho(k)* &
2416 npsacws(k) = cons13*asn(k)*nc3d(k)*rho(k)* &
2425 IF (qg3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2427 psacwg(k) = cons14*agn(k)*qc3d(k)*rho(k)* &
2430 npsacwg(k) = cons14*agn(k)*nc3d(k)*rho(k)* &
2441 IF (qi3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2446 IF (1./lami(k).GE.100.e-6)
THEN
2448 psacwi(k) = cons16*ain(k)*qc3d(k)*rho(k)* &
2451 npsacwi(k) = cons16*ain(k)*nc3d(k)*rho(k)* &
2461 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
2463 ums = asn(k)*cons3/(lams(k)**bs)
2464 umr = arn(k)*cons4/(lamr(k)**br)
2465 uns = asn(k)*cons5/lams(k)**bs
2466 unr = arn(k)*cons6/lamr(k)**br
2471 dum=(rhosu/rho(k))**0.54
2472 ums=min(ums,1.2*dum)
2473 uns=min(uns,1.2*dum)
2474 umr=min(umr,9.1*dum)
2475 unr=min(unr,9.1*dum)
2477 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
2478 0.08*ums*umr)**0.5*rho(k)* &
2479 n0rr(k)*n0s(k)/lamr(k)**3*
2480 (5./(lamr(k)**3*lams(k))+ &
2481 2./(lamr(k)**2*lams(k)**2)+ &
2482 0.5/(lamr(k)*lams(k)**3)))
2484 npracs(k) = cons32*rho(k)*(1.7*(unr-uns)**2+ &
2485 0.3*unr*uns)**0.5*n0rr(k)*n0s(k)* &
2486 (1./(lamr(k)**3*lams(k))+ &
2487 1./(lamr(k)**2*lams(k)**2)+ &
2488 1./(lamr(k)*lams(k)**3))
2494 pracs(k) = min(pracs(k),qr3d(k)/dt)
2501 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2502 psacr(k) = cons31*(((1.2*umr-0.95*ums)**2+ &
2503 0.08*ums*umr)**0.5*rho(k)* &
2504 n0rr(k)*n0s(k)/lams(k)**3*
2505 (5./(lams(k)**3*lamr(k))+ &
2506 2./(lams(k)**2*lamr(k)**2)+ &
2507 0.5/(lams(k)*lamr(k)**3)))
2517 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
2519 umg = agn(k)*cons7/(lamg(k)**bg)
2520 umr = arn(k)*cons4/(lamr(k)**br)
2521 ung = agn(k)*cons8/lamg(k)**bg
2522 unr = arn(k)*cons6/lamr(k)**br
2526 dum=(rhosu/rho(k))**0.54
2527 umg=min(umg,20.*dum)
2528 ung=min(ung,20.*dum)
2529 umr=min(umr,9.1*dum)
2530 unr=min(unr,9.1*dum)
2532 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
2533 0.08*umg*umr)**0.5*rho(k)* &
2534 n0rr(k)*n0g(k)/lamr(k)**3*
2535 (5./(lamr(k)**3*lamg(k))+ &
2536 2./(lamr(k)**2*lamg(k)**2)+
2537 0.5/(lamr(k)*lamg(k)**3)))
2539 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
2540 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
2541 (1./(lamr(k)**3*lamg(k))+ &
2542 1./(lamr(k)**2*lamg(k)**2)+ &
2543 1./(lamr(k)*lamg(k)**3))
2549 pracg(k) = min(pracg(k),qr3d(k)/dt)
2565 IF (qni3d(k).GE.0.1e-3)
THEN
2566 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2567 IF (psacws(k).GT.0..OR.pracs(k).GT.0.)
THEN
2568 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2570 IF (t3d(k).GT.270.16)
THEN
2572 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2573 fmult = (270.16-t3d(k))/2.
2574 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2575 fmult = (t3d(k)-265.16)/3.
2576 ELSE IF (t3d(k).LT.265.16)
THEN
2584 IF (psacws(k).GT.0.)
THEN
2585 nmults(k) = 35.e4*psacws(k)*fmult*1000.
2586 qmults(k) = nmults(k)*mmult
2591 qmults(k) = min(qmults(k),psacws(k))
2592 psacws(k) = psacws(k)-qmults(k)
2598 IF (pracs(k).GT.0.)
THEN
2599 nmultr(k) = 35.e4*pracs(k)*fmult*1000.
2600 qmultr(k) = nmultr(k)*mmult
2605 qmultr(k) = min(qmultr(k),pracs(k))
2607 pracs(k) = pracs(k)-qmultr(k)
2628 IF (qg3d(k).GE.0.1e-3)
THEN
2629 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2630 IF (psacwg(k).GT.0..OR.pracg(k).GT.0.)
THEN
2631 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2633 IF (t3d(k).GT.270.16)
THEN
2635 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2636 fmult = (270.16-t3d(k))/2.
2637 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2638 fmult = (t3d(k)-265.16)/3.
2639 ELSE IF (t3d(k).LT.265.16)
THEN
2647 IF (psacwg(k).GT.0.)
THEN
2648 nmultg(k) = 35.e4*psacwg(k)*fmult*1000.
2649 qmultg(k) = nmultg(k)*mmult
2654 qmultg(k) = min(qmultg(k),psacwg(k))
2655 psacwg(k) = psacwg(k)-qmultg(k)
2661 IF (pracg(k).GT.0.)
THEN
2662 nmultrg(k) = 35.e4*pracg(k)*fmult*1000.
2663 qmultrg(k) = nmultrg(k)*mmult
2668 qmultrg(k) = min(qmultrg(k),pracg(k))
2669 pracg(k) = pracg(k)-qmultrg(k)
2682 IF (psacws(k).GT.0.)
THEN
2684 IF (qni3d(k).GE.0.1e-3.AND.qc3d(k).GE.0.5e-3)
THEN
2687 pgsacw(k) = min(psacws(k),cons17*dt*n0s(k)*qc3d(k)*qc3d(k)*
2689 (rho(k)*lams(k)**(2.*bs+2.)))
2692 dum = max(rhosn/(rhog-rhosn)*pgsacw(k),0.)
2695 nscng(k) = dum/mg0*rho(k)
2697 nscng(k) = min(nscng(k),ns3d(k)/dt)
2700 psacws(k) = psacws(k) - pgsacw(k)
2706 IF (pracs(k).GT.0.)
THEN
2708 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2710 dum = cons18*(4./lams(k))**3*(4./lams(k))**3 &
2711 /(cons18*(4./lams(k))**3*(4./lams(k))**3+ &
2712 cons19*(4./lamr(k))**3*(4./lamr(k))**3)
2715 pgracs(k) = (1.-dum)*pracs(k)
2716 ngracs(k) = (1.-dum)*npracs(k)
2718 ngracs(k) = min(ngracs(k),nr3d(k)/dt)
2719 ngracs(k) = min(ngracs(k),ns3d(k)/dt)
2722 pracs(k) = pracs(k) - pgracs(k)
2723 npracs(k) = npracs(k) - ngracs(k)
2725 psacr(k)=psacr(k)*(1.-dum)
2734 IF (t3d(k).LT.269.15.AND.qr3d(k).GE.qsmall)
THEN
2743 mnuccr(k) = cons20*nr3d(k)*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2746 nnuccr(k) = pi*nr3d(k)*bimm*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2749 nnuccr(k) = min(nnuccr(k),nr3d(k)/dt)
2758 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
2763 dum=(qc3d(k)*qr3d(k))
2764 pra(k) = 67.*(dum)**1.15
2765 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
2774 IF (qr3d(k).GE.1.e-8)
THEN
2777 if (1./lamr(k).lt.dum1)
then
2779 else if (1./lamr(k).ge.dum1)
then
2780 dum=2.-exp(2300.*(1./lamr(k)-dum1))
2783 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
2792 IF (qi3d(k).GE.1.e-8 .AND.qvqvsi(k).GE.1.)
THEN
2796 nprci(k) = cons21*(qv3d(k)-qvi(k))*rho(k)
2797 *n0i(k)*exp(-lami(k)*dcs)*dv(k)/abi(k)
2798 prci(k) = cons22*nprci(k)
2799 nprci(k) = min(nprci(k),ni3d(k)/dt)
2809 IF (qni3d(k).GE.1.e-8 .AND. qi3d(k).GE.qsmall)
THEN
2810 prai(k) = cons23*asn(k)*qi3d(k)*rho(k)*n0s(k)/ &
2812 nprai(k) = cons23*asn(k)*ni3d(k)*
2815 nprai(k)=min(nprai(k),ni3d(k)/dt)
2823 IF (qr3d(k).GE.1.e-8.AND.qi3d(k).GE.1.e-8.AND.t3d(k).LE.273.15)
THEN
2828 IF (qr3d(k).GE.0.1e-3)
THEN
2829 niacr(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2830 /lamr(k)**(br+3.)*rho(k)
2831 piacr(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2832 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2833 praci(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2834 lamr(k)**(br+3.)*rho(k)
2835 niacr(k)=min(niacr(k),nr3d(k)/dt)
2836 niacr(k)=min(niacr(k),ni3d(k)/dt)
2838 niacrs(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2839 /lamr(k)**(br+3.)*rho(k)
2840 piacrs(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2841 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2842 pracis(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2843 lamr(k)**(br+3.)*rho(k)
2844 niacrs(k)=min(niacrs(k),nr3d(k)/dt)
2845 niacrs(k)=min(niacrs(k),ni3d(k)/dt)
2856 if ((qvqvs(k).GE.0.999.and.t3d(k).le.265.15).or. &
2857 qvqvsi(k).ge.1.08)
then
2860 kc2 = 0.005*exp(0.304*(273.15-t3d(k)))*1000.
2862 kc2 = min(kc2,500.e3)
2863 kc2=max(kc2/rho(k),0.)
2865 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2866 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2867 mnuccd(k) = nnuccd(k)*mi0
2872 ELSE IF (inuc.EQ.1)
THEN
2874 IF (t3d(k).LT.273.15.AND.qvqvsi(k).GT.1.)
THEN
2876 kc2 = 0.16*1000./rho(k)
2877 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2878 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2879 mnuccd(k) = nnuccd(k)*mi0
2894 IF (qi3d(k).GE.qsmall)
THEN
2896 epsi = 2.*pi*n0i(k)*rho(k)*dv(k)/(lami(k)*lami(k))
2902 IF (qni3d(k).GE.qsmall)
THEN
2903 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
2904 (f1s/(lams(k)*lams(k))+ &
2905 f2s*(asn(k)*rho(k)/mu(k))**0.5*
2906 sc(k)**(1./3.)*cons10/ &
2912 IF (qg3d(k).GE.qsmall)
THEN
2913 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
2914 (f1s/(lamg(k)*lamg(k))+
2915 f2s*(agn(k)*rho(k)/mu(k))**0.5*
2916 sc(k)**(1./3.)*cons11/ &
2924 IF (qr3d(k).GE.qsmall)
THEN
2925 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
2926 (f1r/(lamr(k)*lamr(k))+ &
2927 f2r*(arn(k)*rho(k)/mu(k))**0.5*
2928 sc(k)**(1./3.)*cons9/ &
2938 IF (qi3d(k).GE.qsmall)
THEN
2939 dum=(1.-exp(-lami(k)*dcs)*(1.+lami(k)*dcs))
2940 prd(k) = epsi*(qv3d(k)-qvi(k))/abi(k)*dum
2945 IF (qni3d(k).GE.qsmall)
THEN
2946 prds(k) = epss*(qv3d(k)-qvi(k))/abi(k)+ &
2947 epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2950 prd(k) = prd(k)+epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2953 prdg(k) = epsg*(qv3d(k)-qvi(k))/abi(k)
2957 IF (qv3d(k).LT.qvs(k))
THEN
2958 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
2959 pre(k) = min(pre(k),0.)
2967 dum = (qv3d(k)-qvi(k))/dt
2970 sum_dep = prd(k)+prds(k)+mnuccd(k)+prdg(k)
2972 IF( (dum.GT.0. .AND. sum_dep.GT.dum*fudgef) .OR.
2973 (dum.LT.0. .AND. sum_dep.LT.dum*fudgef) )
THEN
2974 mnuccd(k) = fudgef*mnuccd(k)*dum/sum_dep
2975 prd(k) = fudgef*prd(k)*dum/sum_dep
2976 prds(k) = fudgef*prds(k)*dum/sum_dep
2977 prdg(k) = fudgef*prdg(k)*dum/sum_dep
2982 IF (prd(k).LT.0.)
THEN
2986 IF (prds(k).LT.0.)
THEN
2990 IF (prdg(k).LT.0.)
THEN
3022 IF (igraup.EQ.1)
THEN
3038 piacrs(k)=piacrs(k)+piacr(k)
3041 pracis(k)=pracis(k)+praci(k)
3043 psacws(k)=psacws(k)+pgsacw(k)
3045 pracs(k)=pracs(k)+pgracs(k)
3051 dum = (prc(k)+pra(k)+mnuccc(k)+psacws(k)+psacwi(k)+qmults(k)+psacwg
3053 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
3056 prc(k) = prc(k)*ratio
3057 pra(k) = pra(k)*ratio
3058 mnuccc(k) = mnuccc(k)*ratio
3059 psacws(k) = psacws(k)*ratio
3060 psacwi(k) = psacwi(k)*ratio
3061 qmults(k) = qmults(k)*ratio
3062 qmultg(k) = qmultg(k)*ratio
3063 psacwg(k) = psacwg(k)*ratio
3064 pgsacw(k) = pgsacw(k)*ratio
3069 dum = (-prd(k)-mnuccc(k)+prci(k)+prai(k)-qmults(k)-qmultg(k)-qmultr
3070 -mnuccd(k)+praci(k)+pracis(k)-eprd(k)-psacwi(k))*dt
3072 IF (dum.GT.qi3d(k).AND.qi3d(k).GE.qsmall)
THEN
3074 ratio = (qi3d(k)/dt+prd(k)+mnuccc(k)+qmults(k)+qmultg(k)+qmultr(k
3075 mnuccd(k)+psacwi(k))/ &
3076 (prci(k)+prai(k)+praci(k)+pracis(k)-eprd(k))
3078 prci(k) = prci(k)*ratio
3079 prai(k) = prai(k)*ratio
3080 praci(k) = praci(k)*ratio
3081 pracis(k) = pracis(k)*ratio
3082 eprd(k) = eprd(k)*ratio
3088 dum=((pracs(k)-pre(k))+(qmultr(k)+qmultrg(k)-prc(k))+(mnuccr(k)-pra
3089 piacr(k)+piacrs(k)+pgracs(k)+pracg(k))*dt
3091 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
3093 ratio = (qr3d(k)/dt+prc(k)+pra(k))/ &
3094 (-pre(k)+qmultr(k)+qmultrg(k)+pracs(k)+mnuccr(k)+piacr(k)+piacrs
3096 pre(k) = pre(k)*ratio
3097 pracs(k) = pracs(k)*ratio
3098 qmultr(k) = qmultr(k)*ratio
3099 qmultrg(k) = qmultrg(k)*ratio
3100 mnuccr(k) = mnuccr(k)*ratio
3101 piacr(k) = piacr(k)*ratio
3102 piacrs(k) = piacrs(k)*ratio
3103 pgracs(k) = pgracs(k)*ratio
3104 pracg(k) = pracg(k)*ratio
3111 IF (igraup.EQ.0)
THEN
3113 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3115 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3117 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3119 eprds(k) = eprds(k)*ratio
3120 psacr(k) = psacr(k)*ratio
3125 ELSE IF (igraup.EQ.1)
THEN
3127 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3129 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3131 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3133 eprds(k) = eprds(k)*ratio
3134 psacr(k) = psacr(k)*ratio
3142 dum = (-psacwg(k)-pracg(k)-pgsacw(k)-pgracs(k)-prdg(k)-mnuccr(k)-eprdg
3144 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
3146 ratio = (qg3d(k)/dt+psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+prdg(k
3147 piacr(k)+praci(k))/(-eprdg(k))
3149 eprdg(k) = eprdg(k)*ratio
3155 qv3dten(k) = qv3dten(k)+(-pre(k)-prd(k)-prds(k)-mnuccd(k)-eprd(k)-eprds
3158 t3dten(k) = t3dten(k)+(pre(k) &
3159 *xxlv(k)+(prd(k)+prds(k)+ &
3160 mnuccd(k)+eprd(k)+eprds(k)+prdg(k)+eprdg(k))*xxls(k)+
3161 (psacws(k)+psacwi(k)+mnuccc(k)+mnuccr(k)+
3162 qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+pracs(k) &
3163 +psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+piacr(k)+piacrs(k
3165 qc3dten(k) = qc3dten(k)+ &
3166 (-pra(k)-prc(k)-mnuccc(k)+pcc(k)- &
3167 psacws(k)-psacwi(k)-qmults(k)-qmultg(k)-psacwg(k)-pgsacw
3168 qi3dten(k) = qi3dten(k)+ &
3169 (prd(k)+eprd(k)+psacwi(k)+mnuccc(k)-prci(k)-
3170 prai(k)+qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+mnuccd
3171 qr3dten(k) = qr3dten(k)+ &
3172 (pre(k)+pra(k)+prc(k)-pracs(k)-mnuccr(k)-qmultr(k)-qmultrg
3173 -piacr(k)-piacrs(k)-pracg(k)-pgracs(k))
3174 IF (igraup.EQ.0)
THEN
3176 qni3dten(k) = qni3dten(k)+ &
3177 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3178 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3179 qg3dten(k) = qg3dten(k)+(pracg(k)+psacwg(k)+pgsacw(k)+pgracs(k)+ &
3180 prdg(k)+eprdg(k)+mnuccr(k)+piacr(k)+praci(k)+psacr(k
3181 ng3dten(k) = ng3dten(k)+(nscng(k)+ngracs(k)+nnuccr(k)+niacr(k))
3184 ELSE IF (igraup.EQ.1)
THEN
3186 qni3dten(k) = qni3dten(k)+ &
3187 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3188 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3192 nc3dten(k) = nc3dten(k)+(-nnuccc(k)-npsacws(k) &
3193 -npra(k)-nprc(k)-npsacwi(k)-npsacwg(k))
3195 ni3dten(k) = ni3dten(k)+ &
3196 (nnuccc(k)-nprci(k)-nprai(k)+nmults(k)+nmultg(k)+nmultr(k)+nmultrg
3197 nnuccd(k)-niacr(k)-niacrs(k))
3199 nr3dten(k) = nr3dten(k)+(nprc1(k)-npracs(k)-nnuccr(k) &
3200 +nragg(k)-niacr(k)-niacrs(k)-npracg(k)-ngracs(k))
3204 c2prec(k) = pra(k)+prc(k)+psacws(k)+qmults(k)+qmultg(k)+psacwg(k
3205 pgsacw(k)+mnuccc(k)+psacwi(k)
3210 dumt = t3d(k)+dt*t3dten(k)
3211 dumqv = qv3d(k) + dt * qv3dten(k)
3214 dum=min(0.99*pres(k),polysvp(dumt,0))
3215 dumqss = ep_2*dum/(pres(k)-dum)
3217 dumqc = qc3d(k) + dt * qc3dten(k)
3219 dumqc = max(dumqc,0.)
3225 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
3227 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
3231 qv3dten(k) = qv3dten(k)-pcc(k)
3232 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
3233 qc3dten(k) = qc3dten(k)+pcc(k)
3251 IF (eprd(k).LT.0.)
THEN
3252 dum = eprd(k)*dt/qi3d(k)
3254 nsubi(k) = dum*ni3d(k)/dt
3256 IF (eprds(k).LT.0.)
THEN
3257 dum = eprds(k)*dt/qni3d(k)
3259 nsubs(k) = dum*ns3d(k)/dt
3261 IF (pre(k).LT.0.)
THEN
3262 dum = pre(k)*dt/qr3d(k)
3264 nsubr(k) = dum*nr3d(k)/dt
3266 IF (eprdg(k).LT.0.)
THEN
3267 dum = eprdg(k)*dt/qg3d(k)
3269 nsubg(k) = dum*ng3d(k)/dt
3279 ni3dten(k) = ni3dten(k)+nsubi(k)
3280 ns3dten(k) = ns3dten(k)+nsubs(k)
3281 ng3dten(k) = ng3dten(k)+nsubg(k)
3282 nr3dten(k) = nr3dten(k)+nsubr(k)
3304 IF (ltrue.EQ.0)
GOTO 400
3319 dumi(k) = qi3d(k)+qi3dten(k)*dt
3320 dumqs(k) = qni3d(k)+qni3dten(k)*dt
3321 dumr(k) = qr3d(k)+qr3dten(k)*dt
3322 dumfni(k) = ni3d(k)+ni3dten(k)*dt
3323 dumfns(k) = ns3d(k)+ns3dten(k)*dt
3324 dumfnr(k) = nr3d(k)+nr3dten(k)*dt
3325 dumc(k) = qc3d(k)+qc3dten(k)*dt
3326 dumfnc(k) = nc3d(k)+nc3dten(k)*dt
3327 dumg(k) = qg3d(k)+qg3dten(k)*dt
3328 dumfng(k) = ng3d(k)+ng3dten(k)*dt
3331 IF (iinum.EQ.1)
THEN
3338 dumfni(k) = max(0.,dumfni(k))
3339 dumfns(k) = max(0.,dumfns(k))
3340 dumfnc(k) = max(0.,dumfnc(k))
3341 dumfnr(k) = max(0.,dumfnr(k))
3342 dumfng(k) = max(0.,dumfng(k))
3347 IF (dumi(k).GE.qsmall)
THEN
3348 dlami = (cons12*dumfni(k)/dumi(k))**(1./di)
3349 dlami=max(dlami,lammini)
3350 dlami=min(dlami,lammaxi)
3355 IF (dumr(k).GE.qsmall)
THEN
3356 dlamr = (pi*rhow*dumfnr(k)/dumr(k))**(1./3.)
3357 dlamr=max(dlamr,lamminr)
3358 dlamr=min(dlamr,lammaxr)
3363 IF (dumc(k).GE.qsmall)
THEN
3364 dum = pres(k)/(287.15*t3d(k))
3365 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3366 pgam(k)=1./(pgam(k)**2)-1.
3367 pgam(k)=max(pgam(k),2.)
3368 pgam(k)=min(pgam(k),10.)
3370 dlamc = (cons26*dumfnc(k)*gamma(pgam(k)+4.)/(dumc(k)*gamma(pgam(k
3371 lammin = (pgam(k)+1.)/60.e-6
3372 lammax = (pgam(k)+1.)/1.e-6
3373 dlamc=max(dlamc,lammin)
3374 dlamc=min(dlamc,lammax)
3379 IF (dumqs(k).GE.qsmall)
THEN
3380 dlams = (cons1*dumfns(k)/ dumqs(k))**(1./ds)
3381 dlams=max(dlams,lammins)
3382 dlams=min(dlams,lammaxs)
3387 IF (dumg(k).GE.qsmall)
THEN
3388 dlamg = (cons2*dumfng(k)/ dumg(k))**(1./dg)
3389 dlamg=max(dlamg,lamming)
3390 dlamg=min(dlamg,lammaxg)
3397 IF (dumc(k).GE.qsmall)
THEN
3398 unc = acn(k)*gamma(1.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+1.))
3399 umc = acn(k)*gamma(4.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+4.))
3405 IF (dumi(k).GE.qsmall)
THEN
3406 uni = ain(k)*cons27/dlami**bi
3407 umi = ain(k)*cons28/(dlami**bi)
3413 IF (dumr(k).GE.qsmall)
THEN
3414 unr = arn(k)*cons6/dlamr**br
3415 umr = arn(k)*cons4/(dlamr**br)
3421 IF (dumqs(k).GE.qsmall)
THEN
3422 ums = asn(k)*cons3/(dlams**bs)
3423 uns = asn(k)*cons5/dlams**bs
3429 IF (dumg(k).GE.qsmall)
THEN
3430 umg = agn(k)*cons7/(dlamg**bg)
3431 ung = agn(k)*cons8/dlamg**bg
3440 dum=(rhosu/rho(k))**0.54
3441 ums=min(ums,1.2*dum)
3442 uns=min(uns,1.2*dum)
3445 umi=min(umi,1.2*(rhosu/rho(k))**0.35)
3446 uni=min(uni,1.2*(rhosu/rho(k))**0.35)
3447 umr=min(umr,9.1*dum)
3448 unr=min(unr,9.1*dum)
3449 umg=min(umg,20.*dum)
3450 ung=min(ung,20.*dum)
3465 IF (k.LE.kte-1)
THEN
3466 IF (fr(k).LT.1.e-10)
THEN
3469 IF (fi(k).LT.1.e-10)
THEN
3472 IF (fni(k).LT.1.e-10)
THEN
3475 IF (fs(k).LT.1.e-10)
THEN
3478 IF (fns(k).LT.1.e-10)
THEN
3481 IF (fnr(k).LT.1.e-10)
THEN
3484 IF (fc(k).LT.1.e-10)
THEN
3487 IF (fnc(k).LT.1.e-10)
THEN
3490 IF (fg(k).LT.1.e-10)
THEN
3493 IF (fng(k).LT.1.e-10)
THEN
3500 rgvm = max(fr(k),fi(k),fs(k),fc(k),fni(k),fnr(k),fns(k),fnc(k),fg(k
3502 nstep = max(int(rgvm*dt/dzq(k)+1.),nstep)
3505 dumr(k) = dumr(k)*rho(k)
3506 dumi(k) = dumi(k)*rho(k)
3507 dumfni(k) = dumfni(k)*rho(k)
3508 dumqs(k) = dumqs(k)*rho(k)
3509 dumfns(k) = dumfns(k)*rho(k)
3510 dumfnr(k) = dumfnr(k)*rho(k)
3511 dumc(k) = dumc(k)*rho(k)
3512 dumfnc(k) = dumfnc(k)*rho(k)
3513 dumg(k) = dumg(k)*rho(k)
3514 dumfng(k) = dumfng(k)*rho(k)
3521 faloutr(k) = fr(k)*dumr(k)
3522 falouti(k) = fi(k)*dumi(k)
3523 faloutni(k) = fni(k)*dumfni(k)
3524 falouts(k) = fs(k)*dumqs(k)
3525 faloutns(k) = fns(k)*dumfns(k)
3526 faloutnr(k) = fnr(k)*dumfnr(k)
3527 faloutc(k) = fc(k)*dumc(k)
3528 faloutnc(k) = fnc(k)*dumfnc(k)
3529 faloutg(k) = fg(k)*dumg(k)
3530 faloutng(k) = fng(k)*dumfng(k)
3536 faltndr = faloutr(k)/dzq(k)
3537 faltndi = falouti(k)/dzq(k)
3538 faltndni = faloutni(k)/dzq(k)
3539 faltnds = falouts(k)/dzq(k)
3540 faltndns = faloutns(k)/dzq(k)
3541 faltndnr = faloutnr(k)/dzq(k)
3542 faltndc = faloutc(k)/dzq(k)
3543 faltndnc = faloutnc(k)/dzq(k)
3544 faltndg = faloutg(k)/dzq(k)
3545 faltndng = faloutng(k)/dzq(k)
3548 qrsten(k) = qrsten(k)-faltndr/nstep/rho(k)
3549 qisten(k) = qisten(k)-faltndi/nstep/rho(k)
3550 ni3dten(k) = ni3dten(k)-faltndni/nstep/rho(k)
3551 qnisten(k) = qnisten(k)-faltnds/nstep/rho(k)
3552 ns3dten(k) = ns3dten(k)-faltndns/nstep/rho(k)
3553 nr3dten(k) = nr3dten(k)-faltndnr/nstep/rho(k)
3554 qcsten(k) = qcsten(k)-faltndc/nstep/rho(k)
3555 nc3dten(k) = nc3dten(k)-faltndnc/nstep/rho(k)
3556 qgsten(k) = qgsten(k)-faltndg/nstep/rho(k)
3557 ng3dten(k) = ng3dten(k)-faltndng/nstep/rho(k)
3559 dumr(k) = dumr(k)-faltndr*dt/nstep
3560 dumi(k) = dumi(k)-faltndi*dt/nstep
3561 dumfni(k) = dumfni(k)-faltndni*dt/nstep
3562 dumqs(k) = dumqs(k)-faltnds*dt/nstep
3563 dumfns(k) = dumfns(k)-faltndns*dt/nstep
3564 dumfnr(k) = dumfnr(k)-faltndnr*dt/nstep
3565 dumc(k) = dumc(k)-faltndc*dt/nstep
3566 dumfnc(k) = dumfnc(k)-faltndnc*dt/nstep
3567 dumg(k) = dumg(k)-faltndg*dt/nstep
3568 dumfng(k) = dumfng(k)-faltndng*dt/nstep
3571 faltndr = (faloutr(k+1)-faloutr(k))/dzq(k)
3572 faltndi = (falouti(k+1)-falouti(k))/dzq(k)
3573 faltndni = (faloutni(k+1)-faloutni(k))/dzq(k)
3574 faltnds = (falouts(k+1)-falouts(k))/dzq(k)
3575 faltndns = (faloutns(k+1)-faloutns(k))/dzq(k)
3576 faltndnr = (faloutnr(k+1)-faloutnr(k))/dzq(k)
3577 faltndc = (faloutc(k+1)-faloutc(k))/dzq(k)
3578 faltndnc = (faloutnc(k+1)-faloutnc(k))/dzq(k)
3579 faltndg = (faloutg(k+1)-faloutg(k))/dzq(k)
3580 faltndng = (faloutng(k+1)-faloutng(k))/dzq(k)
3584 qrsten(k) = qrsten(k)+faltndr/nstep/rho(k)
3585 qisten(k) = qisten(k)+faltndi/nstep/rho(k)
3586 ni3dten(k) = ni3dten(k)+faltndni/nstep/rho(k)
3587 qnisten(k) = qnisten(k)+faltnds/nstep/rho(k)
3588 ns3dten(k) = ns3dten(k)+faltndns/nstep/rho(k)
3589 nr3dten(k) = nr3dten(k)+faltndnr/nstep/rho(k)
3590 qcsten(k) = qcsten(k)+faltndc/nstep/rho(k)
3591 nc3dten(k) = nc3dten(k)+faltndnc/nstep/rho(k)
3592 qgsten(k) = qgsten(k)+faltndg/nstep/rho(k)
3593 ng3dten(k) = ng3dten(k)+faltndng/nstep/rho(k)
3595 dumr(k) = dumr(k)+faltndr*dt/nstep
3596 dumi(k) = dumi(k)+faltndi*dt/nstep
3597 dumfni(k) = dumfni(k)+faltndni*dt/nstep
3598 dumqs(k) = dumqs(k)+faltnds*dt/nstep
3599 dumfns(k) = dumfns(k)+faltndns*dt/nstep
3600 dumfnr(k) = dumfnr(k)+faltndnr*dt/nstep
3601 dumc(k) = dumc(k)+faltndc*dt/nstep
3602 dumfnc(k) = dumfnc(k)+faltndnc*dt/nstep
3603 dumg(k) = dumg(k)+faltndg*dt/nstep
3604 dumfng(k) = dumfng(k)+faltndng*dt/nstep
3607 csed(k)=csed(k)+faloutc(k)/nstep
3608 ised(k)=ised(k)+falouti(k)/nstep
3609 ssed(k)=ssed(k)+falouts(k)/nstep
3610 gsed(k)=gsed(k)+faloutg(k)/nstep
3611 rsed(k)=rsed(k)+faloutr(k)/nstep
3618 precrt = precrt+(faloutr(kts)+faloutc(kts)+falouts(kts)+falouti(kts
3620 snowrt = snowrt+(falouts(kts)+falouti(kts)+faloutg(kts))*dt/nstep
3622 snowprt = snowprt+(falouti(kts)+falouts(kts))*dt/nstep
3623 grplprt = grplprt+(faloutg(kts))*dt/nstep
3630 qr3dten(k)=qr3dten(k)+qrsten(k)
3631 qi3dten(k)=qi3dten(k)+qisten(k)
3632 qc3dten(k)=qc3dten(k)+qcsten(k)
3633 qg3dten(k)=qg3dten(k)+qgsten(k)
3634 qni3dten(k)=qni3dten(k)+qnisten(k)
3640 IF (qi3d(k).GE.qsmall.AND.t3d(k).LT.273.15.AND.lami(k).GE.1.e-10
THEN
3641 IF (1./lami(k).GE.2.*dcs)
THEN
3642 qni3dten(k) = qni3dten(k)+qi3d(k)/dt+ qi3dten(k)
3643 ns3dten(k) = ns3dten(k)+ni3d(k)/dt+ ni3dten(k)
3644 qi3dten(k) = -qi3d(k)/dt
3645 ni3dten(k) = -ni3d(k)/dt
3652 qc3d(k) = qc3d(k)+qc3dten(k)*dt
3653 qi3d(k) = qi3d(k)+qi3dten(k)*dt
3654 qni3d(k) = qni3d(k)+qni3dten(k)*dt
3655 qr3d(k) = qr3d(k)+qr3dten(k)*dt
3656 nc3d(k) = nc3d(k)+nc3dten(k)*dt
3657 ni3d(k) = ni3d(k)+ni3dten(k)*dt
3658 ns3d(k) = ns3d(k)+ns3dten(k)*dt
3659 nr3d(k) = nr3d(k)+nr3dten(k)*dt
3661 IF (igraup.EQ.0)
THEN
3662 qg3d(k) = qg3d(k)+qg3dten(k)*dt
3663 ng3d(k) = ng3d(k)+ng3dten(k)*dt
3667 t3d(k) = t3d(k)+t3dten(k)*dt
3668 qv3d(k) = qv3d(k)+qv3dten(k)*dt
3673 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
3674 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
3678 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
3680 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
3681 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
3683 qvqvs(k) = qv3d(k)/qvs(k)
3684 qvqvsi(k) = qv3d(k)/qvi(k)
3689 IF (qvqvs(k).LT.0.9)
THEN
3690 IF (qr3d(k).LT.1.e-8)
THEN
3691 qv3d(k)=qv3d(k)+qr3d(k)
3692 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
3695 IF (qc3d(k).LT.1.e-8)
THEN
3696 qv3d(k)=qv3d(k)+qc3d(k)
3697 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
3701 IF (qvqvsi(k).LT.0.9)
THEN
3702 IF (qi3d(k).LT.1.e-8)
THEN
3703 qv3d(k)=qv3d(k)+qi3d(k)
3704 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
3707 IF (qni3d(k).LT.1.e-8)
THEN
3708 qv3d(k)=qv3d(k)+qni3d(k)
3709 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
3712 IF (qg3d(k).LT.1.e-8)
THEN
3713 qv3d(k)=qv3d(k)+qg3d(k)
3714 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
3722 IF (qc3d(k).LT.qsmall)
THEN
3727 IF (qr3d(k).LT.qsmall)
THEN
3732 IF (qi3d(k).LT.qsmall)
THEN
3737 IF (qni3d(k).LT.qsmall)
THEN
3742 IF (qg3d(k).LT.qsmall)
THEN
3751 IF (qc3d(k).LT.qsmall.AND.qi3d(k).LT.qsmall.AND.qni3d(k).LT.qsmall
3752 .AND.qr3d(k).LT.qsmall.AND.qg3d(k).LT.qsmall)
GOTO 500
3759 IF (qi3d(k).GE.qsmall.AND.t3d(k).GE.273.15)
THEN
3760 qr3d(k) = qr3d(k)+qi3d(k)
3761 t3d(k) = t3d(k)-qi3d(k)*xlf(k)/cpm(k)
3763 nr3d(k) = nr3d(k)+ni3d(k)
3768 IF (iliq.EQ.1)
GOTO 778
3772 IF (t3d(k).LE.233.15.AND.qc3d(k).GE.qsmall)
THEN
3773 qi3d(k)=qi3d(k)+qc3d(k)
3774 t3d(k)=t3d(k)+qc3d(k)*xlf(k)/cpm(k)
3776 ni3d(k)=ni3d(k)+nc3d(k)
3782 IF (igraup.EQ.0)
THEN
3784 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3785 qg3d(k) = qg3d(k)+qr3d(k)
3786 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3788 ng3d(k) = ng3d(k)+ nr3d(k)
3792 ELSE IF (igraup.EQ.1)
THEN
3794 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3795 qni3d(k) = qni3d(k)+qr3d(k)
3796 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3798 ns3d(k) = ns3d(k)+nr3d(k)
3808 ni3d(k) = max(0.,ni3d(k))
3809 ns3d(k) = max(0.,ns3d(k))
3810 nc3d(k) = max(0.,nc3d(k))
3811 nr3d(k) = max(0.,nr3d(k))
3812 ng3d(k) = max(0.,ng3d(k))
3817 IF (qi3d(k).GE.qsmall)
THEN
3818 lami(k) = (cons12* &
3819 ni3d(k)/qi3d(k))**(1./di)
3825 IF (lami(k).LT.lammini)
THEN
3829 n0i(k) = lami(k)**4*qi3d(k)/cons12
3831 ni3d(k) = n0i(k)/lami(k)
3832 ELSE IF (lami(k).GT.lammaxi)
THEN
3834 n0i(k) = lami(k)**4*qi3d(k)/cons12
3836 ni3d(k) = n0i(k)/lami(k)
3843 IF (qr3d(k).GE.qsmall)
THEN
3844 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
3850 IF (lamr(k).LT.lamminr)
THEN
3854 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3856 nr3d(k) = n0rr(k)/lamr(k)
3857 ELSE IF (lamr(k).GT.lammaxr)
THEN
3859 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3861 nr3d(k) = n0rr(k)/lamr(k)
3871 IF (qc3d(k).GE.qsmall)
THEN
3873 dum = pres(k)/(287.15*t3d(k))
3874 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3875 pgam(k)=1./(pgam(k)**2)-1.
3876 pgam(k)=max(pgam(k),2.)
3877 pgam(k)=min(pgam(k),10.)
3881 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
3882 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
3887 lammin = (pgam(k)+1.)/60.e-6
3888 lammax = (pgam(k)+1.)/1.e-6
3890 IF (lamc(k).LT.lammin)
THEN
3892 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3893 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3895 ELSE IF (lamc(k).GT.lammax)
THEN
3897 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3898 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3907 IF (qni3d(k).GE.qsmall)
THEN
3908 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
3914 IF (lams(k).LT.lammins)
THEN
3916 n0s(k) = lams(k)**4*qni3d(k)/cons1
3918 ns3d(k) = n0s(k)/lams(k)
3920 ELSE IF (lams(k).GT.lammaxs)
THEN
3923 n0s(k) = lams(k)**4*qni3d(k)/cons1
3924 ns3d(k) = n0s(k)/lams(k)
3932 IF (qg3d(k).GE.qsmall)
THEN
3933 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
3939 IF (lamg(k).LT.lamming)
THEN
3941 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3943 ng3d(k) = n0g(k)/lamg(k)
3945 ELSE IF (lamg(k).GT.lammaxg)
THEN
3948 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3950 ng3d(k) = n0g(k)/lamg(k)
3959 IF (qi3d(k).GE.qsmall)
THEN
3960 effi(k) = 3./lami(k)/2.*1.e6
3965 IF (qni3d(k).GE.qsmall)
THEN
3966 effs(k) = 3./lams(k)/2.*1.e6
3971 IF (qr3d(k).GE.qsmall)
THEN
3972 effr(k) = 3./lamr(k)/2.*1.e6
3977 IF (qc3d(k).GE.qsmall)
THEN
3978 effc(k) = gamma(pgam(k)+4.)/ &
3979 gamma(pgam(k)+3.)/lamc(k)/2.*1.e6
3984 IF (qg3d(k).GE.qsmall)
THEN
3985 effg(k) = 3./lamg(k)/2.*1.e6
3997 ni3d(k) = min(ni3d(k),0.3e6/rho(k))
4000 IF (iinum.EQ.0.AND.iact.EQ.2)
THEN
4001 nc3d(k) = min(nc3d(k),(nanew1+nanew2)/rho(k))
4004 IF (iinum.EQ.1)
THEN
4006 nc3d(k) = ndcnst*1.e6/rho(k)