1 SUBROUTINE calwxt_revised_post(T,Q,PMID,PINT,HTM,LMH,PREC,ZINT,IWX)
28 use params_mod, only: h1m12, d00, d608, h1, rog
29 use ctlblk_mod
, only: jsta, jend, modelname, pthresh, im, jsta_2l, jend_2u, lm,&
41 REAL,
dimension(IM,jsta_2l:jend_2u,LM),
intent(in) :: t,q,pmid,htm
42 REAL,
dimension(IM,jsta_2l:jend_2u,LP1),
intent(in) :: pint,zint
43 REAL,
dimension(IM,jsta_2l:jend_2u),
intent(in) :: lmh
44 REAL,
dimension(IM,jsta_2l:jend_2u),
intent(in) :: prec
53 integer,
DIMENSION(IM,jsta:jend),
intent(inout) :: iwx
56 REAL,
ALLOCATABLE :: twet(:,:,:)
57 integer,
DIMENSION(IM,jsta:jend) :: karr,licee
58 real,
dimension(IM,jsta:jend) :: tcold,twarm
60 integer i,j,l,lmhk,lice,ifrel,iwrml,ifrzl
61 real psfck,tdchk,a,tdkl,tdpre,tlmhk,twrmk,areas8,areap4,area1, &
62 surfw,surfc,dzkl,pintk1,pintk2,pm150,qkl,tkl,pkl,area0, &
65 logical :: jcontinue=.true.
78 ALLOCATE ( twet(im,jsta_2l:jend_2u,lm) )
96 IF (prec(i,j)<=pthresh) cycle
103 psfck=pint(i,j,lmhk+1)
110 760 tcold(i,j)=t(i,j,lmhk)
111 twarm(i,j)=t(i,j,lmhk)
123 IF (pkl<50000.0.OR.pkl>psfck-7000.0) cycle
125 a=alog(qkl*pkl/(610.78*(0.378*qkl+0.622)))
126 tdkl=(237.3*a)/(17.269-a)+273.15
128 IF (tdpre<tdchk.AND.tkl<tcold(i,j)) tcold(i,j)=tkl
129 IF (tdpre<tdchk.AND.tkl>twarm(i,j)) twarm(i,j)=tkl
130 IF (tdpre<tdchk.AND.l<licee(i,j)) licee(i,j)=l
137 IF (tcold(i,j)==t(i,j,lmhk).AND.tdchk<6.0)
THEN
150 IF (prec(i,j)<=pthresh) cycle
156 IF (tcold(i,j)>269.15)
THEN
157 IF (tlmhk<=273.15)
THEN
180 CALL wetbulb(t,q,pmid,htm,karr,twet)
192 psfck=pint(i,j,lmhk+1)
216 DO 1945 l=lmhk,lice,-1
217 dzkl=zint(i,j,l)-zint(i,j,l+1)
218 area1=(twet(i,j,l)-269.15)*dzkl
219 area0=(twet(i,j,l)-273.15)*dzkl
220 IF (twet(i,j,l)>=269.15) areap4=areap4+area1
221 IF (twet(i,j,l)>=273.15) areap0=areap0+area0
233 IF (areap0<350.0)
THEN
247 IF(pintk1<pm150)
THEN
250 dzkl=zint(i,j,l)-zint(i,j,l+1)
255 dzkl=t(i,j,l)*(q(i,j,l)*d608+h1)*rog* &
257 area1=(twet(i,j,l)-273.15)*dzkl
272 IF (ifrzl==0.AND.t(i,j,l)<273.15) ifrzl=1
273 IF (iwrml==0.AND.t(i,j,l)>=twrmk) iwrml=1
275 IF (iwrml==0.OR.ifrzl==0)
THEN
276 dzkl=zint(i,j,l)-zint(i,j,l+1)
277 area1=(twet(i,j,l)-273.15)*dzkl
278 IF(ifrzl==0.AND.twet(i,j,l)>=273.15)surfw=surfw+area1
279 IF(iwrml==0.AND.twet(i,j,l)<=273.15)surfc=surfc+area1
282 IF(surfc<-3000.0.OR. &
283 & (areas8<-3000.0.AND.surfw<50.0))
THEN
293 IF(tlmhk<273.15)
THEN