6 |
|
|
7 |
SUBROUTINE interfsurf_hq(dtime, julien, rmu0, nisurf, knindex, debut, & |
SUBROUTINE interfsurf_hq(dtime, julien, rmu0, nisurf, knindex, debut, & |
8 |
tsoil, qsol, u1_lay, v1_lay, temp_air, spechum, tq_cdrag, petAcoef, & |
tsoil, qsol, u1_lay, v1_lay, temp_air, spechum, tq_cdrag, petAcoef, & |
9 |
peqAcoef, petBcoef, peqBcoef, precip_rain, precip_snow, fder, rugos, & |
peqAcoef, petBcoef, peqBcoef, precip_rain, precip_snow, rugos, rugoro, & |
10 |
rugoro, snow, qsurf, ts, p1lay, ps, radsol, evap, flux_t, fluxlat, & |
snow, qsurf, ts, p1lay, ps, radsol, evap, flux_t, fluxlat, dflux_l, & |
11 |
dflux_l, dflux_s, tsurf_new, albedo, z0_new, pctsrf_new_sic, agesno, & |
dflux_s, tsurf_new, albedo, z0_new, pctsrf_new_sic, agesno, fqcalving, & |
12 |
fqcalving, ffonte, run_off_lic_0) |
ffonte, run_off_lic_0) |
13 |
|
|
14 |
! Cette routine sert d'aiguillage entre l'atmosph\`ere et la surface |
! Cette routine sert d'aiguillage entre l'atmosph\`ere et la surface |
15 |
! en g\'en\'eral (sols continentaux, oc\'eans, glaces) pour les flux de |
! en g\'en\'eral (sols continentaux, oc\'eans, glaces) pour les flux de |
68 |
real, intent(IN):: precip_snow(klon) |
real, intent(IN):: precip_snow(klon) |
69 |
! precipitation, solid water mass flux (kg / m2 / s), positive down |
! precipitation, solid water mass flux (kg / m2 / s), positive down |
70 |
|
|
|
REAL, INTENT(INOUT):: fder(:) ! (knon) derivee des flux (pour le couplage) |
|
71 |
real, intent(IN):: rugos(klon) ! rugosite |
real, intent(IN):: rugos(klon) ! rugosite |
72 |
real, intent(IN):: rugoro(klon) ! rugosite orographique |
real, intent(IN):: rugoro(klon) ! rugosite orographique |
73 |
real, intent(INOUT):: snow(:) ! (knon) |
real, intent(INOUT):: snow(:) ! (knon) |
204 |
v1_lay(:knon), petAcoef(:knon), peqAcoef(:knon), petBcoef(:knon), & |
v1_lay(:knon), petAcoef(:knon), peqAcoef(:knon), petBcoef(:knon), & |
205 |
peqBcoef(:knon), tsurf_new, evap, fluxlat, flux_t, dflux_s, dflux_l) |
peqBcoef(:knon), tsurf_new, evap, fluxlat, flux_t, dflux_s, dflux_l) |
206 |
agesno = 0. |
agesno = 0. |
|
fder = fder + dflux_s + dflux_l |
|
207 |
albedo = alboc_cd(rmu0(knindex)) * fmagic |
albedo = alboc_cd(rmu0(knindex)) * fmagic |
208 |
z0_new = sqrt(rugos**2 + rugoro**2) |
z0_new = sqrt(rugos**2 + rugoro**2) |
209 |
case (is_sic) |
case (is_sic) |
252 |
zfra = MAX(0., MIN(1., snow / (snow + 10.))) |
zfra = MAX(0., MIN(1., snow / (snow + 10.))) |
253 |
albedo = alb_neig * zfra + 0.6 * (1. - zfra) |
albedo = alb_neig * zfra + 0.6 * (1. - zfra) |
254 |
|
|
|
fder = fder + dflux_s + dflux_l |
|
255 |
z0_new = SQRT(0.002**2 + rugoro**2) |
z0_new = SQRT(0.002**2 + rugoro**2) |
256 |
case (is_lic) |
case (is_lic) |
257 |
! Surface "glacier continentaux" appel a l'interface avec le sol |
! Surface "glacier continentaux" appel a l'interface avec le sol |