SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
coupling_watflux_sbln.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ###############################################################################
6 SUBROUTINE coupling_watflux_sbl_n (WM, DST, SLT, &
7  hprogram, hcoupling, ptimec, ptstep, kyear, kmonth, kday, ptime, &
8  ki, ksv, ksw, ptsun, pzenith, pzenith2, pazim, pzref, puref, pu, pv, &
9  pqa, pta, prhoa, psv, pco2, hsv,prain, psnow, plw, pdir_sw, psca_sw, &
10  psw_bands, pps, ppa, psftq, psfth, psfts, psfco2, psfu, psfv, &
11  ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
12  ppew_a_coef, ppew_b_coef, ppet_a_coef, ppeq_a_coef, ppet_b_coef, &
13  ppeq_b_coef, htest )
14 ! ###############################################################################
15 !
16 !!**** *COUPLING_WATFLUX_SBL_n * - Adds a SBL into SEAFLUX
17 !!
18 !! PURPOSE
19 !! -------
20 !
21 !!** METHOD
22 !! ------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !!
28 !! AUTHOR
29 !! ------
30 !! V. Masson
31 !!
32 !! MODIFICATIONS
33 !! -------------
34 !! Original 09/2007
35 !! V. Masson 05/2009 Implicitation of momentum fluxes
36 !! S. Riette 06/2009 Initialisation of XT, PQ, XU and XTKE on canopy levels
37 !! S. Riette 10/2009 Iterative computation of XZ0
38 !! S. Riette 01/2010 Use of interpol_sbl to compute 10m wind diagnostic
39 !! B. Decharme 04/2013 new coupling variables
40 !----------------------------------------------------------------
41 !
42 !
44 USE modd_dst_n, ONLY : dst_t
45 USE modd_slt_n, ONLY : slt_t
46 !
47 USE modd_surf_par, ONLY : xundef
48 USE modd_csts, ONLY : xcpd
49 !
51 !
52 USE modi_init_water_sbl
53 !
54 USE modi_canopy_evol
55 USE modi_canopy_grid_update
56 !
57 USE modi_coupling_watflux_n
58 !
59 USE yomhook ,ONLY : lhook, dr_hook
60 USE parkind1 ,ONLY : jprb
61 !
62 IMPLICIT NONE
63 !
64 !* 0.1 declarations of arguments
65 !
66 !
67 TYPE(watflux_model_t), INTENT(INOUT) :: wm
68 TYPE(dst_t), INTENT(INOUT) :: dst
69 TYPE(slt_t), INTENT(INOUT) :: slt
70 !
71  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
72  CHARACTER(LEN=1), INTENT(IN) :: hcoupling ! type of coupling
73  ! 'E' : explicit
74  ! 'I' : implicit
75  REAL, INTENT(IN) :: ptimec ! cumulated time since beginning of simulation
76 INTEGER, INTENT(IN) :: kyear ! current year (UTC)
77 INTEGER, INTENT(IN) :: kmonth ! current month (UTC)
78 INTEGER, INTENT(IN) :: kday ! current day (UTC)
79 REAL, INTENT(IN) :: ptime ! current time since midnight (UTC, s)
80 INTEGER, INTENT(IN) :: ki ! number of points
81 INTEGER, INTENT(IN) :: ksv ! number of scalars
82 INTEGER, INTENT(IN) :: ksw ! number of short-wave spectral bands
83 REAL, DIMENSION(KI), INTENT(IN) :: ptsun ! solar time (s from midnight)
84 REAL, INTENT(IN) :: ptstep ! atmospheric time-step (s)
85 REAL, DIMENSION(KI), INTENT(IN) :: pzref ! height of T,q forcing (m)
86 REAL, DIMENSION(KI), INTENT(IN) :: puref ! height of wind forcing (m)
87 !
88 REAL, DIMENSION(KI), INTENT(IN) :: pta ! air temperature forcing (K)
89 REAL, DIMENSION(KI), INTENT(IN) :: pqa ! air humidity forcing (kg/m3)
90 REAL, DIMENSION(KI), INTENT(IN) :: prhoa ! air density (kg/m3)
91 REAL, DIMENSION(KI,KSV),INTENT(IN) :: psv ! scalar variables
92 ! ! chemistry: first char. in HSV: '#' (molecule/m3)
93 ! !
94  CHARACTER(LEN=6), DIMENSION(KSV),INTENT(IN):: hsv ! name of all scalar variables
95 REAL, DIMENSION(KI), INTENT(IN) :: pu ! zonal wind (m/s)
96 REAL, DIMENSION(KI), INTENT(IN) :: pv ! meridian wind (m/s)
97 REAL, DIMENSION(KI,KSW),INTENT(IN) :: pdir_sw ! direct solar radiation (on horizontal surf.)
98 ! ! (W/m2)
99 REAL, DIMENSION(KI,KSW),INTENT(IN) :: psca_sw ! diffuse solar radiation (on horizontal surf.)
100 ! ! (W/m2)
101 REAL, DIMENSION(KSW),INTENT(IN) :: psw_bands ! mean wavelength of each shortwave band (m)
102 REAL, DIMENSION(KI), INTENT(IN) :: pzenith ! zenithal angle at t (radian from the vertical)
103 REAL, DIMENSION(KI), INTENT(IN) :: pzenith2 ! zenithal angle at t+1(radian from the vertical)
104 REAL, DIMENSION(KI), INTENT(IN) :: pazim ! azimuthal angle (radian from North, clockwise)
105 REAL, DIMENSION(KI), INTENT(IN) :: plw ! longwave radiation (on horizontal surf.)
106 ! ! (W/m2)
107 REAL, DIMENSION(KI), INTENT(IN) :: pps ! pressure at atmospheric model surface (Pa)
108 REAL, DIMENSION(KI), INTENT(IN) :: ppa ! pressure at forcing level (Pa)
109 REAL, DIMENSION(KI), INTENT(IN) :: pco2 ! CO2 concentration in the air (kg/m3)
110 REAL, DIMENSION(KI), INTENT(IN) :: psnow ! snow precipitation (kg/m2/s)
111 REAL, DIMENSION(KI), INTENT(IN) :: prain ! liquid precipitation (kg/m2/s)
112 !
113 !
114 REAL, DIMENSION(KI), INTENT(OUT) :: psfth ! flux of heat (W/m2)
115 REAL, DIMENSION(KI), INTENT(OUT) :: psftq ! flux of water vapor (kg/m2/s)
116 REAL, DIMENSION(KI), INTENT(OUT) :: psfu ! zonal momentum flux (Pa)
117 REAL, DIMENSION(KI), INTENT(OUT) :: psfv ! meridian momentum flux (Pa)
118 REAL, DIMENSION(KI), INTENT(OUT) :: psfco2 ! flux of CO2 (m/s*kg_CO2/kg_air)
119 REAL, DIMENSION(KI,KSV),INTENT(OUT):: psfts ! flux of scalar var. (kg/m2/s)
120 !
121 REAL, DIMENSION(KI), INTENT(OUT) :: ptrad ! radiative temperature (K)
122 REAL, DIMENSION(KI,KSW),INTENT(OUT):: pdir_alb! direct albedo for each spectral band (-)
123 REAL, DIMENSION(KI,KSW),INTENT(OUT):: psca_alb! diffuse albedo for each spectral band (-)
124 REAL, DIMENSION(KI), INTENT(OUT) :: pemis ! emissivity (-)
125 !
126 REAL, DIMENSION(KI), INTENT(OUT) :: ptsurf ! surface effective temperature (K)
127 REAL, DIMENSION(KI), INTENT(OUT) :: pz0 ! roughness length for momentum (m)
128 REAL, DIMENSION(KI), INTENT(OUT) :: pz0h ! roughness length for heat (m)
129 REAL, DIMENSION(KI), INTENT(OUT) :: pqsurf ! specific humidity at surface (kg/kg)
130 !
131 REAL, DIMENSION(KI), INTENT(IN) :: ppew_a_coef! implicit coefficients
132 REAL, DIMENSION(KI), INTENT(IN) :: ppew_b_coef! needed if HCOUPLING='I'
133 REAL, DIMENSION(KI), INTENT(IN) :: ppet_a_coef
134 REAL, DIMENSION(KI), INTENT(IN) :: ppeq_a_coef
135 REAL, DIMENSION(KI), INTENT(IN) :: ppet_b_coef
136 REAL, DIMENSION(KI), INTENT(IN) :: ppeq_b_coef
137  CHARACTER(LEN=2), INTENT(IN) :: htest ! must be equal to 'OK'
138 !
139 !* 0.2 declarations of local variables
140 !
141 !* forcing variables
142 !
143 REAL, DIMENSION(KI) :: zwind ! lowest atmospheric level wind speed (m/s)
144 REAL, DIMENSION(KI) :: zexna ! Exner function at lowest SBL scheme level (-)
145 REAL, DIMENSION(KI) :: zta ! temperature (K)
146 REAL, DIMENSION(KI) :: zpa ! pressure (Pa)
147 REAL, DIMENSION(KI) :: zzref ! temperature forcing level (m)
148 REAL, DIMENSION(KI) :: zuref ! wind forcing level (m)
149 REAL, DIMENSION(KI) :: zu ! zonal wind (m/s)
150 REAL, DIMENSION(KI) :: zv ! meridian wind (m/s)
151 REAL, DIMENSION(KI) :: zqa ! specific humidity (kg/m3)
152 REAL, DIMENSION(KI) :: zpeq_a_coef ! specific humidity implicit
153 REAL, DIMENSION(KI) :: zpeq_b_coef ! coefficients (hum. in kg/kg)
154 !
155 !
156 ! SBL turbulence scheme
157 !
158 REAL, DIMENSION(KI) :: zsflux_u ! Surface flux u'w' (m2/s2)
159 REAL, DIMENSION(KI) :: zsflux_t ! Surface flux w'T' (mK/s)
160 REAL, DIMENSION(KI) :: zsflux_q ! Surface flux w'q' (kgm2/s)
161 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zforc_u ! tendency due to drag force for wind
162 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zdforc_udu! formal derivative of
163 ! ! tendency due to drag force for wind
164 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zforc_e ! tendency due to drag force for TKE
165 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zdforc_ede! formal derivative of
166 ! ! tendency due to drag force for TKE
167 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zforc_t ! tendency due to drag force for Temp
168 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zdforc_tdt! formal derivative of
169 ! ! tendency due to drag force for Temp
170 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zforc_q ! tendency due to drag force for Temp
171 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zdforc_qdq! formal derivative of
172 ! ! tendency due to drag force for hum.
173 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zlmo ! MO length
174 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zlm ! mixing length
175 REAL, DIMENSION(KI,WM%WSB%NLVL) :: zleps ! dissipative length
176 REAL, DIMENSION(KI) :: zh ! canopy height (m)
177 REAL, DIMENSION(KI) :: zustar ! friction velocity (m/s)
178 !
179 REAL, DIMENSION(KI) :: zpet_a_coef ! temperature implicit
180 REAL, DIMENSION(KI) :: zpet_b_coef ! coefficients (K)
181 REAL, DIMENSION(KI) :: zpew_a_coef ! wind implicit
182 REAL, DIMENSION(KI) :: zpew_b_coef ! coefficients (m/s)
183 
184 REAL, DIMENSION(KI) :: zalfau ! V+(1) = - alfa rho u'w'(1) + beta
185 REAL, DIMENSION(KI) :: zbetau ! V+(1) = - alfa rho u'w'(1) + beta
186 REAL, DIMENSION(KI) :: zalfath ! Th+(1) = - alfa rho w'th'(1) + beta
187 REAL, DIMENSION(KI) :: zbetath ! Th+(1) = - alfa rho w'th'(1) + beta
188 REAL, DIMENSION(KI) :: zalfaq ! Q+(1) = - alfa rho w'q'(1) + beta
189 REAL, DIMENSION(KI) :: zbetaq ! Q+(1) = - alfa rho w'q'(1) + beta
190 !
191  CHARACTER(LEN=1) :: gcoupling
192 REAL(KIND=JPRB) :: zhook_handle
193 !-------------------------------------------------------------------------------------
194 !
195 !
196 !* 1. Preliminary computations of the SBL scheme
197 ! ------------------------------------------
198 !
199 IF (lhook) CALL dr_hook('COUPLING_WATFLUX_SBL_N',0,zhook_handle)
200 IF (wm%W%LSBL) THEN
201 !
202 !* 1.1 Updates SBL vertical grid as a function of forcing height
203 ! ---------------------------------------------------------
204 !
205 !* determines where is the forcing level and modifies the upper levels of the canopy grid
206 !
207  zh = 0.
208  CALL canopy_grid_update(ki,wm%WSB%NLVL,zh,puref,&
209  wm%WSB%XZ,wm%WSB%XZF,wm%WSB%XDZ,wm%WSB%XDZF)
210 !
211 !
212 !
213 !* 1.2 Initialisation at first time step
214 ! ---------------------------------
215 !
216  IF(any(wm%WSB%XT(:,:) == xundef)) THEN
217  CALL init_water_sbl(wm%WSB%NLVL, ppa, pps, pta, pqa, prhoa, pu, pv, prain, psnow, &
218  psfth, psftq, pzref, puref, wm%W%XTS, wm%W%XZ0, wm%WSB%XZ, &
219  wm%WSB%XT, wm%WSB%XQ, wm%WSB%XU, wm%WSB%XTKE, wm%WSB%XP)
220  ENDIF
221 !
222 !
223 !* 1.3 Allocations
224 ! -----------
225 !
226  CALL init_forc( zforc_u, zdforc_udu, zforc_e, zdforc_ede, &
227  zforc_t, zdforc_tdt, zforc_q, zdforc_qdq )
228 !
229  zsflux_u = 0.
230  zsflux_t = 0.
231  zsflux_q = 0.
232 !
233  zlmo = spread(wm%WSB%XLMO,2,wm%WSB%NLVL)
234 !
235 !* 1.3 Computes coefficients for implicitation
236 ! ---------------------------------------
237 !
238  zwind = sqrt(pu**2+pv**2)
239  CALL canopy_evol(ki,wm%WSB%NLVL,ptstep,1,wm%WSB%XZ,zwind,pta,pqa,ppa,prhoa, &
240  zsflux_u,zsflux_t,zsflux_q, &
241  zforc_u,zdforc_udu,zforc_e,zdforc_ede, &
242  zforc_t,zdforc_tdt,zforc_q,zdforc_qdq, &
243  wm%WSB%XZ,wm%WSB%XZF,wm%WSB%XDZ,wm%WSB%XDZF, &
244  wm%WSB%XU,wm%WSB%XTKE,wm%WSB%XT, &
245  wm%WSB%XQ,zlmo,zlm,zleps,wm%WSB%XP,zustar, &
246  zalfau,zbetau,zalfath,zbetath,zalfaq,zbetaq )
247 
248 !
249 !* 1.5 Goes from atmospheric forcing to canopy forcing height
250 ! ------------------------------------------------------
251 !
252  gcoupling = 'I'
253 !
254  CALL init_coupling_canopy( wm%WSB%XP(:,1), ppa, wm%WSB%XT(:,1), &
255  wm%WSB%XQ(:,1), pu, pv, wm%WSB%XZ(:,1), &
256  wm%WSB%XU(:,1), &
257  prhoa, zalfau, zbetau, zalfath, &
258  zbetath, zalfaq, zbetaq, &
259  zpa, zta, zqa, zu, zv, &
260  zuref, zzref, zexna, &
261  zpew_a_coef, zpew_b_coef, &
262  zpet_a_coef, zpet_b_coef, &
263  zpeq_a_coef, zpeq_b_coef )
264 !
265 !-------------------------------------------------------------------------------------
266 ELSE
267 !-------------------------------------------------------------------------------------
268 !
269 !* 2. If no SBL scheme is used, forcing is not modified
270 ! -------------------------------------------------
271 !
272  gcoupling = hcoupling
273 !
274  CALL init_coupling( hcoupling, &
275  pps, ppa, pta, pqa, pu, pv, &
276  puref, pzref, &
277  ppew_a_coef, ppew_b_coef, &
278  ppet_a_coef, ppet_b_coef, &
279  ppeq_a_coef, ppeq_b_coef, &
280  zpa, zta, zqa, zu, zv, &
281  zuref, zzref, &
282  zpew_a_coef, zpew_b_coef, &
283  zpet_a_coef, zpet_b_coef, &
284  zpeq_a_coef, zpeq_b_coef )
285 !
286 END IF
287 !
288 !-------------------------------------------------------------------------------------
289 !
290 !* 2. Call of SEAFLUX
291 ! ------------
292 !
293  CALL coupling_watflux_n(wm, dst, slt, &
294  hprogram, gcoupling, ptimec, &
295  ptstep, kyear, kmonth, kday, ptime, &
296  ki, ksv, ksw, &
297  ptsun, pzenith, pzenith2, pazim, &
298  zzref, zuref, zu, zv, zqa, zta, prhoa, psv, pco2, hsv, &
299  prain, psnow, plw, pdir_sw, psca_sw, psw_bands, pps, zpa, &
300  psftq, psfth, psfts, psfco2, psfu, psfv, &
301  ptrad, pdir_alb, psca_alb, pemis, ptsurf, pz0, pz0h, pqsurf, &
302  zpew_a_coef, zpew_b_coef, &
303  zpet_a_coef, zpeq_a_coef, zpet_b_coef, zpeq_b_coef, &
304  'OK' )
305 !
306 !-------------------------------------------------------------------------------------
307 !
308 !* 3. End if no SBL is used
309 ! ---------------------
310 !
311 IF (.NOT. wm%W%LSBL .AND. lhook) CALL dr_hook('COUPLING_WATFLUX_SBL_N',1,zhook_handle)
312 IF (.NOT. wm%W%LSBL) RETURN
313 !
314 !-------------------------------------------------------------------------------------
315 !
316 !* 4. Computes the impact of canopy and surfaces on air
317 ! -------------------------------------------------
318 !
319  CALL init_forc( zforc_u, zdforc_udu, zforc_e, zdforc_ede, &
320  zforc_t, zdforc_tdt, zforc_q, zdforc_qdq )
321 !
322 zsflux_u = - sqrt(psfu(:)**2+psfv(:)**2) / prhoa(:)
323 zsflux_t(:) = psfth(:) / xcpd * zexna(:) / prhoa(:)
324 zsflux_q(:) = psftq(:)
325 !
326 !-------------------------------------------------------------------------------------
327 !
328 !* 6. Evolution of canopy air due to these impacts
329 ! --------------------------------------------
330 !
331 zwind = sqrt(pu**2+pv**2)
332  CALL canopy_evol(ki,wm%WSB%NLVL,ptstep,2,wm%WSB%XZ,zwind,pta,pqa,ppa,prhoa, &
333  zsflux_u,zsflux_t,zsflux_q, &
334  zforc_u,zdforc_udu,zforc_e,zdforc_ede, &
335  zforc_t,zdforc_tdt,zforc_q,zdforc_qdq, &
336  wm%WSB%XZ,wm%WSB%XZF,wm%WSB%XDZ,wm%WSB%XDZF, &
337  wm%WSB%XU,wm%WSB%XTKE,wm%WSB%XT, &
338  wm%WSB%XQ,zlmo,zlm,zleps,wm%WSB%XP,zustar, &
339  zalfau,zbetau,zalfath,zbetath,zalfaq,zbetaq )
340 !
341 wm%WSB%XLMO(:) = zlmo(:,wm%WSB%NLVL)
342 !
343 !-------------------------------------------------------------------------------------
344 !
345 !* 7. 2m and 10m diagnostics if canopy is used
346 ! ----------------------------------------
347 !
348 !
349 IF (wm%W%LSBL .AND. wm%DGW%N2M>=1) CALL init_2m_10m( wm%WSB%XP(:,2), wm%WSB%XT(:,2), &
350  wm%WSB%XQ(:,2), wm%WSB%XU, wm%WSB%XZ, &
351  pu, pv, zwind, prhoa, &
352  wm%DGW%XT2M, wm%DGW%XQ2M, wm%DGW%XHU2M, &
353  wm%DGW%XZON10M, wm%DGW%XMER10M,&
354  wm%DGW%XWIND10M, wm%DGW%XWIND10M_MAX, wm%DGW%XT2M_MIN, &
355  wm%DGW%XT2M_MAX, wm%DGW%XHU2M_MIN, wm%DGW%XHU2M_MAX )
356 !
357 IF (lhook) CALL dr_hook('COUPLING_WATFLUX_SBL_N',1,zhook_handle)
358 !
359 !-------------------------------------------------------------------------------------
360 !
361 END SUBROUTINE coupling_watflux_sbl_n
subroutine init_coupling_canopy(PP, PPA, PT, PQ, PU, PV, PZ, PXU, PRHOA, PALFAU, PBETAU, PALFATH, PBETATH, PALFAQ, PBETAQ, PPPA, PTTA, PQQA, PUU, PVV, PUUREF, PZZREF, PEXNA, PPEW_AA_COEF, PPEW_BB_COEF, PPET_AA_COEF, PPET_BB_COEF, PPEQ_AA_COEF, PPEQ_BB_COEF)
subroutine coupling_watflux_n(WM, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine canopy_grid_update(KI, KLVL, PH, PZFORC, PZ, PZF, PDZ, PDZF)
subroutine init_coupling(HCOUPLING, PPS, PPA, PTA, PQA, PU, PV, PUREF, PZREF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPET_B_COEF, PPEQ_A_COEF, PPEQ_B_COEF, PPPA, PTTA, PQQA, PUU, PVV, PUUREF, PZZREF, PPEW_AA_COEF, PPEW_BB_COEF, PPET_AA_COEF, PPET_BB_COEF, PPEQ_AA_COEF, PPEQ_BB_COEF)
subroutine coupling_watflux_sbl_n(WM, DST, SLT, HPROGRAM, HCOUPLING, PTIMEC, PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, PAZIM, PZREF, PUREF, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, PTSURF, PZ0, PZ0H, PQSURF, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, HTEST)
subroutine init_2m_10m(PP, PT, PQ, PXU, PXZ, PU, PV, PWIND, PRHOA, PT2M, PQ2M, PHU2M, PZON10M, PMER10M, PWIND10M, PWIND10M_MAX, PT2M_MIN, PT2M_MAX, PHU2M_MIN, PHU2M_MAX)
subroutine init_forc(PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ)
subroutine init_water_sbl(KLVL, PPA, PPS, PTA, PQA, PRHOA, PU, PV, PRAIN, PSNOW, PSFTH, PSFTQ, PZREF, PUREF, PTS, PZ0, PZ, PT, PQ, PWIND, PTKE, PP)
subroutine canopy_evol(KI, KLVL, PTSTEP, KIMPL, PZZ, PWIND, PTA, PQA, PPA, PRHOA, PSFLUX_U, PSFLUX_T, PSFLUX_Q, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PFORC_T, PDFORC_TDT, PFORC_Q, PDFORC_QDQ, PZ, PZF, PDZ, PDZF, PU, PTKE, PT, PQ, PLMO, PLM, PLEPS, PP, PUSTAR, PALFAU, PBETAU, PALFATH, PBETATH, PALFAQ, PBETAQ, ONEUTRAL)
Definition: canopy_evol.F90:6