11 swnet, lwnet,
tsurf, p1lay, &
12 cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, &
13 acoefh, acoefq, bcoefh, bcoefq, &
14 acoefu, acoefv, bcoefu, bcoefv, &
15 ps, u1, v1, rugoro, pctsrf, &
17 tsoil, z0_new, alb1, alb2, evap, fluxsens, fluxlat, &
18 tsurf_new, dflux_s, dflux_l, &
24 USE cpl_mod, ONLY : cpl_send_landice_fields
35 INTEGER,
INTENT(IN) ::
itime, knon
36 INTEGER,
DIMENSION(klon),
INTENT(in) :: knindex
37 REAL,
INTENT(in) ::
dtime
38 REAL,
DIMENSION(klon),
INTENT(IN) :: swnet
39 REAL,
DIMENSION(klon),
INTENT(IN) :: lwnet
40 REAL,
DIMENSION(klon),
INTENT(IN) ::
tsurf
41 REAL,
DIMENSION(klon),
INTENT(IN) :: p1lay
42 REAL,
DIMENSION(klon),
INTENT(IN) :: cdragh, cdragm
43 REAL,
DIMENSION(klon),
INTENT(IN) :: precip_rain, precip_snow
44 REAL,
DIMENSION(klon),
INTENT(IN) :: temp_air, spechum
45 REAL,
DIMENSION(klon),
INTENT(IN) :: acoefh, acoefq
46 REAL,
DIMENSION(klon),
INTENT(IN) :: bcoefh, bcoefq
47 REAL,
DIMENSION(klon),
INTENT(IN) :: acoefu, acoefv, bcoefu, bcoefv
48 REAL,
DIMENSION(klon),
INTENT(IN) :: ps
49 REAL,
DIMENSION(klon),
INTENT(IN) :: u1, v1
50 REAL,
DIMENSION(klon),
INTENT(IN) :: rugoro
51 REAL,
DIMENSION(klon,nbsrf),
INTENT(IN) :: pctsrf
55 REAL,
DIMENSION(klon),
INTENT(INOUT) :: snow,
qsol
56 REAL,
DIMENSION(klon),
INTENT(INOUT) :: agesno
57 REAL,
DIMENSION(klon, nsoilmx),
INTENT(INOUT) :: tsoil
61 REAL,
DIMENSION(klon),
INTENT(OUT) ::
qsurf
62 REAL,
DIMENSION(klon),
INTENT(OUT) :: z0_new
63 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb1
64 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb2
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
68 REAL,
DIMENSION(klon),
INTENT(OUT) :: flux_u1, flux_v1
72 REAL,
DIMENSION(klon) :: soilcap, soilflux
73 REAL,
DIMENSION(klon) :: cal,
beta, dif_grnd
74 REAL,
DIMENSION(klon) :: zfra, alb_neig
75 REAL,
DIMENSION(klon) :: radsol
76 REAL,
DIMENSION(klon) :: u0, v0, u1_lay, v1_lay
91 radsol(1:knon) = swnet(1:knon) + lwnet(1:knon)
98 CALL
soil(
dtime, is_lic, knon, snow,
tsurf, tsoil, soilcap, soilflux)
99 cal(1:knon) = rcpd / soilcap(1:knon)
100 radsol(1:knon) = radsol(1:knon) + soilflux(1:knon)
103 WHERE (snow > 0.0) cal = rcpd * calsno
117 u1_lay(:) = u1(:) - u0(:)
118 v1_lay(:) = v1(:) - v0(:)
122 precip_rain, precip_snow, snow,
qsurf, &
123 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
124 acoefh, acoefq, bcoefh, bcoefq, &
125 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
128 u0, v0, u1, v1, cdragm, &
129 acoefu, acoefv, bcoefu, bcoefv, &
138 tsurf, precip_rain, precip_snow, &
139 snow,
qsol, tsurf_new, evap)
146 CALL
albsno(klon,knon,
dtime,agesno(:),alb_neig(:), precip_snow(:))
147 WHERE (snow(1 : knon) .LT. 0.0001) agesno(1 : knon) = 0.
148 zfra(1:knon) = max(0.0,min(1.0,snow(1:knon)/(snow(1:knon)+10.0)))
149 alb1(1:knon) = alb_neig(1:knon)*zfra(1:knon) + &
150 0.6 * (1.0-zfra(1:knon))
161 alb2(1:knon) = alb1(1:knon)
168 z0_new(:) = max(1.e-3,rugoro(:))
175 IF (type_ocean==
'couple')
THEN