961 INTEGER,
INTENT( IN) :: i,j,istep,kts,kte
963 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3DTEN
964 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3DTEN
965 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3DTEN
966 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3DTEN
967 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3DTEN
968 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3DTEN
969 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3DTEN
970 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3D
971 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3D
972 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3D
973 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3D
974 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3D
975 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3D
976 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3D
977 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3DTEN
978 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3DTEN
979 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3D
980 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3D
981 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRES
982 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DZQ
983 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: W3D
985 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3d
986 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3dten
987 integer,
intent(in) :: iinum
990 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3DTEN
991 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3DTEN
992 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3D
993 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3D
997 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QGSTEN
998 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QRSTEN
999 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QISTEN
1000 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNISTEN
1001 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QCSTEN
1004 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qrcu1d
1005 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qscu1d
1006 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qicu1d
1010 REAL(C_DOUBLE) PRECRT
1011 REAL(C_DOUBLE) SNOWRT
1013 REAL(C_DOUBLE) SNOWPRT
1014 REAL(C_DOUBLE) GRPLPRT
1016 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFC
1017 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFI
1018 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFS
1019 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFR
1020 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFG
1033 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMC
1034 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMI
1035 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMS
1036 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMR
1037 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMG
1038 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CDIST1
1039 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0I
1040 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0S
1041 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0RR
1042 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0G
1043 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGAM
1047 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBC
1048 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBI
1049 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBS
1050 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBR
1051 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRD
1052 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRE
1053 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDS
1054 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCC
1055 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCC
1056 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRA
1057 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRC
1058 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCC
1059 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCD
1060 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCD
1061 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCR
1062 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCR
1063 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRA
1064 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NRAGG
1065 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSAGG
1066 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC
1067 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC1
1068 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRAI
1069 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRCI
1070 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWS
1071 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWS
1072 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWI
1073 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWI
1074 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRCI
1075 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRAI
1076 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTS
1077 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTR
1078 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTS
1079 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTR
1080 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACS
1081 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACS
1082 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCCN
1083 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSMLT
1084 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMS
1085 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTS
1086 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTR
1088 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACR
1089 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACR
1090 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACI
1091 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACRS
1092 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACRS
1093 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACIS
1094 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRD
1095 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDS
1097 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACG
1098 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWG
1099 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGSACW
1100 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGRACS
1101 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDG
1102 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDG
1103 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMG
1104 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGMLT
1105 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACG
1106 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWG
1107 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSCNG
1108 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGRACS
1109 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTG
1110 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTR
1111 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBG
1112 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACR
1113 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTG
1114 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTRG
1115 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTG
1116 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTRG
1120 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: KAP
1121 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVS
1122 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EIS
1123 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVS
1124 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVI
1125 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVS
1126 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVSI
1127 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DV
1128 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLS
1129 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLV
1130 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CPM
1131 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MU
1132 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: SC
1133 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XLF
1134 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO
1135 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AB
1136 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: ABI
1140 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DAP
1141 REAL(C_DOUBLE) NACNT
1142 REAL(C_DOUBLE) FMULT
1143 REAL(C_DOUBLE) COFFI
1147 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMI,DUMR,DUMFNI,DUMG,DUMFNG
1148 REAL(C_DOUBLE) UNI, UMI,UMR
1149 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FR, FI, FNI,FG,FNG
1151 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FALOUTR,FALOUTI,FALOUTNI
1152 REAL(C_DOUBLE) FALTNDR,FALTNDI,FALTNDNI,RHO2
1153 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMQS,DUMFNS
1154 REAL(C_DOUBLE) UMS,UNS
1155 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FS,FNS, FALOUTS,FALOUTNS,FALOUTG
1156 REAL(C_DOUBLE) FALTNDS,FALTNDNS,UNR,FALTNDG,FALTNDNG
1157 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMC,DUMFNC
1158 REAL(C_DOUBLE) UNC,UMC,UNG,UMG
1159 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FC,FALOUTC,FALOUTNC
1160 REAL(C_DOUBLE) FALTNDC,FALTNDNC
1161 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNC,DUMFNR,FALOUTNR
1162 REAL(C_DOUBLE) FALTNDNR
1163 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNR
1167 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AIN,ARN,ASN,ACN,AGN
1177 REAL(C_DOUBLE) DUM,DUM1,DUM2,DUMT,DUMQV,DUMQSS,DUMQSI,DUMS
1181 REAL(C_DOUBLE) DQSDT
1182 REAL(C_DOUBLE) DQSIDT
1194 REAL(C_DOUBLE) DUMACT,DUM3
1210 REAL(C_DOUBLE) TEMP1
1212 REAL(C_DOUBLE) SIGVL
1216 REAL(C_DOUBLE) CRY,KRY
1220 REAL(C_DOUBLE) DUMQI,DUMNI,DC0,DS0,DG0
1221 REAL(C_DOUBLE) DUMQC,DUMQR,RATIO,SUM_DEP,FUDGEF
1228 REAL(C_DOUBLE) ANUC,BNUC
1232 REAL(C_DOUBLE) AACT,GAMM,GG,PSI,ETA1,ETA2,SM1,SM2,SMAX,UU1,UU2,ALPHA
1236 REAL(C_DOUBLE) DLAMS,DLAMR,DLAMI,DLAMC,DLAMG,LAMMAX,LAMMIN
1241 REAL(C_DOUBLE),
DIMENSION(KTS:KTE)::C2PREC,CSED,ISED,SSED,GSED,RSED
1242 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: tqimelt
1272 xxlv(k) = 3.1484e6-2370.*t3d(k)
1276 xxls(k) = 3.15e6-2370.*t3d(k)+0.3337e6
1278 cpm(k) = cp*(1.+0.887*qv3d(k))
1284 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
1285 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
1289 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
1291 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
1292 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
1294 qvqvs(k) = qv3d(k)/qvs(k)
1295 qvqvsi(k) = qv3d(k)/qvi(k)
1299 rho(k) = pres(k)/(r*t3d(k))
1306 IF (qrcu1d(k).GE.1.e-10)
THEN
1307 dum=1.8e5*(qrcu1d(k)*dt/(pi*rhow*rho(k)**3))**0.25
1310 IF (qscu1d(k).GE.1.e-10)
THEN
1311 dum=3.e5*(qscu1d(k)*dt/(cons1*rho(k)**3))**(1./(ds+1.))
1314 IF (qicu1d(k).GE.1.e-10)
THEN
1315 dum=qicu1d(k)*dt/(ci*(80.e-6)**di)
1322 IF (qvqvs(k).LT.0.9)
THEN
1323 IF (qr3d(k).LT.1.e-8)
THEN
1324 qv3d(k)=qv3d(k)+qr3d(k)
1325 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
1328 IF (qc3d(k).LT.1.e-8)
THEN
1329 qv3d(k)=qv3d(k)+qc3d(k)
1330 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
1335 IF (qvqvsi(k).LT.0.9)
THEN
1336 IF (qi3d(k).LT.1.e-8)
THEN
1337 qv3d(k)=qv3d(k)+qi3d(k)
1338 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
1341 IF (qni3d(k).LT.1.e-8)
THEN
1342 qv3d(k)=qv3d(k)+qni3d(k)
1343 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
1346 IF (qg3d(k).LT.1.e-8)
THEN
1347 qv3d(k)=qv3d(k)+qg3d(k)
1348 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
1355 xlf(k) = xxls(k)-xxlv(k)
1360 IF (qc3d(k).LT.qsmall)
THEN
1365 IF (qr3d(k).LT.qsmall)
THEN
1370 IF (qi3d(k).LT.qsmall)
THEN
1375 IF (qni3d(k).LT.qsmall)
THEN
1380 IF (qg3d(k).LT.qsmall)
THEN
1398 mu(k) = 1.496e-6*t3d(k)**1.5/(t3d(k)+120.)
1402 dum = (rhosu/rho(k))**0.54
1407 ain(k) = (rhosu/rho(k))**0.35*ai
1412 acn(k) = g*rhow/(18.*mu(k))
1422 IF ( qc3d(k).LT.qsmall.AND. &
1423 qi3d(k).LT.qsmall.AND. &
1424 qni3d(k).LT.qsmall.AND. &
1425 qr3d(k).LT.qsmall.AND. &
1426 qg3d(k).LT.qsmall)
THEN
1427 IF (t3d(k).LT.273.15.AND.qvqvsi(k).LT.0.999)
then
1430 IF (t3d(k).GE.273.15.AND.qvqvs(k).LT.0.999)
then
1438 kap(k) = 1.414e3*mu(k)
1442 dv(k) = 8.794e-5*t3d(k)**1.81/pres(k)
1447 sc(k) = mu(k)/(rho(k)*dv(k))
1453 dum = (rv*t3d(k)**2)
1455 dqsdt = xxlv(k)*qvs(k)/dum
1456 dqsidt = xxls(k)*qvi(k)/dum
1458 abi(k) = 1.+dqsidt*xxls(k)/cpm(k)
1459 ab(k) = 1.+dqsdt*xxlv(k)/cpm(k)
1465 IF (t3d(k).GE.273.15)
THEN
1472 IF (iinum.EQ.1)
THEN
1474 nc3d(k)=ndcnst*1.e6/rho(k)
1480 IF (qni3d(k).LT.1.e-6)
THEN
1481 qr3d(k)=qr3d(k)+qni3d(k)
1482 nr3d(k)=nr3d(k)+ns3d(k)
1483 t3d(k)=t3d(k)-qni3d(k)*xlf(k)/cpm(k)
1487 IF (qg3d(k).LT.1.e-6)
THEN
1488 qr3d(k)=qr3d(k)+qg3d(k)
1489 nr3d(k)=nr3d(k)+ng3d(k)
1490 t3d(k)=t3d(k)-qg3d(k)*xlf(k)/cpm(k)
1494 IF (qc3d(k).LT.qsmall.AND.qni3d(k).LT.1.e-8.AND.qr3d(k).LT.qsmall.AND.qg3d
THEN
1500 ns3d(k) = max(0.,ns3d(k))
1501 nc3d(k) = max(0.,nc3d(k))
1502 nr3d(k) = max(0.,nr3d(k))
1503 ng3d(k) = max(0.,ng3d(k))
1508 IF (qr3d(k).GE.qsmall)
THEN
1509 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
1510 n0rr(k) = nr3d(k)*lamr(k)
1516 IF (lamr(k).LT.lamminr)
THEN
1520 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1522 nr3d(k) = n0rr(k)/lamr(k)
1523 ELSE IF (lamr(k).GT.lammaxr)
THEN
1525 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1527 nr3d(k) = n0rr(k)/lamr(k)
1536 IF (qc3d(k).GE.qsmall)
THEN
1538 dum = pres(k)/(287.15*t3d(k))
1539 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
1540 pgam(k)=1./(pgam(k)**2)-1.
1541 pgam(k)=max(pgam(k),2.)
1542 pgam(k)=min(pgam(k),10.)
1546 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
1547 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
1552 lammin = (pgam(k)+1.)/60.e-6
1553 lammax = (pgam(k)+1.)/1.e-6
1555 IF (lamc(k).LT.lammin)
THEN
1558 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1559 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1560 ELSE IF (lamc(k).GT.lammax)
THEN
1563 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1564 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1573 IF (qni3d(k).GE.qsmall)
THEN
1574 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
1575 n0s(k) = ns3d(k)*lams(k)
1581 IF (lams(k).LT.lammins)
THEN
1583 n0s(k) = lams(k)**4*qni3d(k)/cons1
1585 ns3d(k) = n0s(k)/lams(k)
1587 ELSE IF (lams(k).GT.lammaxs)
THEN
1590 n0s(k) = lams(k)**4*qni3d(k)/cons1
1592 ns3d(k) = n0s(k)/lams(k)
1599 IF (qg3d(k).GE.qsmall)
THEN
1600 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
1601 n0g(k) = ng3d(k)*lamg(k)
1605 IF (lamg(k).LT.lamming)
THEN
1607 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1609 ng3d(k) = n0g(k)/lamg(k)
1611 ELSE IF (lamg(k).GT.lammaxg)
THEN
1614 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1616 ng3d(k) = n0g(k)/lamg(k)
1658 IF (qc3d(k).GE.1.e-6)
THEN
1663 prc(k)=1350.*qc3d(k)**2.47* &
1664 (nc3d(k)/1.e6*rho(k))**(-1.79)
1669 nprc1(k) = prc(k)/cons29
1670 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
1673 nprc(k) = min(nprc(k),nc3d(k)/dt)
1674 nprc1(k) = min(nprc1(k),nprc(k))
1682 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
1684 ums = asn(k)*cons3/(lams(k)**bs)
1685 umr = arn(k)*cons4/(lamr(k)**br)
1686 uns = asn(k)*cons5/lams(k)**bs
1687 unr = arn(k)*cons6/lamr(k)**br
1692 dum=(rhosu/rho(k))**0.54
1693 ums=min(ums,1.2*dum)
1694 uns=min(uns,1.2*dum)
1695 umr=min(umr,9.1*dum)
1696 unr=min(unr,9.1*dum)
1708 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
1709 0.08*ums*umr)**0.5*rho(k)* &
1710 n0rr(k)*n0s(k)/lamr(k)**3*
1711 (5./(lamr(k)**3*lams(k))+ &
1712 2./(lamr(k)**2*lams(k)**2)+ &
1713 0.5/(lamr(k)*lams(k)**3)))
1728 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
1730 umg = agn(k)*cons7/(lamg(k)**bg)
1731 umr = arn(k)*cons4/(lamr(k)**br)
1732 ung = agn(k)*cons8/lamg(k)**bg
1733 unr = arn(k)*cons6/lamr(k)**br
1737 dum=(rhosu/rho(k))**0.54
1738 umg=min(umg,20.*dum)
1739 ung=min(ung,20.*dum)
1740 umr=min(umr,9.1*dum)
1741 unr=min(unr,9.1*dum)
1744 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
1745 0.08*umg*umr)**0.5*rho(k)* &
1746 n0rr(k)*n0g(k)/lamr(k)**3*
1747 (5./(lamr(k)**3*lamg(k))+ &
1748 2./(lamr(k)**2*lamg(k)**2)+
1749 0.5/(lamr(k)*lamg(k)**3)))
1753 dum = pracg(k)/5.2e-7
1755 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
1756 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
1757 (1./(lamr(k)**3*lamg(k))+ &
1758 1./(lamr(k)**2*lamg(k)**2)+ &
1759 1./(lamr(k)*lamg(k)**3))
1764 npracg(k)=npracg(k)-dum
1773 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
1778 dum=(qc3d(k)*qr3d(k))
1779 pra(k) = 67.*(dum)**1.15
1780 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
1789 IF (qr3d(k).GE.1.e-8)
THEN
1792 if (1./lamr(k).lt.dum1)
then
1794 else if (1./lamr(k).ge.dum1)
then
1795 dum=2.-exp(2300.*(1./lamr(k)-dum1))
1798 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
1804 IF (qr3d(k).GE.qsmall)
THEN
1805 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
1806 (f1r/(lamr(k)*lamr(k))+ &
1807 f2r*(arn(k)*rho(k)/mu(k))**0.5*
1808 sc(k)**(1./3.)*cons9/ &
1815 IF (qv3d(k).LT.qvs(k))
THEN
1816 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
1817 pre(k) = min(pre(k),0.)
1827 IF (qni3d(k).GE.1.e-8)
THEN
1832 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracs(k)
1840 psmlt(k)=2.*pi*n0s(k)*kap(k)*(273.15-t3d(k))/ &
1841 xlf(k)*(f1s/(lams(k)*lams(k))+ &
1842 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1843 sc(k)**(1./3.)*cons10/ &
1844 (lams(k)**cons35))+dum
1848 IF (qvqvs(k).LT.1.)
THEN
1849 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
1850 (f1s/(lams(k)*lams(k))+ &
1851 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1852 sc(k)**(1./3.)*cons10/ &
1855 evpms(k) = (qv3d(k)-qvs(k))*epss/ab(k)
1856 evpms(k) = max(evpms(k),psmlt(k))
1857 psmlt(k) = psmlt(k)-evpms(k)
1867 IF (qg3d(k).GE.1.e-8)
THEN
1872 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracg(k)
1880 pgmlt(k)=2.*pi*n0g(k)*kap(k)*(273.15-t3d(k))/
1881 xlf(k)*(f1s/(lamg(k)*lamg(k))+ &
1882 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1883 sc(k)**(1./3.)*cons11/ &
1884 (lamg(k)**cons36))+dum
1888 IF (qvqvs(k).LT.1.)
THEN
1889 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
1890 (f1s/(lamg(k)*lamg(k))+
1891 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1892 sc(k)**(1./3.)*cons11/ &
1895 evpmg(k) = (qv3d(k)-qvs(k))*epsg/ab(k)
1896 evpmg(k) = max(evpmg(k),pgmlt(k))
1897 pgmlt(k) = pgmlt(k)-evpmg(k)
1917 dum = (prc(k)+pra(k))*dt
1919 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
1923 prc(k) = prc(k)*ratio
1924 pra(k) = pra(k)*ratio
1930 dum = (-psmlt(k)-evpms(k)+pracs(k))*dt
1932 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
1935 ratio = qni3d(k)/dum
1937 psmlt(k) = psmlt(k)*ratio
1938 evpms(k) = evpms(k)*ratio
1939 pracs(k) = pracs(k)*ratio
1945 dum = (-pgmlt(k)-evpmg(k)+pracg(k))*dt
1947 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
1952 pgmlt(k) = pgmlt(k)*ratio
1953 evpmg(k) = evpmg(k)*ratio
1954 pracg(k) = pracg(k)*ratio
1961 dum = (-pracs(k)-pracg(k)-pre(k)-pra(k)-prc(k)+psmlt(k)+pgmlt(k)
1963 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
1965 ratio = (qr3d(k)/dt+pracs(k)+pracg(k)+pra(k)+prc(k)-psmlt(k)-pgmlt
1967 pre(k) = pre(k)*ratio
1972 qv3dten(k) = qv3dten(k)+(-pre(k)-evpms(k)-evpmg(k))
1974 t3dten(k) = t3dten(k)+(pre(k)*xxlv(k)+(evpms(k)+evpmg(k))*xxls(k)+
1975 (psmlt(k)+pgmlt(k)-pracs(k)-pracg(k))*xlf(k))/cpm(k)
1977 qc3dten(k) = qc3dten(k)+(-pra(k)-prc(k))
1978 qr3dten(k) = qr3dten(k)+(pre(k)+pra(k)+prc(k)-psmlt(k)-pgmlt(k)+pracs
1979 qni3dten(k) = qni3dten(k)+(psmlt(k)+evpms(k)-pracs(k))
1980 qg3dten(k) = qg3dten(k)+(pgmlt(k)+evpmg(k)-pracg(k))
1985 nc3dten(k) = nc3dten(k)+ (-npra(k)-nprc(k))
1986 nr3dten(k) = nr3dten(k)+ (nprc1(k)+nragg(k)-npracg(k))
1990 c2prec(k) = pra(k)+prc(k)
1991 IF (pre(k).LT.0.)
THEN
1992 dum = pre(k)*dt/qr3d(k)
1994 nsubr(k) = dum*nr3d(k)/dt
1997 IF (evpms(k)+psmlt(k).LT.0.)
THEN
1998 dum = (evpms(k)+psmlt(k))*dt/qni3d(k)
2000 nsmlts(k) = dum*ns3d(k)/dt
2002 IF (psmlt(k).LT.0.)
THEN
2003 dum = psmlt(k)*dt/qni3d(k)
2005 nsmltr(k) = dum*ns3d(k)/dt
2007 IF (evpmg(k)+pgmlt(k).LT.0.)
THEN
2008 dum = (evpmg(k)+pgmlt(k))*dt/qg3d(k)
2010 ngmltg(k) = dum*ng3d(k)/dt
2012 IF (pgmlt(k).LT.0.)
THEN
2013 dum = pgmlt(k)*dt/qg3d(k)
2015 ngmltr(k) = dum*ng3d(k)/dt
2018 ns3dten(k) = ns3dten(k)+(nsmlts(k))
2019 ng3dten(k) = ng3dten(k)+(ngmltg(k))
2020 nr3dten(k) = nr3dten(k)+(nsubr(k)-nsmltr(k)-ngmltr(k))
2028 dumt = t3d(k)+dt*t3dten(k)
2029 dumqv = qv3d(k)+dt*qv3dten(k)
2031 dum=min(0.99*pres(k),polysvp(dumt,0))
2032 dumqss = ep_2*dum/(pres(k)-dum)
2033 dumqc = qc3d(k)+dt*qc3dten(k)
2034 dumqc = max(dumqc,0.)
2039 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
2040 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
2044 qv3dten(k) = qv3dten(k)-pcc(k)
2045 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
2046 qc3dten(k) = qc3dten(k)+pcc(k)
2076 IF (iinum.EQ.1)
THEN
2078 nc3d(k)=ndcnst*1.e6/rho(k)
2084 ni3d(k) = max(0.,ni3d(k))
2085 ns3d(k) = max(0.,ns3d(k))
2086 nc3d(k) = max(0.,nc3d(k))
2087 nr3d(k) = max(0.,nr3d(k))
2088 ng3d(k) = max(0.,ng3d(k))
2093 IF (qi3d(k).GE.qsmall)
THEN
2094 lami(k) = (cons12* &
2095 ni3d(k)/qi3d(k))**(1./di)
2096 n0i(k) = ni3d(k)*lami(k)
2102 IF (lami(k).LT.lammini)
THEN
2106 n0i(k) = lami(k)**4*qi3d(k)/cons12
2108 ni3d(k) = n0i(k)/lami(k)
2109 ELSE IF (lami(k).GT.lammaxi)
THEN
2111 n0i(k) = lami(k)**4*qi3d(k)/cons12
2113 ni3d(k) = n0i(k)/lami(k)
2120 IF (qr3d(k).GE.qsmall)
THEN
2121 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
2122 n0rr(k) = nr3d(k)*lamr(k)
2128 IF (lamr(k).LT.lamminr)
THEN
2132 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2134 nr3d(k) = n0rr(k)/lamr(k)
2135 ELSE IF (lamr(k).GT.lammaxr)
THEN
2137 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2139 nr3d(k) = n0rr(k)/lamr(k)
2147 IF (qc3d(k).GE.qsmall)
THEN
2149 dum = pres(k)/(287.15*t3d(k))
2150 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
2151 pgam(k)=1./(pgam(k)**2)-1.
2152 pgam(k)=max(pgam(k),2.)
2153 pgam(k)=min(pgam(k),10.)
2157 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
2158 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
2163 lammin = (pgam(k)+1.)/60.e-6
2164 lammax = (pgam(k)+1.)/1.e-6
2166 IF (lamc(k).LT.lammin)
THEN
2169 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2170 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2171 ELSE IF (lamc(k).GT.lammax)
THEN
2173 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2174 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2180 cdist1(k) = nc3d(k)/gamma(pgam(k)+1.)
2187 IF (qni3d(k).GE.qsmall)
THEN
2188 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
2189 n0s(k) = ns3d(k)*lams(k)
2195 IF (lams(k).LT.lammins)
THEN
2197 n0s(k) = lams(k)**4*qni3d(k)/cons1
2199 ns3d(k) = n0s(k)/lams(k)
2201 ELSE IF (lams(k).GT.lammaxs)
THEN
2204 n0s(k) = lams(k)**4*qni3d(k)/cons1
2206 ns3d(k) = n0s(k)/lams(k)
2213 IF (qg3d(k).GE.qsmall)
THEN
2214 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
2215 n0g(k) = ng3d(k)*lamg(k)
2221 IF (lamg(k).LT.lamming)
THEN
2223 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2225 ng3d(k) = n0g(k)/lamg(k)
2227 ELSE IF (lamg(k).GT.lammaxg)
THEN
2230 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2232 ng3d(k) = n0g(k)/lamg(k)
2305 IF (qc3d(k).GE.qsmall .AND. t3d(k).LT.269.15)
THEN
2312 nacnt = exp(-2.80+0.262*(273.15-t3d(k)))*1000.
2324 dum = 7.37*t3d(k)/(288.*10.*pres(k))/100.
2329 dap(k) = cons37*t3d(k)*(1.+dum/rin)/mu(k)
2331 mnuccc(k) = cons38*dap(k)*nacnt*exp(log(cdist1(k))+ &
2332 log(gamma(pgam(k)+5.))-4.*log(lamc(k)))
2333 nnuccc(k) = 2.*pi*dap(k)*nacnt*cdist1(k)* &
2334 gamma(pgam(k)+2.)/ &
2348 mnuccc(k) = mnuccc(k)+cons39* &
2349 exp(log(cdist1(k))+log(gamma(7.+pgam(k)))-6.*log(lamc(k
2350 (exp(aimm*(273.15-t3d(k)))-1.)
2352 nnuccc(k) = nnuccc(k)+ &
2353 cons40*exp(log(cdist1(k))+log(gamma(pgam(k)+4.))-3.*log(lamc
2354 *(exp(aimm*(273.15-t3d(k)))-1.)
2359 nnuccc(k) = min(nnuccc(k),nc3d(k)/dt)
2373 IF (qc3d(k).GE.1.e-6)
THEN
2378 prc(k)=1350.*qc3d(k)**2.47* &
2379 (nc3d(k)/1.e6*rho(k))**(-1.79)
2384 nprc1(k) = prc(k)/cons29
2385 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
2388 nprc(k) = min(nprc(k),nc3d(k)/dt)
2389 nprc1(k) = min(nprc1(k),nprc(k))
2398 IF (qni3d(k).GE.1.e-8)
THEN
2399 nsagg(k) = cons15*asn(k)*rho(k)** &
2400 ((2.+bs)/3.)*qni3d(k)**((2.+bs)/3.)* &
2401 (ns3d(k)*rho(k))**((4.-bs)/3.)/ &
2412 IF (qni3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2414 psacws(k) = cons13*asn(k)*qc3d(k)*rho(k)* &
2417 npsacws(k) = cons13*asn(k)*nc3d(k)*rho(k)* &
2426 IF (qg3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2428 psacwg(k) = cons14*agn(k)*qc3d(k)*rho(k)* &
2431 npsacwg(k) = cons14*agn(k)*nc3d(k)*rho(k)* &
2442 IF (qi3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2447 IF (1./lami(k).GE.100.e-6)
THEN
2449 psacwi(k) = cons16*ain(k)*qc3d(k)*rho(k)* &
2452 npsacwi(k) = cons16*ain(k)*nc3d(k)*rho(k)* &
2462 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
2464 ums = asn(k)*cons3/(lams(k)**bs)
2465 umr = arn(k)*cons4/(lamr(k)**br)
2466 uns = asn(k)*cons5/lams(k)**bs
2467 unr = arn(k)*cons6/lamr(k)**br
2472 dum=(rhosu/rho(k))**0.54
2473 ums=min(ums,1.2*dum)
2474 uns=min(uns,1.2*dum)
2475 umr=min(umr,9.1*dum)
2476 unr=min(unr,9.1*dum)
2478 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
2479 0.08*ums*umr)**0.5*rho(k)* &
2480 n0rr(k)*n0s(k)/lamr(k)**3*
2481 (5./(lamr(k)**3*lams(k))+ &
2482 2./(lamr(k)**2*lams(k)**2)+ &
2483 0.5/(lamr(k)*lams(k)**3)))
2485 npracs(k) = cons32*rho(k)*(1.7*(unr-uns)**2+ &
2486 0.3*unr*uns)**0.5*n0rr(k)*n0s(k)* &
2487 (1./(lamr(k)**3*lams(k))+ &
2488 1./(lamr(k)**2*lams(k)**2)+ &
2489 1./(lamr(k)*lams(k)**3))
2495 pracs(k) = min(pracs(k),qr3d(k)/dt)
2502 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2503 psacr(k) = cons31*(((1.2*umr-0.95*ums)**2+ &
2504 0.08*ums*umr)**0.5*rho(k)* &
2505 n0rr(k)*n0s(k)/lams(k)**3*
2506 (5./(lams(k)**3*lamr(k))+ &
2507 2./(lams(k)**2*lamr(k)**2)+ &
2508 0.5/(lams(k)*lamr(k)**3)))
2518 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
2520 umg = agn(k)*cons7/(lamg(k)**bg)
2521 umr = arn(k)*cons4/(lamr(k)**br)
2522 ung = agn(k)*cons8/lamg(k)**bg
2523 unr = arn(k)*cons6/lamr(k)**br
2527 dum=(rhosu/rho(k))**0.54
2528 umg=min(umg,20.*dum)
2529 ung=min(ung,20.*dum)
2530 umr=min(umr,9.1*dum)
2531 unr=min(unr,9.1*dum)
2533 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
2534 0.08*umg*umr)**0.5*rho(k)* &
2535 n0rr(k)*n0g(k)/lamr(k)**3*
2536 (5./(lamr(k)**3*lamg(k))+ &
2537 2./(lamr(k)**2*lamg(k)**2)+
2538 0.5/(lamr(k)*lamg(k)**3)))
2540 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
2541 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
2542 (1./(lamr(k)**3*lamg(k))+ &
2543 1./(lamr(k)**2*lamg(k)**2)+ &
2544 1./(lamr(k)*lamg(k)**3))
2550 pracg(k) = min(pracg(k),qr3d(k)/dt)
2566 IF (qni3d(k).GE.0.1e-3)
THEN
2567 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2568 IF (psacws(k).GT.0..OR.pracs(k).GT.0.)
THEN
2569 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2571 IF (t3d(k).GT.270.16)
THEN
2573 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2574 fmult = (270.16-t3d(k))/2.
2575 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2576 fmult = (t3d(k)-265.16)/3.
2577 ELSE IF (t3d(k).LT.265.16)
THEN
2585 IF (psacws(k).GT.0.)
THEN
2586 nmults(k) = 35.e4*psacws(k)*fmult*1000.
2587 qmults(k) = nmults(k)*mmult
2592 qmults(k) = min(qmults(k),psacws(k))
2593 psacws(k) = psacws(k)-qmults(k)
2599 IF (pracs(k).GT.0.)
THEN
2600 nmultr(k) = 35.e4*pracs(k)*fmult*1000.
2601 qmultr(k) = nmultr(k)*mmult
2606 qmultr(k) = min(qmultr(k),pracs(k))
2608 pracs(k) = pracs(k)-qmultr(k)
2629 IF (qg3d(k).GE.0.1e-3)
THEN
2630 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2631 IF (psacwg(k).GT.0..OR.pracg(k).GT.0.)
THEN
2632 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2634 IF (t3d(k).GT.270.16)
THEN
2636 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2637 fmult = (270.16-t3d(k))/2.
2638 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2639 fmult = (t3d(k)-265.16)/3.
2640 ELSE IF (t3d(k).LT.265.16)
THEN
2648 IF (psacwg(k).GT.0.)
THEN
2649 nmultg(k) = 35.e4*psacwg(k)*fmult*1000.
2650 qmultg(k) = nmultg(k)*mmult
2655 qmultg(k) = min(qmultg(k),psacwg(k))
2656 psacwg(k) = psacwg(k)-qmultg(k)
2662 IF (pracg(k).GT.0.)
THEN
2663 nmultrg(k) = 35.e4*pracg(k)*fmult*1000.
2664 qmultrg(k) = nmultrg(k)*mmult
2669 qmultrg(k) = min(qmultrg(k),pracg(k))
2670 pracg(k) = pracg(k)-qmultrg(k)
2683 IF (psacws(k).GT.0.)
THEN
2685 IF (qni3d(k).GE.0.1e-3.AND.qc3d(k).GE.0.5e-3)
THEN
2688 pgsacw(k) = min(psacws(k),cons17*dt*n0s(k)*qc3d(k)*qc3d(k)*
2690 (rho(k)*lams(k)**(2.*bs+2.)))
2693 dum = max(rhosn/(rhog-rhosn)*pgsacw(k),0.)
2696 nscng(k) = dum/mg0*rho(k)
2698 nscng(k) = min(nscng(k),ns3d(k)/dt)
2701 psacws(k) = psacws(k) - pgsacw(k)
2707 IF (pracs(k).GT.0.)
THEN
2709 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2711 dum = cons18*(4./lams(k))**3*(4./lams(k))**3 &
2712 /(cons18*(4./lams(k))**3*(4./lams(k))**3+ &
2713 cons19*(4./lamr(k))**3*(4./lamr(k))**3)
2716 pgracs(k) = (1.-dum)*pracs(k)
2717 ngracs(k) = (1.-dum)*npracs(k)
2719 ngracs(k) = min(ngracs(k),nr3d(k)/dt)
2720 ngracs(k) = min(ngracs(k),ns3d(k)/dt)
2723 pracs(k) = pracs(k) - pgracs(k)
2724 npracs(k) = npracs(k) - ngracs(k)
2726 psacr(k)=psacr(k)*(1.-dum)
2735 IF (t3d(k).LT.269.15.AND.qr3d(k).GE.qsmall)
THEN
2744 mnuccr(k) = cons20*nr3d(k)*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2747 nnuccr(k) = pi*nr3d(k)*bimm*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2750 nnuccr(k) = min(nnuccr(k),nr3d(k)/dt)
2759 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
2764 dum=(qc3d(k)*qr3d(k))
2765 pra(k) = 67.*(dum)**1.15
2766 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
2775 IF (qr3d(k).GE.1.e-8)
THEN
2778 if (1./lamr(k).lt.dum1)
then
2780 else if (1./lamr(k).ge.dum1)
then
2781 dum=2.-exp(2300.*(1./lamr(k)-dum1))
2784 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
2793 IF (qi3d(k).GE.1.e-8 .AND.qvqvsi(k).GE.1.)
THEN
2797 nprci(k) = cons21*(qv3d(k)-qvi(k))*rho(k)
2798 *n0i(k)*exp(-lami(k)*dcs)*dv(k)/abi(k)
2799 prci(k) = cons22*nprci(k)
2800 nprci(k) = min(nprci(k),ni3d(k)/dt)
2810 IF (qni3d(k).GE.1.e-8 .AND. qi3d(k).GE.qsmall)
THEN
2811 prai(k) = cons23*asn(k)*qi3d(k)*rho(k)*n0s(k)/ &
2813 nprai(k) = cons23*asn(k)*ni3d(k)*
2816 nprai(k)=min(nprai(k),ni3d(k)/dt)
2824 IF (qr3d(k).GE.1.e-8.AND.qi3d(k).GE.1.e-8.AND.t3d(k).LE.273.15)
THEN
2829 IF (qr3d(k).GE.0.1e-3)
THEN
2830 niacr(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2831 /lamr(k)**(br+3.)*rho(k)
2832 piacr(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2833 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2834 praci(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2835 lamr(k)**(br+3.)*rho(k)
2836 niacr(k)=min(niacr(k),nr3d(k)/dt)
2837 niacr(k)=min(niacr(k),ni3d(k)/dt)
2839 niacrs(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2840 /lamr(k)**(br+3.)*rho(k)
2841 piacrs(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2842 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2843 pracis(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2844 lamr(k)**(br+3.)*rho(k)
2845 niacrs(k)=min(niacrs(k),nr3d(k)/dt)
2846 niacrs(k)=min(niacrs(k),ni3d(k)/dt)
2857 if ((qvqvs(k).GE.0.999.and.t3d(k).le.265.15).or. &
2858 qvqvsi(k).ge.1.08)
then
2861 kc2 = 0.005*exp(0.304*(273.15-t3d(k)))*1000.
2863 kc2 = min(kc2,500.e3)
2864 kc2=max(kc2/rho(k),0.)
2866 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2867 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2868 mnuccd(k) = nnuccd(k)*mi0
2873 ELSE IF (inuc.EQ.1)
THEN
2875 IF (t3d(k).LT.273.15.AND.qvqvsi(k).GT.1.)
THEN
2877 kc2 = 0.16*1000./rho(k)
2878 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2879 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2880 mnuccd(k) = nnuccd(k)*mi0
2895 IF (qi3d(k).GE.qsmall)
THEN
2897 epsi = 2.*pi*n0i(k)*rho(k)*dv(k)/(lami(k)*lami(k))
2903 IF (qni3d(k).GE.qsmall)
THEN
2904 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
2905 (f1s/(lams(k)*lams(k))+ &
2906 f2s*(asn(k)*rho(k)/mu(k))**0.5*
2907 sc(k)**(1./3.)*cons10/ &
2913 IF (qg3d(k).GE.qsmall)
THEN
2914 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
2915 (f1s/(lamg(k)*lamg(k))+
2916 f2s*(agn(k)*rho(k)/mu(k))**0.5*
2917 sc(k)**(1./3.)*cons11/ &
2925 IF (qr3d(k).GE.qsmall)
THEN
2926 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
2927 (f1r/(lamr(k)*lamr(k))+ &
2928 f2r*(arn(k)*rho(k)/mu(k))**0.5*
2929 sc(k)**(1./3.)*cons9/ &
2939 IF (qi3d(k).GE.qsmall)
THEN
2940 dum=(1.-exp(-lami(k)*dcs)*(1.+lami(k)*dcs))
2941 prd(k) = epsi*(qv3d(k)-qvi(k))/abi(k)*dum
2946 IF (qni3d(k).GE.qsmall)
THEN
2947 prds(k) = epss*(qv3d(k)-qvi(k))/abi(k)+ &
2948 epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2951 prd(k) = prd(k)+epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2954 prdg(k) = epsg*(qv3d(k)-qvi(k))/abi(k)
2958 IF (qv3d(k).LT.qvs(k))
THEN
2959 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
2960 pre(k) = min(pre(k),0.)
2968 dum = (qv3d(k)-qvi(k))/dt
2971 sum_dep = prd(k)+prds(k)+mnuccd(k)+prdg(k)
2973 IF( (dum.GT.0. .AND. sum_dep.GT.dum*fudgef) .OR.
2974 (dum.LT.0. .AND. sum_dep.LT.dum*fudgef) )
THEN
2975 mnuccd(k) = fudgef*mnuccd(k)*dum/sum_dep
2976 prd(k) = fudgef*prd(k)*dum/sum_dep
2977 prds(k) = fudgef*prds(k)*dum/sum_dep
2978 prdg(k) = fudgef*prdg(k)*dum/sum_dep
2983 IF (prd(k).LT.0.)
THEN
2987 IF (prds(k).LT.0.)
THEN
2991 IF (prdg(k).LT.0.)
THEN
3023 IF (igraup.EQ.1)
THEN
3039 piacrs(k)=piacrs(k)+piacr(k)
3042 pracis(k)=pracis(k)+praci(k)
3044 psacws(k)=psacws(k)+pgsacw(k)
3046 pracs(k)=pracs(k)+pgracs(k)
3052 dum = (prc(k)+pra(k)+mnuccc(k)+psacws(k)+psacwi(k)+qmults(k)+psacwg
3054 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
3057 prc(k) = prc(k)*ratio
3058 pra(k) = pra(k)*ratio
3059 mnuccc(k) = mnuccc(k)*ratio
3060 psacws(k) = psacws(k)*ratio
3061 psacwi(k) = psacwi(k)*ratio
3062 qmults(k) = qmults(k)*ratio
3063 qmultg(k) = qmultg(k)*ratio
3064 psacwg(k) = psacwg(k)*ratio
3065 pgsacw(k) = pgsacw(k)*ratio
3070 dum = (-prd(k)-mnuccc(k)+prci(k)+prai(k)-qmults(k)-qmultg(k)-qmultr
3071 -mnuccd(k)+praci(k)+pracis(k)-eprd(k)-psacwi(k))*dt
3073 IF (dum.GT.qi3d(k).AND.qi3d(k).GE.qsmall)
THEN
3075 ratio = (qi3d(k)/dt+prd(k)+mnuccc(k)+qmults(k)+qmultg(k)+qmultr(k
3076 mnuccd(k)+psacwi(k))/ &
3077 (prci(k)+prai(k)+praci(k)+pracis(k)-eprd(k))
3079 prci(k) = prci(k)*ratio
3080 prai(k) = prai(k)*ratio
3081 praci(k) = praci(k)*ratio
3082 pracis(k) = pracis(k)*ratio
3083 eprd(k) = eprd(k)*ratio
3089 dum=((pracs(k)-pre(k))+(qmultr(k)+qmultrg(k)-prc(k))+(mnuccr(k)-pra
3090 piacr(k)+piacrs(k)+pgracs(k)+pracg(k))*dt
3092 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
3094 ratio = (qr3d(k)/dt+prc(k)+pra(k))/ &
3095 (-pre(k)+qmultr(k)+qmultrg(k)+pracs(k)+mnuccr(k)+piacr(k)+piacrs
3097 pre(k) = pre(k)*ratio
3098 pracs(k) = pracs(k)*ratio
3099 qmultr(k) = qmultr(k)*ratio
3100 qmultrg(k) = qmultrg(k)*ratio
3101 mnuccr(k) = mnuccr(k)*ratio
3102 piacr(k) = piacr(k)*ratio
3103 piacrs(k) = piacrs(k)*ratio
3104 pgracs(k) = pgracs(k)*ratio
3105 pracg(k) = pracg(k)*ratio
3112 IF (igraup.EQ.0)
THEN
3114 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3116 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3118 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3120 eprds(k) = eprds(k)*ratio
3121 psacr(k) = psacr(k)*ratio
3126 ELSE IF (igraup.EQ.1)
THEN
3128 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3130 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3132 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3134 eprds(k) = eprds(k)*ratio
3135 psacr(k) = psacr(k)*ratio
3143 dum = (-psacwg(k)-pracg(k)-pgsacw(k)-pgracs(k)-prdg(k)-mnuccr(k)-eprdg
3145 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
3147 ratio = (qg3d(k)/dt+psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+prdg(k
3148 piacr(k)+praci(k))/(-eprdg(k))
3150 eprdg(k) = eprdg(k)*ratio
3156 qv3dten(k) = qv3dten(k)+(-pre(k)-prd(k)-prds(k)-mnuccd(k)-eprd(k)-eprds
3159 t3dten(k) = t3dten(k)+(pre(k) &
3160 *xxlv(k)+(prd(k)+prds(k)+ &
3161 mnuccd(k)+eprd(k)+eprds(k)+prdg(k)+eprdg(k))*xxls(k)+
3162 (psacws(k)+psacwi(k)+mnuccc(k)+mnuccr(k)+
3163 qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+pracs(k) &
3164 +psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+piacr(k)+piacrs(k
3166 qc3dten(k) = qc3dten(k)+ &
3167 (-pra(k)-prc(k)-mnuccc(k)+pcc(k)- &
3168 psacws(k)-psacwi(k)-qmults(k)-qmultg(k)-psacwg(k)-pgsacw
3169 qi3dten(k) = qi3dten(k)+ &
3170 (prd(k)+eprd(k)+psacwi(k)+mnuccc(k)-prci(k)-
3171 prai(k)+qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+mnuccd
3172 qr3dten(k) = qr3dten(k)+ &
3173 (pre(k)+pra(k)+prc(k)-pracs(k)-mnuccr(k)-qmultr(k)-qmultrg
3174 -piacr(k)-piacrs(k)-pracg(k)-pgracs(k))
3175 IF (igraup.EQ.0)
THEN
3177 qni3dten(k) = qni3dten(k)+ &
3178 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3179 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3180 qg3dten(k) = qg3dten(k)+(pracg(k)+psacwg(k)+pgsacw(k)+pgracs(k)+ &
3181 prdg(k)+eprdg(k)+mnuccr(k)+piacr(k)+praci(k)+psacr(k
3182 ng3dten(k) = ng3dten(k)+(nscng(k)+ngracs(k)+nnuccr(k)+niacr(k))
3185 ELSE IF (igraup.EQ.1)
THEN
3187 qni3dten(k) = qni3dten(k)+ &
3188 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3189 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3193 nc3dten(k) = nc3dten(k)+(-nnuccc(k)-npsacws(k) &
3194 -npra(k)-nprc(k)-npsacwi(k)-npsacwg(k))
3196 ni3dten(k) = ni3dten(k)+ &
3197 (nnuccc(k)-nprci(k)-nprai(k)+nmults(k)+nmultg(k)+nmultr(k)+nmultrg
3198 nnuccd(k)-niacr(k)-niacrs(k))
3200 nr3dten(k) = nr3dten(k)+(nprc1(k)-npracs(k)-nnuccr(k) &
3201 +nragg(k)-niacr(k)-niacrs(k)-npracg(k)-ngracs(k))
3205 c2prec(k) = pra(k)+prc(k)+psacws(k)+qmults(k)+qmultg(k)+psacwg(k
3206 pgsacw(k)+mnuccc(k)+psacwi(k)
3211 dumt = t3d(k)+dt*t3dten(k)
3212 dumqv = qv3d(k) + dt * qv3dten(k)
3215 dum=min(0.99*pres(k),polysvp(dumt,0))
3216 dumqss = ep_2*dum/(pres(k)-dum)
3218 dumqc = qc3d(k) + dt * qc3dten(k)
3220 dumqc = max(dumqc,0.)
3226 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
3228 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
3232 qv3dten(k) = qv3dten(k)-pcc(k)
3233 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
3234 qc3dten(k) = qc3dten(k)+pcc(k)
3252 IF (eprd(k).LT.0.)
THEN
3253 dum = eprd(k)*dt/qi3d(k)
3255 nsubi(k) = dum*ni3d(k)/dt
3257 IF (eprds(k).LT.0.)
THEN
3258 dum = eprds(k)*dt/qni3d(k)
3260 nsubs(k) = dum*ns3d(k)/dt
3262 IF (pre(k).LT.0.)
THEN
3263 dum = pre(k)*dt/qr3d(k)
3265 nsubr(k) = dum*nr3d(k)/dt
3267 IF (eprdg(k).LT.0.)
THEN
3268 dum = eprdg(k)*dt/qg3d(k)
3270 nsubg(k) = dum*ng3d(k)/dt
3280 ni3dten(k) = ni3dten(k)+nsubi(k)
3281 ns3dten(k) = ns3dten(k)+nsubs(k)
3282 ng3dten(k) = ng3dten(k)+nsubg(k)
3283 nr3dten(k) = nr3dten(k)+nsubr(k)
3305 IF (ltrue.EQ.0)
GOTO 400
3320 dumi(k) = qi3d(k)+qi3dten(k)*dt
3321 dumqs(k) = qni3d(k)+qni3dten(k)*dt
3322 dumr(k) = qr3d(k)+qr3dten(k)*dt
3323 dumfni(k) = ni3d(k)+ni3dten(k)*dt
3324 dumfns(k) = ns3d(k)+ns3dten(k)*dt
3325 dumfnr(k) = nr3d(k)+nr3dten(k)*dt
3326 dumc(k) = qc3d(k)+qc3dten(k)*dt
3327 dumfnc(k) = nc3d(k)+nc3dten(k)*dt
3328 dumg(k) = qg3d(k)+qg3dten(k)*dt
3329 dumfng(k) = ng3d(k)+ng3dten(k)*dt
3332 IF (iinum.EQ.1)
THEN
3339 dumfni(k) = max(0.,dumfni(k))
3340 dumfns(k) = max(0.,dumfns(k))
3341 dumfnc(k) = max(0.,dumfnc(k))
3342 dumfnr(k) = max(0.,dumfnr(k))
3343 dumfng(k) = max(0.,dumfng(k))
3348 IF (dumi(k).GE.qsmall)
THEN
3349 dlami = (cons12*dumfni(k)/dumi(k))**(1./di)
3350 dlami=max(dlami,lammini)
3351 dlami=min(dlami,lammaxi)
3356 IF (dumr(k).GE.qsmall)
THEN
3357 dlamr = (pi*rhow*dumfnr(k)/dumr(k))**(1./3.)
3358 dlamr=max(dlamr,lamminr)
3359 dlamr=min(dlamr,lammaxr)
3364 IF (dumc(k).GE.qsmall)
THEN
3365 dum = pres(k)/(287.15*t3d(k))
3366 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3367 pgam(k)=1./(pgam(k)**2)-1.
3368 pgam(k)=max(pgam(k),2.)
3369 pgam(k)=min(pgam(k),10.)
3371 dlamc = (cons26*dumfnc(k)*gamma(pgam(k)+4.)/(dumc(k)*gamma(pgam(k
3372 lammin = (pgam(k)+1.)/60.e-6
3373 lammax = (pgam(k)+1.)/1.e-6
3374 dlamc=max(dlamc,lammin)
3375 dlamc=min(dlamc,lammax)
3380 IF (dumqs(k).GE.qsmall)
THEN
3381 dlams = (cons1*dumfns(k)/ dumqs(k))**(1./ds)
3382 dlams=max(dlams,lammins)
3383 dlams=min(dlams,lammaxs)
3388 IF (dumg(k).GE.qsmall)
THEN
3389 dlamg = (cons2*dumfng(k)/ dumg(k))**(1./dg)
3390 dlamg=max(dlamg,lamming)
3391 dlamg=min(dlamg,lammaxg)
3398 IF (dumc(k).GE.qsmall)
THEN
3399 unc = acn(k)*gamma(1.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+1.))
3400 umc = acn(k)*gamma(4.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+4.))
3406 IF (dumi(k).GE.qsmall)
THEN
3407 uni = ain(k)*cons27/dlami**bi
3408 umi = ain(k)*cons28/(dlami**bi)
3414 IF (dumr(k).GE.qsmall)
THEN
3415 unr = arn(k)*cons6/dlamr**br
3416 umr = arn(k)*cons4/(dlamr**br)
3422 IF (dumqs(k).GE.qsmall)
THEN
3423 ums = asn(k)*cons3/(dlams**bs)
3424 uns = asn(k)*cons5/dlams**bs
3430 IF (dumg(k).GE.qsmall)
THEN
3431 umg = agn(k)*cons7/(dlamg**bg)
3432 ung = agn(k)*cons8/dlamg**bg
3441 dum=(rhosu/rho(k))**0.54
3442 ums=min(ums,1.2*dum)
3443 uns=min(uns,1.2*dum)
3446 umi=min(umi,1.2*(rhosu/rho(k))**0.35)
3447 uni=min(uni,1.2*(rhosu/rho(k))**0.35)
3448 umr=min(umr,9.1*dum)
3449 unr=min(unr,9.1*dum)
3450 umg=min(umg,20.*dum)
3451 ung=min(ung,20.*dum)
3466 IF (k.LE.kte-1)
THEN
3467 IF (fr(k).LT.1.e-10)
THEN
3470 IF (fi(k).LT.1.e-10)
THEN
3473 IF (fni(k).LT.1.e-10)
THEN
3476 IF (fs(k).LT.1.e-10)
THEN
3479 IF (fns(k).LT.1.e-10)
THEN
3482 IF (fnr(k).LT.1.e-10)
THEN
3485 IF (fc(k).LT.1.e-10)
THEN
3488 IF (fnc(k).LT.1.e-10)
THEN
3491 IF (fg(k).LT.1.e-10)
THEN
3494 IF (fng(k).LT.1.e-10)
THEN
3501 rgvm = max(fr(k),fi(k),fs(k),fc(k),fni(k),fnr(k),fns(k),fnc(k),fg(k
3503 nstep = max(int(rgvm*dt/dzq(k)+1.),nstep)
3506 dumr(k) = dumr(k)*rho(k)
3507 dumi(k) = dumi(k)*rho(k)
3508 dumfni(k) = dumfni(k)*rho(k)
3509 dumqs(k) = dumqs(k)*rho(k)
3510 dumfns(k) = dumfns(k)*rho(k)
3511 dumfnr(k) = dumfnr(k)*rho(k)
3512 dumc(k) = dumc(k)*rho(k)
3513 dumfnc(k) = dumfnc(k)*rho(k)
3514 dumg(k) = dumg(k)*rho(k)
3515 dumfng(k) = dumfng(k)*rho(k)
3522 faloutr(k) = fr(k)*dumr(k)
3523 falouti(k) = fi(k)*dumi(k)
3524 faloutni(k) = fni(k)*dumfni(k)
3525 falouts(k) = fs(k)*dumqs(k)
3526 faloutns(k) = fns(k)*dumfns(k)
3527 faloutnr(k) = fnr(k)*dumfnr(k)
3528 faloutc(k) = fc(k)*dumc(k)
3529 faloutnc(k) = fnc(k)*dumfnc(k)
3530 faloutg(k) = fg(k)*dumg(k)
3531 faloutng(k) = fng(k)*dumfng(k)
3537 faltndr = faloutr(k)/dzq(k)
3538 faltndi = falouti(k)/dzq(k)
3539 faltndni = faloutni(k)/dzq(k)
3540 faltnds = falouts(k)/dzq(k)
3541 faltndns = faloutns(k)/dzq(k)
3542 faltndnr = faloutnr(k)/dzq(k)
3543 faltndc = faloutc(k)/dzq(k)
3544 faltndnc = faloutnc(k)/dzq(k)
3545 faltndg = faloutg(k)/dzq(k)
3546 faltndng = faloutng(k)/dzq(k)
3549 qrsten(k) = qrsten(k)-faltndr/nstep/rho(k)
3550 qisten(k) = qisten(k)-faltndi/nstep/rho(k)
3551 ni3dten(k) = ni3dten(k)-faltndni/nstep/rho(k)
3552 qnisten(k) = qnisten(k)-faltnds/nstep/rho(k)
3553 ns3dten(k) = ns3dten(k)-faltndns/nstep/rho(k)
3554 nr3dten(k) = nr3dten(k)-faltndnr/nstep/rho(k)
3555 qcsten(k) = qcsten(k)-faltndc/nstep/rho(k)
3556 nc3dten(k) = nc3dten(k)-faltndnc/nstep/rho(k)
3557 qgsten(k) = qgsten(k)-faltndg/nstep/rho(k)
3558 ng3dten(k) = ng3dten(k)-faltndng/nstep/rho(k)
3560 dumr(k) = dumr(k)-faltndr*dt/nstep
3561 dumi(k) = dumi(k)-faltndi*dt/nstep
3562 dumfni(k) = dumfni(k)-faltndni*dt/nstep
3563 dumqs(k) = dumqs(k)-faltnds*dt/nstep
3564 dumfns(k) = dumfns(k)-faltndns*dt/nstep
3565 dumfnr(k) = dumfnr(k)-faltndnr*dt/nstep
3566 dumc(k) = dumc(k)-faltndc*dt/nstep
3567 dumfnc(k) = dumfnc(k)-faltndnc*dt/nstep
3568 dumg(k) = dumg(k)-faltndg*dt/nstep
3569 dumfng(k) = dumfng(k)-faltndng*dt/nstep
3572 faltndr = (faloutr(k+1)-faloutr(k))/dzq(k)
3573 faltndi = (falouti(k+1)-falouti(k))/dzq(k)
3574 faltndni = (faloutni(k+1)-faloutni(k))/dzq(k)
3575 faltnds = (falouts(k+1)-falouts(k))/dzq(k)
3576 faltndns = (faloutns(k+1)-faloutns(k))/dzq(k)
3577 faltndnr = (faloutnr(k+1)-faloutnr(k))/dzq(k)
3578 faltndc = (faloutc(k+1)-faloutc(k))/dzq(k)
3579 faltndnc = (faloutnc(k+1)-faloutnc(k))/dzq(k)
3580 faltndg = (faloutg(k+1)-faloutg(k))/dzq(k)
3581 faltndng = (faloutng(k+1)-faloutng(k))/dzq(k)
3585 qrsten(k) = qrsten(k)+faltndr/nstep/rho(k)
3586 qisten(k) = qisten(k)+faltndi/nstep/rho(k)
3587 ni3dten(k) = ni3dten(k)+faltndni/nstep/rho(k)
3588 qnisten(k) = qnisten(k)+faltnds/nstep/rho(k)
3589 ns3dten(k) = ns3dten(k)+faltndns/nstep/rho(k)
3590 nr3dten(k) = nr3dten(k)+faltndnr/nstep/rho(k)
3591 qcsten(k) = qcsten(k)+faltndc/nstep/rho(k)
3592 nc3dten(k) = nc3dten(k)+faltndnc/nstep/rho(k)
3593 qgsten(k) = qgsten(k)+faltndg/nstep/rho(k)
3594 ng3dten(k) = ng3dten(k)+faltndng/nstep/rho(k)
3596 dumr(k) = dumr(k)+faltndr*dt/nstep
3597 dumi(k) = dumi(k)+faltndi*dt/nstep
3598 dumfni(k) = dumfni(k)+faltndni*dt/nstep
3599 dumqs(k) = dumqs(k)+faltnds*dt/nstep
3600 dumfns(k) = dumfns(k)+faltndns*dt/nstep
3601 dumfnr(k) = dumfnr(k)+faltndnr*dt/nstep
3602 dumc(k) = dumc(k)+faltndc*dt/nstep
3603 dumfnc(k) = dumfnc(k)+faltndnc*dt/nstep
3604 dumg(k) = dumg(k)+faltndg*dt/nstep
3605 dumfng(k) = dumfng(k)+faltndng*dt/nstep
3608 csed(k)=csed(k)+faloutc(k)/nstep
3609 ised(k)=ised(k)+falouti(k)/nstep
3610 ssed(k)=ssed(k)+falouts(k)/nstep
3611 gsed(k)=gsed(k)+faloutg(k)/nstep
3612 rsed(k)=rsed(k)+faloutr(k)/nstep
3619 precrt = precrt+(faloutr(kts)+faloutc(kts)+falouts(kts)+falouti(kts
3621 snowrt = snowrt+(falouts(kts)+falouti(kts)+faloutg(kts))*dt/nstep
3623 snowprt = snowprt+(falouti(kts)+falouts(kts))*dt/nstep
3624 grplprt = grplprt+(faloutg(kts))*dt/nstep
3631 qr3dten(k)=qr3dten(k)+qrsten(k)
3632 qi3dten(k)=qi3dten(k)+qisten(k)
3633 qc3dten(k)=qc3dten(k)+qcsten(k)
3634 qg3dten(k)=qg3dten(k)+qgsten(k)
3635 qni3dten(k)=qni3dten(k)+qnisten(k)
3641 IF (qi3d(k).GE.qsmall.AND.t3d(k).LT.273.15.AND.lami(k).GE.1.e-10
THEN
3642 IF (1./lami(k).GE.2.*dcs)
THEN
3643 qni3dten(k) = qni3dten(k)+qi3d(k)/dt+ qi3dten(k)
3644 ns3dten(k) = ns3dten(k)+ni3d(k)/dt+ ni3dten(k)
3645 qi3dten(k) = -qi3d(k)/dt
3646 ni3dten(k) = -ni3d(k)/dt
3653 qc3d(k) = qc3d(k)+qc3dten(k)*dt
3654 qi3d(k) = qi3d(k)+qi3dten(k)*dt
3655 qni3d(k) = qni3d(k)+qni3dten(k)*dt
3656 qr3d(k) = qr3d(k)+qr3dten(k)*dt
3657 nc3d(k) = nc3d(k)+nc3dten(k)*dt
3658 ni3d(k) = ni3d(k)+ni3dten(k)*dt
3659 ns3d(k) = ns3d(k)+ns3dten(k)*dt
3660 nr3d(k) = nr3d(k)+nr3dten(k)*dt
3662 IF (igraup.EQ.0)
THEN
3663 qg3d(k) = qg3d(k)+qg3dten(k)*dt
3664 ng3d(k) = ng3d(k)+ng3dten(k)*dt
3668 t3d(k) = t3d(k)+t3dten(k)*dt
3669 qv3d(k) = qv3d(k)+qv3dten(k)*dt
3674 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
3675 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
3679 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
3681 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
3682 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
3684 qvqvs(k) = qv3d(k)/qvs(k)
3685 qvqvsi(k) = qv3d(k)/qvi(k)
3690 IF (qvqvs(k).LT.0.9)
THEN
3691 IF (qr3d(k).LT.1.e-8)
THEN
3692 qv3d(k)=qv3d(k)+qr3d(k)
3693 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
3696 IF (qc3d(k).LT.1.e-8)
THEN
3697 qv3d(k)=qv3d(k)+qc3d(k)
3698 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
3702 IF (qvqvsi(k).LT.0.9)
THEN
3703 IF (qi3d(k).LT.1.e-8)
THEN
3704 qv3d(k)=qv3d(k)+qi3d(k)
3705 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
3708 IF (qni3d(k).LT.1.e-8)
THEN
3709 qv3d(k)=qv3d(k)+qni3d(k)
3710 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
3713 IF (qg3d(k).LT.1.e-8)
THEN
3714 qv3d(k)=qv3d(k)+qg3d(k)
3715 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
3723 IF (qc3d(k).LT.qsmall)
THEN
3728 IF (qr3d(k).LT.qsmall)
THEN
3733 IF (qi3d(k).LT.qsmall)
THEN
3738 IF (qni3d(k).LT.qsmall)
THEN
3743 IF (qg3d(k).LT.qsmall)
THEN
3752 IF (qc3d(k).LT.qsmall.AND.qi3d(k).LT.qsmall.AND.qni3d(k).LT.qsmall
3753 .AND.qr3d(k).LT.qsmall.AND.qg3d(k).LT.qsmall)
GOTO 500
3760 IF (qi3d(k).GE.qsmall.AND.t3d(k).GE.273.15)
THEN
3761 qr3d(k) = qr3d(k)+qi3d(k)
3762 t3d(k) = t3d(k)-qi3d(k)*xlf(k)/cpm(k)
3764 nr3d(k) = nr3d(k)+ni3d(k)
3769 IF (iliq.EQ.1)
GOTO 778
3773 IF (t3d(k).LE.233.15.AND.qc3d(k).GE.qsmall)
THEN
3774 qi3d(k)=qi3d(k)+qc3d(k)
3775 t3d(k)=t3d(k)+qc3d(k)*xlf(k)/cpm(k)
3777 ni3d(k)=ni3d(k)+nc3d(k)
3783 IF (igraup.EQ.0)
THEN
3785 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3786 qg3d(k) = qg3d(k)+qr3d(k)
3787 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3789 ng3d(k) = ng3d(k)+ nr3d(k)
3793 ELSE IF (igraup.EQ.1)
THEN
3795 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3796 qni3d(k) = qni3d(k)+qr3d(k)
3797 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3799 ns3d(k) = ns3d(k)+nr3d(k)
3809 ni3d(k) = max(0.,ni3d(k))
3810 ns3d(k) = max(0.,ns3d(k))
3811 nc3d(k) = max(0.,nc3d(k))
3812 nr3d(k) = max(0.,nr3d(k))
3813 ng3d(k) = max(0.,ng3d(k))
3818 IF (qi3d(k).GE.qsmall)
THEN
3819 lami(k) = (cons12* &
3820 ni3d(k)/qi3d(k))**(1./di)
3826 IF (lami(k).LT.lammini)
THEN
3830 n0i(k) = lami(k)**4*qi3d(k)/cons12
3832 ni3d(k) = n0i(k)/lami(k)
3833 ELSE IF (lami(k).GT.lammaxi)
THEN
3835 n0i(k) = lami(k)**4*qi3d(k)/cons12
3837 ni3d(k) = n0i(k)/lami(k)
3844 IF (qr3d(k).GE.qsmall)
THEN
3845 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
3851 IF (lamr(k).LT.lamminr)
THEN
3855 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3857 nr3d(k) = n0rr(k)/lamr(k)
3858 ELSE IF (lamr(k).GT.lammaxr)
THEN
3860 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3862 nr3d(k) = n0rr(k)/lamr(k)
3872 IF (qc3d(k).GE.qsmall)
THEN
3874 dum = pres(k)/(287.15*t3d(k))
3875 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3876 pgam(k)=1./(pgam(k)**2)-1.
3877 pgam(k)=max(pgam(k),2.)
3878 pgam(k)=min(pgam(k),10.)
3882 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
3883 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
3888 lammin = (pgam(k)+1.)/60.e-6
3889 lammax = (pgam(k)+1.)/1.e-6
3891 IF (lamc(k).LT.lammin)
THEN
3893 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3894 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3896 ELSE IF (lamc(k).GT.lammax)
THEN
3898 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3899 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3908 IF (qni3d(k).GE.qsmall)
THEN
3909 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
3915 IF (lams(k).LT.lammins)
THEN
3917 n0s(k) = lams(k)**4*qni3d(k)/cons1
3919 ns3d(k) = n0s(k)/lams(k)
3921 ELSE IF (lams(k).GT.lammaxs)
THEN
3924 n0s(k) = lams(k)**4*qni3d(k)/cons1
3925 ns3d(k) = n0s(k)/lams(k)
3933 IF (qg3d(k).GE.qsmall)
THEN
3934 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
3940 IF (lamg(k).LT.lamming)
THEN
3942 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3944 ng3d(k) = n0g(k)/lamg(k)
3946 ELSE IF (lamg(k).GT.lammaxg)
THEN
3949 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3951 ng3d(k) = n0g(k)/lamg(k)
3960 IF (qi3d(k).GE.qsmall)
THEN
3961 effi(k) = 3./lami(k)/2.*1.e6
3966 IF (qni3d(k).GE.qsmall)
THEN
3967 effs(k) = 3./lams(k)/2.*1.e6
3972 IF (qr3d(k).GE.qsmall)
THEN
3973 effr(k) = 3./lamr(k)/2.*1.e6
3978 IF (qc3d(k).GE.qsmall)
THEN
3979 effc(k) = gamma(pgam(k)+4.)/ &
3980 gamma(pgam(k)+3.)/lamc(k)/2.*1.e6
3985 IF (qg3d(k).GE.qsmall)
THEN
3986 effg(k) = 3./lamg(k)/2.*1.e6
3998 ni3d(k) = min(ni3d(k),0.3e6/rho(k))
4001 IF (iinum.EQ.0.AND.iact.EQ.2)
THEN
4002 nc3d(k) = min(nc3d(k),(nanew1+nanew2)/rho(k))
4005 IF (iinum.EQ.1)
THEN
4007 nc3d(k) = ndcnst*1.e6/rho(k)