962 INTEGER,
INTENT( IN) :: i,j,istep,kts,kte
964 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3DTEN
965 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3DTEN
966 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3DTEN
967 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3DTEN
968 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3DTEN
969 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3DTEN
970 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3DTEN
971 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QC3D
972 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QI3D
973 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNI3D
974 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QR3D
975 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NI3D
976 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NS3D
977 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NR3D
978 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3DTEN
979 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3DTEN
980 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: T3D
981 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QV3D
982 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRES
983 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DZQ
984 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: W3D
985 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO_ERF
987 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3d
988 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: nc3dten
989 integer,
intent(in) :: iinum
992 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3DTEN
993 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3DTEN
994 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QG3D
995 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NG3D
999 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QGSTEN
1000 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QRSTEN
1001 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QISTEN
1002 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QNISTEN
1003 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QCSTEN
1006 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qrcu1d
1007 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qscu1d
1008 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: qicu1d
1012 REAL(C_DOUBLE) PRECRT
1013 REAL(C_DOUBLE) SNOWRT
1015 REAL(C_DOUBLE) SNOWPRT
1016 REAL(C_DOUBLE) GRPLPRT
1018 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFC
1019 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFI
1020 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFS
1021 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFR
1022 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EFFG
1035 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMC
1036 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMI
1037 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMS
1038 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMR
1039 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: LAMG
1040 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CDIST1
1041 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0I
1042 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0S
1043 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0RR
1044 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: N0G
1045 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGAM
1049 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBC
1050 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBI
1051 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBS
1052 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBR
1053 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRD
1054 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRE
1055 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDS
1056 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCC
1057 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCC
1058 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRA
1059 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRC
1060 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCC
1061 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCD
1062 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCD
1063 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MNUCCR
1064 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NNUCCR
1065 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRA
1066 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NRAGG
1067 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSAGG
1068 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC
1069 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRC1
1070 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRAI
1071 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRCI
1072 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWS
1073 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWS
1074 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWI
1075 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWI
1076 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRCI
1077 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRAI
1078 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTS
1079 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTR
1080 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTS
1081 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTR
1082 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACS
1083 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACS
1084 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PCCN
1085 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSMLT
1086 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMS
1087 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTS
1088 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSMLTR
1090 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACR
1091 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACR
1092 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACI
1093 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PIACRS
1094 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NIACRS
1095 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACIS
1096 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRD
1097 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDS
1099 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRACG
1100 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACWG
1101 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGSACW
1102 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGRACS
1103 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PRDG
1104 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EPRDG
1105 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVPMG
1106 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PGMLT
1107 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPRACG
1108 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NPSACWG
1109 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSCNG
1110 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGRACS
1111 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTG
1112 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NGMLTR
1113 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NSUBG
1114 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: PSACR
1115 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTG
1116 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: NMULTRG
1117 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTG
1118 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QMULTRG
1122 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: KAP
1123 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EVS
1124 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: EIS
1125 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVS
1126 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVI
1127 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVS
1128 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: QVQVSI
1129 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DV
1130 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLS
1131 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XXLV
1132 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: CPM
1133 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: MU
1134 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: SC
1135 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: XLF
1136 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: RHO
1137 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AB
1138 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: ABI
1142 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DAP
1143 REAL(C_DOUBLE) NACNT
1144 REAL(C_DOUBLE) FMULT
1145 REAL(C_DOUBLE) COFFI
1149 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMI,DUMR,DUMFNI,DUMG,DUMFNG
1150 REAL(C_DOUBLE) UNI, UMI,UMR
1151 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FR, FI, FNI,FG,FNG
1153 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FALOUTR,FALOUTI,FALOUTNI
1154 REAL(C_DOUBLE) FALTNDR,FALTNDI,FALTNDNI,RHO2
1155 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMQS,DUMFNS
1156 REAL(C_DOUBLE) UMS,UNS
1157 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FS,FNS, FALOUTS,FALOUTNS,FALOUTG
1158 REAL(C_DOUBLE) FALTNDS,FALTNDNS,UNR,FALTNDG,FALTNDNG
1159 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: DUMC,DUMFNC
1160 REAL(C_DOUBLE) UNC,UMC,UNG,UMG
1161 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FC,FALOUTC,FALOUTNC
1162 REAL(C_DOUBLE) FALTNDC,FALTNDNC
1163 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNC,DUMFNR,FALOUTNR
1164 REAL(C_DOUBLE) FALTNDNR
1165 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: FNR
1169 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: AIN,ARN,ASN,ACN,AGN
1179 REAL(C_DOUBLE) DUM,DUM1,DUM2,DUMT,DUMQV,DUMQSS,DUMQSI,DUMS
1183 REAL(C_DOUBLE) DQSDT
1184 REAL(C_DOUBLE) DQSIDT
1196 REAL(C_DOUBLE) DUMACT,DUM3
1212 REAL(C_DOUBLE) TEMP1
1214 REAL(C_DOUBLE) SIGVL
1218 REAL(C_DOUBLE) CRY,KRY
1222 REAL(C_DOUBLE) DUMQI,DUMNI,DC0,DS0,DG0
1223 REAL(C_DOUBLE) DUMQC,DUMQR,RATIO,SUM_DEP,FUDGEF
1230 REAL(C_DOUBLE) ANUC,BNUC
1234 REAL(C_DOUBLE) AACT,GAMM,GG,PSI,ETA1,ETA2,SM1,SM2,SMAX,UU1,UU2,ALPHA
1238 REAL(C_DOUBLE) DLAMS,DLAMR,DLAMI,DLAMC,DLAMG,LAMMAX,LAMMIN
1243 REAL(C_DOUBLE),
DIMENSION(KTS:KTE)::C2PREC,CSED,ISED,SSED,GSED,RSED
1244 REAL(C_DOUBLE),
DIMENSION(KTS:KTE) :: tqimelt
1274 xxlv(k) = 3.1484e6-2370.*t3d(k)
1278 xxls(k) = 3.15e6-2370.*t3d(k)+0.3337e6
1280 cpm(k) = cp*(1.+0.887*qv3d(k))
1286 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
1287 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
1291 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
1293 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
1294 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
1296 qvqvs(k) = qv3d(k)/qvs(k)
1297 qvqvsi(k) = qv3d(k)/qvi(k)
1301 rho(k) = pres(k)/(r*t3d(k))
1308 IF (qrcu1d(k).GE.1.e-10)
THEN
1309 dum=1.8e5*(qrcu1d(k)*dt/(pi*rhow*rho(k)**3))**0.25
1312 IF (qscu1d(k).GE.1.e-10)
THEN
1313 dum=3.e5*(qscu1d(k)*dt/(cons1*rho(k)**3))**(1./(ds+1.))
1316 IF (qicu1d(k).GE.1.e-10)
THEN
1317 dum=qicu1d(k)*dt/(ci*(80.e-6)**di)
1324 IF (qvqvs(k).LT.0.9)
THEN
1325 IF (qr3d(k).LT.1.e-8)
THEN
1326 qv3d(k)=qv3d(k)+qr3d(k)
1327 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
1330 IF (qc3d(k).LT.1.e-8)
THEN
1331 qv3d(k)=qv3d(k)+qc3d(k)
1332 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
1337 IF (qvqvsi(k).LT.0.9)
THEN
1338 IF (qi3d(k).LT.1.e-8)
THEN
1339 qv3d(k)=qv3d(k)+qi3d(k)
1340 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
1343 IF (qni3d(k).LT.1.e-8)
THEN
1344 qv3d(k)=qv3d(k)+qni3d(k)
1345 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
1348 IF (qg3d(k).LT.1.e-8)
THEN
1349 qv3d(k)=qv3d(k)+qg3d(k)
1350 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
1357 xlf(k) = xxls(k)-xxlv(k)
1362 IF (qc3d(k).LT.qsmall)
THEN
1367 IF (qr3d(k).LT.qsmall)
THEN
1372 IF (qi3d(k).LT.qsmall)
THEN
1377 IF (qni3d(k).LT.qsmall)
THEN
1382 IF (qg3d(k).LT.qsmall)
THEN
1400 mu(k) = 1.496e-6*t3d(k)**1.5/(t3d(k)+120.)
1404 dum = (rhosu/rho(k))**0.54
1409 ain(k) = (rhosu/rho(k))**0.35*ai
1414 acn(k) = g*rhow/(18.*mu(k))
1424 IF ( qc3d(k).LT.qsmall.AND. &
1425 qi3d(k).LT.qsmall.AND. &
1426 qni3d(k).LT.qsmall.AND. &
1427 qr3d(k).LT.qsmall.AND. &
1428 qg3d(k).LT.qsmall)
THEN
1429 IF (t3d(k).LT.273.15.AND.qvqvsi(k).LT.0.999)
then
1432 IF (t3d(k).GE.273.15.AND.qvqvs(k).LT.0.999)
then
1440 kap(k) = 1.414e3*mu(k)
1444 dv(k) = 8.794e-5*t3d(k)**1.81/pres(k)
1449 sc(k) = mu(k)/(rho(k)*dv(k))
1455 dum = (rv*t3d(k)**2)
1457 dqsdt = xxlv(k)*qvs(k)/dum
1458 dqsidt = xxls(k)*qvi(k)/dum
1460 abi(k) = 1.+dqsidt*xxls(k)/cpm(k)
1461 ab(k) = 1.+dqsdt*xxlv(k)/cpm(k)
1467 IF (t3d(k).GE.273.15)
THEN
1474 IF (iinum.EQ.1)
THEN
1476 nc3d(k)=ndcnst*1.e6/rho_erf(k)
1482 IF (qni3d(k).LT.1.e-6)
THEN
1483 qr3d(k)=qr3d(k)+qni3d(k)
1484 nr3d(k)=nr3d(k)+ns3d(k)
1485 t3d(k)=t3d(k)-qni3d(k)*xlf(k)/cpm(k)
1489 IF (qg3d(k).LT.1.e-6)
THEN
1490 qr3d(k)=qr3d(k)+qg3d(k)
1491 nr3d(k)=nr3d(k)+ng3d(k)
1492 t3d(k)=t3d(k)-qg3d(k)*xlf(k)/cpm(k)
1496 IF (qc3d(k).LT.qsmall.AND.qni3d(k).LT.1.e-8.AND.qr3d(k).LT.qsmall.AND.qg3d
THEN
1502 ns3d(k) = max(0.,ns3d(k))
1503 nc3d(k) = max(0.,nc3d(k))
1504 nr3d(k) = max(0.,nr3d(k))
1505 ng3d(k) = max(0.,ng3d(k))
1510 IF (qr3d(k).GE.qsmall)
THEN
1511 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
1512 n0rr(k) = nr3d(k)*lamr(k)
1518 IF (lamr(k).LT.lamminr)
THEN
1522 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1524 nr3d(k) = n0rr(k)/lamr(k)
1525 ELSE IF (lamr(k).GT.lammaxr)
THEN
1527 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
1529 nr3d(k) = n0rr(k)/lamr(k)
1538 IF (qc3d(k).GE.qsmall)
THEN
1540 dum = pres(k)/(287.15*t3d(k))
1541 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
1542 pgam(k)=1./(pgam(k)**2)-1.
1543 pgam(k)=max(pgam(k),2.)
1544 pgam(k)=min(pgam(k),10.)
1548 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
1549 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
1554 lammin = (pgam(k)+1.)/60.e-6
1555 lammax = (pgam(k)+1.)/1.e-6
1557 IF (lamc(k).LT.lammin)
THEN
1560 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1561 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1562 ELSE IF (lamc(k).GT.lammax)
THEN
1565 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
1566 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
1575 IF (qni3d(k).GE.qsmall)
THEN
1576 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
1577 n0s(k) = ns3d(k)*lams(k)
1583 IF (lams(k).LT.lammins)
THEN
1585 n0s(k) = lams(k)**4*qni3d(k)/cons1
1587 ns3d(k) = n0s(k)/lams(k)
1589 ELSE IF (lams(k).GT.lammaxs)
THEN
1592 n0s(k) = lams(k)**4*qni3d(k)/cons1
1594 ns3d(k) = n0s(k)/lams(k)
1601 IF (qg3d(k).GE.qsmall)
THEN
1602 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
1603 n0g(k) = ng3d(k)*lamg(k)
1607 IF (lamg(k).LT.lamming)
THEN
1609 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1611 ng3d(k) = n0g(k)/lamg(k)
1613 ELSE IF (lamg(k).GT.lammaxg)
THEN
1616 n0g(k) = lamg(k)**4*qg3d(k)/cons2
1618 ng3d(k) = n0g(k)/lamg(k)
1660 IF (qc3d(k).GE.1.e-6)
THEN
1665 prc(k)=1350.*qc3d(k)**2.47* &
1666 (nc3d(k)/1.e6*rho(k))**(-1.79)
1671 nprc1(k) = prc(k)/cons29
1672 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
1675 nprc(k) = min(nprc(k),nc3d(k)/dt)
1676 nprc1(k) = min(nprc1(k),nprc(k))
1684 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
1686 ums = asn(k)*cons3/(lams(k)**bs)
1687 umr = arn(k)*cons4/(lamr(k)**br)
1688 uns = asn(k)*cons5/lams(k)**bs
1689 unr = arn(k)*cons6/lamr(k)**br
1694 dum=(rhosu/rho(k))**0.54
1695 ums=min(ums,1.2*dum)
1696 uns=min(uns,1.2*dum)
1697 umr=min(umr,9.1*dum)
1698 unr=min(unr,9.1*dum)
1710 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
1711 0.08*ums*umr)**0.5*rho(k)* &
1712 n0rr(k)*n0s(k)/lamr(k)**3*
1713 (5./(lamr(k)**3*lams(k))+ &
1714 2./(lamr(k)**2*lams(k)**2)+ &
1715 0.5/(lamr(k)*lams(k)**3)))
1730 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
1732 umg = agn(k)*cons7/(lamg(k)**bg)
1733 umr = arn(k)*cons4/(lamr(k)**br)
1734 ung = agn(k)*cons8/lamg(k)**bg
1735 unr = arn(k)*cons6/lamr(k)**br
1739 dum=(rhosu/rho(k))**0.54
1740 umg=min(umg,20.*dum)
1741 ung=min(ung,20.*dum)
1742 umr=min(umr,9.1*dum)
1743 unr=min(unr,9.1*dum)
1746 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
1747 0.08*umg*umr)**0.5*rho(k)* &
1748 n0rr(k)*n0g(k)/lamr(k)**3*
1749 (5./(lamr(k)**3*lamg(k))+ &
1750 2./(lamr(k)**2*lamg(k)**2)+
1751 0.5/(lamr(k)*lamg(k)**3)))
1755 dum = pracg(k)/5.2e-7
1757 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
1758 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
1759 (1./(lamr(k)**3*lamg(k))+ &
1760 1./(lamr(k)**2*lamg(k)**2)+ &
1761 1./(lamr(k)*lamg(k)**3))
1766 npracg(k)=npracg(k)-dum
1775 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
1780 dum=(qc3d(k)*qr3d(k))
1781 pra(k) = 67.*(dum)**1.15
1782 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
1791 IF (qr3d(k).GE.1.e-8)
THEN
1794 if (1./lamr(k).lt.dum1)
then
1796 else if (1./lamr(k).ge.dum1)
then
1797 dum=2.-exp(2300.*(1./lamr(k)-dum1))
1800 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
1806 IF (qr3d(k).GE.qsmall)
THEN
1807 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
1808 (f1r/(lamr(k)*lamr(k))+ &
1809 f2r*(arn(k)*rho(k)/mu(k))**0.5*
1810 sc(k)**(1./3.)*cons9/ &
1817 IF (qv3d(k).LT.qvs(k))
THEN
1818 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
1819 pre(k) = min(pre(k),0.)
1829 IF (qni3d(k).GE.1.e-8)
THEN
1834 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracs(k)
1842 psmlt(k)=2.*pi*n0s(k)*kap(k)*(273.15-t3d(k))/ &
1843 xlf(k)*(f1s/(lams(k)*lams(k))+ &
1844 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1845 sc(k)**(1./3.)*cons10/ &
1846 (lams(k)**cons35))+dum
1850 IF (qvqvs(k).LT.1.)
THEN
1851 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
1852 (f1s/(lams(k)*lams(k))+ &
1853 f2s*(asn(k)*rho(k)/mu(k))**0.5*
1854 sc(k)**(1./3.)*cons10/ &
1857 evpms(k) = (qv3d(k)-qvs(k))*epss/ab(k)
1858 evpms(k) = max(evpms(k),psmlt(k))
1859 psmlt(k) = psmlt(k)-evpms(k)
1869 IF (qg3d(k).GE.1.e-8)
THEN
1874 dum = -cpw/xlf(k)*(t3d(k)-273.15)*pracg(k)
1882 pgmlt(k)=2.*pi*n0g(k)*kap(k)*(273.15-t3d(k))/
1883 xlf(k)*(f1s/(lamg(k)*lamg(k))+ &
1884 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1885 sc(k)**(1./3.)*cons11/ &
1886 (lamg(k)**cons36))+dum
1890 IF (qvqvs(k).LT.1.)
THEN
1891 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
1892 (f1s/(lamg(k)*lamg(k))+
1893 f2s*(agn(k)*rho(k)/mu(k))**0.5*
1894 sc(k)**(1./3.)*cons11/ &
1897 evpmg(k) = (qv3d(k)-qvs(k))*epsg/ab(k)
1898 evpmg(k) = max(evpmg(k),pgmlt(k))
1899 pgmlt(k) = pgmlt(k)-evpmg(k)
1919 dum = (prc(k)+pra(k))*dt
1921 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
1925 prc(k) = prc(k)*ratio
1926 pra(k) = pra(k)*ratio
1932 dum = (-psmlt(k)-evpms(k)+pracs(k))*dt
1934 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
1937 ratio = qni3d(k)/dum
1939 psmlt(k) = psmlt(k)*ratio
1940 evpms(k) = evpms(k)*ratio
1941 pracs(k) = pracs(k)*ratio
1947 dum = (-pgmlt(k)-evpmg(k)+pracg(k))*dt
1949 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
1954 pgmlt(k) = pgmlt(k)*ratio
1955 evpmg(k) = evpmg(k)*ratio
1956 pracg(k) = pracg(k)*ratio
1963 dum = (-pracs(k)-pracg(k)-pre(k)-pra(k)-prc(k)+psmlt(k)+pgmlt(k)
1965 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
1967 ratio = (qr3d(k)/dt+pracs(k)+pracg(k)+pra(k)+prc(k)-psmlt(k)-pgmlt
1969 pre(k) = pre(k)*ratio
1974 qv3dten(k) = qv3dten(k)+(-pre(k)-evpms(k)-evpmg(k))
1976 t3dten(k) = t3dten(k)+(pre(k)*xxlv(k)+(evpms(k)+evpmg(k))*xxls(k)+
1977 (psmlt(k)+pgmlt(k)-pracs(k)-pracg(k))*xlf(k))/cpm(k)
1979 qc3dten(k) = qc3dten(k)+(-pra(k)-prc(k))
1980 qr3dten(k) = qr3dten(k)+(pre(k)+pra(k)+prc(k)-psmlt(k)-pgmlt(k)+pracs
1981 qni3dten(k) = qni3dten(k)+(psmlt(k)+evpms(k)-pracs(k))
1982 qg3dten(k) = qg3dten(k)+(pgmlt(k)+evpmg(k)-pracg(k))
1987 nc3dten(k) = nc3dten(k)+ (-npra(k)-nprc(k))
1988 nr3dten(k) = nr3dten(k)+ (nprc1(k)+nragg(k)-npracg(k))
1992 c2prec(k) = pra(k)+prc(k)
1993 IF (pre(k).LT.0.)
THEN
1994 dum = pre(k)*dt/qr3d(k)
1996 nsubr(k) = dum*nr3d(k)/dt
1999 IF (evpms(k)+psmlt(k).LT.0.)
THEN
2000 dum = (evpms(k)+psmlt(k))*dt/qni3d(k)
2002 nsmlts(k) = dum*ns3d(k)/dt
2004 IF (psmlt(k).LT.0.)
THEN
2005 dum = psmlt(k)*dt/qni3d(k)
2007 nsmltr(k) = dum*ns3d(k)/dt
2009 IF (evpmg(k)+pgmlt(k).LT.0.)
THEN
2010 dum = (evpmg(k)+pgmlt(k))*dt/qg3d(k)
2012 ngmltg(k) = dum*ng3d(k)/dt
2014 IF (pgmlt(k).LT.0.)
THEN
2015 dum = pgmlt(k)*dt/qg3d(k)
2017 ngmltr(k) = dum*ng3d(k)/dt
2020 ns3dten(k) = ns3dten(k)+(nsmlts(k))
2021 ng3dten(k) = ng3dten(k)+(ngmltg(k))
2022 nr3dten(k) = nr3dten(k)+(nsubr(k)-nsmltr(k)-ngmltr(k))
2030 dumt = t3d(k)+dt*t3dten(k)
2031 dumqv = qv3d(k)+dt*qv3dten(k)
2033 dum=min(0.99*pres(k),polysvp(dumt,0))
2034 dumqss = ep_2*dum/(pres(k)-dum)
2035 dumqc = qc3d(k)+dt*qc3dten(k)
2036 dumqc = max(dumqc,0.)
2041 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
2042 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
2046 qv3dten(k) = qv3dten(k)-pcc(k)
2047 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
2048 qc3dten(k) = qc3dten(k)+pcc(k)
2078 IF (iinum.EQ.1)
THEN
2080 nc3d(k)=ndcnst*1.e6/rho_erf(k)
2086 ni3d(k) = max(0.,ni3d(k))
2087 ns3d(k) = max(0.,ns3d(k))
2088 nc3d(k) = max(0.,nc3d(k))
2089 nr3d(k) = max(0.,nr3d(k))
2090 ng3d(k) = max(0.,ng3d(k))
2095 IF (qi3d(k).GE.qsmall)
THEN
2096 lami(k) = (cons12* &
2097 ni3d(k)/qi3d(k))**(1./di)
2098 n0i(k) = ni3d(k)*lami(k)
2104 IF (lami(k).LT.lammini)
THEN
2108 n0i(k) = lami(k)**4*qi3d(k)/cons12
2110 ni3d(k) = n0i(k)/lami(k)
2111 ELSE IF (lami(k).GT.lammaxi)
THEN
2113 n0i(k) = lami(k)**4*qi3d(k)/cons12
2115 ni3d(k) = n0i(k)/lami(k)
2122 IF (qr3d(k).GE.qsmall)
THEN
2123 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
2124 n0rr(k) = nr3d(k)*lamr(k)
2130 IF (lamr(k).LT.lamminr)
THEN
2134 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2136 nr3d(k) = n0rr(k)/lamr(k)
2137 ELSE IF (lamr(k).GT.lammaxr)
THEN
2139 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
2141 nr3d(k) = n0rr(k)/lamr(k)
2149 IF (qc3d(k).GE.qsmall)
THEN
2151 dum = pres(k)/(287.15*t3d(k))
2152 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
2153 pgam(k)=1./(pgam(k)**2)-1.
2154 pgam(k)=max(pgam(k),2.)
2155 pgam(k)=min(pgam(k),10.)
2159 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
2160 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
2165 lammin = (pgam(k)+1.)/60.e-6
2166 lammax = (pgam(k)+1.)/1.e-6
2168 IF (lamc(k).LT.lammin)
THEN
2171 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2172 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2173 ELSE IF (lamc(k).GT.lammax)
THEN
2175 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
2176 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
2182 cdist1(k) = nc3d(k)/gamma(pgam(k)+1.)
2189 IF (qni3d(k).GE.qsmall)
THEN
2190 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
2191 n0s(k) = ns3d(k)*lams(k)
2197 IF (lams(k).LT.lammins)
THEN
2199 n0s(k) = lams(k)**4*qni3d(k)/cons1
2201 ns3d(k) = n0s(k)/lams(k)
2203 ELSE IF (lams(k).GT.lammaxs)
THEN
2206 n0s(k) = lams(k)**4*qni3d(k)/cons1
2208 ns3d(k) = n0s(k)/lams(k)
2215 IF (qg3d(k).GE.qsmall)
THEN
2216 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
2217 n0g(k) = ng3d(k)*lamg(k)
2223 IF (lamg(k).LT.lamming)
THEN
2225 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2227 ng3d(k) = n0g(k)/lamg(k)
2229 ELSE IF (lamg(k).GT.lammaxg)
THEN
2232 n0g(k) = lamg(k)**4*qg3d(k)/cons2
2234 ng3d(k) = n0g(k)/lamg(k)
2307 IF (qc3d(k).GE.qsmall .AND. t3d(k).LT.269.15)
THEN
2314 nacnt = exp(-2.80+0.262*(273.15-t3d(k)))*1000.
2326 dum = 7.37*t3d(k)/(288.*10.*pres(k))/100.
2331 dap(k) = cons37*t3d(k)*(1.+dum/rin)/mu(k)
2333 mnuccc(k) = cons38*dap(k)*nacnt*exp(log(cdist1(k))+ &
2334 log(gamma(pgam(k)+5.))-4.*log(lamc(k)))
2335 nnuccc(k) = 2.*pi*dap(k)*nacnt*cdist1(k)* &
2336 gamma(pgam(k)+2.)/ &
2350 mnuccc(k) = mnuccc(k)+cons39* &
2351 exp(log(cdist1(k))+log(gamma(7.+pgam(k)))-6.*log(lamc(k
2352 (exp(aimm*(273.15-t3d(k)))-1.)
2354 nnuccc(k) = nnuccc(k)+ &
2355 cons40*exp(log(cdist1(k))+log(gamma(pgam(k)+4.))-3.*log(lamc
2356 *(exp(aimm*(273.15-t3d(k)))-1.)
2361 nnuccc(k) = min(nnuccc(k),nc3d(k)/dt)
2375 IF (qc3d(k).GE.1.e-6)
THEN
2380 prc(k)=1350.*qc3d(k)**2.47* &
2381 (nc3d(k)/1.e6*rho(k))**(-1.79)
2386 nprc1(k) = prc(k)/cons29
2387 nprc(k) = prc(k)/(qc3d(k)/nc3d(k))
2390 nprc(k) = min(nprc(k),nc3d(k)/dt)
2391 nprc1(k) = min(nprc1(k),nprc(k))
2400 IF (qni3d(k).GE.1.e-8)
THEN
2401 nsagg(k) = cons15*asn(k)*rho(k)** &
2402 ((2.+bs)/3.)*qni3d(k)**((2.+bs)/3.)* &
2403 (ns3d(k)*rho(k))**((4.-bs)/3.)/ &
2414 IF (qni3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2416 psacws(k) = cons13*asn(k)*qc3d(k)*rho(k)* &
2419 npsacws(k) = cons13*asn(k)*nc3d(k)*rho(k)* &
2428 IF (qg3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2430 psacwg(k) = cons14*agn(k)*qc3d(k)*rho(k)* &
2433 npsacwg(k) = cons14*agn(k)*nc3d(k)*rho(k)* &
2444 IF (qi3d(k).GE.1.e-8 .AND. qc3d(k).GE.qsmall)
THEN
2449 IF (1./lami(k).GE.100.e-6)
THEN
2451 psacwi(k) = cons16*ain(k)*qc3d(k)*rho(k)* &
2454 npsacwi(k) = cons16*ain(k)*nc3d(k)*rho(k)* &
2464 IF (qr3d(k).GE.1.e-8.AND.qni3d(k).GE.1.e-8)
THEN
2466 ums = asn(k)*cons3/(lams(k)**bs)
2467 umr = arn(k)*cons4/(lamr(k)**br)
2468 uns = asn(k)*cons5/lams(k)**bs
2469 unr = arn(k)*cons6/lamr(k)**br
2474 dum=(rhosu/rho(k))**0.54
2475 ums=min(ums,1.2*dum)
2476 uns=min(uns,1.2*dum)
2477 umr=min(umr,9.1*dum)
2478 unr=min(unr,9.1*dum)
2480 pracs(k) = cons41*(((1.2*umr-0.95*ums)**2+
2481 0.08*ums*umr)**0.5*rho(k)* &
2482 n0rr(k)*n0s(k)/lamr(k)**3*
2483 (5./(lamr(k)**3*lams(k))+ &
2484 2./(lamr(k)**2*lams(k)**2)+ &
2485 0.5/(lamr(k)*lams(k)**3)))
2487 npracs(k) = cons32*rho(k)*(1.7*(unr-uns)**2+ &
2488 0.3*unr*uns)**0.5*n0rr(k)*n0s(k)* &
2489 (1./(lamr(k)**3*lams(k))+ &
2490 1./(lamr(k)**2*lams(k)**2)+ &
2491 1./(lamr(k)*lams(k)**3))
2497 pracs(k) = min(pracs(k),qr3d(k)/dt)
2504 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2505 psacr(k) = cons31*(((1.2*umr-0.95*ums)**2+ &
2506 0.08*ums*umr)**0.5*rho(k)* &
2507 n0rr(k)*n0s(k)/lams(k)**3*
2508 (5./(lams(k)**3*lamr(k))+ &
2509 2./(lams(k)**2*lamr(k)**2)+ &
2510 0.5/(lams(k)*lamr(k)**3)))
2520 IF (qr3d(k).GE.1.e-8.AND.qg3d(k).GE.1.e-8)
THEN
2522 umg = agn(k)*cons7/(lamg(k)**bg)
2523 umr = arn(k)*cons4/(lamr(k)**br)
2524 ung = agn(k)*cons8/lamg(k)**bg
2525 unr = arn(k)*cons6/lamr(k)**br
2529 dum=(rhosu/rho(k))**0.54
2530 umg=min(umg,20.*dum)
2531 ung=min(ung,20.*dum)
2532 umr=min(umr,9.1*dum)
2533 unr=min(unr,9.1*dum)
2535 pracg(k) = cons41*(((1.2*umr-0.95*umg)**2+
2536 0.08*umg*umr)**0.5*rho(k)* &
2537 n0rr(k)*n0g(k)/lamr(k)**3*
2538 (5./(lamr(k)**3*lamg(k))+ &
2539 2./(lamr(k)**2*lamg(k)**2)+
2540 0.5/(lamr(k)*lamg(k)**3)))
2542 npracg(k) = cons32*rho(k)*(1.7*(unr-ung)**2+ &
2543 0.3*unr*ung)**0.5*n0rr(k)*n0g(k)* &
2544 (1./(lamr(k)**3*lamg(k))+ &
2545 1./(lamr(k)**2*lamg(k)**2)+ &
2546 1./(lamr(k)*lamg(k)**3))
2552 pracg(k) = min(pracg(k),qr3d(k)/dt)
2568 IF (qni3d(k).GE.0.1e-3)
THEN
2569 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2570 IF (psacws(k).GT.0..OR.pracs(k).GT.0.)
THEN
2571 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2573 IF (t3d(k).GT.270.16)
THEN
2575 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2576 fmult = (270.16-t3d(k))/2.
2577 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2578 fmult = (t3d(k)-265.16)/3.
2579 ELSE IF (t3d(k).LT.265.16)
THEN
2587 IF (psacws(k).GT.0.)
THEN
2588 nmults(k) = 35.e4*psacws(k)*fmult*1000.
2589 qmults(k) = nmults(k)*mmult
2594 qmults(k) = min(qmults(k),psacws(k))
2595 psacws(k) = psacws(k)-qmults(k)
2601 IF (pracs(k).GT.0.)
THEN
2602 nmultr(k) = 35.e4*pracs(k)*fmult*1000.
2603 qmultr(k) = nmultr(k)*mmult
2608 qmultr(k) = min(qmultr(k),pracs(k))
2610 pracs(k) = pracs(k)-qmultr(k)
2631 IF (qg3d(k).GE.0.1e-3)
THEN
2632 IF (qc3d(k).GE.0.5e-3.OR.qr3d(k).GE.0.1e-3)
THEN
2633 IF (psacwg(k).GT.0..OR.pracg(k).GT.0.)
THEN
2634 IF (t3d(k).LT.270.16 .AND. t3d(k).GT.265.16)
THEN
2636 IF (t3d(k).GT.270.16)
THEN
2638 ELSE IF (t3d(k).LE.270.16.AND.t3d(k).GT.268.16)
THEN
2639 fmult = (270.16-t3d(k))/2.
2640 ELSE IF (t3d(k).GE.265.16.AND.t3d(k).LE.268.16)
THEN
2641 fmult = (t3d(k)-265.16)/3.
2642 ELSE IF (t3d(k).LT.265.16)
THEN
2650 IF (psacwg(k).GT.0.)
THEN
2651 nmultg(k) = 35.e4*psacwg(k)*fmult*1000.
2652 qmultg(k) = nmultg(k)*mmult
2657 qmultg(k) = min(qmultg(k),psacwg(k))
2658 psacwg(k) = psacwg(k)-qmultg(k)
2664 IF (pracg(k).GT.0.)
THEN
2665 nmultrg(k) = 35.e4*pracg(k)*fmult*1000.
2666 qmultrg(k) = nmultrg(k)*mmult
2671 qmultrg(k) = min(qmultrg(k),pracg(k))
2672 pracg(k) = pracg(k)-qmultrg(k)
2685 IF (psacws(k).GT.0.)
THEN
2687 IF (qni3d(k).GE.0.1e-3.AND.qc3d(k).GE.0.5e-3)
THEN
2690 pgsacw(k) = min(psacws(k),cons17*dt*n0s(k)*qc3d(k)*qc3d(k)*
2692 (rho(k)*lams(k)**(2.*bs+2.)))
2695 dum = max(rhosn/(rhog-rhosn)*pgsacw(k),0.)
2698 nscng(k) = dum/mg0*rho(k)
2700 nscng(k) = min(nscng(k),ns3d(k)/dt)
2703 psacws(k) = psacws(k) - pgsacw(k)
2709 IF (pracs(k).GT.0.)
THEN
2711 IF (qni3d(k).GE.0.1e-3.AND.qr3d(k).GE.0.1e-3)
THEN
2713 dum = cons18*(4./lams(k))**3*(4./lams(k))**3 &
2714 /(cons18*(4./lams(k))**3*(4./lams(k))**3+ &
2715 cons19*(4./lamr(k))**3*(4./lamr(k))**3)
2718 pgracs(k) = (1.-dum)*pracs(k)
2719 ngracs(k) = (1.-dum)*npracs(k)
2721 ngracs(k) = min(ngracs(k),nr3d(k)/dt)
2722 ngracs(k) = min(ngracs(k),ns3d(k)/dt)
2725 pracs(k) = pracs(k) - pgracs(k)
2726 npracs(k) = npracs(k) - ngracs(k)
2728 psacr(k)=psacr(k)*(1.-dum)
2737 IF (t3d(k).LT.269.15.AND.qr3d(k).GE.qsmall)
THEN
2746 mnuccr(k) = cons20*nr3d(k)*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2749 nnuccr(k) = pi*nr3d(k)*bimm*(exp(aimm*(273.15-t3d(k)))-1.)/lamr
2752 nnuccr(k) = min(nnuccr(k),nr3d(k)/dt)
2761 IF (qr3d(k).GE.1.e-8 .AND. qc3d(k).GE.1.e-8)
THEN
2766 dum=(qc3d(k)*qr3d(k))
2767 pra(k) = 67.*(dum)**1.15
2768 npra(k) = pra(k)/(qc3d(k)/nc3d(k))
2777 IF (qr3d(k).GE.1.e-8)
THEN
2780 if (1./lamr(k).lt.dum1)
then
2782 else if (1./lamr(k).ge.dum1)
then
2783 dum=2.-exp(2300.*(1./lamr(k)-dum1))
2786 nragg(k) = -5.78*dum*nr3d(k)*qr3d(k)*rho(k)
2795 IF (qi3d(k).GE.1.e-8 .AND.qvqvsi(k).GE.1.)
THEN
2799 nprci(k) = cons21*(qv3d(k)-qvi(k))*rho(k)
2800 *n0i(k)*exp(-lami(k)*dcs)*dv(k)/abi(k)
2801 prci(k) = cons22*nprci(k)
2802 nprci(k) = min(nprci(k),ni3d(k)/dt)
2812 IF (qni3d(k).GE.1.e-8 .AND. qi3d(k).GE.qsmall)
THEN
2813 prai(k) = cons23*asn(k)*qi3d(k)*rho(k)*n0s(k)/ &
2815 nprai(k) = cons23*asn(k)*ni3d(k)*
2818 nprai(k)=min(nprai(k),ni3d(k)/dt)
2826 IF (qr3d(k).GE.1.e-8.AND.qi3d(k).GE.1.e-8.AND.t3d(k).LE.273.15)
THEN
2831 IF (qr3d(k).GE.0.1e-3)
THEN
2832 niacr(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2833 /lamr(k)**(br+3.)*rho(k)
2834 piacr(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2835 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2836 praci(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2837 lamr(k)**(br+3.)*rho(k)
2838 niacr(k)=min(niacr(k),nr3d(k)/dt)
2839 niacr(k)=min(niacr(k),ni3d(k)/dt)
2841 niacrs(k)=cons24*ni3d(k)*n0rr(k)*arn(k) &
2842 /lamr(k)**(br+3.)*rho(k)
2843 piacrs(k)=cons25*ni3d(k)*n0rr(k)*arn(k) &
2844 /lamr(k)**(br+3.)/lamr(k)**3*rho(k)
2845 pracis(k)=cons24*qi3d(k)*n0rr(k)*arn(k)/ &
2846 lamr(k)**(br+3.)*rho(k)
2847 niacrs(k)=min(niacrs(k),nr3d(k)/dt)
2848 niacrs(k)=min(niacrs(k),ni3d(k)/dt)
2859 if ((qvqvs(k).GE.0.999.and.t3d(k).le.265.15).or. &
2860 qvqvsi(k).ge.1.08)
then
2863 kc2 = 0.005*exp(0.304*(273.15-t3d(k)))*1000.
2865 kc2 = min(kc2,500.e3)
2866 kc2=max(kc2/rho(k),0.)
2868 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2869 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2870 mnuccd(k) = nnuccd(k)*mi0
2875 ELSE IF (inuc.EQ.1)
THEN
2877 IF (t3d(k).LT.273.15.AND.qvqvsi(k).GT.1.)
THEN
2879 kc2 = 0.16*1000./rho(k)
2880 IF (kc2.GT.ni3d(k)+ns3d(k)+ng3d(k))
THEN
2881 nnuccd(k) = (kc2-ni3d(k)-ns3d(k)-ng3d(k))/dt
2882 mnuccd(k) = nnuccd(k)*mi0
2897 IF (qi3d(k).GE.qsmall)
THEN
2899 epsi = 2.*pi*n0i(k)*rho(k)*dv(k)/(lami(k)*lami(k))
2905 IF (qni3d(k).GE.qsmall)
THEN
2906 epss = 2.*pi*n0s(k)*rho(k)*dv(k)* &
2907 (f1s/(lams(k)*lams(k))+ &
2908 f2s*(asn(k)*rho(k)/mu(k))**0.5*
2909 sc(k)**(1./3.)*cons10/ &
2915 IF (qg3d(k).GE.qsmall)
THEN
2916 epsg = 2.*pi*n0g(k)*rho(k)*dv(k)*
2917 (f1s/(lamg(k)*lamg(k))+
2918 f2s*(agn(k)*rho(k)/mu(k))**0.5*
2919 sc(k)**(1./3.)*cons11/ &
2927 IF (qr3d(k).GE.qsmall)
THEN
2928 epsr = 2.*pi*n0rr(k)*rho(k)*dv(k)* &
2929 (f1r/(lamr(k)*lamr(k))+ &
2930 f2r*(arn(k)*rho(k)/mu(k))**0.5*
2931 sc(k)**(1./3.)*cons9/ &
2941 IF (qi3d(k).GE.qsmall)
THEN
2942 dum=(1.-exp(-lami(k)*dcs)*(1.+lami(k)*dcs))
2943 prd(k) = epsi*(qv3d(k)-qvi(k))/abi(k)*dum
2948 IF (qni3d(k).GE.qsmall)
THEN
2949 prds(k) = epss*(qv3d(k)-qvi(k))/abi(k)+ &
2950 epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2953 prd(k) = prd(k)+epsi*(qv3d(k)-qvi(k))/abi(k)*(1.-dum)
2956 prdg(k) = epsg*(qv3d(k)-qvi(k))/abi(k)
2960 IF (qv3d(k).LT.qvs(k))
THEN
2961 pre(k) = epsr*(qv3d(k)-qvs(k))/ab(k)
2962 pre(k) = min(pre(k),0.)
2970 dum = (qv3d(k)-qvi(k))/dt
2973 sum_dep = prd(k)+prds(k)+mnuccd(k)+prdg(k)
2975 IF( (dum.GT.0. .AND. sum_dep.GT.dum*fudgef) .OR.
2976 (dum.LT.0. .AND. sum_dep.LT.dum*fudgef) )
THEN
2977 mnuccd(k) = fudgef*mnuccd(k)*dum/sum_dep
2978 prd(k) = fudgef*prd(k)*dum/sum_dep
2979 prds(k) = fudgef*prds(k)*dum/sum_dep
2980 prdg(k) = fudgef*prdg(k)*dum/sum_dep
2985 IF (prd(k).LT.0.)
THEN
2989 IF (prds(k).LT.0.)
THEN
2993 IF (prdg(k).LT.0.)
THEN
3025 IF (igraup.EQ.1)
THEN
3041 piacrs(k)=piacrs(k)+piacr(k)
3044 pracis(k)=pracis(k)+praci(k)
3046 psacws(k)=psacws(k)+pgsacw(k)
3048 pracs(k)=pracs(k)+pgracs(k)
3054 dum = (prc(k)+pra(k)+mnuccc(k)+psacws(k)+psacwi(k)+qmults(k)+psacwg
3056 IF (dum.GT.qc3d(k).AND.qc3d(k).GE.qsmall)
THEN
3059 prc(k) = prc(k)*ratio
3060 pra(k) = pra(k)*ratio
3061 mnuccc(k) = mnuccc(k)*ratio
3062 psacws(k) = psacws(k)*ratio
3063 psacwi(k) = psacwi(k)*ratio
3064 qmults(k) = qmults(k)*ratio
3065 qmultg(k) = qmultg(k)*ratio
3066 psacwg(k) = psacwg(k)*ratio
3067 pgsacw(k) = pgsacw(k)*ratio
3072 dum = (-prd(k)-mnuccc(k)+prci(k)+prai(k)-qmults(k)-qmultg(k)-qmultr
3073 -mnuccd(k)+praci(k)+pracis(k)-eprd(k)-psacwi(k))*dt
3075 IF (dum.GT.qi3d(k).AND.qi3d(k).GE.qsmall)
THEN
3077 ratio = (qi3d(k)/dt+prd(k)+mnuccc(k)+qmults(k)+qmultg(k)+qmultr(k
3078 mnuccd(k)+psacwi(k))/ &
3079 (prci(k)+prai(k)+praci(k)+pracis(k)-eprd(k))
3081 prci(k) = prci(k)*ratio
3082 prai(k) = prai(k)*ratio
3083 praci(k) = praci(k)*ratio
3084 pracis(k) = pracis(k)*ratio
3085 eprd(k) = eprd(k)*ratio
3091 dum=((pracs(k)-pre(k))+(qmultr(k)+qmultrg(k)-prc(k))+(mnuccr(k)-pra
3092 piacr(k)+piacrs(k)+pgracs(k)+pracg(k))*dt
3094 IF (dum.GT.qr3d(k).AND.qr3d(k).GE.qsmall)
THEN
3096 ratio = (qr3d(k)/dt+prc(k)+pra(k))/ &
3097 (-pre(k)+qmultr(k)+qmultrg(k)+pracs(k)+mnuccr(k)+piacr(k)+piacrs
3099 pre(k) = pre(k)*ratio
3100 pracs(k) = pracs(k)*ratio
3101 qmultr(k) = qmultr(k)*ratio
3102 qmultrg(k) = qmultrg(k)*ratio
3103 mnuccr(k) = mnuccr(k)*ratio
3104 piacr(k) = piacr(k)*ratio
3105 piacrs(k) = piacrs(k)*ratio
3106 pgracs(k) = pgracs(k)*ratio
3107 pracg(k) = pracg(k)*ratio
3114 IF (igraup.EQ.0)
THEN
3116 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3118 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3120 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3122 eprds(k) = eprds(k)*ratio
3123 psacr(k) = psacr(k)*ratio
3128 ELSE IF (igraup.EQ.1)
THEN
3130 dum = (-prds(k)-psacws(k)-prai(k)-prci(k)-pracs(k)-eprds(k)+psacr(k
3132 IF (dum.GT.qni3d(k).AND.qni3d(k).GE.qsmall)
THEN
3134 ratio = (qni3d(k)/dt+prds(k)+psacws(k)+prai(k)+prci(k)+pracs(k)+piacrs
3136 eprds(k) = eprds(k)*ratio
3137 psacr(k) = psacr(k)*ratio
3145 dum = (-psacwg(k)-pracg(k)-pgsacw(k)-pgracs(k)-prdg(k)-mnuccr(k)-eprdg
3147 IF (dum.GT.qg3d(k).AND.qg3d(k).GE.qsmall)
THEN
3149 ratio = (qg3d(k)/dt+psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+prdg(k
3150 piacr(k)+praci(k))/(-eprdg(k))
3152 eprdg(k) = eprdg(k)*ratio
3158 qv3dten(k) = qv3dten(k)+(-pre(k)-prd(k)-prds(k)-mnuccd(k)-eprd(k)-eprds
3161 t3dten(k) = t3dten(k)+(pre(k) &
3162 *xxlv(k)+(prd(k)+prds(k)+ &
3163 mnuccd(k)+eprd(k)+eprds(k)+prdg(k)+eprdg(k))*xxls(k)+
3164 (psacws(k)+psacwi(k)+mnuccc(k)+mnuccr(k)+
3165 qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+pracs(k) &
3166 +psacwg(k)+pracg(k)+pgsacw(k)+pgracs(k)+piacr(k)+piacrs(k
3168 qc3dten(k) = qc3dten(k)+ &
3169 (-pra(k)-prc(k)-mnuccc(k)+pcc(k)- &
3170 psacws(k)-psacwi(k)-qmults(k)-qmultg(k)-psacwg(k)-pgsacw
3171 qi3dten(k) = qi3dten(k)+ &
3172 (prd(k)+eprd(k)+psacwi(k)+mnuccc(k)-prci(k)-
3173 prai(k)+qmults(k)+qmultg(k)+qmultr(k)+qmultrg(k)+mnuccd
3174 qr3dten(k) = qr3dten(k)+ &
3175 (pre(k)+pra(k)+prc(k)-pracs(k)-mnuccr(k)-qmultr(k)-qmultrg
3176 -piacr(k)-piacrs(k)-pracg(k)-pgracs(k))
3177 IF (igraup.EQ.0)
THEN
3179 qni3dten(k) = qni3dten(k)+ &
3180 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3181 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3182 qg3dten(k) = qg3dten(k)+(pracg(k)+psacwg(k)+pgsacw(k)+pgracs(k)+ &
3183 prdg(k)+eprdg(k)+mnuccr(k)+piacr(k)+praci(k)+psacr(k
3184 ng3dten(k) = ng3dten(k)+(nscng(k)+ngracs(k)+nnuccr(k)+niacr(k))
3187 ELSE IF (igraup.EQ.1)
THEN
3189 qni3dten(k) = qni3dten(k)+ &
3190 (prai(k)+psacws(k)+prds(k)+pracs(k)+prci(k)+eprds(k)-psacr(k)
3191 ns3dten(k) = ns3dten(k)+(nsagg(k)+nprci(k)-nscng(k)-ngracs(k)+niacrs
3195 nc3dten(k) = nc3dten(k)+(-nnuccc(k)-npsacws(k) &
3196 -npra(k)-nprc(k)-npsacwi(k)-npsacwg(k))
3198 ni3dten(k) = ni3dten(k)+ &
3199 (nnuccc(k)-nprci(k)-nprai(k)+nmults(k)+nmultg(k)+nmultr(k)+nmultrg
3200 nnuccd(k)-niacr(k)-niacrs(k))
3202 nr3dten(k) = nr3dten(k)+(nprc1(k)-npracs(k)-nnuccr(k) &
3203 +nragg(k)-niacr(k)-niacrs(k)-npracg(k)-ngracs(k))
3207 c2prec(k) = pra(k)+prc(k)+psacws(k)+qmults(k)+qmultg(k)+psacwg(k
3208 pgsacw(k)+mnuccc(k)+psacwi(k)
3213 dumt = t3d(k)+dt*t3dten(k)
3214 dumqv = qv3d(k) + dt * qv3dten(k)
3217 dum=min(0.99*pres(k),polysvp(dumt,0))
3218 dumqss = ep_2*dum/(pres(k)-dum)
3220 dumqc = qc3d(k) + dt * qc3dten(k)
3222 dumqc = max(dumqc,0.)
3228 pcc(k) = dums/(1.+xxlv(k)**2*dumqss/(cpm(k)*rv*dumt**2))/dt
3230 IF (pcc(k)*dt+dumqc.LT.0.)
THEN
3234 qv3dten(k) = qv3dten(k)-pcc(k)
3235 t3dten(k) = t3dten(k)+pcc(k)*xxlv(k)/cpm(k)
3236 qc3dten(k) = qc3dten(k)+pcc(k)
3254 IF (eprd(k).LT.0.)
THEN
3255 dum = eprd(k)*dt/qi3d(k)
3257 nsubi(k) = dum*ni3d(k)/dt
3259 IF (eprds(k).LT.0.)
THEN
3260 dum = eprds(k)*dt/qni3d(k)
3262 nsubs(k) = dum*ns3d(k)/dt
3264 IF (pre(k).LT.0.)
THEN
3265 dum = pre(k)*dt/qr3d(k)
3267 nsubr(k) = dum*nr3d(k)/dt
3269 IF (eprdg(k).LT.0.)
THEN
3270 dum = eprdg(k)*dt/qg3d(k)
3272 nsubg(k) = dum*ng3d(k)/dt
3282 ni3dten(k) = ni3dten(k)+nsubi(k)
3283 ns3dten(k) = ns3dten(k)+nsubs(k)
3284 ng3dten(k) = ng3dten(k)+nsubg(k)
3285 nr3dten(k) = nr3dten(k)+nsubr(k)
3307 IF (ltrue.EQ.0)
GOTO 400
3322 dumi(k) = qi3d(k)+qi3dten(k)*dt
3323 dumqs(k) = qni3d(k)+qni3dten(k)*dt
3324 dumr(k) = qr3d(k)+qr3dten(k)*dt
3325 dumfni(k) = ni3d(k)+ni3dten(k)*dt
3326 dumfns(k) = ns3d(k)+ns3dten(k)*dt
3327 dumfnr(k) = nr3d(k)+nr3dten(k)*dt
3328 dumc(k) = qc3d(k)+qc3dten(k)*dt
3329 dumfnc(k) = nc3d(k)+nc3dten(k)*dt
3330 dumg(k) = qg3d(k)+qg3dten(k)*dt
3331 dumfng(k) = ng3d(k)+ng3dten(k)*dt
3334 IF (iinum.EQ.1)
THEN
3341 dumfni(k) = max(0.,dumfni(k))
3342 dumfns(k) = max(0.,dumfns(k))
3343 dumfnc(k) = max(0.,dumfnc(k))
3344 dumfnr(k) = max(0.,dumfnr(k))
3345 dumfng(k) = max(0.,dumfng(k))
3350 IF (dumi(k).GE.qsmall)
THEN
3351 dlami = (cons12*dumfni(k)/dumi(k))**(1./di)
3352 dlami=max(dlami,lammini)
3353 dlami=min(dlami,lammaxi)
3358 IF (dumr(k).GE.qsmall)
THEN
3359 dlamr = (pi*rhow*dumfnr(k)/dumr(k))**(1./3.)
3360 dlamr=max(dlamr,lamminr)
3361 dlamr=min(dlamr,lammaxr)
3366 IF (dumc(k).GE.qsmall)
THEN
3367 dum = pres(k)/(287.15*t3d(k))
3368 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3369 pgam(k)=1./(pgam(k)**2)-1.
3370 pgam(k)=max(pgam(k),2.)
3371 pgam(k)=min(pgam(k),10.)
3373 dlamc = (cons26*dumfnc(k)*gamma(pgam(k)+4.)/(dumc(k)*gamma(pgam(k
3374 lammin = (pgam(k)+1.)/60.e-6
3375 lammax = (pgam(k)+1.)/1.e-6
3376 dlamc=max(dlamc,lammin)
3377 dlamc=min(dlamc,lammax)
3382 IF (dumqs(k).GE.qsmall)
THEN
3383 dlams = (cons1*dumfns(k)/ dumqs(k))**(1./ds)
3384 dlams=max(dlams,lammins)
3385 dlams=min(dlams,lammaxs)
3390 IF (dumg(k).GE.qsmall)
THEN
3391 dlamg = (cons2*dumfng(k)/ dumg(k))**(1./dg)
3392 dlamg=max(dlamg,lamming)
3393 dlamg=min(dlamg,lammaxg)
3400 IF (dumc(k).GE.qsmall)
THEN
3401 unc = acn(k)*gamma(1.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+1.))
3402 umc = acn(k)*gamma(4.+bc+pgam(k))/ (dlamc**bc*gamma(pgam(k)+4.))
3408 IF (dumi(k).GE.qsmall)
THEN
3409 uni = ain(k)*cons27/dlami**bi
3410 umi = ain(k)*cons28/(dlami**bi)
3416 IF (dumr(k).GE.qsmall)
THEN
3417 unr = arn(k)*cons6/dlamr**br
3418 umr = arn(k)*cons4/(dlamr**br)
3424 IF (dumqs(k).GE.qsmall)
THEN
3425 ums = asn(k)*cons3/(dlams**bs)
3426 uns = asn(k)*cons5/dlams**bs
3432 IF (dumg(k).GE.qsmall)
THEN
3433 umg = agn(k)*cons7/(dlamg**bg)
3434 ung = agn(k)*cons8/dlamg**bg
3443 dum=(rhosu/rho(k))**0.54
3444 ums=min(ums,1.2*dum)
3445 uns=min(uns,1.2*dum)
3448 umi=min(umi,1.2*(rhosu/rho(k))**0.35)
3449 uni=min(uni,1.2*(rhosu/rho(k))**0.35)
3450 umr=min(umr,9.1*dum)
3451 unr=min(unr,9.1*dum)
3452 umg=min(umg,20.*dum)
3453 ung=min(ung,20.*dum)
3468 IF (k.LE.kte-1)
THEN
3469 IF (fr(k).LT.1.e-10)
THEN
3472 IF (fi(k).LT.1.e-10)
THEN
3475 IF (fni(k).LT.1.e-10)
THEN
3478 IF (fs(k).LT.1.e-10)
THEN
3481 IF (fns(k).LT.1.e-10)
THEN
3484 IF (fnr(k).LT.1.e-10)
THEN
3487 IF (fc(k).LT.1.e-10)
THEN
3490 IF (fnc(k).LT.1.e-10)
THEN
3493 IF (fg(k).LT.1.e-10)
THEN
3496 IF (fng(k).LT.1.e-10)
THEN
3503 rgvm = max(fr(k),fi(k),fs(k),fc(k),fni(k),fnr(k),fns(k),fnc(k),fg(k
3505 nstep = max(int(rgvm*dt/dzq(k)+1.),nstep)
3508 dumr(k) = dumr(k)*rho(k)
3509 dumi(k) = dumi(k)*rho(k)
3510 dumfni(k) = dumfni(k)*rho(k)
3511 dumqs(k) = dumqs(k)*rho(k)
3512 dumfns(k) = dumfns(k)*rho(k)
3513 dumfnr(k) = dumfnr(k)*rho(k)
3514 dumc(k) = dumc(k)*rho(k)
3515 dumfnc(k) = dumfnc(k)*rho(k)
3516 dumg(k) = dumg(k)*rho(k)
3517 dumfng(k) = dumfng(k)*rho(k)
3524 faloutr(k) = fr(k)*dumr(k)
3525 falouti(k) = fi(k)*dumi(k)
3526 faloutni(k) = fni(k)*dumfni(k)
3527 falouts(k) = fs(k)*dumqs(k)
3528 faloutns(k) = fns(k)*dumfns(k)
3529 faloutnr(k) = fnr(k)*dumfnr(k)
3530 faloutc(k) = fc(k)*dumc(k)
3531 faloutnc(k) = fnc(k)*dumfnc(k)
3532 faloutg(k) = fg(k)*dumg(k)
3533 faloutng(k) = fng(k)*dumfng(k)
3539 faltndr = faloutr(k)/dzq(k)
3540 faltndi = falouti(k)/dzq(k)
3541 faltndni = faloutni(k)/dzq(k)
3542 faltnds = falouts(k)/dzq(k)
3543 faltndns = faloutns(k)/dzq(k)
3544 faltndnr = faloutnr(k)/dzq(k)
3545 faltndc = faloutc(k)/dzq(k)
3546 faltndnc = faloutnc(k)/dzq(k)
3547 faltndg = faloutg(k)/dzq(k)
3548 faltndng = faloutng(k)/dzq(k)
3551 qrsten(k) = qrsten(k)-faltndr/nstep/rho(k)
3552 qisten(k) = qisten(k)-faltndi/nstep/rho(k)
3553 ni3dten(k) = ni3dten(k)-faltndni/nstep/rho(k)
3554 qnisten(k) = qnisten(k)-faltnds/nstep/rho(k)
3555 ns3dten(k) = ns3dten(k)-faltndns/nstep/rho(k)
3556 nr3dten(k) = nr3dten(k)-faltndnr/nstep/rho(k)
3557 qcsten(k) = qcsten(k)-faltndc/nstep/rho(k)
3558 nc3dten(k) = nc3dten(k)-faltndnc/nstep/rho(k)
3559 qgsten(k) = qgsten(k)-faltndg/nstep/rho(k)
3560 ng3dten(k) = ng3dten(k)-faltndng/nstep/rho(k)
3562 dumr(k) = dumr(k)-faltndr*dt/nstep
3563 dumi(k) = dumi(k)-faltndi*dt/nstep
3564 dumfni(k) = dumfni(k)-faltndni*dt/nstep
3565 dumqs(k) = dumqs(k)-faltnds*dt/nstep
3566 dumfns(k) = dumfns(k)-faltndns*dt/nstep
3567 dumfnr(k) = dumfnr(k)-faltndnr*dt/nstep
3568 dumc(k) = dumc(k)-faltndc*dt/nstep
3569 dumfnc(k) = dumfnc(k)-faltndnc*dt/nstep
3570 dumg(k) = dumg(k)-faltndg*dt/nstep
3571 dumfng(k) = dumfng(k)-faltndng*dt/nstep
3574 faltndr = (faloutr(k+1)-faloutr(k))/dzq(k)
3575 faltndi = (falouti(k+1)-falouti(k))/dzq(k)
3576 faltndni = (faloutni(k+1)-faloutni(k))/dzq(k)
3577 faltnds = (falouts(k+1)-falouts(k))/dzq(k)
3578 faltndns = (faloutns(k+1)-faloutns(k))/dzq(k)
3579 faltndnr = (faloutnr(k+1)-faloutnr(k))/dzq(k)
3580 faltndc = (faloutc(k+1)-faloutc(k))/dzq(k)
3581 faltndnc = (faloutnc(k+1)-faloutnc(k))/dzq(k)
3582 faltndg = (faloutg(k+1)-faloutg(k))/dzq(k)
3583 faltndng = (faloutng(k+1)-faloutng(k))/dzq(k)
3587 qrsten(k) = qrsten(k)+faltndr/nstep/rho(k)
3588 qisten(k) = qisten(k)+faltndi/nstep/rho(k)
3589 ni3dten(k) = ni3dten(k)+faltndni/nstep/rho(k)
3590 qnisten(k) = qnisten(k)+faltnds/nstep/rho(k)
3591 ns3dten(k) = ns3dten(k)+faltndns/nstep/rho(k)
3592 nr3dten(k) = nr3dten(k)+faltndnr/nstep/rho(k)
3593 qcsten(k) = qcsten(k)+faltndc/nstep/rho(k)
3594 nc3dten(k) = nc3dten(k)+faltndnc/nstep/rho(k)
3595 qgsten(k) = qgsten(k)+faltndg/nstep/rho(k)
3596 ng3dten(k) = ng3dten(k)+faltndng/nstep/rho(k)
3598 dumr(k) = dumr(k)+faltndr*dt/nstep
3599 dumi(k) = dumi(k)+faltndi*dt/nstep
3600 dumfni(k) = dumfni(k)+faltndni*dt/nstep
3601 dumqs(k) = dumqs(k)+faltnds*dt/nstep
3602 dumfns(k) = dumfns(k)+faltndns*dt/nstep
3603 dumfnr(k) = dumfnr(k)+faltndnr*dt/nstep
3604 dumc(k) = dumc(k)+faltndc*dt/nstep
3605 dumfnc(k) = dumfnc(k)+faltndnc*dt/nstep
3606 dumg(k) = dumg(k)+faltndg*dt/nstep
3607 dumfng(k) = dumfng(k)+faltndng*dt/nstep
3610 csed(k)=csed(k)+faloutc(k)/nstep
3611 ised(k)=ised(k)+falouti(k)/nstep
3612 ssed(k)=ssed(k)+falouts(k)/nstep
3613 gsed(k)=gsed(k)+faloutg(k)/nstep
3614 rsed(k)=rsed(k)+faloutr(k)/nstep
3621 precrt = precrt+(faloutr(kts)+faloutc(kts)+falouts(kts)+falouti(kts
3623 snowrt = snowrt+(falouts(kts)+falouti(kts)+faloutg(kts))*dt/nstep
3625 snowprt = snowprt+(falouti(kts)+falouts(kts))*dt/nstep
3626 grplprt = grplprt+(faloutg(kts))*dt/nstep
3633 qr3dten(k)=qr3dten(k)+qrsten(k)
3634 qi3dten(k)=qi3dten(k)+qisten(k)
3635 qc3dten(k)=qc3dten(k)+qcsten(k)
3636 qg3dten(k)=qg3dten(k)+qgsten(k)
3637 qni3dten(k)=qni3dten(k)+qnisten(k)
3643 IF (qi3d(k).GE.qsmall.AND.t3d(k).LT.273.15.AND.lami(k).GE.1.e-10
THEN
3644 IF (1./lami(k).GE.2.*dcs)
THEN
3645 qni3dten(k) = qni3dten(k)+qi3d(k)/dt+ qi3dten(k)
3646 ns3dten(k) = ns3dten(k)+ni3d(k)/dt+ ni3dten(k)
3647 qi3dten(k) = -qi3d(k)/dt
3648 ni3dten(k) = -ni3d(k)/dt
3655 qc3d(k) = qc3d(k)+qc3dten(k)*dt
3656 qi3d(k) = qi3d(k)+qi3dten(k)*dt
3657 qni3d(k) = qni3d(k)+qni3dten(k)*dt
3658 qr3d(k) = qr3d(k)+qr3dten(k)*dt
3659 nc3d(k) = nc3d(k)+nc3dten(k)*dt
3660 ni3d(k) = ni3d(k)+ni3dten(k)*dt
3661 ns3d(k) = ns3d(k)+ns3dten(k)*dt
3662 nr3d(k) = nr3d(k)+nr3dten(k)*dt
3664 IF (igraup.EQ.0)
THEN
3665 qg3d(k) = qg3d(k)+qg3dten(k)*dt
3666 ng3d(k) = ng3d(k)+ng3dten(k)*dt
3670 t3d(k) = t3d(k)+t3dten(k)*dt
3671 qv3d(k) = qv3d(k)+qv3dten(k)*dt
3676 evs(k) = min(0.99*pres(k),polysvp(t3d(k),0))
3677 eis(k) = min(0.99*pres(k),polysvp(t3d(k),1))
3681 IF (eis(k).GT.evs(k)) eis(k) = evs(k)
3683 qvs(k) = ep_2*evs(k)/(pres(k)-evs(k))
3684 qvi(k) = ep_2*eis(k)/(pres(k)-eis(k))
3686 qvqvs(k) = qv3d(k)/qvs(k)
3687 qvqvsi(k) = qv3d(k)/qvi(k)
3692 IF (qvqvs(k).LT.0.9)
THEN
3693 IF (qr3d(k).LT.1.e-8)
THEN
3694 qv3d(k)=qv3d(k)+qr3d(k)
3695 t3d(k)=t3d(k)-qr3d(k)*xxlv(k)/cpm(k)
3698 IF (qc3d(k).LT.1.e-8)
THEN
3699 qv3d(k)=qv3d(k)+qc3d(k)
3700 t3d(k)=t3d(k)-qc3d(k)*xxlv(k)/cpm(k)
3704 IF (qvqvsi(k).LT.0.9)
THEN
3705 IF (qi3d(k).LT.1.e-8)
THEN
3706 qv3d(k)=qv3d(k)+qi3d(k)
3707 t3d(k)=t3d(k)-qi3d(k)*xxls(k)/cpm(k)
3710 IF (qni3d(k).LT.1.e-8)
THEN
3711 qv3d(k)=qv3d(k)+qni3d(k)
3712 t3d(k)=t3d(k)-qni3d(k)*xxls(k)/cpm(k)
3715 IF (qg3d(k).LT.1.e-8)
THEN
3716 qv3d(k)=qv3d(k)+qg3d(k)
3717 t3d(k)=t3d(k)-qg3d(k)*xxls(k)/cpm(k)
3725 IF (qc3d(k).LT.qsmall)
THEN
3730 IF (qr3d(k).LT.qsmall)
THEN
3735 IF (qi3d(k).LT.qsmall)
THEN
3740 IF (qni3d(k).LT.qsmall)
THEN
3745 IF (qg3d(k).LT.qsmall)
THEN
3754 IF (qc3d(k).LT.qsmall.AND.qi3d(k).LT.qsmall.AND.qni3d(k).LT.qsmall
3755 .AND.qr3d(k).LT.qsmall.AND.qg3d(k).LT.qsmall)
GOTO 500
3762 IF (qi3d(k).GE.qsmall.AND.t3d(k).GE.273.15)
THEN
3763 qr3d(k) = qr3d(k)+qi3d(k)
3764 t3d(k) = t3d(k)-qi3d(k)*xlf(k)/cpm(k)
3766 nr3d(k) = nr3d(k)+ni3d(k)
3771 IF (iliq.EQ.1)
GOTO 778
3775 IF (t3d(k).LE.233.15.AND.qc3d(k).GE.qsmall)
THEN
3776 qi3d(k)=qi3d(k)+qc3d(k)
3777 t3d(k)=t3d(k)+qc3d(k)*xlf(k)/cpm(k)
3779 ni3d(k)=ni3d(k)+nc3d(k)
3785 IF (igraup.EQ.0)
THEN
3787 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3788 qg3d(k) = qg3d(k)+qr3d(k)
3789 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3791 ng3d(k) = ng3d(k)+ nr3d(k)
3795 ELSE IF (igraup.EQ.1)
THEN
3797 IF (t3d(k).LE.233.15.AND.qr3d(k).GE.qsmall)
THEN
3798 qni3d(k) = qni3d(k)+qr3d(k)
3799 t3d(k) = t3d(k)+qr3d(k)*xlf(k)/cpm(k)
3801 ns3d(k) = ns3d(k)+nr3d(k)
3811 ni3d(k) = max(0.,ni3d(k))
3812 ns3d(k) = max(0.,ns3d(k))
3813 nc3d(k) = max(0.,nc3d(k))
3814 nr3d(k) = max(0.,nr3d(k))
3815 ng3d(k) = max(0.,ng3d(k))
3820 IF (qi3d(k).GE.qsmall)
THEN
3821 lami(k) = (cons12* &
3822 ni3d(k)/qi3d(k))**(1./di)
3828 IF (lami(k).LT.lammini)
THEN
3832 n0i(k) = lami(k)**4*qi3d(k)/cons12
3834 ni3d(k) = n0i(k)/lami(k)
3835 ELSE IF (lami(k).GT.lammaxi)
THEN
3837 n0i(k) = lami(k)**4*qi3d(k)/cons12
3839 ni3d(k) = n0i(k)/lami(k)
3846 IF (qr3d(k).GE.qsmall)
THEN
3847 lamr(k) = (pi*rhow*nr3d(k)/qr3d(k))**(1./3.)
3853 IF (lamr(k).LT.lamminr)
THEN
3857 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3859 nr3d(k) = n0rr(k)/lamr(k)
3860 ELSE IF (lamr(k).GT.lammaxr)
THEN
3862 n0rr(k) = lamr(k)**4*qr3d(k)/(pi*rhow)
3864 nr3d(k) = n0rr(k)/lamr(k)
3874 IF (qc3d(k).GE.qsmall)
THEN
3876 dum = pres(k)/(287.15*t3d(k))
3877 pgam(k)=0.0005714*(nc3d(k)/1.e6*dum)+0.2714
3878 pgam(k)=1./(pgam(k)**2)-1.
3879 pgam(k)=max(pgam(k),2.)
3880 pgam(k)=min(pgam(k),10.)
3884 lamc(k) = (cons26*nc3d(k)*gamma(pgam(k)+4.)/ &
3885 (qc3d(k)*gamma(pgam(k)+1.)))**(1./3.)
3890 lammin = (pgam(k)+1.)/60.e-6
3891 lammax = (pgam(k)+1.)/1.e-6
3893 IF (lamc(k).LT.lammin)
THEN
3895 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3896 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3898 ELSE IF (lamc(k).GT.lammax)
THEN
3900 nc3d(k) = exp(3.*log(lamc(k))+log(qc3d(k))+ &
3901 log(gamma(pgam(k)+1.))-log(gamma(pgam(k)+4.)))/cons26
3910 IF (qni3d(k).GE.qsmall)
THEN
3911 lams(k) = (cons1*ns3d(k)/qni3d(k))**(1./ds)
3917 IF (lams(k).LT.lammins)
THEN
3919 n0s(k) = lams(k)**4*qni3d(k)/cons1
3921 ns3d(k) = n0s(k)/lams(k)
3923 ELSE IF (lams(k).GT.lammaxs)
THEN
3926 n0s(k) = lams(k)**4*qni3d(k)/cons1
3927 ns3d(k) = n0s(k)/lams(k)
3935 IF (qg3d(k).GE.qsmall)
THEN
3936 lamg(k) = (cons2*ng3d(k)/qg3d(k))**(1./dg)
3942 IF (lamg(k).LT.lamming)
THEN
3944 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3946 ng3d(k) = n0g(k)/lamg(k)
3948 ELSE IF (lamg(k).GT.lammaxg)
THEN
3951 n0g(k) = lamg(k)**4*qg3d(k)/cons2
3953 ng3d(k) = n0g(k)/lamg(k)
3962 IF (qi3d(k).GE.qsmall)
THEN
3963 effi(k) = 3./lami(k)/2.*1.e6
3968 IF (qni3d(k).GE.qsmall)
THEN
3969 effs(k) = 3./lams(k)/2.*1.e6
3974 IF (qr3d(k).GE.qsmall)
THEN
3975 effr(k) = 3./lamr(k)/2.*1.e6
3980 IF (qc3d(k).GE.qsmall)
THEN
3981 effc(k) = gamma(pgam(k)+4.)/ &
3982 gamma(pgam(k)+3.)/lamc(k)/2.*1.e6
3987 IF (qg3d(k).GE.qsmall)
THEN
3988 effg(k) = 3./lamg(k)/2.*1.e6
4000 ni3d(k) = min(ni3d(k),0.3e6/rho(k))
4003 IF (iinum.EQ.0.AND.iact.EQ.2)
THEN
4004 nc3d(k) = min(nc3d(k),(nanew1+nanew2)/rho(k))
4007 IF (iinum.EQ.1)
THEN
4009 nc3d(k) = ndcnst*1.e6/rho_erf(k)