10 SUBROUTINE surf_land(itime, dtime, date0, jour, knon, knindex, &
12 debut, lafin, zlev, ccanopy, swnet, lwnet,
albedo, &
13 tsurf, p1lay, cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, &
14 acoefh, acoefq, bcoefh, bcoefq, &
15 acoefu, acoefv, bcoefu, bcoefv, &
16 pref, u1, v1, rugoro, pctsrf, &
18 snow,
qsol, agesno, tsoil, &
19 z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, &
20 qsurf, tsurf_new, dflux_s, dflux_l, &
26 #ifdef ORCHIDEE_NOOPENMP
40 INTEGER,
INTENT(IN) ::
itime, jour, knon
41 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
42 REAL,
INTENT(IN) :: date0
43 REAL,
DIMENSION(klon),
INTENT(IN) ::
rlon,
rlat
44 LOGICAL,
INTENT(IN) :: debut, lafin
45 REAL,
INTENT(IN) ::
dtime
46 REAL,
DIMENSION(klon),
INTENT(IN) :: zlev, ccanopy
47 REAL,
DIMENSION(klon),
INTENT(IN) :: swnet, lwnet
48 REAL,
DIMENSION(klon),
INTENT(IN) ::
albedo
49 REAL,
DIMENSION(klon),
INTENT(IN) ::
tsurf
50 REAL,
DIMENSION(klon),
INTENT(IN) :: p1lay
51 REAL,
DIMENSION(klon),
INTENT(IN) :: cdragh, cdragm
52 REAL,
DIMENSION(klon),
INTENT(IN) :: precip_rain, precip_snow
53 REAL,
DIMENSION(klon),
INTENT(IN) :: temp_air, spechum
54 REAL,
DIMENSION(klon),
INTENT(IN) :: acoefh, acoefq, bcoefh, bcoefq
55 REAL,
DIMENSION(klon),
INTENT(IN) :: acoefu, acoefv, bcoefu, bcoefv
56 REAL,
DIMENSION(klon),
INTENT(IN) :: pref
57 REAL,
DIMENSION(klon),
INTENT(IN) :: u1, v1
58 REAL,
DIMENSION(klon),
INTENT(IN) :: rugoro
59 REAL,
DIMENSION(klon,nbsrf),
INTENT(IN) :: pctsrf
60 REAL,
DIMENSION(klon),
INTENT(IN) :: lwdown_m
62 REAL,
DIMENSION(klon),
INTENT(IN) :: q2m, t2m
66 REAL,
DIMENSION(klon),
INTENT(INOUT) :: snow,
qsol
67 REAL,
DIMENSION(klon),
INTENT(INOUT) :: agesno
68 REAL,
DIMENSION(klon, nsoilmx),
INTENT(INOUT) :: tsoil
72 REAL,
DIMENSION(klon),
INTENT(OUT) :: z0_new
73 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb1_new
74 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb2_new
75 REAL,
DIMENSION(klon),
INTENT(OUT) :: evap
76 REAL,
DIMENSION(klon),
INTENT(OUT) :: fluxsens, fluxlat
77 REAL,
DIMENSION(klon),
INTENT(OUT) ::
qsurf
78 REAL,
DIMENSION(klon),
INTENT(OUT) :: tsurf_new
79 REAL,
DIMENSION(klon),
INTENT(OUT) :: dflux_s, dflux_l
80 REAL,
DIMENSION(klon),
INTENT(OUT) :: flux_u1, flux_v1
84 REAL,
DIMENSION(klon) :: p1lay_tmp
85 REAL,
DIMENSION(klon) :: pref_tmp
86 REAL,
DIMENSION(klon) :: swdown
87 REAL,
DIMENSION(klon) :: lwdown
88 REAL,
DIMENSION(klon) :: epot_air
89 REAL,
DIMENSION(klon) :: tsol_rad, emis_new
90 REAL,
DIMENSION(klon) :: u0, v0
105 p1lay_tmp(1:knon) = p1lay(1:knon)/100.
106 pref_tmp(1:knon) = pref(1:knon)/100.
114 lwdown(
i) = lwnet(
i) + rsigma*
tsurf(
i)**4
121 epot_air(
i) = rcpd*temp_air(
i)*(pref(
i)/p1lay(
i))**rkappa
128 zlev, u1, v1, temp_air, spechum, epot_air, ccanopy, &
129 cdragh, acoefh, acoefq, bcoefh, bcoefq, &
130 precip_rain, precip_snow, lwdown_m, swnet, swdown, &
131 pref_tmp, q2m, t2m, &
132 evap, fluxsens, fluxlat, &
133 tsol_rad, tsurf_new, alb1_new, alb2_new, &
134 emis_new, z0_new,
qsurf)
140 z0_new(
i) = max(1.5e-05,sqrt(z0_new(
i)**2 + rugoro(
i)**2))
149 tsurf, p1lay, cdragh, precip_rain, precip_snow, temp_air, &
150 spechum, acoefh, acoefq, bcoefh, bcoefq, pref, &
151 u1, v1, rugoro, swnet, lwnet, &
152 snow,
qsol, agesno, tsoil, &
153 qsurf, z0_new, alb1_new, alb2_new, evap, &
154 fluxsens, fluxlat, tsurf_new, dflux_s, dflux_l)
166 u0, v0, u1, v1, cdragm, &
167 acoefu, acoefv, bcoefu, bcoefv, &