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)
38 INTEGER,
INTENT(IN) ::
itime, jour, knon
39 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
40 LOGICAL,
INTENT(IN) :: debut
41 REAL,
INTENT(IN) ::
dtime
42 REAL,
DIMENSION(klon),
INTENT(IN) ::
tsurf
43 REAL,
DIMENSION(klon),
INTENT(IN) :: p1lay
44 REAL,
DIMENSION(klon),
INTENT(IN) :: tq_cdrag
45 REAL,
DIMENSION(klon),
INTENT(IN) :: precip_rain, precip_snow
46 REAL,
DIMENSION(klon),
INTENT(IN) :: temp_air, spechum
47 REAL,
DIMENSION(klon),
INTENT(IN) :: petacoef, peqacoef
48 REAL,
DIMENSION(klon),
INTENT(IN) :: petbcoef, peqbcoef
49 REAL,
DIMENSION(klon),
INTENT(IN) :: pref
50 REAL,
DIMENSION(klon),
INTENT(IN) :: u1, v1
51 REAL,
DIMENSION(klon),
INTENT(IN) :: rugoro
52 REAL,
DIMENSION(klon),
INTENT(IN) :: swnet, lwnet
56 REAL,
DIMENSION(klon),
INTENT(INOUT) :: snow,
qsol
57 REAL,
DIMENSION(klon),
INTENT(INOUT) :: agesno
58 REAL,
DIMENSION(klon, nsoilmx),
INTENT(INOUT) :: tsoil
62 REAL,
DIMENSION(klon),
INTENT(OUT) ::
qsurf
63 REAL,
DIMENSION(klon),
INTENT(OUT) :: z0_new
64 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb1_new, alb2_new
65 REAL,
DIMENSION(klon),
INTENT(OUT) :: evap, fluxsens, fluxlat
66 REAL,
DIMENSION(klon),
INTENT(OUT) :: tsurf_new
67 REAL,
DIMENSION(klon),
INTENT(OUT) :: dflux_s, dflux_l
71 REAL,
DIMENSION(klon) :: soilcap, soilflux
72 REAL,
DIMENSION(klon) :: cal,
beta, dif_grnd, capsol
73 REAL,
DIMENSION(klon) :: alb_neig, alb_lim
74 REAL,
DIMENSION(klon) :: zfra
75 REAL,
DIMENSION(klon) :: radsol
76 REAL,
DIMENSION(klon) :: u0, v0, u1_lay, v1_lay
77 REAL,
DIMENSION(klon) :: dummy_riverflow,dummy_coastalflow
95 radsol(1:knon) = swnet(1:knon) + lwnet(1:knon)
102 CALL
soil(
dtime, is_ter, knon, snow,
tsurf, tsoil, soilcap, soilflux)
104 cal(
i) = rcpd / soilcap(
i)
105 radsol(
i) = radsol(
i) + soilflux(
i)
108 cal(:) = rcpd * capsol(:)
109 IF (klon_glo .EQ. 1)
THEN
117 u1_lay(:) = u1(:) - u0(:)
118 v1_lay(:) = v1(:) - v0(:)
121 tsurf, p1lay, cal,
beta, tq_cdrag, pref, &
122 precip_rain, precip_snow, snow,
qsurf, &
123 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
124 petacoef, peqacoef, petbcoef, peqbcoef, &
125 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
131 tsurf, precip_rain, precip_snow, &
132 snow,
qsol, tsurf_new, evap)
136 CALL
albsno(klon,knon,
dtime,agesno(:),alb_neig(:), precip_snow(:))
138 WHERE (snow(1 : knon) .LT. 0.0001) agesno(1 : knon) = 0.
141 zfra(
i) = max(0.0,min(1.0, snow(
i)/(snow(
i)+10.0)))
142 alb_lim(
i) = alb_neig(
i) *zfra(
i) + alb_lim(
i)*(1.0-zfra(
i))
151 alb1_new(1:knon) = alb_lim(1:knon)
152 alb2_new(1:knon) = alb_lim(1:knon)
158 z0_new(
i) = max(1.5e-05,sqrt(z0_new(
i)**2 + rugoro(
i)**2))
164 IF (type_ocean==
'couple')
THEN
165 dummy_riverflow(:) = 0.0
166 dummy_coastalflow(:) = 0.0
168 dummy_riverflow, dummy_coastalflow)