13 tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, &
14 spechum, petacoef, peqacoef, petbcoef, peqbcoef, pref, &
15 u1, v1, rugoro, swnet, lwnet, &
16 snow,
qsol, agesno, tsoil, &
17 qsurf, z0_new, alb1_new, alb2_new, evap, &
18 fluxsens, fluxlat, tsurf_new, dflux_s, dflux_l)
39 INTEGER,
INTENT(IN) ::
itime, jour, knon
40 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
41 LOGICAL,
INTENT(IN) :: debut
42 REAL,
INTENT(IN) ::
dtime
43 REAL,
DIMENSION(klon),
INTENT(IN) ::
tsurf
44 REAL,
DIMENSION(klon),
INTENT(IN) :: p1lay
45 REAL,
DIMENSION(klon),
INTENT(IN) :: tq_cdrag
46 REAL,
DIMENSION(klon),
INTENT(IN) :: precip_rain, precip_snow
47 REAL,
DIMENSION(klon),
INTENT(IN) :: temp_air, spechum
48 REAL,
DIMENSION(klon),
INTENT(IN) :: petacoef, peqacoef
49 REAL,
DIMENSION(klon),
INTENT(IN) :: petbcoef, peqbcoef
50 REAL,
DIMENSION(klon),
INTENT(IN) :: pref
51 REAL,
DIMENSION(klon),
INTENT(IN) :: u1, v1
52 REAL,
DIMENSION(klon),
INTENT(IN) :: rugoro
53 REAL,
DIMENSION(klon),
INTENT(IN) :: swnet, lwnet
57 REAL,
DIMENSION(klon),
INTENT(INOUT) :: snow,
qsol
58 REAL,
DIMENSION(klon),
INTENT(INOUT) :: agesno
59 REAL,
DIMENSION(klon, nsoilmx),
INTENT(INOUT) :: tsoil
63 REAL,
DIMENSION(klon),
INTENT(OUT) ::
qsurf
64 REAL,
DIMENSION(klon),
INTENT(OUT) :: z0_new
65 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb1_new, alb2_new
66 REAL,
DIMENSION(klon),
INTENT(OUT) :: evap, fluxsens, fluxlat
67 REAL,
DIMENSION(klon),
INTENT(OUT) :: tsurf_new
68 REAL,
DIMENSION(klon),
INTENT(OUT) :: dflux_s, dflux_l
72 REAL,
DIMENSION(klon) :: soilcap, soilflux
73 REAL,
DIMENSION(klon) :: cal,
beta, dif_grnd, capsol
74 REAL,
DIMENSION(klon) :: alb_neig, alb_lim
75 REAL,
DIMENSION(klon) :: zfra
76 REAL,
DIMENSION(klon) :: radsol
77 REAL,
DIMENSION(klon) :: u0, v0, u1_lay, v1_lay
78 REAL,
DIMENSION(klon) :: dummy_riverflow,dummy_coastalflow
96 radsol(1:knon) = swnet(1:knon) + lwnet(1:knon)
100 if (type_veget==
'betaclim')
then
106 CALL
soil(
dtime, is_ter, knon, snow,
tsurf, tsoil, soilcap, soilflux)
108 cal(
i) = rcpd / soilcap(
i)
109 radsol(
i) = radsol(
i) + soilflux(
i)
112 cal(:) = rcpd * capsol(:)
113 IF (klon_glo .EQ. 1)
THEN
121 u1_lay(:) = u1(:) - u0(:)
122 v1_lay(:) = v1(:) - v0(:)
125 tsurf, p1lay, cal,
beta, tq_cdrag, pref, &
126 precip_rain, precip_snow, snow,
qsurf, &
127 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
128 petacoef, peqacoef, petbcoef, peqbcoef, &
129 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
135 tsurf, precip_rain, precip_snow, &
136 snow,
qsol, tsurf_new, evap)
140 CALL
albsno(klon,knon,
dtime,agesno(:),alb_neig(:), precip_snow(:))
142 WHERE (snow(1 : knon) .LT. 0.0001) agesno(1 : knon) = 0.
145 zfra(
i) = max(0.0,min(1.0, snow(
i)/(snow(
i)+10.0)))
146 alb_lim(
i) = alb_neig(
i) *zfra(
i) + alb_lim(
i)*(1.0-zfra(
i))
155 alb1_new(1:knon) = alb_lim(1:knon)
156 alb2_new(1:knon) = alb_lim(1:knon)
162 z0_new(
i) = max(1.5e-05,sqrt(z0_new(
i)**2 + rugoro(
i)**2))
168 IF (type_ocean==
'couple')
THEN
169 dummy_riverflow(:) = 0.0
170 dummy_coastalflow(:) = 0.0
172 dummy_riverflow, dummy_coastalflow)