13 |
! coefficients d'échange turbulent dans l'atmosphère. |
! coefficients d'échange turbulent dans l'atmosphère. |
14 |
|
|
15 |
USE indicesol, ONLY: is_oce |
USE indicesol, ONLY: is_oce |
16 |
USE dimphy, ONLY: klev, klon, max |
USE dimphy, ONLY: klev, klon |
|
USE conf_gcm_m, ONLY: prt_level |
|
17 |
USE suphec_m, ONLY: rcpd, rd, retv, rg, rkappa, rlstt, rlvtt, rtt |
USE suphec_m, ONLY: rcpd, rd, retv, rg, rkappa, rlstt, rlvtt, rtt |
18 |
USE yoethf_m, ONLY: r2es, r5ies, r5les, rvtmp2 |
USE yoethf_m, ONLY: r2es, r5ies, r5les, rvtmp2 |
19 |
USE fcttre, ONLY: dqsatl, dqsats, foede, foeew, qsatl, qsats, thermcep |
USE fcttre, ONLY: dqsatl, dqsats, foede, foeew, qsatl, qsats, thermcep |
73 |
LOGICAL, PARAMETER:: opt_ec = .FALSE. |
LOGICAL, PARAMETER:: opt_ec = .FALSE. |
74 |
! formule du Centre Europeen dans l'atmosphere |
! formule du Centre Europeen dans l'atmosphere |
75 |
|
|
76 |
INTEGER i, k, kk |
INTEGER i, k |
77 |
REAL zgeop(klon, klev) |
REAL zgeop(klon, klev) |
78 |
REAL zmgeom(klon) |
REAL zmgeom(klon) |
79 |
REAL ri(klon) |
REAL ri(klon) |
83 |
|
|
84 |
REAL zdphi, zdu2, ztvd, ztvu, cdn |
REAL zdphi, zdu2, ztvd, ztvu, cdn |
85 |
REAL scf |
REAL scf |
86 |
REAL zt, zq, zdelta, zcvm5, zcor, zqs, zfr, zdqs |
REAL zt, zq, zcvm5, zcor, zqs, zfr, zdqs |
87 |
|
logical zdelta |
88 |
REAL z2geomf, zalh2, alm2, zscfh, scfm |
REAL z2geomf, zalh2, alm2, zscfh, scfm |
89 |
REAL, PARAMETER:: t_coup = 273.15 |
REAL, PARAMETER:: t_coup = 273.15 |
90 |
REAL gamt(2:klev) ! contre-gradient pour la chaleur sensible: Kelvin/metre |
REAL gamt(2:klev) ! contre-gradient pour la chaleur sensible: Kelvin/metre |
151 |
! calculer Qs et dQs/dT: |
! calculer Qs et dQs/dT: |
152 |
|
|
153 |
IF (thermcep) THEN |
IF (thermcep) THEN |
154 |
zdelta = MAX(0., SIGN(1., RTT-zt)) |
zdelta = RTT >=zt |
155 |
zcvm5 = R5LES*RLVTT/RCPD/(1.0+RVTMP2*zq)*(1.-zdelta) & |
zcvm5 = merge(R5IES * RLSTT, R5LES * RLVTT, zdelta) / RCPD & |
156 |
+ R5IES*RLSTT/RCPD/(1.0+RVTMP2*zq)*zdelta |
/ (1. + RVTMP2*zq) |
157 |
zqs = R2ES * FOEEW(zt, zdelta) / pplay(i, k) |
zqs = R2ES * FOEEW(zt, zdelta) / pplay(i, k) |
158 |
zqs = MIN(0.5, zqs) |
zqs = MIN(0.5, zqs) |
159 |
zcor = 1./(1.-RETV*zqs) |
zcor = 1./(1.-RETV*zqs) |