25 |
! Local: |
! Local: |
26 |
REAL zcond(klon), zcond1 |
REAL zcond(klon), zcond1 |
27 |
REAL Z5alvcp, z5alscp, zalvdcp, zalsdcp |
REAL Z5alvcp, z5alscp, zalvdcp, zalsdcp |
28 |
REAL zdelta, zcvm5, zldcp, zqsat, zcor |
logical zdelta |
29 |
|
real zcvm5, zldcp, zqsat, zcor |
30 |
INTEGER is, i |
INTEGER is, i |
31 |
|
|
32 |
!--------------------------------------------------------------------- |
!--------------------------------------------------------------------- |
42 |
|
|
43 |
DO i = 1, klon |
DO i = 1, klon |
44 |
IF (ldflag(i)) THEN |
IF (ldflag(i)) THEN |
45 |
zdelta = MAX(0., SIGN(1., RTT-pt(i))) |
zdelta = RTT >= pt(i) |
46 |
zcvm5 = z5alvcp*(1.-zdelta) + zdelta*z5alscp |
zcvm5 = merge(z5alscp, z5alvcp, zdelta) |
47 |
zldcp = zalvdcp*(1.-zdelta) + zdelta*zalsdcp |
zldcp = merge(zalsdcp, zalvdcp, zdelta) |
48 |
zqsat = R2ES * FOEEW(pt(i), zdelta) / pp(i) |
zqsat = R2ES * FOEEW(pt(i), zdelta) / pp(i) |
49 |
zqsat = MIN(0.5, zqsat) |
zqsat = MIN(0.5, zqsat) |
50 |
zcor = 1./(1.-RETV*zqsat) |
zcor = 1./(1.-RETV*zqsat) |
65 |
IF (is /= 0) then |
IF (is /= 0) then |
66 |
DO i = 1, klon |
DO i = 1, klon |
67 |
IF(ldflag(i).AND.zcond(i).NE.0.) THEN |
IF(ldflag(i).AND.zcond(i).NE.0.) THEN |
68 |
zdelta = MAX(0., SIGN(1., RTT-pt(i))) |
zdelta = RTT >= pt(i) |
69 |
zcvm5 = z5alvcp*(1.-zdelta) + zdelta*z5alscp |
zcvm5 = merge(z5alscp, z5alvcp, zdelta) |
70 |
zldcp = zalvdcp*(1.-zdelta) + zdelta*zalsdcp |
zldcp = merge(zalsdcp, zalvdcp, zdelta) |
71 |
zqsat = R2ES* FOEEW(pt(i), zdelta) / pp(i) |
zqsat = R2ES* FOEEW(pt(i), zdelta) / pp(i) |
72 |
zqsat = MIN(0.5, zqsat) |
zqsat = MIN(0.5, zqsat) |
73 |
zcor = 1./(1.-RETV*zqsat) |
zcor = 1./(1.-RETV*zqsat) |