5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE interfsurf_hq(julien, mu0, nisurf, knindex, tsoil, qsol, u1lay, & |
SUBROUTINE interfsurf_hq(julien, mu0, nisurf, knindex, tsoil, qsol, u1lay, & |
8 |
v1lay, temp_air, spechum, cdragh, tAcoef, qAcoef, tBcoef, qBcoef, & |
v1lay, temp_air, q1lay, cdragh, tAcoef, qAcoef, tBcoef, qBcoef, & |
9 |
rain_fall, snow_fall, 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, & |
43 |
real, intent(IN):: u1lay(:), v1lay(:) ! (knon) vitesse 1ere couche |
real, intent(IN):: u1lay(:), v1lay(:) ! (knon) vitesse 1ere couche |
44 |
|
|
45 |
real, intent(IN):: temp_air(:) ! (knon) temperature de l'air 1ere couche |
real, intent(IN):: temp_air(:) ! (knon) temperature de l'air 1ere couche |
46 |
real, intent(IN):: spechum(:) ! (knon) humidite specifique 1ere couche |
|
47 |
|
real, intent(IN):: q1lay(:) ! (knon) |
48 |
|
! humidit\'e sp\'ecifique de la premi\`ere couche |
49 |
|
|
50 |
real, intent(IN):: cdragh(:) ! (knon) coefficient d'echange |
real, intent(IN):: cdragh(:) ! (knon) coefficient d'echange |
51 |
|
|
52 |
real, intent(IN):: tAcoef(:), qAcoef(:) ! (knon) |
real, intent(IN):: tAcoef(:), qAcoef(:) ! (knon) |
67 |
real, intent(OUT):: qsurf(:) ! (knon) |
real, intent(OUT):: qsurf(:) ! (knon) |
68 |
real, intent(IN):: ts(:) ! (knon) temp\'erature de surface |
real, intent(IN):: ts(:) ! (knon) temp\'erature de surface |
69 |
real, intent(IN):: p1lay(:) ! (knon) pression 1er niveau (milieu de couche) |
real, intent(IN):: p1lay(:) ! (knon) pression 1er niveau (milieu de couche) |
70 |
real, intent(IN):: ps(:) ! (knon) pression au sol |
real, intent(IN):: ps(:) ! (knon) pression au sol, en Pa |
71 |
|
|
72 |
REAL, INTENT(IN):: radsol(:) ! (knon) |
REAL, INTENT(IN):: radsol(:) ! (knon) |
73 |
! surface net downward radiative flux, in W / m2 |
! surface net downward radiative flux, in W / m2 |
77 |
real, intent(OUT):: flux_t(:) ! (knon) flux de chaleur sensible |
real, intent(OUT):: flux_t(:) ! (knon) flux de chaleur sensible |
78 |
! (Cp T) à la surface, positif vers le bas, W / m2 |
! (Cp T) à la surface, positif vers le bas, W / m2 |
79 |
|
|
80 |
real, intent(OUT):: fluxlat(:) ! (knon) flux de chaleur latente |
real, intent(OUT):: fluxlat(:) ! (knon) flux de chaleur latente, en W m-2 |
81 |
real, intent(OUT):: dflux_l(:), dflux_s(:) ! (knon) |
real, intent(OUT):: dflux_l(:), dflux_s(:) ! (knon) |
82 |
real, intent(OUT):: tsurf_new(:) ! (knon) temp\'erature au sol |
real, intent(OUT):: tsurf_new(:) ! (knon) temp\'erature au sol |
83 |
real, intent(OUT):: albedo(:) ! (knon) albedo |
real, intent(OUT):: albedo(:) ! (knon) albedo |
131 |
cal = RCPD / soilcap |
cal = RCPD / soilcap |
132 |
|
|
133 |
CALL calcul_fluxs(ts, p1lay, cal, beta, cdragh, ps, qsurf, & |
CALL calcul_fluxs(ts, p1lay, cal, beta, cdragh, ps, qsurf, & |
134 |
radsol + soilflux, temp_air, spechum, u1lay, v1lay, tAcoef, & |
radsol + soilflux, temp_air, q1lay, u1lay, v1lay, tAcoef, & |
135 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
136 |
dflux_l, dif_grnd = 0.) |
dflux_l, dif_grnd = 0.) |
137 |
CALL fonte_neige(is_ter, rain_fall, snow_fall, snow, qsol, & |
CALL fonte_neige(is_ter, rain_fall, snow_fall, snow, qsol, & |
150 |
cal = 0. |
cal = 0. |
151 |
beta = 1. |
beta = 1. |
152 |
call calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, radsol, & |
call calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, radsol, & |
153 |
temp_air, spechum, u1lay, v1lay, tAcoef, qAcoef, tBcoef, qBcoef, & |
temp_air, q1lay, u1lay, v1lay, tAcoef, qAcoef, tBcoef, qBcoef, & |
154 |
tsurf_new, evap, fluxlat, flux_t, dflux_s, dflux_l, dif_grnd = 0.) |
tsurf_new, evap, fluxlat, flux_t, dflux_s, dflux_l, dif_grnd = 0.) |
155 |
agesno = 0. |
agesno = 0. |
156 |
albedo = alboc_cd(mu0) * fmagic |
albedo = alboc_cd(mu0) * fmagic |
174 |
tsurf = tsurf_new |
tsurf = tsurf_new |
175 |
beta = 1. |
beta = 1. |
176 |
CALL calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, & |
CALL calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, & |
177 |
radsol + soilflux, temp_air, spechum, u1lay, v1lay, tAcoef, & |
radsol + soilflux, temp_air, q1lay, u1lay, v1lay, tAcoef, & |
178 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
179 |
dflux_l, dif_grnd = 1. / tau_gl) |
dflux_l, dif_grnd = 1. / tau_gl) |
180 |
CALL fonte_neige(is_sic, rain_fall, snow_fall, snow, qsol, & |
CALL fonte_neige(is_sic, rain_fall, snow_fall, snow, qsol, & |
195 |
cal = RCPD / soilcap |
cal = RCPD / soilcap |
196 |
beta = 1. |
beta = 1. |
197 |
call calcul_fluxs(ts, p1lay, cal, beta, cdragh, ps, qsurf, & |
call calcul_fluxs(ts, p1lay, cal, beta, cdragh, ps, qsurf, & |
198 |
radsol + soilflux, temp_air, spechum, u1lay, v1lay, tAcoef, & |
radsol + soilflux, temp_air, q1lay, u1lay, v1lay, tAcoef, & |
199 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
200 |
dflux_l, dif_grnd = 0.) |
dflux_l, dif_grnd = 0.) |
201 |
call fonte_neige(is_lic, rain_fall, snow_fall, snow, qsol, & |
call fonte_neige(is_lic, rain_fall, snow_fall, snow, qsol, & |