5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE clmain(dtime, itap, pctsrf, pctsrf_new, t, q, u, v, jour, rmu0, & |
SUBROUTINE clmain(dtime, itap, pctsrf, pctsrf_new, t, q, u, v, jour, rmu0, & |
8 |
co2_ppm, ts, cdmmax, cdhmax, ksta, ksta_ter, ok_kzmin, ftsoil, qsol, & |
ts, cdmmax, cdhmax, ksta, ksta_ter, ok_kzmin, ftsoil, qsol, & |
9 |
paprs, pplay, snow, qsurf, evap, falbe, fluxlat, rain_fall, snow_f, & |
paprs, pplay, snow, qsurf, evap, falbe, fluxlat, rain_fall, snow_f, & |
10 |
solsw, sollw, fder, rlat, rugos, debut, agesno, rugoro, d_t, d_q, d_u, & |
solsw, sollw, fder, rlat, rugos, debut, agesno, rugoro, d_t, d_q, d_u, & |
11 |
d_v, d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, cdragm, q2, & |
d_v, d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, cdragm, q2, & |
33 |
use coefkzmin_m, only: coefkzmin |
use coefkzmin_m, only: coefkzmin |
34 |
USE conf_gcm_m, ONLY: prt_level |
USE conf_gcm_m, ONLY: prt_level |
35 |
USE conf_phys_m, ONLY: iflag_pbl |
USE conf_phys_m, ONLY: iflag_pbl |
|
USE dimens_m, ONLY: iim, jjm |
|
36 |
USE dimphy, ONLY: klev, klon, zmasq |
USE dimphy, ONLY: klev, klon, zmasq |
37 |
USE dimsoil, ONLY: nsoilmx |
USE dimsoil, ONLY: nsoilmx |
38 |
use hbtm_m, only: hbtm |
use hbtm_m, only: hbtm |
55 |
REAL, INTENT(IN):: u(klon, klev), v(klon, klev) ! vitesse |
REAL, INTENT(IN):: u(klon, klev), v(klon, klev) ! vitesse |
56 |
INTEGER, INTENT(IN):: jour ! jour de l'annee en cours |
INTEGER, INTENT(IN):: jour ! jour de l'annee en cours |
57 |
REAL, intent(in):: rmu0(klon) ! cosinus de l'angle solaire zenithal |
REAL, intent(in):: rmu0(klon) ! cosinus de l'angle solaire zenithal |
|
REAL, intent(in):: co2_ppm ! taux CO2 atmosphere |
|
58 |
REAL, INTENT(IN):: ts(klon, nbsrf) ! temperature du sol (en Kelvin) |
REAL, INTENT(IN):: ts(klon, nbsrf) ! temperature du sol (en Kelvin) |
59 |
REAL, INTENT(IN):: cdmmax, cdhmax ! seuils cdrm, cdrh |
REAL, INTENT(IN):: cdmmax, cdhmax ! seuils cdrm, cdrh |
60 |
REAL, INTENT(IN):: ksta, ksta_ter |
REAL, INTENT(IN):: ksta, ksta_ter |
210 |
|
|
211 |
REAL yt2m(klon), yq2m(klon), yu10m(klon) |
REAL yt2m(klon), yq2m(klon), yu10m(klon) |
212 |
REAL yustar(klon) |
REAL yustar(klon) |
|
! -- LOOP |
|
|
REAL yu10mx(klon) |
|
|
REAL yu10my(klon) |
|
|
REAL ywindsp(klon) |
|
|
! -- LOOP |
|
213 |
|
|
214 |
REAL yt10m(klon), yq10m(klon) |
REAL yt10m(klon), yq10m(klon) |
215 |
REAL ypblh(klon) |
REAL ypblh(klon) |
282 |
y_dflux_q = 0. |
y_dflux_q = 0. |
283 |
ytsoil = 999999. |
ytsoil = 999999. |
284 |
yrugoro = 0. |
yrugoro = 0. |
|
yu10mx = 0. |
|
|
yu10my = 0. |
|
|
ywindsp = 0. |
|
285 |
d_ts = 0. |
d_ts = 0. |
286 |
yfluxlat = 0. |
yfluxlat = 0. |
287 |
flux_t = 0. |
flux_t = 0. |
336 |
yrads(j) = solsw(i, nsrf) + sollw(i, nsrf) |
yrads(j) = solsw(i, nsrf) + sollw(i, nsrf) |
337 |
ypaprs(j, klev+1) = paprs(i, klev+1) |
ypaprs(j, klev+1) = paprs(i, klev+1) |
338 |
y_run_off_lic_0(j) = run_off_lic_0(i) |
y_run_off_lic_0(j) = run_off_lic_0(i) |
|
yu10mx(j) = u10m(i, nsrf) |
|
|
yu10my(j) = v10m(i, nsrf) |
|
|
ywindsp(j) = sqrt(yu10mx(j)*yu10mx(j)+yu10my(j)*yu10my(j)) |
|
339 |
END DO |
END DO |
340 |
|
|
341 |
! For continent, copy soil water content |
! For continent, copy soil water content |
443 |
|
|
444 |
! calculer la diffusion de "q" et de "h" |
! calculer la diffusion de "q" et de "h" |
445 |
CALL clqh(dtime, itap, jour, debut, rlat, knon, nsrf, ni(:knon), & |
CALL clqh(dtime, itap, jour, debut, rlat, knon, nsrf, ni(:knon), & |
446 |
pctsrf, ytsoil, yqsol, rmu0, co2_ppm, yrugos, yrugoro, yu1, & |
pctsrf, ytsoil, yqsol, rmu0, yrugos, yrugoro, yu1, & |
447 |
yv1, coefh(:knon, :), yt, yq, yts, ypaprs, ypplay, ydelp, & |
yv1, coefh(:knon, :), yt, yq, yts, ypaprs, ypplay, ydelp, & |
448 |
yrads, yalb(:knon), ysnow, yqsurf, yrain_f, ysnow_f, yfder, & |
yrads, yalb(:knon), ysnow, yqsurf, yrain_f, ysnow_f, yfder, & |
449 |
yfluxlat, pctsrf_new, yagesno(:knon), y_d_t, y_d_q, & |
yfluxlat, pctsrf_new, yagesno(:knon), y_d_t, y_d_q, & |