15 |
! Objet : diffusion verticale de "q" et de "h" |
! Objet : diffusion verticale de "q" et de "h" |
16 |
|
|
17 |
use climb_hq_down_m, only: climb_hq_down |
use climb_hq_down_m, only: climb_hq_down |
18 |
|
use climb_hq_up_m, only: climb_hq_up |
19 |
USE dimphy, ONLY: klev, klon |
USE dimphy, ONLY: klev, klon |
20 |
USE interfsurf_hq_m, ONLY: interfsurf_hq |
USE interfsurf_hq_m, ONLY: interfsurf_hq |
|
USE suphec_m, ONLY: rcpd |
|
21 |
|
|
22 |
REAL, intent(in):: dtime ! intervalle du temps (s) |
REAL, intent(in):: dtime ! intervalle du temps (s) |
23 |
integer, intent(in):: julien ! jour de l'annee en cours |
integer, intent(in):: julien ! jour de l'annee en cours |
99 |
|
|
100 |
! Local: |
! Local: |
101 |
|
|
|
INTEGER k |
|
102 |
REAL evap(size(knindex)) ! (knon) evaporation au sol |
REAL evap(size(knindex)) ! (knon) evaporation au sol |
103 |
REAL, dimension(size(knindex), klev):: cq, dq, ch, dh ! (knon, klev) |
REAL, dimension(size(knindex), klev):: cq, dq, ch, dh ! (knon, klev) |
|
REAL h(size(knindex), klev) ! (knon, klev) enthalpie potentielle |
|
|
REAL local_q(size(knindex), klev) ! (knon, klev) |
|
104 |
REAL pkf(size(knindex), klev) ! (knon, klev) |
REAL pkf(size(knindex), klev) ! (knon, klev) |
105 |
real tsurf_new(size(knindex)) ! (knon) |
real tsurf_new(size(knindex)) ! (knon) |
106 |
|
|
114 |
qsurf, ts, pplay(:, 1), paprs(:, 1), radsol, evap, flux_t, fluxlat, & |
qsurf, ts, pplay(:, 1), paprs(:, 1), radsol, evap, flux_t, fluxlat, & |
115 |
dflux_l, dflux_s, tsurf_new, albedo, z0_new, pctsrf_new_sic, agesno, & |
dflux_l, dflux_s, tsurf_new, albedo, z0_new, pctsrf_new_sic, agesno, & |
116 |
fqcalving, ffonte, run_off_lic_0) |
fqcalving, ffonte, run_off_lic_0) |
|
|
|
117 |
flux_q = - evap |
flux_q = - evap |
118 |
d_ts = tsurf_new - ts |
d_ts = tsurf_new - ts |
119 |
|
call climb_hq_up(d_t, d_q, cq, dq, ch, dh, flux_t, flux_q, dtime, pkf, t, q) |
|
h(:, 1) = ch(:, 1) + dh(:, 1) * flux_t * dtime |
|
|
local_q(:, 1) = cq(:, 1) + dq(:, 1) * flux_q * dtime |
|
|
|
|
|
DO k = 2, klev |
|
|
h(:, k) = ch(:, k) + dh(:, k) * h(:, k - 1) |
|
|
local_q(:, k) = cq(:, k) + dq(:, k) * local_q(:, k - 1) |
|
|
ENDDO |
|
|
|
|
|
d_t = h / pkf / RCPD - t |
|
|
d_q = local_q - q |
|
120 |
|
|
121 |
END SUBROUTINE clqh |
END SUBROUTINE clqh |
122 |
|
|