7 t_2m, q_2m, t_10m, q_10m, u_10m, ustar)
46 INTEGER,
intent(in) :: klon, knon,
nsrf
47 LOGICAL,
intent(in) :: zxli
48 REAL,
dimension(klon),
intent(in) :: u1, v1, t1, q1, z1, ts1
49 REAL,
dimension(klon),
intent(in) ::
qsurf,
rugos
50 REAL,
dimension(klon),
intent(in) :: psol, pat1
52 REAL,
dimension(klon),
intent(out) :: t_2m, q_2m, ustar
53 REAL,
dimension(klon),
intent(out) :: u_10m, t_10m, q_10m
62 REAL,
PARAMETER :: rkar=0.40
65 INTEGER,
parameter :: niter=2, ncon=niter-1
70 REAL,
dimension(klon) :: speed
72 REAL,
dimension(klon) :: tpot
73 REAL,
dimension(klon) :: zri1, cdran
74 REAL,
dimension(klon) :: cdram, cdrah
76 REAL,
dimension(klon) :: ri1
77 REAL,
dimension(klon) :: testar, qstar
78 REAL,
dimension(klon) :: zdte, zdq
80 DOUBLE PRECISION,
dimension(klon) :: lmon
81 DOUBLE PRECISION,
parameter ::
eps=1.0d-20
82 REAL,
dimension(klon) :: delu, delte, delq
83 REAL,
dimension(klon) :: u_zref, te_zref, q_zref
84 REAL,
dimension(klon) ::
temp, pref
86 REAL,
dimension(klon) :: u_zref_p, te_zref_p, temp_p, q_zref_p
88 REAL,
dimension(klon) :: te_zref_con, q_zref_con
89 REAL,
dimension(klon) :: u_zref_c, te_zref_c, temp_c, q_zref_c
90 REAL,
dimension(klon) :: ok_pred, ok_corr
94 speed(
i)=sqrt(u1(
i)**2+v1(
i)**2)
100 & speed, t1, q1, z1, psol, &
102 & cdram, cdrah, cdran, zri1, pref)
108 tpot(
i) = t1(
i)* (psol(
i)/pat1(
i))**rkappa
109 ustar(
i) = sqrt(cdram(
i) * speed(
i) * speed(
i))
110 zdte(
i) = tpot(
i) - ts1(
i)
111 zdq(
i) = max(q1(
i),0.0) - max(
qsurf(
i),0.0)
115 zdte(
i) = sign(max(abs(zdte(
i)),1.e-10),zdte(
i))
117 testar(
i) = (cdrah(
i) * zdte(
i) * speed(
i))/ustar(
i)
118 qstar(
i) = (cdrah(
i) * zdq(
i) * speed(
i))/ustar(
i)
119 lmon(
i) = (ustar(
i) * ustar(
i) * tpot(
i))/ &
120 & (rkar * rg * testar(
i))
127 & ustar, testar, qstar, zref, &
132 q_zref(
i) = max(
qsurf(
i),0.0) + delq(
i)
133 te_zref(
i) = ts1(
i) + delte(
i)
134 temp(
i) = te_zref(
i) * (psol(
i)/pat1(
i))**(-rkappa)
135 q_zref_p(
i) = q_zref(
i)
146 & u_zref,
temp, q_zref, zref, &
148 & ustar, testar, qstar, okri, ri1, &
149 & pref, delu, delte, delq)
153 q_zref(
i) = delq(
i) + max(
qsurf(
i),0.0)
154 te_zref(
i) = delte(
i) + ts1(
i)
158 temp(
i) = te_zref(
i) * (psol(
i)/pref(
i))**(-rkappa)
169 te_zref_con(
i) = te_zref(
i)
170 q_zref_con(
i) = q_zref(
i)
191 q_zref_c(
i) = q_zref(
i)
210 t_2m(
i) = temp_p(
i) * ok_pred(
i) + temp_c(
i) * ok_corr(
i)
211 q_2m(
i) = q_zref_p(
i) * ok_pred(
i) + q_zref_c(
i) * ok_corr(
i)
229 & ustar, testar, qstar, zref, &
234 q_zref(
i) = max(
qsurf(
i),0.0) + delq(
i)
235 te_zref(
i) = ts1(
i) + delte(
i)
236 temp(
i) = te_zref(
i) * (psol(
i)/pat1(
i))**(-rkappa)
239 u_zref_p(
i) = u_zref(
i)
248 & u_zref,
temp, q_zref, zref, &
250 & ustar, testar, qstar, okri, ri1, &
251 & pref, delu, delte, delq)
255 q_zref(
i) = delq(
i) + max(
qsurf(
i),0.0)
256 te_zref(
i) = delte(
i) + ts1(
i)
257 temp(
i) = te_zref(
i) * (psol(
i)/pref(
i))**(-rkappa)
265 u_zref_c(
i) = u_zref(
i)
267 u_10m(
i) = u_zref_p(
i) * ok_pred(
i) + u_zref_c(
i) * ok_corr(
i)
270 q_zref_c(
i) = q_zref(
i)
272 t_10m(
i) = temp_p(
i) * ok_pred(
i) + temp_c(
i) * ok_corr(
i)
273 q_10m(
i) = q_zref_p(
i) * ok_pred(
i) + q_zref_c(
i) * ok_corr(
i)