142 |
REAL rugmer(klon) |
REAL rugmer(klon) |
143 |
REAL ytsoil(klon, nsoilmx) |
REAL ytsoil(klon, nsoilmx) |
144 |
REAL yts(klon), ypct(klon), yz0_new(klon) |
REAL yts(klon), ypct(klon), yz0_new(klon) |
145 |
real yrugos(klon) ! longeur de rugosite (en m) |
real yrugos(klon) ! longueur de rugosite (en m) |
146 |
REAL yalb(klon) |
REAL yalb(klon) |
147 |
REAL snow(klon), yqsurf(klon), yagesno(klon) |
REAL snow(klon), yqsurf(klon), yagesno(klon) |
148 |
real yqsol(klon) ! column-density of water in soil, in kg m-2 |
real yqsol(klon) ! column-density of water in soil, in kg m-2 |
217 |
yv = 0. |
yv = 0. |
218 |
yt = 0. |
yt = 0. |
219 |
yq = 0. |
yq = 0. |
|
y_dflux_t = 0. |
|
|
y_dflux_q = 0. |
|
220 |
yrugoro = 0. |
yrugoro = 0. |
221 |
d_ts = 0. |
d_ts = 0. |
222 |
flux_t = 0. |
flux_t = 0. |
348 |
|
|
349 |
! calculer la diffusion de "q" et de "h" |
! calculer la diffusion de "q" et de "h" |
350 |
CALL clqh(dtime, julien, firstcal, nsrf, ni(:knon), & |
CALL clqh(dtime, julien, firstcal, nsrf, ni(:knon), & |
351 |
ytsoil(:knon, :), yqsol(:knon), mu0, yrugos, yrugoro, & |
ytsoil(:knon, :), yqsol(:knon), mu0, yrugos(:knon), & |
352 |
yu(:knon, 1), yv(:knon, 1), ycoefh(:knon, :), ycdragh(:knon), & |
yrugoro(:knon), yu(:knon, 1), yv(:knon, 1), ycoefh(:knon, :), & |
353 |
yt, yq, yts(:knon), ypaprs, ypplay, ydelp, yrads(:knon), & |
ycdragh(:knon), yt(:knon, :), yq(:knon, :), yts(:knon), & |
354 |
yalb(:knon), snow(:knon), yqsurf, yrain_f, ysnow_f, & |
ypaprs(:knon, :), ypplay(:knon, :), ydelp(:knon, :), & |
355 |
yfluxlat(:knon), pctsrf_new_sic, yagesno(:knon), y_d_t, y_d_q, & |
yrads(:knon), yalb(:knon), snow(:knon), yqsurf(:knon), yrain_f, & |
356 |
y_d_ts(:knon), yz0_new, y_flux_t(:knon), y_flux_q(:knon), & |
ysnow_f, yfluxlat(:knon), pctsrf_new_sic, yagesno(:knon), & |
357 |
|
y_d_t(:knon, :), y_d_q(:knon, :), y_d_ts(:knon), & |
358 |
|
yz0_new(:knon), y_flux_t(:knon), y_flux_q(:knon), & |
359 |
y_dflux_t(:knon), y_dflux_q(:knon), y_fqcalving(:knon), & |
y_dflux_t(:knon), y_dflux_q(:knon), y_fqcalving(:knon), & |
360 |
y_ffonte, y_run_off_lic_0) |
y_ffonte, y_run_off_lic_0) |
361 |
|
|
362 |
! calculer la longueur de rugosite sur ocean |
! calculer la longueur de rugosite sur ocean |
363 |
|
|
364 |
yrugm = 0. |
yrugm = 0. |
365 |
|
|
366 |
IF (nsrf == is_oce) THEN |
IF (nsrf == is_oce) THEN |
367 |
DO j = 1, knon |
DO j = 1, knon |
368 |
yrugm(j) = 0.018 * ycdragm(j) * (yu(j, 1)**2 + yv(j, 1)**2) & |
yrugm(j) = 0.018 * ycdragm(j) * (yu(j, 1)**2 + yv(j, 1)**2) & |
371 |
yrugm(j) = max(1.5E-05, yrugm(j)) |
yrugm(j) = max(1.5E-05, yrugm(j)) |
372 |
END DO |
END DO |
373 |
END IF |
END IF |
|
DO j = 1, knon |
|
|
y_dflux_t(j) = y_dflux_t(j) * ypct(j) |
|
|
y_dflux_q(j) = y_dflux_q(j) * ypct(j) |
|
|
END DO |
|
374 |
|
|
375 |
DO k = 1, klev |
DO k = 1, klev |
376 |
DO j = 1, knon |
DO j = 1, knon |
410 |
ffonte(i, nsrf) = y_ffonte(j) |
ffonte(i, nsrf) = y_ffonte(j) |
411 |
cdragh(i) = cdragh(i) + ycdragh(j) * ypct(j) |
cdragh(i) = cdragh(i) + ycdragh(j) * ypct(j) |
412 |
cdragm(i) = cdragm(i) + ycdragm(j) * ypct(j) |
cdragm(i) = cdragm(i) + ycdragm(j) * ypct(j) |
413 |
dflux_t(i) = dflux_t(i) + y_dflux_t(j) |
dflux_t(i) = dflux_t(i) + y_dflux_t(j) * ypct(j) |
414 |
dflux_q(i) = dflux_q(i) + y_dflux_q(j) |
dflux_q(i) = dflux_q(i) + y_dflux_q(j) * ypct(j) |
415 |
END DO |
END DO |
416 |
IF (nsrf == is_ter) THEN |
IF (nsrf == is_ter) THEN |
417 |
qsol(ni(:knon)) = yqsol(:knon) |
qsol(ni(:knon)) = yqsol(:knon) |