41 SUBROUTINE calpw(PW,IDECID)
44 use vrbls3d, only: q, qqw, qqi, qqr, qqs, cwm, qqg, t, rswtt, &
45 train, tcucn, mcvg, pmid, o3, ext, pint, rlwtt, &
50 use ctlblk_mod
, only: lm, jsta, jend, im, spval, ista, iend
58 real,
PARAMETER :: rhowat=1.e3
59 real,
parameter:: con_rd =2.8705e+2
60 real,
parameter:: con_rv =4.6150e+2
61 real,
parameter:: con_eps =con_rd/con_rv
62 real,
parameter:: con_epsm1 =con_rd/con_rv-1
66 integer,
intent(in) :: idecid
67 real,
dimension(ista:iend,jsta:jend),
intent(inout) :: pw
69 REAL alpm,dz,pm,pwsum,rhoair,dp,es
70 REAL qdum(ista:iend,jsta:jend), pws(ista:iend,jsta:jend),qs(ista:iend,jsta:jend)
97 ELSE IF (idecid == 2)
THEN
101 qdum(i,j) = qqw(i,j,l)
104 ELSE IF (idecid == 3)
THEN
108 qdum(i,j) = qqi(i,j,l)
111 ELSE IF (idecid == 4)
THEN
115 qdum(i,j) = qqr(i,j,l)
118 ELSE IF (idecid == 5)
THEN
122 qdum(i,j) = qqs(i,j,l)
125 ELSE IF (idecid == 6)
THEN
129 qdum(i,j) = cwm(i,j,l)
133 ELSE IF (idecid == 16)
THEN
137 qdum(i,j) = qqg(i,j,l)
141 ELSE IF (idecid == 7)
THEN
146 IF (t(i,j,l) >= tfrz)
THEN
149 qdum(i,j) = qqw(i,j,l) + qqr(i,j,l)
153 ELSE IF (idecid == 8)
THEN
158 IF (t(i,j,l) <= tfrz)
THEN
161 qdum(i,j) = qqi(i,j,l) + qqs(i,j,l)
165 ELSE IF (idecid == 9)
THEN
170 qdum(i,j) = rswtt(i,j,l)
173 ELSE IF (idecid == 10)
THEN
178 qdum(i,j) = rlwtt(i,j,l)
181 ELSE IF (idecid == 11)
THEN
186 qdum(i,j) = train(i,j,l)
189 ELSE IF (idecid == 12)
THEN
194 qdum(i,j) = tcucn(i,j,l)
197 ELSE IF (idecid == 13)
THEN
202 qdum(i,j) = mcvg(i,j,l)
206 ELSE IF (idecid == 14)
THEN
211 es = min(
fpvsnew(t(i,j,l)),pmid(i,j,l))
212 qs(i,j) = con_eps*es/(pmid(i,j,l)+con_epsm1*es)
216 ELSE IF (idecid == 15)
THEN
220 qdum(i,j) = o3(i,j,l)
225 ELSE IF (idecid == 17)
THEN
229 qdum(i,j) = ext(i,j,l)
235 ELSE IF (idecid == 18)
THEN
239 qdum(i,j) = smoke(i,j,l,1)/1000000000.
245 ELSE IF (idecid == 19)
THEN
249 qdum(i,j) = taod5503d(i,j,l)
254 ELSE IF (idecid == 20)
THEN
258 qdum(i,j) = sca(i,j,l)
263 ELSE IF (idecid == 21)
THEN
267 qdum(i,j) = asy(i,j,l)
275 if(pint(i,j,l+1) <spval .and. qdum(i,j) < spval)
then
276 dp = pint(i,j,l+1) - pint(i,j,l)
277 IF (idecid == 19)
THEN
278 pw(i,j) = pw(i,j) + qdum(i,j)
280 pw(i,j) = pw(i,j) + qdum(i,j)*max(dp,0.)*gi*htm(i,j,l)
282 IF (idecid == 14) pws(i,j) = pws(i,j) + qs(i,j)*dp*gi*htm(i,j,l)
292 IF (idecid == 14)
THEN
296 if( pw(i,j)<spval)
then
297 pw(i,j) = max(0.,pw(i,j)/pws(i,j)*100.)
305 IF (idecid == 15)
then
309 if( pw(i,j)<spval)
then
310 pw(i,j) = pw(i,j) / 2.14e-5
elemental real function, public fpvsnew(t)
calcape() computes CAPE/CINS and other storm related variables.