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