6 |
|
|
7 |
SUBROUTINE interfsurf_hq(julien, mu0, nisurf, knindex, tsoil, qsol, u1_lay, & |
SUBROUTINE interfsurf_hq(julien, mu0, nisurf, knindex, tsoil, qsol, u1_lay, & |
8 |
v1_lay, temp_air, spechum, tq_cdrag, tAcoef, qAcoef, tBcoef, qBcoef, & |
v1_lay, temp_air, spechum, tq_cdrag, tAcoef, qAcoef, tBcoef, qBcoef, & |
9 |
precip_rain, precip_snow, rugos, rugoro, snow, qsurf, ts, p1lay, ps, & |
rain_fall, snow_fall, rugos, rugoro, snow, qsurf, ts, p1lay, ps, & |
10 |
radsol, evap, flux_t, fluxlat, dflux_l, dflux_s, tsurf_new, albedo, & |
radsol, evap, flux_t, fluxlat, dflux_l, dflux_s, tsurf_new, albedo, & |
11 |
z0_new, pctsrf_new_sic, agesno, fqcalving, ffonte, run_off_lic_0, & |
z0_new, pctsrf_new_sic, agesno, fqcalving, ffonte, run_off_lic_0, & |
12 |
run_off_lic) |
run_off_lic) |
52 |
real, intent(IN):: tBcoef(:), qBcoef(:) ! (knon) |
real, intent(IN):: tBcoef(:), qBcoef(:) ! (knon) |
53 |
! coefficients B de la r\'esolution de la couche limite pour t et q |
! coefficients B de la r\'esolution de la couche limite pour t et q |
54 |
|
|
55 |
real, intent(IN):: precip_rain(:) ! (knon) |
real, intent(IN):: rain_fall(:) ! (knon) |
56 |
! precipitation, liquid water mass flux (kg / m2 / s), positive down |
! precipitation, liquid water mass flux (kg / m2 / s), positive down |
57 |
|
|
58 |
real, intent(IN):: precip_snow(:) ! (knon) |
real, intent(IN):: snow_fall(:) ! (knon) |
59 |
! precipitation, solid water mass flux (kg / m2 / s), positive down |
! precipitation, solid water mass flux (kg / m2 / s), positive down |
60 |
|
|
61 |
real, intent(IN):: rugos(:) ! (knon) rugosite |
real, intent(IN):: rugos(:) ! (knon) rugosite |
128 |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
129 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
130 |
dflux_l, dif_grnd = 0.) |
dflux_l, dif_grnd = 0.) |
131 |
CALL fonte_neige(is_ter, precip_rain, precip_snow, snow, qsol, & |
CALL fonte_neige(is_ter, rain_fall, snow_fall, snow, qsol, & |
132 |
tsurf_new, evap, fqcalving, ffonte, run_off_lic_0, run_off_lic) |
tsurf_new, evap, fqcalving, ffonte, run_off_lic_0, run_off_lic) |
133 |
|
|
134 |
call albsno(agesno, alb_neig, precip_snow) |
call albsno(agesno, alb_neig, snow_fall) |
135 |
where (snow < 0.0001) agesno = 0. |
where (snow < 0.0001) agesno = 0. |
136 |
zfra = max(0., min(1., snow / (snow + 10.))) |
zfra = max(0., min(1., snow / (snow + 10.))) |
137 |
albedo = alb_neig * zfra + albedo * (1. - zfra) |
albedo = alb_neig * zfra + albedo * (1. - zfra) |
171 |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
172 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
173 |
dflux_l, dif_grnd = 1. / tau_gl) |
dflux_l, dif_grnd = 1. / tau_gl) |
174 |
CALL fonte_neige(is_sic, precip_rain, precip_snow, snow, qsol, & |
CALL fonte_neige(is_sic, rain_fall, snow_fall, snow, qsol, & |
175 |
tsurf_new, evap, fqcalving, ffonte, run_off_lic_0, run_off_lic) |
tsurf_new, evap, fqcalving, ffonte, run_off_lic_0, run_off_lic) |
176 |
|
|
177 |
! Compute the albedo: |
! Compute the albedo: |
178 |
|
|
179 |
CALL albsno(agesno, alb_neig, precip_snow) |
CALL albsno(agesno, alb_neig, snow_fall) |
180 |
WHERE (snow < 0.0001) agesno = 0. |
WHERE (snow < 0.0001) agesno = 0. |
181 |
zfra = MAX(0., MIN(1., snow / (snow + 10.))) |
zfra = MAX(0., MIN(1., snow / (snow + 10.))) |
182 |
albedo = alb_neig * zfra + 0.6 * (1. - zfra) |
albedo = alb_neig * zfra + 0.6 * (1. - zfra) |
192 |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
193 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
194 |
dflux_l, dif_grnd = 0.) |
dflux_l, dif_grnd = 0.) |
195 |
call fonte_neige(is_lic, precip_rain, precip_snow, snow, qsol, & |
call fonte_neige(is_lic, rain_fall, snow_fall, snow, qsol, & |
196 |
tsurf_new, evap, fqcalving, ffonte, run_off_lic_0, run_off_lic) |
tsurf_new, evap, fqcalving, ffonte, run_off_lic_0, run_off_lic) |
197 |
|
|
198 |
! calcul albedo |
! calcul albedo |
199 |
CALL albsno(agesno, alb_neig, precip_snow) |
CALL albsno(agesno, alb_neig, snow_fall) |
200 |
WHERE (snow < 0.0001) agesno = 0. |
WHERE (snow < 0.0001) agesno = 0. |
201 |
albedo = 0.77 |
albedo = 0.77 |
202 |
|
|