4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE clqh(dtime, jour, debut, nisurf, knindex, tsoil, qsol, rmu0, & |
SUBROUTINE clqh(dtime, julien, debut, nisurf, knindex, tsoil, qsol, rmu0, & |
8 |
rugos, rugoro, u1lay, v1lay, coef, t, q, ts, paprs, pplay, delp, & |
rugos, rugoro, u1lay, v1lay, coef, t, q, ts, paprs, pplay, delp, & |
9 |
radsol, albedo, snow, qsurf, precip_rain, precip_snow, fder, fluxlat, & |
radsol, albedo, snow, qsurf, precip_rain, precip_snow, fder, fluxlat, & |
10 |
pctsrf_new_sic, agesno, d_t, d_q, d_ts, z0_new, flux_t, flux_q, & |
pctsrf_new_sic, agesno, d_t, d_q, d_ts, z0_new, flux_t, flux_q, & |
20 |
USE suphec_m, ONLY: rcpd, rd, rg, rkappa |
USE suphec_m, ONLY: rcpd, rd, rg, rkappa |
21 |
|
|
22 |
REAL, intent(in):: dtime ! intervalle du temps (s) |
REAL, intent(in):: dtime ! intervalle du temps (s) |
23 |
integer, intent(in):: jour ! jour de l'annee en cours |
integer, intent(in):: julien ! jour de l'annee en cours |
24 |
logical, intent(in):: debut |
logical, intent(in):: debut |
25 |
integer, intent(in):: nisurf |
integer, intent(in):: nisurf |
26 |
integer, intent(in):: knindex(:) ! (knon) |
integer, intent(in):: knindex(:) ! (knon) |
63 |
REAL, intent(inout):: agesno(:) ! (knon) |
REAL, intent(inout):: agesno(:) ! (knon) |
64 |
REAL d_t(klon, klev) ! incrementation de "t" |
REAL d_t(klon, klev) ! incrementation de "t" |
65 |
REAL d_q(klon, klev) ! incrementation de "q" |
REAL d_q(klon, klev) ! incrementation de "q" |
66 |
REAL, intent(out):: d_ts(:) ! (knon) incr\'ementation de "ts" |
REAL, intent(out):: d_ts(:) ! (knon) variation of surface temperature |
67 |
real z0_new(klon) |
real z0_new(klon) |
68 |
|
|
69 |
REAL, intent(out):: flux_t(:) ! (knon) |
REAL, intent(out):: flux_t(:) ! (knon) |
239 |
spechum(1:knon)=q(1:knon, 1) |
spechum(1:knon)=q(1:knon, 1) |
240 |
p1lay(1:knon) = pplay(1:knon, 1) |
p1lay(1:knon) = pplay(1:knon, 1) |
241 |
|
|
242 |
CALL interfsurf_hq(dtime, jour, rmu0, nisurf, knon, knindex, debut, & |
CALL interfsurf_hq(dtime, julien, rmu0, nisurf, knon, knindex, debut, & |
243 |
tsoil, qsol, u1lay, v1lay, temp_air, spechum, tq_cdrag, petAcoef, & |
tsoil, qsol, u1lay, v1lay, temp_air, spechum, tq_cdrag, petAcoef, & |
244 |
peqAcoef, petBcoef, peqBcoef, precip_rain, precip_snow, fder, rugos, & |
peqAcoef, petBcoef, peqBcoef, precip_rain, precip_snow, fder, rugos, & |
245 |
rugoro, snow, qsurf, ts, p1lay, psref, radsol, evap, flux_t, & |
rugoro, snow, qsurf, ts, p1lay, psref, radsol, evap, flux_t, & |
249 |
flux_q = - evap |
flux_q = - evap |
250 |
d_ts = tsurf_new - ts |
d_ts = tsurf_new - ts |
251 |
|
|
|
! Une fois qu'on a zx_h_ts, on peut faire l'it\'eration |
|
252 |
DO i = 1, knon |
DO i = 1, knon |
253 |
local_h(i, 1) = zx_ch(i, 1) + zx_dh(i, 1) * flux_t(i) * dtime |
local_h(i, 1) = zx_ch(i, 1) + zx_dh(i, 1) * flux_t(i) * dtime |
254 |
local_q(i, 1) = zx_cq(i, 1) + zx_dq(i, 1) * flux_q(i) * dtime |
local_q(i, 1) = zx_cq(i, 1) + zx_dq(i, 1) * flux_q(i) * dtime |