30 SUBROUTINE callcl(P1D,T1D,Q1D,PLCL,ZLCL)
37 use params_mod, only: eps, oneps, d01, h1m12, gi, d00
38 use ctlblk_mod
, only: jsta, jend, spval, jsta_m, jend_m, im
42 real,
PARAMETER :: d35=3.5, d4805=4.805, h2840=2840.
43 real,
PARAMETER :: h55=55., d2845=0.2845, d28=0.28
47 REAL,
dimension(IM,jsta:jend),
intent(in) :: p1d,t1d,q1d
48 REAL,
dimension(IM,jsta:jend),
intent(inout) :: plcl,zlcl
49 REAL tlcl(im,jsta:jend)
51 real dlplcl,zsfc,dz,dalp,alplcl,rmx,evp,arg,rkapa
74 IF(p1d(i,j)<spval.and.q1d(i,j)<spval)
THEN
75 evp = p1d(i,j)*q1d(i,j)/(eps+oneps*q1d(i,j))
76 rmx = eps*evp/(p1d(i,j)-evp)
77 rkapa = 1.0 / (d2845*(1.0-d28*rmx))
78 arg = max(h1m12,evp*d01)
79 tlcl(i,j) = h55 + h2840 / (d35*log(t1d(i,j))-log(arg)-d4805)
80 plcl(i,j) = p1d(i,j)*(tlcl(i,j)/t1d(i,j))**rkapa
81 alplcl = log(plcl(i,j))
86 IF(alpint(i,j,l) < alplcl)
THEN
87 dlplcl = alplcl - alpint(i,j,l+1)
88 dalp = alpint(i,j,l) - alpint(i,j,l+1)
89 dz = zint(i,j,l) - zint(i,j,l+1)
90 zlcl(i,j) = max(d00, zint(i,j,l+1) + dz*dlplcl/dalp - zsfc)