SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
diag_teb_greenroof_initn.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 diag_teb_greenroof_init_n (DGMTO, DGGR, TGRO, TVG, &
7  hprogram,klu,ksw)
8 ! #####################
9 !
10 !!**** *DIAG_TEB_GREENROOF_INIT_n* - routine to initialize TEB-ISBA diagnostic variables
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !!** METHOD
16 !! ------
17 !! Based on diag_teb_garden_initn
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 02/2003
37 !! modified 11/2003 by P. LeMoigne: surface cumulated energy budget
38 !! modified 10/2004 by P. LeMoigne: surface miscellaneous fields
39 !! B. Decharme 2008 New diag for water budget and allow to reset
40 !! cumulatives variables at the beginning of a run
41 ! C. de Munck & A. Lemonsu 09/2011 Greenroofs
42 !-------------------------------------------------------------------------------
43 !
44 !* 0. DECLARATIONS
45 ! ------------
46 !
47 !
52 !
53 USE modd_surf_par, ONLY : xundef
55 !
56 USE yomhook ,ONLY : lhook, dr_hook
57 USE parkind1 ,ONLY : jprb
58 !
59 IMPLICIT NONE
60 !
61 !* 0.1 Declarations of arguments
62 ! -------------------------
63 !
64 !
65 TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: dgmto
66 TYPE(diag_teb_greenroof_t), INTENT(INOUT) :: dggr
67 TYPE(teb_greenroof_options_t), INTENT(INOUT) :: tgro
68 TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
69 !
70 INTEGER, INTENT(IN) :: klu ! size of arrays
71 INTEGER, INTENT(IN) :: ksw ! spectral bands
72  CHARACTER(LEN=6), INTENT(IN):: hprogram ! program calling
73 !
74 !* 0.2 Declarations of local variables
75 ! -------------------------------
76 !
77 INTEGER :: iresp ! IRESP : return-code if a problem appears
78  CHARACTER(LEN=12) :: yrec ! Name of the article to be read
79 REAL(KIND=JPRB) :: zhook_handle
80 !
81 !-------------------------------------------------------------------------------
82 !
83 IF (lhook) CALL dr_hook('DIAG_TEB_GREENROOF_INIT_N',0,zhook_handle)
84 dggr%XCG = xundef
85 dggr%XC1 = xundef
86 dggr%XC2 = xundef
87 dggr%XWGEQ = xundef
88 dggr%XCT = xundef
89 dggr%XRS = xundef
90 dggr%XHU = xundef
91 dggr%XHUG = xundef
92 dggr%XHV = xundef
93 dggr%XRESTORE = xundef
94 dggr%XRI = xundef
95 dggr%XUSTAR = xundef
96 dggr%XRN = xundef
97 dggr%XH = xundef
98 dggr%XGFLUX = xundef
99 dggr%XSNOWTEMP = xundef
100 dggr%XSNOWLIQ = xundef
101 dggr%XSNOWDZ = xundef
102 dggr%XSNOWHMASS = xundef
103 dggr%XMELTADV = xundef
104 IF (tvg%CPHOTO/='NON') THEN
105  dggr%XIACAN = xundef
106 END IF
107 dggr%XCD = xundef
108 dggr%XCDN = xundef
109 dggr%XCH = xundef
110 dggr%XQS = xundef
111 dggr%XLEI = xundef
112 dggr%XLEG = xundef
113 dggr%XLEGI = xundef
114 dggr%XLEV = xundef
115 dggr%XLES = xundef
116 dggr%XLER = xundef
117 dggr%XLETR = xundef
118 dggr%XEVAP = xundef
119 dggr%XDRAIN = xundef
120 dggr%XRUNOFF = xundef
121 dggr%XHORT = xundef
122 dggr%XDRIP = xundef
123 dggr%XRRVEG = xundef
124 dggr%XMELT = xundef
125 dggr%XALBT = xundef
126 dggr%XEMIST = xundef
127 !
128 !* surface energy budget
129 !
130 !IF (LSURF_BUDGET) THEN
131  !
132  ALLOCATE(dggr%XSWD (klu))
133  ALLOCATE(dggr%XSWU (klu))
134  ALLOCATE(dggr%XSWBD (klu,ksw))
135  ALLOCATE(dggr%XSWBU (klu,ksw))
136  ALLOCATE(dggr%XLWD (klu))
137  ALLOCATE(dggr%XLWU (klu))
138  ALLOCATE(dggr%XFMU (klu))
139  ALLOCATE(dggr%XFMV (klu))
140  !
141  dggr%XSWD = xundef
142  dggr%XSWU = xundef
143  dggr%XSWBD = xundef
144  dggr%XSWBU = xundef
145  dggr%XLWD = xundef
146  dggr%XLWU = xundef
147  dggr%XFMU = xundef
148  dggr%XFMV = xundef
149  !
150 !END IF
151 !
152 !* surface temperature and parameters at 2m
153 !
154 ALLOCATE(dggr%XTS (klu))
155 dggr%XTS = xundef
156 ALLOCATE(dggr%XTSRAD (klu))
157 dggr%XTSRAD = xundef
158 !
159 !* miscellaneous surface fields
160 !
161 IF (dgmto%LSURF_MISC_BUDGET) THEN
162  !
163  ALLOCATE(dggr%XSWI (klu,tgro%NLAYER_GR))
164  ALLOCATE(dggr%XTSWI (klu,tgro%NLAYER_GR))
165  ALLOCATE(dggr%XTWSNOW (klu))
166  ALLOCATE(dggr%XTDSNOW (klu))
167  dggr%XSWI = xundef
168  dggr%XTSWI = xundef
169  dggr%XTWSNOW = xundef
170  dggr%XTDSNOW = xundef
171 ENDIF
172 
173 
174  ALLOCATE(dggr%XALBT (klu))
175  ALLOCATE(dggr%XGPP (klu))
176  ALLOCATE(dggr%XRESP_AUTO (klu))
177  ALLOCATE(dggr%XRESP_ECO (klu))
178  !
179  dggr%XALBT = xundef
180  dggr%XGPP = xundef
181  dggr%XRESP_AUTO = xundef
182  dggr%XRESP_ECO = xundef
183  !
184 !END IF
185 !
186 !* transfer coefficients
187 !
188 !IF (LCOEF) THEN
189  !
190  ALLOCATE(dggr%XCE (klu))
191  ALLOCATE(dggr%XZ0_WITH_SNOW (klu))
192  ALLOCATE(dggr%XZ0H_WITH_SNOW (klu))
193  ALLOCATE(dggr%XZ0EFF (klu))
194  !
195  dggr%XCE = xundef
196  dggr%XZ0_WITH_SNOW = xundef
197  dggr%XZ0H_WITH_SNOW = xundef
198  dggr%XZ0EFF = xundef
199 !END IF
200 !
201 !
202 !* surface humidity
203 !
204 !IF (LSURF_VARS) THEN
205  ALLOCATE(dggr%XQS (klu))
206  !
207  dggr%XQS = xundef
208 !END IF
209 !
210 IF (lhook) CALL dr_hook('DIAG_TEB_GREENROOF_INIT_N',1,zhook_handle)
211 !
212 !
213 !-------------------------------------------------------------------------------
214 !
215 END SUBROUTINE diag_teb_greenroof_init_n
subroutine diag_teb_greenroof_init_n(DGMTO, DGGR, TGRO, TVG, HPROGRAM, KLU, KSW)