4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE interfsurf_hq(julien, mu0, nisurf, knindex, tsoil, qsol, u1_lay, & |
SUBROUTINE interfsurf_hq(julien, mu0, nisurf, knindex, tsoil, qsol, u1lay, & |
8 |
v1_lay, temp_air, spechum, tq_cdrag, tAcoef, qAcoef, tBcoef, qBcoef, & |
v1lay, temp_air, spechum, 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, & |
40 |
REAL, intent(INOUT):: qsol(:) ! (knon) |
REAL, intent(INOUT):: qsol(:) ! (knon) |
41 |
! column-density of water in soil, in kg m-2 |
! column-density of water in soil, in kg m-2 |
42 |
|
|
43 |
real, intent(IN):: u1_lay(:), v1_lay(:) ! (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 |
real, intent(IN):: spechum(:) ! (knon) humidite specifique 1ere couche |
47 |
real, intent(IN):: tq_cdrag(:) ! (knon) coefficient d'echange |
real, intent(IN):: cdragh(:) ! (knon) coefficient d'echange |
48 |
|
|
49 |
real, intent(IN):: tAcoef(:), qAcoef(:) ! (knon) |
real, intent(IN):: tAcoef(:), qAcoef(:) ! (knon) |
50 |
! coefficients A de la r\'esolution de la couche limite pour t et q |
! coefficients A de la r\'esolution de la couche limite pour t et q |
65 |
real, intent(IN):: ts(:) ! (knon) temp\'erature de surface |
real, intent(IN):: ts(:) ! (knon) temp\'erature de surface |
66 |
real, intent(IN):: p1lay(:) ! (knon) pression 1er niveau (milieu de couche) |
real, intent(IN):: p1lay(:) ! (knon) pression 1er niveau (milieu de couche) |
67 |
real, intent(IN):: ps(:) ! (knon) pression au sol |
real, intent(IN):: ps(:) ! (knon) pression au sol |
68 |
REAL, INTENT(IN):: radsol(:) ! (knon) rayonnement net au sol (LW + SW) |
|
69 |
|
REAL, INTENT(IN):: radsol(:) ! (knon) |
70 |
|
! surface net downward radiative flux, in W / m2 |
71 |
|
|
72 |
real, intent(OUT):: evap(:) ! (knon) evaporation totale |
real, intent(OUT):: evap(:) ! (knon) evaporation totale |
73 |
|
|
74 |
real, intent(OUT):: flux_t(:) ! (knon) flux de chaleur sensible |
real, intent(OUT):: flux_t(:) ! (knon) flux de chaleur sensible |
127 |
CALL soil(is_ter, snow, ts, tsoil, soilcap, soilflux) |
CALL soil(is_ter, snow, ts, tsoil, soilcap, soilflux) |
128 |
cal = RCPD / soilcap |
cal = RCPD / soilcap |
129 |
|
|
130 |
CALL calcul_fluxs(ts, p1lay, cal, beta, tq_cdrag, ps, qsurf, & |
CALL calcul_fluxs(ts, p1lay, cal, beta, cdragh, ps, qsurf, & |
131 |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
radsol + soilflux, temp_air, spechum, u1lay, v1lay, tAcoef, & |
132 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
133 |
dflux_l, dif_grnd = 0.) |
dflux_l, dif_grnd = 0.) |
134 |
CALL fonte_neige(is_ter, rain_fall, snow_fall, snow, qsol, & |
CALL fonte_neige(is_ter, rain_fall, snow_fall, snow, qsol, & |
146 |
call limit_read_sst(julien, knindex, tsurf) |
call limit_read_sst(julien, knindex, tsurf) |
147 |
cal = 0. |
cal = 0. |
148 |
beta = 1. |
beta = 1. |
149 |
call calcul_fluxs(tsurf, p1lay, cal, beta, tq_cdrag, ps, qsurf, radsol, & |
call calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, radsol, & |
150 |
temp_air, spechum, u1_lay, v1_lay, tAcoef, qAcoef, tBcoef, qBcoef, & |
temp_air, spechum, u1lay, v1lay, tAcoef, qAcoef, tBcoef, qBcoef, & |
151 |
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.) |
152 |
agesno = 0. |
agesno = 0. |
153 |
albedo = alboc_cd(mu0) * fmagic |
albedo = alboc_cd(mu0) * fmagic |
170 |
cal = RCPD / soilcap |
cal = RCPD / soilcap |
171 |
tsurf = tsurf_new |
tsurf = tsurf_new |
172 |
beta = 1. |
beta = 1. |
173 |
CALL calcul_fluxs(tsurf, p1lay, cal, beta, tq_cdrag, ps, qsurf, & |
CALL calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, & |
174 |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
radsol + soilflux, temp_air, spechum, u1lay, v1lay, tAcoef, & |
175 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
176 |
dflux_l, dif_grnd = 1. / tau_gl) |
dflux_l, dif_grnd = 1. / tau_gl) |
177 |
CALL fonte_neige(is_sic, rain_fall, snow_fall, snow, qsol, & |
CALL fonte_neige(is_sic, rain_fall, snow_fall, snow, qsol, & |
191 |
CALL soil(is_lic, snow, ts, tsoil, soilcap, soilflux) |
CALL soil(is_lic, snow, ts, tsoil, soilcap, soilflux) |
192 |
cal = RCPD / soilcap |
cal = RCPD / soilcap |
193 |
beta = 1. |
beta = 1. |
194 |
call calcul_fluxs(ts, p1lay, cal, beta, tq_cdrag, ps, qsurf, & |
call calcul_fluxs(ts, p1lay, cal, beta, cdragh, ps, qsurf, & |
195 |
radsol + soilflux, temp_air, spechum, u1_lay, v1_lay, tAcoef, & |
radsol + soilflux, temp_air, spechum, u1lay, v1lay, tAcoef, & |
196 |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
qAcoef, tBcoef, qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, & |
197 |
dflux_l, dif_grnd = 0.) |
dflux_l, dif_grnd = 0.) |
198 |
call fonte_neige(is_lic, rain_fall, snow_fall, snow, qsol, & |
call fonte_neige(is_lic, rain_fall, snow_fall, snow, qsol, & |