946 INTEGER,
INTENT( IN) :: i,j,istep,kts,kte
948 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3DTEN
949 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3DTEN
950 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3DTEN
951 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3DTEN
952 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3DTEN
953 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3DTEN
954 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3DTEN
955 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3D
956 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3D
957 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3D
958 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3D
959 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3D
960 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3D
961 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3D
962 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3DTEN
963 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3DTEN
964 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3D
965 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3D
966 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRES
967 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DZQ
968 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: W3D
970 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3d
971 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3dten
972 integer,
intent(in) :: iinum
975 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3DTEN
976 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3DTEN
977 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3D
978 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3D
982 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QGSTEN
983 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QRSTEN
984 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QISTEN
985 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNISTEN
986 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QCSTEN
989 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qrcu1d
990 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qscu1d
991 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qicu1d
995 REAL(C_DOUBLE) PRECRT
996 REAL(C_DOUBLE) SNOWRT
998 REAL(C_DOUBLE) SNOWPRT
999 REAL(C_DOUBLE) GRPLPRT
1001 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFC
1002 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFI
1003 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFS
1004 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFR
1005 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFG
1018 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMC
1019 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMI
1020 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMS
1021 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMR
1022 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMG
1023 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CDIST1
1024 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0I
1025 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0S
1026 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0RR
1027 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0G
1028 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGAM
1032 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBC
1033 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBI
1034 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBS
1035 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBR
1036 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRD
1037 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRE
1038 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDS
1039 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCC
1040 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCC
1041 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRA
1042 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRC
1043 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCC
1044 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCD
1045 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCD
1046 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCR
1047 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCR
1048 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRA
1049 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NRAGG
1050 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSAGG
1051 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC
1052 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC1
1053 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRAI
1054 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRCI
1055 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWS
1056 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWS
1057 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWI
1058 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWI
1059 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRCI
1060 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRAI
1061 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTS
1062 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTR
1063 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTS
1064 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTR
1065 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACS
1066 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACS
1067 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCCN
1068 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSMLT
1069 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMS
1070 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTS
1071 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTR
1073 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACR
1074 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACR
1075 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACI
1076 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACRS
1077 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACRS
1078 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACIS
1079 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRD
1080 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDS
1082 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACG
1083 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWG
1084 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGSACW
1085 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGRACS
1086 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDG
1087 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDG
1088 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMG
1089 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGMLT
1090 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACG
1091 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWG
1092 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSCNG
1093 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGRACS
1094 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTG
1095 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTR
1096 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBG
1097 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACR
1098 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTG
1099 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTRG
1100 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTG
1101 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTRG
1105 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: KAP
1106 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVS
1107 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EIS
1108 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVS
1109 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVI
1110 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVS
1111 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVSI
1112 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DV
1113 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLS
1114 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLV
1115 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CPM
1116 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MU
1117 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: SC
1118 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XLF
1119 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO
1120 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AB
1121 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: ABI
1125 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DAP
1126 REAL(C_DOUBLE) NACNT
1127 REAL(C_DOUBLE) FMULT
1128 REAL(C_DOUBLE) COFFI
1132 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMI,DUMR,DUMFNI,DUMG,DUMFNG
1133 REAL(C_DOUBLE) UNI, UMI,UMR
1134 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FR, FI, FNI,FG,FNG
1136 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FALOUTR,FALOUTI,FALOUTNI
1137 REAL(C_DOUBLE) FALTNDR,FALTNDI,FALTNDNI,RHO2
1138 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMQS,DUMFNS
1139 REAL(C_DOUBLE) UMS,UNS
1140 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FS,FNS, FALOUTS,FALOUTNS,FALOUTG
1141 REAL(C_DOUBLE) FALTNDS,FALTNDNS,UNR,FALTNDG,FALTNDNG
1142 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMC,DUMFNC
1143 REAL(C_DOUBLE) UNC,UMC,UNG,UMG
1144 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FC,FALOUTC,FALOUTNC
1145 REAL(C_DOUBLE) FALTNDC,FALTNDNC
1146 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNC,DUMFNR,FALOUTNR
1147 REAL(C_DOUBLE) FALTNDNR
1148 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNR
1152 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AIN,ARN,ASN,ACN,AGN
1162 REAL(C_DOUBLE) DUM,DUM1,DUM2,DUMT,DUMQV,DUMQSS,DUMQSI,DUMS
1166 REAL(C_DOUBLE) DQSDT
1167 REAL(C_DOUBLE) DQSIDT
1179 REAL(C_DOUBLE) DUMACT,DUM3
1195 REAL(C_DOUBLE) TEMP1
1197 REAL(C_DOUBLE) SIGVL
1201 REAL(C_DOUBLE) CRY,KRY
1205 REAL(C_DOUBLE) DUMQI,DUMNI,DC0,DS0,DG0
1206 REAL(C_DOUBLE) DUMQC,DUMQR,RATIO,SUM_DEP,FUDGEF
1213 REAL(C_DOUBLE) ANUC,BNUC
1217 REAL(C_DOUBLE) AACT,GAMM,GG,PSI,ETA1,ETA2,SM1,SM2,SMAX,UU1,UU2,ALPHA
1221 REAL(C_DOUBLE) DLAMS,DLAMR,DLAMI,DLAMC,DLAMG,LAMMAX,LAMMIN
1226 REAL(C_DOUBLE),
DIMENSION(KTS:KTE)::C2PREC,CSED,ISED,SSED,GSED,RSED
1227 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: tqimelt
1257 xxlv(k) = 3.1484e6-2370.*t3d(k)
1261 xxls(k) = 3.15e6-2370.*t3d(k)+0.3337e6
1263 cpm(k) = cp*(1.+0.887*qv3d(k))
1269 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
1270 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
1274 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
1276 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
1277 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
1279 qvqvs(k) = qv3d(k)/qvs(k)
1280 qvqvsi(k) = qv3d(k)/qvi(k)
1284 rho(k) = pres(k)/(r*t3d(k))
1291 IF (qrcu1d(k).GE.1.e-10)
THEN
1292 dum=1.8e5*(qrcu1d(k)*dt/(pi*rhow*rho(k)**3))**0.25
1295 IF (qscu1d(k).GE.1.e-10)
THEN
1296 dum=3.e5*(qscu1d(k)*dt/(cons1*rho(k)**3))**(1./(ds+1.))
1299 IF (qicu1d(k).GE.1.e-10)
THEN
1300 dum=qicu1d(k)*dt/(ci*(80.e-6)**di)
1307 IF (qvqvs(k).LT.0.9)
THEN
1308 IF (qr3d(k).LT.1.e-8)
THEN
1309 qv3d(k)=qv3d(k)+qr3d(k)
1310 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
1313 IF (qc3d(k).LT.1.e-8)
THEN
1314 qv3d(k)=qv3d(k)+qc3d(k)
1315 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
1320 IF (qvqvsi(k).LT.0.9)
THEN
1321 IF (qi3d(k).LT.1.e-8)
THEN
1322 qv3d(k)=qv3d(k)+qi3d(k)
1323 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
1326 IF (qni3d(k).LT.1.e-8)
THEN
1327 qv3d(k)=qv3d(k)+qni3d(k)
1328 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
1331 IF (qg3d(k).LT.1.e-8)
THEN
1332 qv3d(k)=qv3d(k)+qg3d(k)
1333 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
1340 xlf(k) = xxls(k)-xxlv(k)
1345 IF (qc3d(k).LT.qsmall)
THEN
1350 IF (qr3d(k).LT.qsmall)
THEN
1355 IF (qi3d(k).LT.qsmall)
THEN
1360 IF (qni3d(k).LT.qsmall)
THEN
1365 IF (qg3d(k).LT.qsmall)
THEN
1383 mu(k) = 1.496e-6*t3d(k)**1.5/(t3d(k)+120.)
1387 dum = (rhosu/rho(k))**0.54
1392 ain(k) = (rhosu/rho(k))**0.35*ai
1397 acn(k) = g*rhow/(18.*mu(k))
1407 IF ( qc3d(k).LT.qsmall.AND. &
1408 qi3d(k).LT.qsmall.AND. &
1409 qni3d(k).LT.qsmall.AND. &
1410 qr3d(k).LT.qsmall.AND. &
1411 qg3d(k).LT.qsmall)
THEN
1412 IF (t3d(k).LT.273.15.AND.qvqvsi(k).LT.0.999)
then
1415 IF (t3d(k).GE.273.15.AND.qvqvs(k).LT.0.999)
then
1423 kap(k) = 1.414e3*mu(k)
1427 dv(k) = 8.794e-5*t3d(k)**1.81/pres(k)
1432 sc(k) = mu(k)/(rho(k)*dv(k))
1438 dum = (rv*t3d(k)**2)
1440 dqsdt = xxlv(k)*qvs(k)/dum
1441 dqsidt = xxls(k)*qvi(k)/dum
1443 abi(k) = 1.+dqsidt*xxls(k)/cpm(k)
1444 ab(k) = 1.+dqsdt*xxlv(k)/cpm(k)
1450 IF (t3d(k).GE.273.15)
THEN
1457 IF (iinum.EQ.1)
THEN
1459 nc3d(k)=ndcnst*1.e6/rho(k)
1465 IF (qni3d(k).LT.1.e-6)
THEN
1466 qr3d(k)=qr3d(k)+qni3d(k)
1467 nr3d(k)=nr3d(k)+ns3d(k)
1468 t3d(k)=t3d(k)-qni3d(k)*xlf(k)/cpm(k)
1472 IF (qg3d(k).LT.1.e-6)
THEN
1473 qr3d(k)=qr3d(k)+qg3d(k)
1474 nr3d(k)=nr3d(k)+ng3d(k)
1475 t3d(k)=t3d(k)-qg3d(k)*xlf(k)/cpm(k)
1479 IF (qc3d(k).LT.qsmall.AND.qni3d(k).LT.1.e-8.AND.qr3d(k).LT.qsmall.AND.qg3d
THEN
1485 ns3d(k) = max(0.,ns3d(k))
1486 nc3d(k) = max(0.,nc3d(k))
1487 nr3d(k) = max(0.,nr3d(k))
1488 ng3d(k) = max(0.,ng3d(k))
1493 IF (qr3d(k).GE.qsmall)
THEN
1494 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
1495 n0rr(k) = nr3d(k)*lamr(k)
1501 IF (lamr(k).LT.lamminr)
THEN
1505 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1507 nr3d(k) = n0rr(k)/lamr(k)
1508 ELSE IF (lamr(k).GT.lammaxr)
THEN
1510 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1512 nr3d(k) = n0rr(k)/lamr(k)
1521 IF (qc3d(k).GE.qsmall)
THEN
1523 dum = pres(k)/(287.15*t3d(k))
1524 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
1525 pgam(k)=1./(pgam(k)**2)-1.
1526 pgam(k)=max(pgam(k),2.)
1527 pgam(k)=min(pgam(k),10.)
1531 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
1532 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
1537 lammin = (pgam(k)+1.)/60.e-6
1538 lammax = (pgam(k)+1.)/1.e-6
1540 IF (lamc(k).LT.lammin)
THEN
1543 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1544 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1545 ELSE IF (lamc(k).GT.lammax)
THEN
1548 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1549 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1558 IF (qni3d(k).GE.qsmall)
THEN
1559 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
1560 n0s(k) = ns3d(k)*lams(k)
1566 IF (lams(k).LT.lammins)
THEN
1568 n0s(k) = lams(k)**4*qni3d(k)/cons1
1570 ns3d(k) = n0s(k)/lams(k)
1572 ELSE IF (lams(k).GT.lammaxs)
THEN
1575 n0s(k) = lams(k)**4*qni3d(k)/cons1
1577 ns3d(k) = n0s(k)/lams(k)
1584 IF (qg3d(k).GE.qsmall)
THEN
1585 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
1586 n0g(k) = ng3d(k)*lamg(k)
1590 IF (lamg(k).LT.lamming)
THEN
1592 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1594 ng3d(k) = n0g(k)/lamg(k)
1596 ELSE IF (lamg(k).GT.lammaxg)
THEN
1599 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1601 ng3d(k) = n0g(k)/lamg(k)
1643 IF (qc3d(k).GE.1.e-6)
THEN
1648 prc(k)=1350.*qc3d(k)**2.47* &
1649 (nc3d(k)/1.e6*rho(k))**(-1.79)
1654 nprc1(k) = prc(k)/cons29
1655 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
1658 nprc(k) = min(nprc(k),nc3d(k)/dt)
1659 nprc1(k) = min(nprc1(k),nprc(k))
1667 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
1669 ums = asn(k)*cons3/(lams(k)**bs)
1670 umr = arn(k)*cons4/(lamr(k)**br)
1671 uns = asn(k)*cons5/lams(k)**bs
1672 unr = arn(k)*cons6/lamr(k)**br
1677 dum=(rhosu/rho(k))**0.54
1678 ums=min(ums,1.2*dum)
1679 uns=min(uns,1.2*dum)
1680 umr=min(umr,9.1*dum)
1681 unr=min(unr,9.1*dum)
1693 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
1694 0.08*ums*umr)**0.5*rho(k)* &
1695 n0rr(k)*n0s(k)/lamr(k)**3*
1696 (5./(lamr(k)**3*lams(k))+ &
1697 2./(lamr(k)**2*lams(k)**2)+ &
1698 0.5/(lamr(k)*lams(k)**3)))
1713 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
1715 umg = agn(k)*cons7/(lamg(k)**bg)
1716 umr = arn(k)*cons4/(lamr(k)**br)
1717 ung = agn(k)*cons8/lamg(k)**bg
1718 unr = arn(k)*cons6/lamr(k)**br
1722 dum=(rhosu/rho(k))**0.54
1723 umg=min(umg,20.*dum)
1724 ung=min(ung,20.*dum)
1725 umr=min(umr,9.1*dum)
1726 unr=min(unr,9.1*dum)
1729 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
1730 0.08*umg*umr)**0.5*rho(k)* &
1731 n0rr(k)*n0g(k)/lamr(k)**3*
1732 (5./(lamr(k)**3*lamg(k))+ &
1733 2./(lamr(k)**2*lamg(k)**2)+
1734 0.5/(lamr(k)*lamg(k)**3)))
1738 dum = pracg(k)/5.2e-7
1740 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
1741 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
1742 (1./(lamr(k)**3*lamg(k))+ &
1743 1./(lamr(k)**2*lamg(k)**2)+ &
1744 1./(lamr(k)*lamg(k)**3))
1749 npracg(k)=npracg(k)-dum
1758 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
1763 dum=(qc3d(k)*qr3d(k))
1764 pra(k) = 67.*(dum)**1.15
1765 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
1774 IF (qr3d(k).GE.1.e-8)
THEN
1777 if (1./lamr(k).lt.dum1)
then
1779 else if (1./lamr(k).ge.dum1)
then
1780 dum=2.-exp(2300.*(1./lamr(k)-dum1))
1783 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
1789 IF (qr3d(k).GE.qsmall)
THEN
1790 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
1791 (f1r/(lamr(k)*lamr(k))+ &
1792 f2r*(arn(k)*rho(k)/mu(k))**0.5*
1793 sc(k)**(1./3.)*cons9/ &
1800 IF (qv3d(k).LT.qvs(k))
THEN
1801 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
1802 pre(k) = min(pre(k),0.)
1812 IF (qni3d(k).GE.1.e-8)
THEN
1817 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracs(k)
1825 psmlt(k)=2.*pi*n0s(k)*kap(k)*(273.15-t3d(k))/ &
1826 xlf(k)*(f1s/(lams(k)*lams(k))+ &
1827 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1828 sc(k)**(1./3.)*cons10/ &
1829 (lams(k)**cons35))+dum
1833 IF (qvqvs(k).LT.1.)
THEN
1834 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
1835 (f1s/(lams(k)*lams(k))+ &
1836 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1837 sc(k)**(1./3.)*cons10/ &
1840 evpms(k) = (qv3d(k)-qvs(k))*epss/ab(k)
1841 evpms(k) = max(evpms(k),psmlt(k))
1842 psmlt(k) = psmlt(k)-evpms(k)
1852 IF (qg3d(k).GE.1.e-8)
THEN
1857 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracg(k)
1865 pgmlt(k)=2.*pi*n0g(k)*kap(k)*(273.15-t3d(k))/
1866 xlf(k)*(f1s/(lamg(k)*lamg(k))+ &
1867 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1868 sc(k)**(1./3.)*cons11/ &
1869 (lamg(k)**cons36))+dum
1873 IF (qvqvs(k).LT.1.)
THEN
1874 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
1875 (f1s/(lamg(k)*lamg(k))+
1876 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1877 sc(k)**(1./3.)*cons11/ &
1880 evpmg(k) = (qv3d(k)-qvs(k))*epsg/ab(k)
1881 evpmg(k) = max(evpmg(k),pgmlt(k))
1882 pgmlt(k) = pgmlt(k)-evpmg(k)
1902 dum = (prc(k)+pra(k))*dt
1904 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
1908 prc(k) = prc(k)*ratio
1909 pra(k) = pra(k)*ratio
1915 dum = (-psmlt(k)-evpms(k)+pracs(k))*dt
1917 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
1920 ratio = qni3d(k)/dum
1922 psmlt(k) = psmlt(k)*ratio
1923 evpms(k) = evpms(k)*ratio
1924 pracs(k) = pracs(k)*ratio
1930 dum = (-pgmlt(k)-evpmg(k)+pracg(k))*dt
1932 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
1937 pgmlt(k) = pgmlt(k)*ratio
1938 evpmg(k) = evpmg(k)*ratio
1939 pracg(k) = pracg(k)*ratio
1946 dum = (-pracs(k)-pracg(k)-pre(k)-pra(k)-prc(k)+psmlt(k)+pgmlt(k)
1948 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
1950 ratio = (qr3d(k)/dt+pracs(k)+pracg(k)+pra(k)+prc(k)-psmlt(k)-pgmlt
1952 pre(k) = pre(k)*ratio
1957 qv3dten(k) = qv3dten(k)+(-pre(k)-evpms(k)-evpmg(k))
1959 t3dten(k) = t3dten(k)+(pre(k)*xxlv(k)+(evpms(k)+evpmg(k))*xxls(k)+
1960 (psmlt(k)+pgmlt(k)-pracs(k)-pracg(k))*xlf(k))/cpm(k)
1962 qc3dten(k) = qc3dten(k)+(-pra(k)-prc(k))
1963 qr3dten(k) = qr3dten(k)+(pre(k)+pra(k)+prc(k)-psmlt(k)-pgmlt(k)+pracs
1964 qni3dten(k) = qni3dten(k)+(psmlt(k)+evpms(k)-pracs(k))
1965 qg3dten(k) = qg3dten(k)+(pgmlt(k)+evpmg(k)-pracg(k))
1970 nc3dten(k) = nc3dten(k)+ (-npra(k)-nprc(k))
1971 nr3dten(k) = nr3dten(k)+ (nprc1(k)+nragg(k)-npracg(k))
1975 c2prec(k) = pra(k)+prc(k)
1976 IF (pre(k).LT.0.)
THEN
1977 dum = pre(k)*dt/qr3d(k)
1979 nsubr(k) = dum*nr3d(k)/dt
1982 IF (evpms(k)+psmlt(k).LT.0.)
THEN
1983 dum = (evpms(k)+psmlt(k))*dt/qni3d(k)
1985 nsmlts(k) = dum*ns3d(k)/dt
1987 IF (psmlt(k).LT.0.)
THEN
1988 dum = psmlt(k)*dt/qni3d(k)
1990 nsmltr(k) = dum*ns3d(k)/dt
1992 IF (evpmg(k)+pgmlt(k).LT.0.)
THEN
1993 dum = (evpmg(k)+pgmlt(k))*dt/qg3d(k)
1995 ngmltg(k) = dum*ng3d(k)/dt
1997 IF (pgmlt(k).LT.0.)
THEN
1998 dum = pgmlt(k)*dt/qg3d(k)
2000 ngmltr(k) = dum*ng3d(k)/dt
2003 ns3dten(k) = ns3dten(k)+(nsmlts(k))
2004 ng3dten(k) = ng3dten(k)+(ngmltg(k))
2005 nr3dten(k) = nr3dten(k)+(nsubr(k)-nsmltr(k)-ngmltr(k))
2013 dumt = t3d(k)+dt*t3dten(k)
2014 dumqv = qv3d(k)+dt*qv3dten(k)
2016 dum=min(0.99*pres(k),polysvp(dumt,0))
2017 dumqss = ep_2*dum/(pres(k)-dum)
2018 dumqc = qc3d(k)+dt*qc3dten(k)
2019 dumqc = max(dumqc,0.)
2024 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
2025 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
2029 qv3dten(k) = qv3dten(k)-pcc(k)
2030 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
2031 qc3dten(k) = qc3dten(k)+pcc(k)
2061 IF (iinum.EQ.1)
THEN
2063 nc3d(k)=ndcnst*1.e6/rho(k)
2069 ni3d(k) = max(0.,ni3d(k))
2070 ns3d(k) = max(0.,ns3d(k))
2071 nc3d(k) = max(0.,nc3d(k))
2072 nr3d(k) = max(0.,nr3d(k))
2073 ng3d(k) = max(0.,ng3d(k))
2078 IF (qi3d(k).GE.qsmall)
THEN
2079 lami(k) = (cons12* &
2080 ni3d(k)/qi3d(k))**(1./di)
2081 n0i(k) = ni3d(k)*lami(k)
2087 IF (lami(k).LT.lammini)
THEN
2091 n0i(k) = lami(k)**4*qi3d(k)/cons12
2093 ni3d(k) = n0i(k)/lami(k)
2094 ELSE IF (lami(k).GT.lammaxi)
THEN
2096 n0i(k) = lami(k)**4*qi3d(k)/cons12
2098 ni3d(k) = n0i(k)/lami(k)
2105 IF (qr3d(k).GE.qsmall)
THEN
2106 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
2107 n0rr(k) = nr3d(k)*lamr(k)
2113 IF (lamr(k).LT.lamminr)
THEN
2117 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2119 nr3d(k) = n0rr(k)/lamr(k)
2120 ELSE IF (lamr(k).GT.lammaxr)
THEN
2122 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2124 nr3d(k) = n0rr(k)/lamr(k)
2132 IF (qc3d(k).GE.qsmall)
THEN
2134 dum = pres(k)/(287.15*t3d(k))
2135 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
2136 pgam(k)=1./(pgam(k)**2)-1.
2137 pgam(k)=max(pgam(k),2.)
2138 pgam(k)=min(pgam(k),10.)
2142 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
2143 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
2148 lammin = (pgam(k)+1.)/60.e-6
2149 lammax = (pgam(k)+1.)/1.e-6
2151 IF (lamc(k).LT.lammin)
THEN
2154 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2155 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2156 ELSE IF (lamc(k).GT.lammax)
THEN
2158 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2159 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2165 cdist1(k) = nc3d(k)/gamma(pgam(k)+1.)
2172 IF (qni3d(k).GE.qsmall)
THEN
2173 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
2174 n0s(k) = ns3d(k)*lams(k)
2180 IF (lams(k).LT.lammins)
THEN
2182 n0s(k) = lams(k)**4*qni3d(k)/cons1
2184 ns3d(k) = n0s(k)/lams(k)
2186 ELSE IF (lams(k).GT.lammaxs)
THEN
2189 n0s(k) = lams(k)**4*qni3d(k)/cons1
2191 ns3d(k) = n0s(k)/lams(k)
2198 IF (qg3d(k).GE.qsmall)
THEN
2199 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
2200 n0g(k) = ng3d(k)*lamg(k)
2206 IF (lamg(k).LT.lamming)
THEN
2208 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2210 ng3d(k) = n0g(k)/lamg(k)
2212 ELSE IF (lamg(k).GT.lammaxg)
THEN
2215 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2217 ng3d(k) = n0g(k)/lamg(k)
2290 IF (qc3d(k).GE.qsmall .AND. t3d(k).LT.269.15)
THEN
2297 nacnt = exp(-2.80+0.262*(273.15-t3d(k)))*1000.
2309 dum = 7.37*t3d(k)/(288.*10.*pres(k))/100.
2314 dap(k) = cons37*t3d(k)*(1.+dum/rin)/mu(k)
2316 mnuccc(k) = cons38*dap(k)*nacnt*exp(log(cdist1(k))+ &
2317 log(gamma(pgam(k)+5.))-4.*log(lamc(k)))
2318 nnuccc(k) = 2.*pi*dap(k)*nacnt*cdist1(k)* &
2319 gamma(pgam(k)+2.)/ &
2333 mnuccc(k) = mnuccc(k)+cons39* &
2334 exp(log(cdist1(k))+log(gamma(7.+pgam(k)))-6.*log(lamc(k
2335 (exp(aimm*(273.15-t3d(k)))-1.)
2337 nnuccc(k) = nnuccc(k)+ &
2338 cons40*exp(log(cdist1(k))+log(gamma(pgam(k)+4.))-3.*log(lamc
2339 *(exp(aimm*(273.15-t3d(k)))-1.)
2344 nnuccc(k) = min(nnuccc(k),nc3d(k)/dt)
2358 IF (qc3d(k).GE.1.e-6)
THEN
2363 prc(k)=1350.*qc3d(k)**2.47* &
2364 (nc3d(k)/1.e6*rho(k))**(-1.79)
2369 nprc1(k) = prc(k)/cons29
2370 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
2373 nprc(k) = min(nprc(k),nc3d(k)/dt)
2374 nprc1(k) = min(nprc1(k),nprc(k))
2383 IF (qni3d(k).GE.1.e-8)
THEN
2384 nsagg(k) = cons15*asn(k)*rho(k)** &
2385 ((2.+bs)/3.)*qni3d(k)**((2.+bs)/3.)* &
2386 (ns3d(k)*rho(k))**((4.-bs)/3.)/ &
2397 IF (qni3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2399 psacws(k) = cons13*asn(k)*qc3d(k)*rho(k)* &
2402 npsacws(k) = cons13*asn(k)*nc3d(k)*rho(k)* &
2411 IF (qg3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2413 psacwg(k) = cons14*agn(k)*qc3d(k)*rho(k)* &
2416 npsacwg(k) = cons14*agn(k)*nc3d(k)*rho(k)* &
2427 IF (qi3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2432 IF (1./lami(k).GE.100.e-6)
THEN
2434 psacwi(k) = cons16*ain(k)*qc3d(k)*rho(k)* &
2437 npsacwi(k) = cons16*ain(k)*nc3d(k)*rho(k)* &
2447 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
2449 ums = asn(k)*cons3/(lams(k)**bs)
2450 umr = arn(k)*cons4/(lamr(k)**br)
2451 uns = asn(k)*cons5/lams(k)**bs
2452 unr = arn(k)*cons6/lamr(k)**br
2457 dum=(rhosu/rho(k))**0.54
2458 ums=min(ums,1.2*dum)
2459 uns=min(uns,1.2*dum)
2460 umr=min(umr,9.1*dum)
2461 unr=min(unr,9.1*dum)
2463 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
2464 0.08*ums*umr)**0.5*rho(k)* &
2465 n0rr(k)*n0s(k)/lamr(k)**3*
2466 (5./(lamr(k)**3*lams(k))+ &
2467 2./(lamr(k)**2*lams(k)**2)+ &
2468 0.5/(lamr(k)*lams(k)**3)))
2470 npracs(k) = cons32*rho(k)*(1.7*(unr-uns)**2+ &
2471 0.3*unr*uns)**0.5*n0rr(k)*n0s(k)* &
2472 (1./(lamr(k)**3*lams(k))+ &
2473 1./(lamr(k)**2*lams(k)**2)+ &
2474 1./(lamr(k)*lams(k)**3))
2480 pracs(k) = min(pracs(k),qr3d(k)/dt)
2487 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2488 psacr(k) = cons31*(((1.2*umr-0.95*ums)**2+ &
2489 0.08*ums*umr)**0.5*rho(k)* &
2490 n0rr(k)*n0s(k)/lams(k)**3*
2491 (5./(lams(k)**3*lamr(k))+ &
2492 2./(lams(k)**2*lamr(k)**2)+ &
2493 0.5/(lams(k)*lamr(k)**3)))
2503 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
2505 umg = agn(k)*cons7/(lamg(k)**bg)
2506 umr = arn(k)*cons4/(lamr(k)**br)
2507 ung = agn(k)*cons8/lamg(k)**bg
2508 unr = arn(k)*cons6/lamr(k)**br
2512 dum=(rhosu/rho(k))**0.54
2513 umg=min(umg,20.*dum)
2514 ung=min(ung,20.*dum)
2515 umr=min(umr,9.1*dum)
2516 unr=min(unr,9.1*dum)
2518 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
2519 0.08*umg*umr)**0.5*rho(k)* &
2520 n0rr(k)*n0g(k)/lamr(k)**3*
2521 (5./(lamr(k)**3*lamg(k))+ &
2522 2./(lamr(k)**2*lamg(k)**2)+
2523 0.5/(lamr(k)*lamg(k)**3)))
2525 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
2526 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
2527 (1./(lamr(k)**3*lamg(k))+ &
2528 1./(lamr(k)**2*lamg(k)**2)+ &
2529 1./(lamr(k)*lamg(k)**3))
2535 pracg(k) = min(pracg(k),qr3d(k)/dt)
2551 IF (qni3d(k).GE.0.1e-3)
THEN
2552 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2553 IF (psacws(k).GT.0..OR.pracs(k).GT.0.)
THEN
2554 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2556 IF (t3d(k).GT.270.16)
THEN
2558 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2559 fmult = (270.16-t3d(k))/2.
2560 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2561 fmult = (t3d(k)-265.16)/3.
2562 ELSE IF (t3d(k).LT.265.16)
THEN
2570 IF (psacws(k).GT.0.)
THEN
2571 nmults(k) = 35.e4*psacws(k)*fmult*1000.
2572 qmults(k) = nmults(k)*mmult
2577 qmults(k) = min(qmults(k),psacws(k))
2578 psacws(k) = psacws(k)-qmults(k)
2584 IF (pracs(k).GT.0.)
THEN
2585 nmultr(k) = 35.e4*pracs(k)*fmult*1000.
2586 qmultr(k) = nmultr(k)*mmult
2591 qmultr(k) = min(qmultr(k),pracs(k))
2593 pracs(k) = pracs(k)-qmultr(k)
2614 IF (qg3d(k).GE.0.1e-3)
THEN
2615 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2616 IF (psacwg(k).GT.0..OR.pracg(k).GT.0.)
THEN
2617 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2619 IF (t3d(k).GT.270.16)
THEN
2621 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2622 fmult = (270.16-t3d(k))/2.
2623 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2624 fmult = (t3d(k)-265.16)/3.
2625 ELSE IF (t3d(k).LT.265.16)
THEN
2633 IF (psacwg(k).GT.0.)
THEN
2634 nmultg(k) = 35.e4*psacwg(k)*fmult*1000.
2635 qmultg(k) = nmultg(k)*mmult
2640 qmultg(k) = min(qmultg(k),psacwg(k))
2641 psacwg(k) = psacwg(k)-qmultg(k)
2647 IF (pracg(k).GT.0.)
THEN
2648 nmultrg(k) = 35.e4*pracg(k)*fmult*1000.
2649 qmultrg(k) = nmultrg(k)*mmult
2654 qmultrg(k) = min(qmultrg(k),pracg(k))
2655 pracg(k) = pracg(k)-qmultrg(k)
2668 IF (psacws(k).GT.0.)
THEN
2670 IF (qni3d(k).GE.0.1e-3.AND.qc3d(k).GE.0.5e-3)
THEN
2673 pgsacw(k) = min(psacws(k),cons17*dt*n0s(k)*qc3d(k)*qc3d(k)*
2675 (rho(k)*lams(k)**(2.*bs+2.)))
2678 dum = max(rhosn/(rhog-rhosn)*pgsacw(k),0.)
2681 nscng(k) = dum/mg0*rho(k)
2683 nscng(k) = min(nscng(k),ns3d(k)/dt)
2686 psacws(k) = psacws(k) - pgsacw(k)
2692 IF (pracs(k).GT.0.)
THEN
2694 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2696 dum = cons18*(4./lams(k))**3*(4./lams(k))**3 &
2697 /(cons18*(4./lams(k))**3*(4./lams(k))**3+ &
2698 cons19*(4./lamr(k))**3*(4./lamr(k))**3)
2701 pgracs(k) = (1.-dum)*pracs(k)
2702 ngracs(k) = (1.-dum)*npracs(k)
2704 ngracs(k) = min(ngracs(k),nr3d(k)/dt)
2705 ngracs(k) = min(ngracs(k),ns3d(k)/dt)
2708 pracs(k) = pracs(k) - pgracs(k)
2709 npracs(k) = npracs(k) - ngracs(k)
2711 psacr(k)=psacr(k)*(1.-dum)
2720 IF (t3d(k).LT.269.15.AND.qr3d(k).GE.qsmall)
THEN
2729 mnuccr(k) = cons20*nr3d(k)*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2732 nnuccr(k) = pi*nr3d(k)*bimm*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2735 nnuccr(k) = min(nnuccr(k),nr3d(k)/dt)
2744 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
2749 dum=(qc3d(k)*qr3d(k))
2750 pra(k) = 67.*(dum)**1.15
2751 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
2760 IF (qr3d(k).GE.1.e-8)
THEN
2763 if (1./lamr(k).lt.dum1)
then
2765 else if (1./lamr(k).ge.dum1)
then
2766 dum=2.-exp(2300.*(1./lamr(k)-dum1))
2769 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
2778 IF (qi3d(k).GE.1.e-8 .AND.qvqvsi(k).GE.1.)
THEN
2782 nprci(k) = cons21*(qv3d(k)-qvi(k))*rho(k)
2783 *n0i(k)*exp(-lami(k)*dcs)*dv(k)/abi(k)
2784 prci(k) = cons22*nprci(k)
2785 nprci(k) = min(nprci(k),ni3d(k)/dt)
2795 IF (qni3d(k).GE.1.e-8 .AND. qi3d(k).GE.qsmall)
THEN
2796 prai(k) = cons23*asn(k)*qi3d(k)*rho(k)*n0s(k)/ &
2798 nprai(k) = cons23*asn(k)*ni3d(k)*
2801 nprai(k)=min(nprai(k),ni3d(k)/dt)
2809 IF (qr3d(k).GE.1.e-8.AND.qi3d(k).GE.1.e-8.AND.t3d(k).LE.273.15)
THEN
2814 IF (qr3d(k).GE.0.1e-3)
THEN
2815 niacr(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2816 /lamr(k)**(br+3.)*rho(k)
2817 piacr(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2818 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2819 praci(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2820 lamr(k)**(br+3.)*rho(k)
2821 niacr(k)=min(niacr(k),nr3d(k)/dt)
2822 niacr(k)=min(niacr(k),ni3d(k)/dt)
2824 niacrs(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2825 /lamr(k)**(br+3.)*rho(k)
2826 piacrs(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2827 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2828 pracis(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2829 lamr(k)**(br+3.)*rho(k)
2830 niacrs(k)=min(niacrs(k),nr3d(k)/dt)
2831 niacrs(k)=min(niacrs(k),ni3d(k)/dt)
2842 if ((qvqvs(k).GE.0.999.and.t3d(k).le.265.15).or. &
2843 qvqvsi(k).ge.1.08)
then
2846 kc2 = 0.005*exp(0.304*(273.15-t3d(k)))*1000.
2848 kc2 = min(kc2,500.e3)
2849 kc2=max(kc2/rho(k),0.)
2851 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2852 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2853 mnuccd(k) = nnuccd(k)*mi0
2858 ELSE IF (inuc.EQ.1)
THEN
2860 IF (t3d(k).LT.273.15.AND.qvqvsi(k).GT.1.)
THEN
2862 kc2 = 0.16*1000./rho(k)
2863 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2864 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2865 mnuccd(k) = nnuccd(k)*mi0
2880 IF (qi3d(k).GE.qsmall)
THEN
2882 epsi = 2.*pi*n0i(k)*rho(k)*dv(k)/(lami(k)*lami(k))
2888 IF (qni3d(k).GE.qsmall)
THEN
2889 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
2890 (f1s/(lams(k)*lams(k))+ &
2891 f2s*(asn(k)*rho(k)/mu(k))**0.5*
2892 sc(k)**(1./3.)*cons10/ &
2898 IF (qg3d(k).GE.qsmall)
THEN
2899 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
2900 (f1s/(lamg(k)*lamg(k))+
2901 f2s*(agn(k)*rho(k)/mu(k))**0.5*
2902 sc(k)**(1./3.)*cons11/ &
2910 IF (qr3d(k).GE.qsmall)
THEN
2911 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
2912 (f1r/(lamr(k)*lamr(k))+ &
2913 f2r*(arn(k)*rho(k)/mu(k))**0.5*
2914 sc(k)**(1./3.)*cons9/ &
2924 IF (qi3d(k).GE.qsmall)
THEN
2925 dum=(1.-exp(-lami(k)*dcs)*(1.+lami(k)*dcs))
2926 prd(k) = epsi*(qv3d(k)-qvi(k))/abi(k)*dum
2931 IF (qni3d(k).GE.qsmall)
THEN
2932 prds(k) = epss*(qv3d(k)-qvi(k))/abi(k)+ &
2933 epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2936 prd(k) = prd(k)+epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2939 prdg(k) = epsg*(qv3d(k)-qvi(k))/abi(k)
2943 IF (qv3d(k).LT.qvs(k))
THEN
2944 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
2945 pre(k) = min(pre(k),0.)
2953 dum = (qv3d(k)-qvi(k))/dt
2956 sum_dep = prd(k)+prds(k)+mnuccd(k)+prdg(k)
2958 IF( (dum.GT.0. .AND. sum_dep.GT.dum*fudgef) .OR.
2959 (dum.LT.0. .AND. sum_dep.LT.dum*fudgef) )
THEN
2960 mnuccd(k) = fudgef*mnuccd(k)*dum/sum_dep
2961 prd(k) = fudgef*prd(k)*dum/sum_dep
2962 prds(k) = fudgef*prds(k)*dum/sum_dep
2963 prdg(k) = fudgef*prdg(k)*dum/sum_dep
2968 IF (prd(k).LT.0.)
THEN
2972 IF (prds(k).LT.0.)
THEN
2976 IF (prdg(k).LT.0.)
THEN
3008 IF (igraup.EQ.1)
THEN
3024 piacrs(k)=piacrs(k)+piacr(k)
3027 pracis(k)=pracis(k)+praci(k)
3029 psacws(k)=psacws(k)+pgsacw(k)
3031 pracs(k)=pracs(k)+pgracs(k)
3037 dum = (prc(k)+pra(k)+mnuccc(k)+psacws(k)+psacwi(k)+qmults(k)+psacwg
3039 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
3042 prc(k) = prc(k)*ratio
3043 pra(k) = pra(k)*ratio
3044 mnuccc(k) = mnuccc(k)*ratio
3045 psacws(k) = psacws(k)*ratio
3046 psacwi(k) = psacwi(k)*ratio
3047 qmults(k) = qmults(k)*ratio
3048 qmultg(k) = qmultg(k)*ratio
3049 psacwg(k) = psacwg(k)*ratio
3050 pgsacw(k) = pgsacw(k)*ratio
3055 dum = (-prd(k)-mnuccc(k)+prci(k)+prai(k)-qmults(k)-qmultg(k)-qmultr
3056 -mnuccd(k)+praci(k)+pracis(k)-eprd(k)-psacwi(k))*dt
3058 IF (dum.GT.qi3d(k).AND.qi3d(k).GE.qsmall)
THEN
3060 ratio = (qi3d(k)/dt+prd(k)+mnuccc(k)+qmults(k)+qmultg(k)+qmultr(k
3061 mnuccd(k)+psacwi(k))/ &
3062 (prci(k)+prai(k)+praci(k)+pracis(k)-eprd(k))
3064 prci(k) = prci(k)*ratio
3065 prai(k) = prai(k)*ratio
3066 praci(k) = praci(k)*ratio
3067 pracis(k) = pracis(k)*ratio
3068 eprd(k) = eprd(k)*ratio
3074 dum=((pracs(k)-pre(k))+(qmultr(k)+qmultrg(k)-prc(k))+(mnuccr(k)-pra
3075 piacr(k)+piacrs(k)+pgracs(k)+pracg(k))*dt
3077 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
3079 ratio = (qr3d(k)/dt+prc(k)+pra(k))/ &
3080 (-pre(k)+qmultr(k)+qmultrg(k)+pracs(k)+mnuccr(k)+piacr(k)+piacrs
3082 pre(k) = pre(k)*ratio
3083 pracs(k) = pracs(k)*ratio
3084 qmultr(k) = qmultr(k)*ratio
3085 qmultrg(k) = qmultrg(k)*ratio
3086 mnuccr(k) = mnuccr(k)*ratio
3087 piacr(k) = piacr(k)*ratio
3088 piacrs(k) = piacrs(k)*ratio
3089 pgracs(k) = pgracs(k)*ratio
3090 pracg(k) = pracg(k)*ratio
3097 IF (igraup.EQ.0)
THEN
3099 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3101 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3103 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3105 eprds(k) = eprds(k)*ratio
3106 psacr(k) = psacr(k)*ratio
3111 ELSE IF (igraup.EQ.1)
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
3128 dum = (-psacwg(k)-pracg(k)-pgsacw(k)-pgracs(k)-prdg(k)-mnuccr(k)-eprdg
3130 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
3132 ratio = (qg3d(k)/dt+psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+prdg(k
3133 piacr(k)+praci(k))/(-eprdg(k))
3135 eprdg(k) = eprdg(k)*ratio
3141 qv3dten(k) = qv3dten(k)+(-pre(k)-prd(k)-prds(k)-mnuccd(k)-eprd(k)-eprds
3144 t3dten(k) = t3dten(k)+(pre(k) &
3145 *xxlv(k)+(prd(k)+prds(k)+ &
3146 mnuccd(k)+eprd(k)+eprds(k)+prdg(k)+eprdg(k))*xxls(k)+
3147 (psacws(k)+psacwi(k)+mnuccc(k)+mnuccr(k)+
3148 qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+pracs(k) &
3149 +psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+piacr(k)+piacrs(k
3151 qc3dten(k) = qc3dten(k)+ &
3152 (-pra(k)-prc(k)-mnuccc(k)+pcc(k)- &
3153 psacws(k)-psacwi(k)-qmults(k)-qmultg(k)-psacwg(k)-pgsacw
3154 qi3dten(k) = qi3dten(k)+ &
3155 (prd(k)+eprd(k)+psacwi(k)+mnuccc(k)-prci(k)-
3156 prai(k)+qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+mnuccd
3157 qr3dten(k) = qr3dten(k)+ &
3158 (pre(k)+pra(k)+prc(k)-pracs(k)-mnuccr(k)-qmultr(k)-qmultrg
3159 -piacr(k)-piacrs(k)-pracg(k)-pgracs(k))
3160 IF (igraup.EQ.0)
THEN
3162 qni3dten(k) = qni3dten(k)+ &
3163 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3164 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3165 qg3dten(k) = qg3dten(k)+(pracg(k)+psacwg(k)+pgsacw(k)+pgracs(k)+ &
3166 prdg(k)+eprdg(k)+mnuccr(k)+piacr(k)+praci(k)+psacr(k
3167 ng3dten(k) = ng3dten(k)+(nscng(k)+ngracs(k)+nnuccr(k)+niacr(k))
3170 ELSE IF (igraup.EQ.1)
THEN
3172 qni3dten(k) = qni3dten(k)+ &
3173 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3174 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3178 nc3dten(k) = nc3dten(k)+(-nnuccc(k)-npsacws(k) &
3179 -npra(k)-nprc(k)-npsacwi(k)-npsacwg(k))
3181 ni3dten(k) = ni3dten(k)+ &
3182 (nnuccc(k)-nprci(k)-nprai(k)+nmults(k)+nmultg(k)+nmultr(k)+nmultrg
3183 nnuccd(k)-niacr(k)-niacrs(k))
3185 nr3dten(k) = nr3dten(k)+(nprc1(k)-npracs(k)-nnuccr(k) &
3186 +nragg(k)-niacr(k)-niacrs(k)-npracg(k)-ngracs(k))
3190 c2prec(k) = pra(k)+prc(k)+psacws(k)+qmults(k)+qmultg(k)+psacwg(k
3191 pgsacw(k)+mnuccc(k)+psacwi(k)
3196 dumt = t3d(k)+dt*t3dten(k)
3197 dumqv = qv3d(k) + dt * qv3dten(k)
3200 dum=min(0.99*pres(k),polysvp(dumt,0))
3201 dumqss = ep_2*dum/(pres(k)-dum)
3203 dumqc = qc3d(k) + dt * qc3dten(k)
3205 dumqc = max(dumqc,0.)
3211 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
3213 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
3217 qv3dten(k) = qv3dten(k)-pcc(k)
3218 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
3219 qc3dten(k) = qc3dten(k)+pcc(k)
3237 IF (eprd(k).LT.0.)
THEN
3238 dum = eprd(k)*dt/qi3d(k)
3240 nsubi(k) = dum*ni3d(k)/dt
3242 IF (eprds(k).LT.0.)
THEN
3243 dum = eprds(k)*dt/qni3d(k)
3245 nsubs(k) = dum*ns3d(k)/dt
3247 IF (pre(k).LT.0.)
THEN
3248 dum = pre(k)*dt/qr3d(k)
3250 nsubr(k) = dum*nr3d(k)/dt
3252 IF (eprdg(k).LT.0.)
THEN
3253 dum = eprdg(k)*dt/qg3d(k)
3255 nsubg(k) = dum*ng3d(k)/dt
3265 ni3dten(k) = ni3dten(k)+nsubi(k)
3266 ns3dten(k) = ns3dten(k)+nsubs(k)
3267 ng3dten(k) = ng3dten(k)+nsubg(k)
3268 nr3dten(k) = nr3dten(k)+nsubr(k)
3290 IF (ltrue.EQ.0)
GOTO 400
3305 dumi(k) = qi3d(k)+qi3dten(k)*dt
3306 dumqs(k) = qni3d(k)+qni3dten(k)*dt
3307 dumr(k) = qr3d(k)+qr3dten(k)*dt
3308 dumfni(k) = ni3d(k)+ni3dten(k)*dt
3309 dumfns(k) = ns3d(k)+ns3dten(k)*dt
3310 dumfnr(k) = nr3d(k)+nr3dten(k)*dt
3311 dumc(k) = qc3d(k)+qc3dten(k)*dt
3312 dumfnc(k) = nc3d(k)+nc3dten(k)*dt
3313 dumg(k) = qg3d(k)+qg3dten(k)*dt
3314 dumfng(k) = ng3d(k)+ng3dten(k)*dt
3317 IF (iinum.EQ.1)
THEN
3324 dumfni(k) = max(0.,dumfni(k))
3325 dumfns(k) = max(0.,dumfns(k))
3326 dumfnc(k) = max(0.,dumfnc(k))
3327 dumfnr(k) = max(0.,dumfnr(k))
3328 dumfng(k) = max(0.,dumfng(k))
3333 IF (dumi(k).GE.qsmall)
THEN
3334 dlami = (cons12*dumfni(k)/dumi(k))**(1./di)
3335 dlami=max(dlami,lammini)
3336 dlami=min(dlami,lammaxi)
3341 IF (dumr(k).GE.qsmall)
THEN
3342 dlamr = (pi*rhow*dumfnr(k)/dumr(k))**(1./3.)
3343 dlamr=max(dlamr,lamminr)
3344 dlamr=min(dlamr,lammaxr)
3349 IF (dumc(k).GE.qsmall)
THEN
3350 dum = pres(k)/(287.15*t3d(k))
3351 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3352 pgam(k)=1./(pgam(k)**2)-1.
3353 pgam(k)=max(pgam(k),2.)
3354 pgam(k)=min(pgam(k),10.)
3356 dlamc = (cons26*dumfnc(k)*gamma(pgam(k)+4.)/(dumc(k)*gamma(pgam(k
3357 lammin = (pgam(k)+1.)/60.e-6
3358 lammax = (pgam(k)+1.)/1.e-6
3359 dlamc=max(dlamc,lammin)
3360 dlamc=min(dlamc,lammax)
3365 IF (dumqs(k).GE.qsmall)
THEN
3366 dlams = (cons1*dumfns(k)/ dumqs(k))**(1./ds)
3367 dlams=max(dlams,lammins)
3368 dlams=min(dlams,lammaxs)
3373 IF (dumg(k).GE.qsmall)
THEN
3374 dlamg = (cons2*dumfng(k)/ dumg(k))**(1./dg)
3375 dlamg=max(dlamg,lamming)
3376 dlamg=min(dlamg,lammaxg)
3383 IF (dumc(k).GE.qsmall)
THEN
3384 unc = acn(k)*gamma(1.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+1.))
3385 umc = acn(k)*gamma(4.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+4.))
3391 IF (dumi(k).GE.qsmall)
THEN
3392 uni = ain(k)*cons27/dlami**bi
3393 umi = ain(k)*cons28/(dlami**bi)
3399 IF (dumr(k).GE.qsmall)
THEN
3400 unr = arn(k)*cons6/dlamr**br
3401 umr = arn(k)*cons4/(dlamr**br)
3407 IF (dumqs(k).GE.qsmall)
THEN
3408 ums = asn(k)*cons3/(dlams**bs)
3409 uns = asn(k)*cons5/dlams**bs
3415 IF (dumg(k).GE.qsmall)
THEN
3416 umg = agn(k)*cons7/(dlamg**bg)
3417 ung = agn(k)*cons8/dlamg**bg
3426 dum=(rhosu/rho(k))**0.54
3427 ums=min(ums,1.2*dum)
3428 uns=min(uns,1.2*dum)
3431 umi=min(umi,1.2*(rhosu/rho(k))**0.35)
3432 uni=min(uni,1.2*(rhosu/rho(k))**0.35)
3433 umr=min(umr,9.1*dum)
3434 unr=min(unr,9.1*dum)
3435 umg=min(umg,20.*dum)
3436 ung=min(ung,20.*dum)
3451 IF (k.LE.kte-1)
THEN
3452 IF (fr(k).LT.1.e-10)
THEN
3455 IF (fi(k).LT.1.e-10)
THEN
3458 IF (fni(k).LT.1.e-10)
THEN
3461 IF (fs(k).LT.1.e-10)
THEN
3464 IF (fns(k).LT.1.e-10)
THEN
3467 IF (fnr(k).LT.1.e-10)
THEN
3470 IF (fc(k).LT.1.e-10)
THEN
3473 IF (fnc(k).LT.1.e-10)
THEN
3476 IF (fg(k).LT.1.e-10)
THEN
3479 IF (fng(k).LT.1.e-10)
THEN
3486 rgvm = max(fr(k),fi(k),fs(k),fc(k),fni(k),fnr(k),fns(k),fnc(k),fg(k
3488 nstep = max(int(rgvm*dt/dzq(k)+1.),nstep)
3491 dumr(k) = dumr(k)*rho(k)
3492 dumi(k) = dumi(k)*rho(k)
3493 dumfni(k) = dumfni(k)*rho(k)
3494 dumqs(k) = dumqs(k)*rho(k)
3495 dumfns(k) = dumfns(k)*rho(k)
3496 dumfnr(k) = dumfnr(k)*rho(k)
3497 dumc(k) = dumc(k)*rho(k)
3498 dumfnc(k) = dumfnc(k)*rho(k)
3499 dumg(k) = dumg(k)*rho(k)
3500 dumfng(k) = dumfng(k)*rho(k)
3507 faloutr(k) = fr(k)*dumr(k)
3508 falouti(k) = fi(k)*dumi(k)
3509 faloutni(k) = fni(k)*dumfni(k)
3510 falouts(k) = fs(k)*dumqs(k)
3511 faloutns(k) = fns(k)*dumfns(k)
3512 faloutnr(k) = fnr(k)*dumfnr(k)
3513 faloutc(k) = fc(k)*dumc(k)
3514 faloutnc(k) = fnc(k)*dumfnc(k)
3515 faloutg(k) = fg(k)*dumg(k)
3516 faloutng(k) = fng(k)*dumfng(k)
3522 faltndr = faloutr(k)/dzq(k)
3523 faltndi = falouti(k)/dzq(k)
3524 faltndni = faloutni(k)/dzq(k)
3525 faltnds = falouts(k)/dzq(k)
3526 faltndns = faloutns(k)/dzq(k)
3527 faltndnr = faloutnr(k)/dzq(k)
3528 faltndc = faloutc(k)/dzq(k)
3529 faltndnc = faloutnc(k)/dzq(k)
3530 faltndg = faloutg(k)/dzq(k)
3531 faltndng = faloutng(k)/dzq(k)
3534 qrsten(k) = qrsten(k)-faltndr/nstep/rho(k)
3535 qisten(k) = qisten(k)-faltndi/nstep/rho(k)
3536 ni3dten(k) = ni3dten(k)-faltndni/nstep/rho(k)
3537 qnisten(k) = qnisten(k)-faltnds/nstep/rho(k)
3538 ns3dten(k) = ns3dten(k)-faltndns/nstep/rho(k)
3539 nr3dten(k) = nr3dten(k)-faltndnr/nstep/rho(k)
3540 qcsten(k) = qcsten(k)-faltndc/nstep/rho(k)
3541 nc3dten(k) = nc3dten(k)-faltndnc/nstep/rho(k)
3542 qgsten(k) = qgsten(k)-faltndg/nstep/rho(k)
3543 ng3dten(k) = ng3dten(k)-faltndng/nstep/rho(k)
3545 dumr(k) = dumr(k)-faltndr*dt/nstep
3546 dumi(k) = dumi(k)-faltndi*dt/nstep
3547 dumfni(k) = dumfni(k)-faltndni*dt/nstep
3548 dumqs(k) = dumqs(k)-faltnds*dt/nstep
3549 dumfns(k) = dumfns(k)-faltndns*dt/nstep
3550 dumfnr(k) = dumfnr(k)-faltndnr*dt/nstep
3551 dumc(k) = dumc(k)-faltndc*dt/nstep
3552 dumfnc(k) = dumfnc(k)-faltndnc*dt/nstep
3553 dumg(k) = dumg(k)-faltndg*dt/nstep
3554 dumfng(k) = dumfng(k)-faltndng*dt/nstep
3557 faltndr = (faloutr(k+1)-faloutr(k))/dzq(k)
3558 faltndi = (falouti(k+1)-falouti(k))/dzq(k)
3559 faltndni = (faloutni(k+1)-faloutni(k))/dzq(k)
3560 faltnds = (falouts(k+1)-falouts(k))/dzq(k)
3561 faltndns = (faloutns(k+1)-faloutns(k))/dzq(k)
3562 faltndnr = (faloutnr(k+1)-faloutnr(k))/dzq(k)
3563 faltndc = (faloutc(k+1)-faloutc(k))/dzq(k)
3564 faltndnc = (faloutnc(k+1)-faloutnc(k))/dzq(k)
3565 faltndg = (faloutg(k+1)-faloutg(k))/dzq(k)
3566 faltndng = (faloutng(k+1)-faloutng(k))/dzq(k)
3570 qrsten(k) = qrsten(k)+faltndr/nstep/rho(k)
3571 qisten(k) = qisten(k)+faltndi/nstep/rho(k)
3572 ni3dten(k) = ni3dten(k)+faltndni/nstep/rho(k)
3573 qnisten(k) = qnisten(k)+faltnds/nstep/rho(k)
3574 ns3dten(k) = ns3dten(k)+faltndns/nstep/rho(k)
3575 nr3dten(k) = nr3dten(k)+faltndnr/nstep/rho(k)
3576 qcsten(k) = qcsten(k)+faltndc/nstep/rho(k)
3577 nc3dten(k) = nc3dten(k)+faltndnc/nstep/rho(k)
3578 qgsten(k) = qgsten(k)+faltndg/nstep/rho(k)
3579 ng3dten(k) = ng3dten(k)+faltndng/nstep/rho(k)
3581 dumr(k) = dumr(k)+faltndr*dt/nstep
3582 dumi(k) = dumi(k)+faltndi*dt/nstep
3583 dumfni(k) = dumfni(k)+faltndni*dt/nstep
3584 dumqs(k) = dumqs(k)+faltnds*dt/nstep
3585 dumfns(k) = dumfns(k)+faltndns*dt/nstep
3586 dumfnr(k) = dumfnr(k)+faltndnr*dt/nstep
3587 dumc(k) = dumc(k)+faltndc*dt/nstep
3588 dumfnc(k) = dumfnc(k)+faltndnc*dt/nstep
3589 dumg(k) = dumg(k)+faltndg*dt/nstep
3590 dumfng(k) = dumfng(k)+faltndng*dt/nstep
3593 csed(k)=csed(k)+faloutc(k)/nstep
3594 ised(k)=ised(k)+falouti(k)/nstep
3595 ssed(k)=ssed(k)+falouts(k)/nstep
3596 gsed(k)=gsed(k)+faloutg(k)/nstep
3597 rsed(k)=rsed(k)+faloutr(k)/nstep
3604 precrt = precrt+(faloutr(kts)+faloutc(kts)+falouts(kts)+falouti(kts
3606 snowrt = snowrt+(falouts(kts)+falouti(kts)+faloutg(kts))*dt/nstep
3608 snowprt = snowprt+(falouti(kts)+falouts(kts))*dt/nstep
3609 grplprt = grplprt+(faloutg(kts))*dt/nstep
3616 qr3dten(k)=qr3dten(k)+qrsten(k)
3617 qi3dten(k)=qi3dten(k)+qisten(k)
3618 qc3dten(k)=qc3dten(k)+qcsten(k)
3619 qg3dten(k)=qg3dten(k)+qgsten(k)
3620 qni3dten(k)=qni3dten(k)+qnisten(k)
3626 IF (qi3d(k).GE.qsmall.AND.t3d(k).LT.273.15.AND.lami(k).GE.1.e-10
THEN
3627 IF (1./lami(k).GE.2.*dcs)
THEN
3628 qni3dten(k) = qni3dten(k)+qi3d(k)/dt+ qi3dten(k)
3629 ns3dten(k) = ns3dten(k)+ni3d(k)/dt+ ni3dten(k)
3630 qi3dten(k) = -qi3d(k)/dt
3631 ni3dten(k) = -ni3d(k)/dt
3638 qc3d(k) = qc3d(k)+qc3dten(k)*dt
3639 qi3d(k) = qi3d(k)+qi3dten(k)*dt
3640 qni3d(k) = qni3d(k)+qni3dten(k)*dt
3641 qr3d(k) = qr3d(k)+qr3dten(k)*dt
3642 nc3d(k) = nc3d(k)+nc3dten(k)*dt
3643 ni3d(k) = ni3d(k)+ni3dten(k)*dt
3644 ns3d(k) = ns3d(k)+ns3dten(k)*dt
3645 nr3d(k) = nr3d(k)+nr3dten(k)*dt
3647 IF (igraup.EQ.0)
THEN
3648 qg3d(k) = qg3d(k)+qg3dten(k)*dt
3649 ng3d(k) = ng3d(k)+ng3dten(k)*dt
3653 t3d(k) = t3d(k)+t3dten(k)*dt
3654 qv3d(k) = qv3d(k)+qv3dten(k)*dt
3659 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
3660 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
3664 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
3666 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
3667 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
3669 qvqvs(k) = qv3d(k)/qvs(k)
3670 qvqvsi(k) = qv3d(k)/qvi(k)
3675 IF (qvqvs(k).LT.0.9)
THEN
3676 IF (qr3d(k).LT.1.e-8)
THEN
3677 qv3d(k)=qv3d(k)+qr3d(k)
3678 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
3681 IF (qc3d(k).LT.1.e-8)
THEN
3682 qv3d(k)=qv3d(k)+qc3d(k)
3683 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
3687 IF (qvqvsi(k).LT.0.9)
THEN
3688 IF (qi3d(k).LT.1.e-8)
THEN
3689 qv3d(k)=qv3d(k)+qi3d(k)
3690 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
3693 IF (qni3d(k).LT.1.e-8)
THEN
3694 qv3d(k)=qv3d(k)+qni3d(k)
3695 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
3698 IF (qg3d(k).LT.1.e-8)
THEN
3699 qv3d(k)=qv3d(k)+qg3d(k)
3700 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
3708 IF (qc3d(k).LT.qsmall)
THEN
3713 IF (qr3d(k).LT.qsmall)
THEN
3718 IF (qi3d(k).LT.qsmall)
THEN
3723 IF (qni3d(k).LT.qsmall)
THEN
3728 IF (qg3d(k).LT.qsmall)
THEN
3737 IF (qc3d(k).LT.qsmall.AND.qi3d(k).LT.qsmall.AND.qni3d(k).LT.qsmall
3738 .AND.qr3d(k).LT.qsmall.AND.qg3d(k).LT.qsmall)
GOTO 500
3745 IF (qi3d(k).GE.qsmall.AND.t3d(k).GE.273.15)
THEN
3746 qr3d(k) = qr3d(k)+qi3d(k)
3747 t3d(k) = t3d(k)-qi3d(k)*xlf(k)/cpm(k)
3749 nr3d(k) = nr3d(k)+ni3d(k)
3754 IF (iliq.EQ.1)
GOTO 778
3758 IF (t3d(k).LE.233.15.AND.qc3d(k).GE.qsmall)
THEN
3759 qi3d(k)=qi3d(k)+qc3d(k)
3760 t3d(k)=t3d(k)+qc3d(k)*xlf(k)/cpm(k)
3762 ni3d(k)=ni3d(k)+nc3d(k)
3768 IF (igraup.EQ.0)
THEN
3770 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3771 qg3d(k) = qg3d(k)+qr3d(k)
3772 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3774 ng3d(k) = ng3d(k)+ nr3d(k)
3778 ELSE IF (igraup.EQ.1)
THEN
3780 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3781 qni3d(k) = qni3d(k)+qr3d(k)
3782 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3784 ns3d(k) = ns3d(k)+nr3d(k)
3794 ni3d(k) = max(0.,ni3d(k))
3795 ns3d(k) = max(0.,ns3d(k))
3796 nc3d(k) = max(0.,nc3d(k))
3797 nr3d(k) = max(0.,nr3d(k))
3798 ng3d(k) = max(0.,ng3d(k))
3803 IF (qi3d(k).GE.qsmall)
THEN
3804 lami(k) = (cons12* &
3805 ni3d(k)/qi3d(k))**(1./di)
3811 IF (lami(k).LT.lammini)
THEN
3815 n0i(k) = lami(k)**4*qi3d(k)/cons12
3817 ni3d(k) = n0i(k)/lami(k)
3818 ELSE IF (lami(k).GT.lammaxi)
THEN
3820 n0i(k) = lami(k)**4*qi3d(k)/cons12
3822 ni3d(k) = n0i(k)/lami(k)
3829 IF (qr3d(k).GE.qsmall)
THEN
3830 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
3836 IF (lamr(k).LT.lamminr)
THEN
3840 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3842 nr3d(k) = n0rr(k)/lamr(k)
3843 ELSE IF (lamr(k).GT.lammaxr)
THEN
3845 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3847 nr3d(k) = n0rr(k)/lamr(k)
3857 IF (qc3d(k).GE.qsmall)
THEN
3859 dum = pres(k)/(287.15*t3d(k))
3860 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3861 pgam(k)=1./(pgam(k)**2)-1.
3862 pgam(k)=max(pgam(k),2.)
3863 pgam(k)=min(pgam(k),10.)
3867 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
3868 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
3873 lammin = (pgam(k)+1.)/60.e-6
3874 lammax = (pgam(k)+1.)/1.e-6
3876 IF (lamc(k).LT.lammin)
THEN
3878 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3879 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3881 ELSE IF (lamc(k).GT.lammax)
THEN
3883 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3884 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3893 IF (qni3d(k).GE.qsmall)
THEN
3894 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
3900 IF (lams(k).LT.lammins)
THEN
3902 n0s(k) = lams(k)**4*qni3d(k)/cons1
3904 ns3d(k) = n0s(k)/lams(k)
3906 ELSE IF (lams(k).GT.lammaxs)
THEN
3909 n0s(k) = lams(k)**4*qni3d(k)/cons1
3910 ns3d(k) = n0s(k)/lams(k)
3918 IF (qg3d(k).GE.qsmall)
THEN
3919 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
3925 IF (lamg(k).LT.lamming)
THEN
3927 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3929 ng3d(k) = n0g(k)/lamg(k)
3931 ELSE IF (lamg(k).GT.lammaxg)
THEN
3934 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3936 ng3d(k) = n0g(k)/lamg(k)
3945 IF (qi3d(k).GE.qsmall)
THEN
3946 effi(k) = 3./lami(k)/2.*1.e6
3951 IF (qni3d(k).GE.qsmall)
THEN
3952 effs(k) = 3./lams(k)/2.*1.e6
3957 IF (qr3d(k).GE.qsmall)
THEN
3958 effr(k) = 3./lamr(k)/2.*1.e6
3963 IF (qc3d(k).GE.qsmall)
THEN
3964 effc(k) = gamma(pgam(k)+4.)/ &
3965 gamma(pgam(k)+3.)/lamc(k)/2.*1.e6
3970 IF (qg3d(k).GE.qsmall)
THEN
3971 effg(k) = 3./lamg(k)/2.*1.e6
3983 ni3d(k) = min(ni3d(k),0.3e6/rho(k))
3986 IF (iinum.EQ.0.AND.iact.EQ.2)
THEN
3987 nc3d(k) = min(nc3d(k),(nanew1+nanew2)/rho(k))
3990 IF (iinum.EQ.1)
THEN
3992 nc3d(k) = ndcnst*1.e6/rho(k)