5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE clmain(dtime, pctsrf, t, q, u, v, jour, mu0, ftsol, cdmmax, & |
SUBROUTINE clmain(dtime, pctsrf, t, q, u, v, jour, mu0, ftsol, cdmmax, & |
8 |
cdhmax, ksta, ksta_ter, ok_kzmin, ftsoil, qsol, paprs, pplay, snow, & |
cdhmax, ksta, ksta_ter, ok_kzmin, ftsoil, qsol, paprs, pplay, fsnow, & |
9 |
qsurf, evap, falbe, fluxlat, rain_fall, snow_f, solsw, sollw, fder, & |
qsurf, evap, falbe, fluxlat, rain_fall, snow_f, solsw, sollw, fder, & |
10 |
rugos, agesno, rugoro, d_t, d_q, d_u, d_v, d_ts, flux_t, flux_q, & |
rugos, agesno, rugoro, d_t, d_q, d_u, d_v, d_ts, flux_t, flux_q, & |
11 |
flux_u, flux_v, cdragh, cdragm, q2, dflux_t, dflux_q, ycoefh, zu1, & |
flux_u, flux_v, cdragh, cdragm, q2, dflux_t, dflux_q, ycoefh, zu1, & |
67 |
|
|
68 |
REAL, INTENT(IN):: paprs(klon, klev+1) ! pression a intercouche (Pa) |
REAL, INTENT(IN):: paprs(klon, klev+1) ! pression a intercouche (Pa) |
69 |
REAL, INTENT(IN):: pplay(klon, klev) ! pression au milieu de couche (Pa) |
REAL, INTENT(IN):: pplay(klon, klev) ! pression au milieu de couche (Pa) |
70 |
REAL, INTENT(inout):: snow(klon, nbsrf) |
REAL, INTENT(inout):: fsnow(:, :) ! (klon, nbsrf) \'epaisseur neigeuse |
71 |
REAL qsurf(klon, nbsrf) |
REAL qsurf(klon, nbsrf) |
72 |
REAL evap(klon, nbsrf) |
REAL evap(klon, nbsrf) |
73 |
REAL, intent(inout):: falbe(klon, nbsrf) |
REAL, intent(inout):: falbe(klon, nbsrf) |
155 |
REAL ytsoil(klon, nsoilmx) |
REAL ytsoil(klon, nsoilmx) |
156 |
REAL yts(klon), yrugos(klon), ypct(klon), yz0_new(klon) |
REAL yts(klon), yrugos(klon), ypct(klon), yz0_new(klon) |
157 |
REAL yalb(klon) |
REAL yalb(klon) |
158 |
|
|
159 |
REAL yu1(klon), yv1(klon) |
REAL yu1(klon), yv1(klon) |
160 |
! on rajoute en output yu1 et yv1 qui sont les vents dans |
! On ajoute en output yu1 et yv1 qui sont les vents dans |
161 |
! la premiere couche |
! la premi\`ere couche. |
162 |
REAL ysnow(klon), yqsurf(klon), yagesno(klon) |
|
163 |
|
REAL snow(klon), yqsurf(klon), yagesno(klon) |
164 |
|
|
165 |
real yqsol(klon) |
real yqsol(klon) |
166 |
! column-density of water in soil, in kg m-2 |
! column-density of water in soil, in kg m-2 |
256 |
zv1 = 0. |
zv1 = 0. |
257 |
ypct = 0. |
ypct = 0. |
258 |
yts = 0. |
yts = 0. |
|
ysnow = 0. |
|
259 |
yqsurf = 0. |
yqsurf = 0. |
260 |
yrain_f = 0. |
yrain_f = 0. |
261 |
ysnow_f = 0. |
ysnow_f = 0. |
320 |
i = ni(j) |
i = ni(j) |
321 |
ypct(j) = pctsrf(i, nsrf) |
ypct(j) = pctsrf(i, nsrf) |
322 |
yts(j) = ftsol(i, nsrf) |
yts(j) = ftsol(i, nsrf) |
323 |
ysnow(j) = snow(i, nsrf) |
snow(j) = fsnow(i, nsrf) |
324 |
yqsurf(j) = qsurf(i, nsrf) |
yqsurf(j) = qsurf(i, nsrf) |
325 |
yalb(j) = falbe(i, nsrf) |
yalb(j) = falbe(i, nsrf) |
326 |
yrain_f(j) = rain_fall(i) |
yrain_f(j) = rain_fall(i) |
438 |
CALL clqh(dtime, jour, firstcal, nsrf, ni(:knon), ytsoil(:knon, :), & |
CALL clqh(dtime, jour, firstcal, nsrf, ni(:knon), ytsoil(:knon, :), & |
439 |
yqsol, mu0, yrugos, yrugoro, yu1, yv1, coefh(:knon, :), yt, & |
yqsol, mu0, yrugos, yrugoro, yu1, yv1, coefh(:knon, :), yt, & |
440 |
yq, yts(:knon), ypaprs, ypplay, ydelp, yrads, yalb(:knon), & |
yq, yts(:knon), ypaprs, ypplay, ydelp, yrads, yalb(:knon), & |
441 |
ysnow, yqsurf, yrain_f, ysnow_f, yfder, yfluxlat(:knon), & |
snow(:knon), yqsurf, yrain_f, ysnow_f, yfder, yfluxlat(:knon), & |
442 |
pctsrf_new_sic, yagesno(:knon), y_d_t, y_d_q, y_d_ts(:knon), & |
pctsrf_new_sic, yagesno(:knon), y_d_t, y_d_q, y_d_ts(:knon), & |
443 |
yz0_new, y_flux_t(:knon), y_flux_q(:knon), y_dflux_t, & |
yz0_new, y_flux_t(:knon), y_flux_q(:knon), y_dflux_t, & |
444 |
y_dflux_q, y_fqcalving, y_ffonte, y_run_off_lic_0) |
y_dflux_q, y_fqcalving, y_ffonte, y_run_off_lic_0) |
479 |
evap(:, nsrf) = -flux_q(:, nsrf) |
evap(:, nsrf) = -flux_q(:, nsrf) |
480 |
|
|
481 |
falbe(:, nsrf) = 0. |
falbe(:, nsrf) = 0. |
482 |
snow(:, nsrf) = 0. |
fsnow(:, nsrf) = 0. |
483 |
qsurf(:, nsrf) = 0. |
qsurf(:, nsrf) = 0. |
484 |
rugos(:, nsrf) = 0. |
rugos(:, nsrf) = 0. |
485 |
DO j = 1, knon |
DO j = 1, knon |
486 |
i = ni(j) |
i = ni(j) |
487 |
d_ts(i, nsrf) = y_d_ts(j) |
d_ts(i, nsrf) = y_d_ts(j) |
488 |
falbe(i, nsrf) = yalb(j) |
falbe(i, nsrf) = yalb(j) |
489 |
snow(i, nsrf) = ysnow(j) |
fsnow(i, nsrf) = snow(j) |
490 |
qsurf(i, nsrf) = yqsurf(j) |
qsurf(i, nsrf) = yqsurf(j) |
491 |
rugos(i, nsrf) = yz0_new(j) |
rugos(i, nsrf) = yz0_new(j) |
492 |
fluxlat(i, nsrf) = yfluxlat(j) |
fluxlat(i, nsrf) = yfluxlat(j) |
586 |
q2(i, k, nsrf) = yq2(j, k) |
q2(i, k, nsrf) = yq2(j, k) |
587 |
END DO |
END DO |
588 |
END DO |
END DO |
589 |
|
else |
590 |
|
fsnow(:, nsrf) = 0. |
591 |
end IF if_knon |
end IF if_knon |
592 |
END DO loop_surface |
END DO loop_surface |
593 |
|
|