22 |
|
|
23 |
REAL, ALLOCATABLE, DIMENSION(:, :), SAVE :: tmp_rriv, tmp_rcoa, tmp_rlic |
REAL, ALLOCATABLE, DIMENSION(:, :), SAVE :: tmp_rriv, tmp_rcoa, tmp_rlic |
24 |
! pour simuler la fonte des glaciers antarctiques |
! pour simuler la fonte des glaciers antarctiques |
|
REAL, ALLOCATABLE, DIMENSION(:, :), SAVE :: coeff_iceberg |
|
|
real, save :: surf_maille |
|
|
real, save :: cte_flux_iceberg = 6.3e7 |
|
|
integer, save :: num_antarctic = 1 |
|
25 |
REAL, save :: tau_calv |
REAL, save :: tau_calv |
26 |
|
|
27 |
CONTAINS |
CONTAINS |
28 |
|
|
29 |
SUBROUTINE interfsurf_hq(itime, dtime, date0, jour, rmu0, & |
SUBROUTINE interfsurf_hq(itime, dtime, date0, jour, rmu0, klon, iim, jjm, & |
30 |
klon, iim, jjm, nisurf, knon, knindex, pctsrf, & |
nisurf, knon, knindex, pctsrf, rlon, rlat, cufi, cvfi, debut, lafin, & |
31 |
rlon, rlat, cufi, cvfi, & |
ok_veget, soil_model, nsoilmx, tsoil, qsol, zlev, u1_lay, v1_lay, & |
32 |
debut, lafin, ok_veget, soil_model, nsoilmx, tsoil, qsol, & |
temp_air, spechum, epot_air, ccanopy, tq_cdrag, petAcoef, peqAcoef, & |
33 |
zlev, u1_lay, v1_lay, temp_air, spechum, epot_air, ccanopy, & |
petBcoef, peqBcoef, precip_rain, precip_snow, sollw, sollwdown, swnet, & |
34 |
tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, & |
swdown, fder, taux, tauy, windsp, rugos, rugoro, albedo, snow, qsurf, & |
35 |
precip_rain, precip_snow, sollw, sollwdown, swnet, swdown, & |
tsurf, p1lay, ps, radsol, ocean, npas, nexca, zmasq, evap, fluxsens, & |
36 |
fder, taux, tauy, & |
fluxlat, dflux_l, dflux_s, tsol_rad, tsurf_new, alb_new, alblw, & |
37 |
windsp, & |
emis_new, z0_new, pctsrf_new, agesno, fqcalving, ffonte, & |
38 |
rugos, rugoro, & |
run_off_lic_0, flux_o, flux_g, tslab, seaice) |
|
albedo, snow, qsurf, & |
|
|
tsurf, p1lay, ps, radsol, & |
|
|
ocean, npas, nexca, zmasq, & |
|
|
evap, fluxsens, fluxlat, dflux_l, dflux_s, & |
|
|
tsol_rad, tsurf_new, alb_new, alblw, emis_new, & |
|
|
z0_new, pctsrf_new, agesno, fqcalving, ffonte, run_off_lic_0, & |
|
|
flux_o, flux_g, tslab, seaice) |
|
39 |
|
|
40 |
! Cette routine sert d'aiguillage entre l'atmosphère et la surface |
! Cette routine sert d'aiguillage entre l'atmosphère et la surface |
41 |
! en général (sols continentaux, océans, glaces) pour les flux de |
! en général (sols continentaux, océans, glaces) pour les flux de |
1340 |
|
|
1341 |
! Traitement neige et humidite du sol |
! Traitement neige et humidite du sol |
1342 |
|
|
|
!!$ WRITE(*, *)'test calcul_flux, surface ', nisurf |
|
|
!!PB test |
|
|
!!$ if (nisurf == is_oce) then |
|
|
!!$ snow = 0. |
|
|
!!$ qsol = max_eau_sol |
|
|
!!$ else |
|
|
!!$ where (precip_snow > 0.) snow = snow + (precip_snow * dtime) |
|
|
!!$ where (snow > epsilon(snow)) snow = max(0.0, snow - (evap * dtime)) |
|
|
!!$! snow = max(0.0, snow + (precip_snow - evap) * dtime) |
|
|
!!$ where (precip_rain > 0.) qsol = qsol + (precip_rain - evap) * dtime |
|
|
!!$ endif |
|
|
!!$ IF (nisurf /= is_ter) qsol = max_eau_sol |
|
|
|
|
|
|
|
1343 |
! Initialisation |
! Initialisation |
1344 |
|
|
1345 |
evap = 0. |
evap = 0. |