87 |
PARAMETER (t_coup=234.0) |
PARAMETER (t_coup=234.0) |
88 |
|
|
89 |
INTEGER i, k, n, kk |
INTEGER i, k, n, kk |
90 |
REAL zqs(klon), zdqs(klon), zdelta, zcor, zcvm5 |
REAL zqs(klon), zdqs(klon), zcor, zcvm5 |
91 |
|
logical zdelta |
92 |
REAL zrfl(klon), zrfln(klon), zqev, zqevt |
REAL zrfl(klon), zrfln(klon), zqev, zqevt |
93 |
REAL zoliq(klon), zcond(klon), zq(klon), zqn(klon), zdelq |
REAL zoliq(klon), zcond(klon), zq(klon), zqn(klon), zdelq |
94 |
REAL ztglace, zt(klon) |
REAL ztglace, zt(klon) |
113 |
! Pour la conversion eau-neige |
! Pour la conversion eau-neige |
114 |
REAL zlh_solid(klon), zm_solid |
REAL zlh_solid(klon), zm_solid |
115 |
|
|
|
! Fonctions en ligne: |
|
|
|
|
|
REAL fallvs, fallvc ! vitesse de chute pour crystaux de glace |
|
|
REAL zzz |
|
|
|
|
|
fallvc(zzz) = 3.29/2.0*((zzz)**0.16)*ffallv_con |
|
|
fallvs(zzz) = 3.29/2.0*((zzz)**0.16)*ffallv_lsc |
|
|
|
|
116 |
!--------------------------------------------------------------- |
!--------------------------------------------------------------- |
117 |
|
|
118 |
zdelq = 0.0 |
zdelq = 0.0 |
218 |
DO i = 1, klon |
DO i = 1, klon |
219 |
IF (zrfl(i)>0.) THEN |
IF (zrfl(i)>0.) THEN |
220 |
IF (thermcep) THEN |
IF (thermcep) THEN |
221 |
zdelta = max(0., sign(1., rtt-zt(i))) |
zqs(i) = r2es*foeew(zt(i), rtt >= zt(i))/pplay(i, k) |
|
zqs(i) = r2es*foeew(zt(i), zdelta)/pplay(i, k) |
|
222 |
zqs(i) = min(0.5, zqs(i)) |
zqs(i) = min(0.5, zqs(i)) |
223 |
zcor = 1./(1.-retv*zqs(i)) |
zcor = 1./(1.-retv*zqs(i)) |
224 |
zqs(i) = zqs(i)*zcor |
zqs(i) = zqs(i)*zcor |
256 |
|
|
257 |
IF (thermcep) THEN |
IF (thermcep) THEN |
258 |
DO i = 1, klon |
DO i = 1, klon |
259 |
zdelta = max(0., sign(1., rtt-zt(i))) |
zdelta = rtt >= zt(i) |
260 |
zcvm5 = r5les*rlvtt*(1.-zdelta) + r5ies*rlstt*zdelta |
zcvm5 = merge(r5ies*rlstt, r5les*rlvtt, zdelta) |
261 |
zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*zq(i)) |
zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*zq(i)) |
262 |
zqs(i) = r2es*foeew(zt(i), zdelta)/pplay(i, k) |
zqs(i) = r2es*foeew(zt(i), zdelta)/pplay(i, k) |
263 |
zqs(i) = min(0.5, zqs(i)) |
zqs(i) = min(0.5, zqs(i)) |
483 |
END DO |
END DO |
484 |
END DO |
END DO |
485 |
|
|
486 |
|
contains |
487 |
|
|
488 |
|
! vitesse de chute pour crystaux de glace |
489 |
|
|
490 |
|
REAL function fallvs(zzz) |
491 |
|
REAL zzz |
492 |
|
fallvs = 3.29/2.0*((zzz)**0.16)*ffallv_lsc |
493 |
|
end function fallvs |
494 |
|
|
495 |
|
real function fallvc(zzz) |
496 |
|
REAL zzz |
497 |
|
fallvc = 3.29/2.0*((zzz)**0.16)*ffallv_con |
498 |
|
end function fallvc |
499 |
|
|
500 |
END SUBROUTINE fisrtilp |
END SUBROUTINE fisrtilp |
501 |
|
|
502 |
end module fisrtilp_m |
end module fisrtilp_m |