4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
subroutine calltherm(dtime, pplay, paprs, pphi, u_seri, v_seri, t_seri, & |
subroutine calltherm(pplay, paprs, pphi, u_seri, v_seri, t_seri, q_seri, & |
8 |
q_seri, d_u_ajs, d_v_ajs, d_t_ajs, d_q_ajs, fm_therm, entr_therm) |
d_u_ajs, d_v_ajs, d_t_ajs, d_q_ajs, fm_therm, entr_therm) |
9 |
|
|
10 |
! From LMDZ4/libf/phylmd/calltherm.F, version 1.2 2004/12/10 11:27:46 |
! From LMDZ4/libf/phylmd/calltherm.F, version 1.2 2004/12/10 11:27:46 |
11 |
! Thermiques |
! Thermiques |
12 |
|
|
13 |
USE dimphy, ONLY: klev, klon |
use comconst, only: dtphys |
14 |
USE ctherm, ONLY: l_mix_thermals, nsplit_thermals, r_aspect_thermals, & |
USE ctherm, ONLY: l_mix_thermals, nsplit_thermals, r_aspect_thermals, & |
15 |
tho_thermals, w2di_thermals |
tho_thermals, w2di_thermals |
16 |
|
USE dimphy, ONLY: klev, klon |
17 |
use thermcell_m, only: thermcell |
use thermcell_m, only: thermcell |
18 |
|
|
|
REAL, intent(in):: dtime |
|
19 |
REAL, intent(in):: pplay(klon, klev) |
REAL, intent(in):: pplay(klon, klev) |
20 |
REAL, intent(in):: paprs(klon, klev+1) |
REAL, intent(in):: paprs(klon, klev+1) |
21 |
REAL, intent(in):: pphi(klon, klev) |
REAL, intent(in):: pphi(klon, klev) |
57 |
enddo |
enddo |
58 |
enddo |
enddo |
59 |
|
|
60 |
zdt=dtime/real(nsplit_thermals) |
zdt=dtphys/real(nsplit_thermals) |
61 |
do isplit = 1, nsplit_thermals |
do isplit = 1, nsplit_thermals |
62 |
CALL thermcell(klon, klev, zdt, pplay, paprs, pphi, u_seri, v_seri, & |
CALL thermcell(klon, klev, zdt, pplay, paprs, pphi, u_seri, v_seri, & |
63 |
t_seri, q_seri, d_u_the, d_v_the, d_t_the, d_q_the, zfm_therm, & |
t_seri, q_seri, d_u_the, d_v_the, d_t_the, d_q_the, zfm_therm, & |
65 |
tho_thermals) |
tho_thermals) |
66 |
|
|
67 |
! transformation de la derivee en tendance |
! transformation de la derivee en tendance |
68 |
d_t_the=d_t_the*dtime/real(nsplit_thermals) |
d_t_the=d_t_the*dtphys/real(nsplit_thermals) |
69 |
d_u_the=d_u_the*dtime/real(nsplit_thermals) |
d_u_the=d_u_the*dtphys/real(nsplit_thermals) |
70 |
d_v_the=d_v_the*dtime/real(nsplit_thermals) |
d_v_the=d_v_the*dtphys/real(nsplit_thermals) |
71 |
d_q_the=d_q_the*dtime/real(nsplit_thermals) |
d_q_the=d_q_the*dtphys/real(nsplit_thermals) |
72 |
fm_therm=fm_therm +zfm_therm/real(nsplit_thermals) |
fm_therm=fm_therm +zfm_therm/real(nsplit_thermals) |
73 |
entr_therm=entr_therm +zentr_therm/real(nsplit_thermals) |
entr_therm=entr_therm +zentr_therm/real(nsplit_thermals) |
74 |
fm_therm(:, klev+1)=0. |
fm_therm(:, klev+1)=0. |