SURFEX v8.1
General documentation of Surfex
writesurf_pgd_teb_parn.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 writesurf_pgd_teb_par_n (BDD, DTB, DTGD, DTGR, DTT, HSELECT, &
7  GDO, GRO, GRS, GRK, TIR, TOP, HPROGRAM)
8 ! ################################################
9 !
10 !!**** *WRITESURF_PGD_TEB_PAR_n* - reads ISBA physiographic fields
11 !!
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
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 05/2005
37 !! V. Masson 08/2013 add solar panels
38 !-------------------------------------------------------------------------------
39 !
40 !* 0. DECLARATIONS
41 ! ------------
42 !
44 USE modd_data_bem_n, ONLY : data_bem_t
45 USE modd_data_isba_n, ONLY : data_isba_t
46 USE modd_data_teb_n, ONLY : data_teb_t
48 USE modd_isba_n, ONLY : isba_s_t, isba_k_t
49 USE modd_teb_irrig_n, ONLY : teb_irrig_t
51 !
53 USE modi_write_bld_description_n
54 USE modi_writesurf_pgd_teb_irrig_n
55 !
56 !
57 USE yomhook ,ONLY : lhook, dr_hook
58 USE parkind1 ,ONLY : jprb
59 !
60 IMPLICIT NONE
61 !
62 !* 0.1 Declarations of arguments
63 ! -------------------------
64 !
65 !
66 TYPE(bld_desc_t), INTENT(INOUT) :: BDD
67 TYPE(data_bem_t), INTENT(INOUT) :: DTB
68 TYPE(data_isba_t), INTENT(INOUT) :: DTGD
69 TYPE(data_isba_t), INTENT(INOUT) :: DTGR
70 TYPE(data_teb_t), INTENT(INOUT) :: DTT
71  CHARACTER(LEN=*), DIMENSION(:), INTENT(IN) :: HSELECT
72 TYPE(isba_options_t), INTENT(INOUT) :: GDO
73 TYPE(isba_options_t), INTENT(INOUT) :: GRO
74 TYPE(isba_s_t), INTENT(INOUT) :: GRS
75 TYPE(isba_k_t), INTENT(INOUT) :: GRK
76 TYPE(teb_irrig_t), INTENT(INOUT) :: TIR
77 TYPE(teb_options_t), INTENT(INOUT) :: TOP
78 !
79  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling
80 !
81 !* 0.2 Declarations of local variables
82 ! -------------------------------
83 !
84 INTEGER :: IRESP ! IRESP : return-code if a problem appears
85  CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read
86  CHARACTER(LEN=100):: YCOMMENT ! Comment string
87 INTEGER :: JL ! loop index
88 INTEGER :: JTIME ! loop index
89 REAL, DIMENSION(:), ALLOCATABLE :: ZWORK
90 REAL(KIND=JPRB) :: ZHOOK_HANDLE
91 !
92 !-------------------------------------------------------------------------------
93 !
94 IF (lhook) CALL dr_hook('WRITESURF_PGD_TEB_PAR_N',0,zhook_handle)
95 yrecfm='L_BLDTYPE'
96 ycomment=yrecfm
97  CALL write_surf(hselect, &
98  hprogram,yrecfm,dtt%LDATA_BLDTYPE,iresp,hcomment=ycomment)
99 IF (dtt%LDATA_BLDTYPE) THEN
100  yrecfm='D_BLDTYPE'
101  ycomment='X_Y_'//yrecfm//' (m)'
102  ALLOCATE(zwork(SIZE(dtt%NPAR_BLDTYPE)))
103  zwork=float(dtt%NPAR_BLDTYPE(:))
104  CALL write_surf(hselect, &
105  hprogram,yrecfm,zwork,iresp,ycomment)
106  DEALLOCATE(zwork)
107 ENDIF
108 !
109 yrecfm='L_BLD_AGE'
110 ycomment=yrecfm
111  CALL write_surf(hselect, &
112  hprogram,yrecfm,dtt%LDATA_BLD_AGE,iresp,hcomment=ycomment)
113 IF (dtt%LDATA_BLD_AGE) THEN
114  yrecfm='D_BLD_AGE'
115  ycomment='X_Y_'//yrecfm//' (m)'
116  ALLOCATE(zwork(SIZE(dtt%NPAR_BLD_AGE)))
117  zwork=float(dtt%NPAR_BLD_AGE(:))
118  CALL write_surf(hselect, &
119  hprogram,yrecfm,zwork,iresp,ycomment)
120  DEALLOCATE(zwork)
121 ENDIF
122 !
123 yrecfm='L_USETYPE'
124 ycomment=yrecfm
125  CALL write_surf(hselect, &
126  hprogram,yrecfm,dtt%LDATA_USETYPE,iresp,hcomment=ycomment)
127 IF (dtt%LDATA_USETYPE) THEN
128  yrecfm='D_USETYPE'
129  ycomment='X_Y_'//yrecfm//' (m)'
130  ALLOCATE(zwork(SIZE(dtt%NPAR_USETYPE)))
131  zwork=float(dtt%NPAR_USETYPE(:))
132  CALL write_surf(hselect, &
133  hprogram,yrecfm,zwork,iresp,ycomment)
134  DEALLOCATE(zwork)
135 ENDIF
136 !
137 IF (dtt%LDATA_BLDTYPE .OR. dtt%LDATA_BLD_AGE .OR. dtt%LDATA_USETYPE) &
138  CALL write_bld_description_n(hselect, bdd, hprogram)
139 !
140 yrecfm='L_Z0_TOWN'
141 ycomment=yrecfm
142  CALL write_surf(hselect, &
143  hprogram,yrecfm,dtt%LDATA_Z0_TOWN,iresp,hcomment=ycomment)
144 IF (dtt%LDATA_Z0_TOWN) THEN
145  yrecfm='D_Z0_TOWN'
146  ycomment='X_Y_'//yrecfm//' (m)'
147  CALL write_surf(hselect, &
148  hprogram,yrecfm,dtt%XPAR_Z0_TOWN,iresp,ycomment)
149 ENDIF
150 !
151 yrecfm='L_BLD'
152 ycomment=yrecfm
153  CALL write_surf(hselect, &
154  hprogram,yrecfm,dtt%LDATA_BLD,iresp,hcomment=ycomment)
155 IF (dtt%LDATA_BLD) THEN
156  yrecfm='D_BLD'
157  ycomment='X_Y_'//yrecfm//' (-)'
158  CALL write_surf(hselect, &
159  hprogram,yrecfm,dtt%XPAR_BLD,iresp,ycomment)
160 ENDIF
161 !
162 yrecfm='L_GARDEN'
163 ycomment=yrecfm
164  CALL write_surf(hselect, &
165  hprogram,yrecfm,dtt%LDATA_GARDEN,iresp,hcomment=ycomment)
166 IF (dtt%LDATA_GARDEN) THEN
167  yrecfm='D_GARDEN'
168  ycomment='X_Y_'//yrecfm//' (-)'
169  CALL write_surf(hselect, &
170  hprogram,yrecfm,dtt%XPAR_GARDEN,iresp,ycomment)
171 ENDIF
172 !
173 yrecfm='L_GREENROOF'
174 ycomment=yrecfm
175  CALL write_surf(hselect, &
176  hprogram,yrecfm,dtt%LDATA_GREENROOF,iresp,hcomment=ycomment)
177 IF (dtt%LDATA_GREENROOF) THEN
178  yrecfm='D_GREENROOF'
179  ycomment='X_Y_'//yrecfm//' (-)'
180  CALL write_surf(hselect, &
181  hprogram,yrecfm,dtt%XPAR_GREENROOF,iresp,ycomment)
182 ENDIF
183 !
184 yrecfm='L_ROAD_DIR'
185 ycomment=yrecfm
186  CALL write_surf(hselect, &
187  hprogram,yrecfm,dtt%LDATA_ROAD_DIR,iresp,hcomment=ycomment)
188 IF (dtt%LDATA_ROAD_DIR) THEN
189  yrecfm='D_ROAD_DIR'
190  ycomment='X_Y_'//yrecfm//' (-)'
191  CALL write_surf(hselect, &
192  hprogram,yrecfm,dtt%XPAR_ROAD_DIR,iresp,ycomment)
193 ENDIF
194 !
195 yrecfm='L_ALB_ROOF'
196 ycomment=yrecfm
197  CALL write_surf(hselect, &
198  hprogram,yrecfm,dtt%LDATA_ALB_ROOF,iresp,hcomment=ycomment)
199 IF (dtt%LDATA_ALB_ROOF) THEN
200  yrecfm='D_ALB_ROOF'
201  ycomment='X_Y_'//yrecfm//' (-)'
202  CALL write_surf(hselect, &
203  hprogram,yrecfm,dtt%XPAR_ALB_ROOF,iresp,ycomment)
204 ENDIF
205 !
206 yrecfm='L_EMIS_ROOF'
207 ycomment=yrecfm
208  CALL write_surf(hselect, &
209  hprogram,yrecfm,dtt%LDATA_EMIS_ROOF,iresp,hcomment=ycomment)
210 IF (dtt%LDATA_EMIS_ROOF) THEN
211  yrecfm='D_EMI_ROOF'
212  ycomment='X_Y_'//yrecfm//' (-)'
213  CALL write_surf(hselect, &
214  hprogram,yrecfm,dtt%XPAR_EMIS_ROOF,iresp,ycomment)
215 ENDIF
216 !
217 IF (dtt%LDATA_HC_ROOF) THEN
218  ycomment='Number of specified Roof thermal layers'
219  CALL write_surf(hselect, &
220  hprogram,'PAR_RF_LAYER',dtt%NPAR_ROOF_LAYER,iresp,ycomment)
221 END IF
222 !
223 yrecfm='L_HC_ROOF'
224 ycomment=yrecfm
225  CALL write_surf(hselect, &
226  hprogram,yrecfm,dtt%LDATA_HC_ROOF,iresp,hcomment=ycomment)
227 IF (dtt%LDATA_HC_ROOF) THEN
228  DO jl=1,dtt%NPAR_ROOF_LAYER
229  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_HC_ROOF',jl
230  ycomment='X_Y_'//yrecfm//' (J/K/m3)'
231  CALL write_surf(hselect, &
232  hprogram,yrecfm,dtt%XPAR_HC_ROOF(:,jl),iresp,ycomment)
233  END DO
234 ENDIF
235 !
236 yrecfm='L_TC_ROOF'
237 ycomment=yrecfm
238  CALL write_surf(hselect, &
239  hprogram,yrecfm,dtt%LDATA_TC_ROOF,iresp,hcomment=ycomment)
240 IF (dtt%LDATA_TC_ROOF) THEN
241  DO jl=1,dtt%NPAR_ROOF_LAYER
242  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_TC_ROOF',jl
243  ycomment='X_Y_'//yrecfm//' (W/K/m)'
244  CALL write_surf(hselect, &
245  hprogram,yrecfm,dtt%XPAR_TC_ROOF(:,jl),iresp,ycomment)
246  END DO
247 ENDIF
248 !
249 yrecfm='L_D_ROOF'
250 ycomment=yrecfm
251  CALL write_surf(hselect, &
252  hprogram,yrecfm,dtt%LDATA_D_ROOF,iresp,hcomment=ycomment)
253 IF (dtt%LDATA_D_ROOF) THEN
254  DO jl=1,dtt%NPAR_ROOF_LAYER
255  WRITE(yrecfm,fmt='(A8,I1.1)') 'D_D_ROOF',jl
256  ycomment='X_Y_'//yrecfm//' (m)'
257  CALL write_surf(hselect, &
258  hprogram,yrecfm,dtt%XPAR_D_ROOF(:,jl),iresp,ycomment)
259  END DO
260 ENDIF
261 !
262 yrecfm='L_ALB_ROAD'
263 ycomment=yrecfm
264  CALL write_surf(hselect, &
265  hprogram,yrecfm,dtt%LDATA_ALB_ROAD,iresp,hcomment=ycomment)
266 IF (dtt%LDATA_ALB_ROAD) THEN
267  yrecfm='D_ALB_ROAD'
268  ycomment='X_Y_'//yrecfm//' (-)'
269  CALL write_surf(hselect, &
270  hprogram,yrecfm,dtt%XPAR_ALB_ROAD,iresp,ycomment)
271 ENDIF
272 !
273 yrecfm='L_EMIS_ROAD'
274 ycomment=yrecfm
275  CALL write_surf(hselect, &
276  hprogram,yrecfm,dtt%LDATA_EMIS_ROAD,iresp,hcomment=ycomment)
277 IF (dtt%LDATA_EMIS_ROAD) THEN
278  yrecfm='D_EMI_ROAD'
279  ycomment='X_Y_'//yrecfm//' (-)'
280  CALL write_surf(hselect, &
281  hprogram,yrecfm,dtt%XPAR_EMIS_ROAD,iresp,ycomment)
282 ENDIF
283 !
284 IF (dtt%LDATA_HC_ROAD) THEN
285  ycomment='Number of specified Road thermal layers'
286  CALL write_surf(hselect, &
287  hprogram,'PAR_RD_LAYER',dtt%NPAR_ROAD_LAYER,iresp,ycomment)
288 END IF
289 !
290 yrecfm='L_HC_ROAD'
291 ycomment=yrecfm
292  CALL write_surf(hselect, &
293  hprogram,yrecfm,dtt%LDATA_HC_ROAD,iresp,hcomment=ycomment)
294 IF (dtt%LDATA_HC_ROAD) THEN
295  DO jl=1,dtt%NPAR_ROAD_LAYER
296  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_HC_ROAD',jl
297  ycomment='X_Y_'//yrecfm//' (J/K/m3)'
298  CALL write_surf(hselect, &
299  hprogram,yrecfm,dtt%XPAR_HC_ROAD(:,jl),iresp,ycomment)
300  END DO
301 ENDIF
302 !
303 yrecfm='L_TC_ROAD'
304 ycomment=yrecfm
305  CALL write_surf(hselect, &
306  hprogram,yrecfm,dtt%LDATA_TC_ROAD,iresp,hcomment=ycomment)
307 IF (dtt%LDATA_TC_ROAD) THEN
308  DO jl=1,dtt%NPAR_ROAD_LAYER
309  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_TC_ROAD',jl
310  ycomment='X_Y_'//yrecfm//' (W/K/m)'
311  CALL write_surf(hselect, &
312  hprogram,yrecfm,dtt%XPAR_TC_ROAD(:,jl),iresp,ycomment)
313  END DO
314 ENDIF
315 !
316 yrecfm='L_D_ROAD'
317 ycomment=yrecfm
318  CALL write_surf(hselect, &
319  hprogram,yrecfm,dtt%LDATA_D_ROAD,iresp,hcomment=ycomment)
320 IF (dtt%LDATA_D_ROAD) THEN
321  DO jl=1,dtt%NPAR_ROAD_LAYER
322  WRITE(yrecfm,fmt='(A8,I1.1)') 'D_D_ROAD',jl
323  ycomment='X_Y_'//yrecfm//' (m)'
324  CALL write_surf(hselect, &
325  hprogram,yrecfm,dtt%XPAR_D_ROAD(:,jl),iresp,ycomment)
326  END DO
327 ENDIF
328 !
329 yrecfm='L_ALB_WALL'
330 ycomment=yrecfm
331  CALL write_surf(hselect, &
332  hprogram,yrecfm,dtt%LDATA_ALB_WALL,iresp,hcomment=ycomment)
333 IF (dtt%LDATA_ALB_WALL) THEN
334  yrecfm='D_ALB_WALL'
335  ycomment='X_Y_'//yrecfm//' (-)'
336  CALL write_surf(hselect, &
337  hprogram,yrecfm,dtt%XPAR_ALB_WALL,iresp,ycomment)
338 ENDIF
339 !
340 yrecfm='L_EMIS_WALL'
341 ycomment=yrecfm
342  CALL write_surf(hselect, &
343  hprogram,yrecfm,dtt%LDATA_EMIS_WALL,iresp,hcomment=ycomment)
344 IF (dtt%LDATA_EMIS_WALL) THEN
345  yrecfm='D_EMI_WALL'
346  ycomment='X_Y_'//yrecfm//' (-)'
347  CALL write_surf(hselect, &
348  hprogram,yrecfm,dtt%XPAR_EMIS_WALL,iresp,ycomment)
349 ENDIF
350 !
351 !
352 IF (dtt%LDATA_HC_WALL) THEN
353  ycomment='Number of specified Wall thermal layers'
354  CALL write_surf(hselect, &
355  hprogram,'PAR_WL_LAYER',dtt%NPAR_WALL_LAYER,iresp,ycomment)
356 END IF
357 !
358 yrecfm='L_HC_WALL'
359 ycomment=yrecfm
360  CALL write_surf(hselect, &
361  hprogram,yrecfm,dtt%LDATA_HC_WALL,iresp,hcomment=ycomment)
362 IF (dtt%LDATA_HC_WALL) THEN
363  DO jl=1,dtt%NPAR_WALL_LAYER
364  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_HC_WALL',jl
365  ycomment='X_Y_'//yrecfm//' (J/K/m3)'
366  CALL write_surf(hselect, &
367  hprogram,yrecfm,dtt%XPAR_HC_WALL(:,jl),iresp,ycomment)
368  END DO
369 ENDIF
370 !
371 yrecfm='L_TC_WALL'
372 ycomment=yrecfm
373  CALL write_surf(hselect, &
374  hprogram,yrecfm,dtt%LDATA_TC_WALL,iresp,hcomment=ycomment)
375 IF (dtt%LDATA_TC_WALL) THEN
376  DO jl=1,dtt%NPAR_WALL_LAYER
377  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_TC_WALL',jl
378  ycomment='X_Y_'//yrecfm//' (W/K/m)'
379  CALL write_surf(hselect, &
380  hprogram,yrecfm,dtt%XPAR_TC_WALL(:,jl),iresp,ycomment)
381  END DO
382 ENDIF
383 !
384 yrecfm='L_D_WALL'
385 ycomment=yrecfm
386  CALL write_surf(hselect, &
387  hprogram,yrecfm,dtt%LDATA_D_WALL,iresp,hcomment=ycomment)
388 IF (dtt%LDATA_D_WALL) THEN
389  DO jl=1,dtt%NPAR_WALL_LAYER
390  WRITE(yrecfm,fmt='(A8,I1.1)') 'D_D_WALL',jl
391  ycomment='X_Y_'//yrecfm//' (m)'
392  CALL write_surf(hselect, &
393  hprogram,yrecfm,dtt%XPAR_D_WALL(:,jl),iresp,ycomment)
394  END DO
395 ENDIF
396 !
397 yrecfm='L_BLD_HEIGHT'
398 ycomment=yrecfm
399  CALL write_surf(hselect, &
400  hprogram,yrecfm,dtt%LDATA_BLD_HEIGHT,iresp,hcomment=ycomment)
401 IF (dtt%LDATA_BLD_HEIGHT) THEN
402  yrecfm='D_BLD_HEIG'
403  ycomment='X_Y_'//yrecfm//' (m)'
404  CALL write_surf(hselect, &
405  hprogram,yrecfm,dtt%XPAR_BLD_HEIGHT,iresp,ycomment)
406 ENDIF
407 !
408 yrecfm='L_WALL_O_HOR'
409 ycomment=yrecfm
410  CALL write_surf(hselect, &
411  hprogram,yrecfm,dtt%LDATA_WALL_O_HOR,iresp,hcomment=ycomment)
412 IF (dtt%LDATA_WALL_O_HOR) THEN
413  yrecfm='D_WALL_O_H'
414  ycomment='X_Y_'//yrecfm//' (-)'
415  CALL write_surf(hselect, &
416  hprogram,yrecfm,dtt%XPAR_WALL_O_HOR,iresp,ycomment)
417 ENDIF
418 !
419 yrecfm='L_H_TRAF'
420 ycomment=yrecfm
421  CALL write_surf(hselect, &
422  hprogram,yrecfm,dtt%LDATA_H_TRAFFIC,iresp,hcomment=ycomment)
423 IF (dtt%LDATA_H_TRAFFIC) THEN
424  yrecfm='D_H_TRAF'
425  ycomment='X_Y_'//yrecfm//' (W/m2)'
426  CALL write_surf(hselect, &
427  hprogram,yrecfm,dtt%XPAR_H_TRAFFIC,iresp,ycomment)
428 ENDIF
429 !
430 yrecfm='L_LE_TRAF'
431 ycomment=yrecfm
432  CALL write_surf(hselect, &
433  hprogram,yrecfm,dtt%LDATA_LE_TRAFFIC,iresp,hcomment=ycomment)
434 IF (dtt%LDATA_LE_TRAFFIC) THEN
435  yrecfm='D_LE_TRAF'
436  ycomment='X_Y_'//yrecfm//' (W/m2)'
437  CALL write_surf(hselect, &
438  hprogram,yrecfm,dtt%XPAR_LE_TRAFFIC,iresp,ycomment)
439 ENDIF
440 !
441 yrecfm='L_H_IND'
442 ycomment=yrecfm
443  CALL write_surf(hselect, &
444  hprogram,yrecfm,dtt%LDATA_H_INDUSTRY,iresp,hcomment=ycomment)
445 IF (dtt%LDATA_H_INDUSTRY) THEN
446  yrecfm='D_H_IND'
447  ycomment='X_Y_'//yrecfm//' (W/m2)'
448  CALL write_surf(hselect, &
449  hprogram,yrecfm,dtt%XPAR_H_INDUSTRY,iresp,ycomment)
450 ENDIF
451 !
452 yrecfm='L_LE_IND'
453 ycomment=yrecfm
454  CALL write_surf(hselect, &
455  hprogram,yrecfm,dtt%LDATA_LE_INDUSTRY,iresp,hcomment=ycomment)
456 IF (dtt%LDATA_LE_INDUSTRY) THEN
457  yrecfm='D_LE_IND'
458  ycomment='X_Y_'//yrecfm//' (W/m2)'
459  CALL write_surf(hselect, &
460  hprogram,yrecfm,dtt%XPAR_LE_INDUSTRY,iresp,ycomment)
461 ENDIF
462 !
463 yrecfm='L_ROUGH_ROOF'
464 ycomment=yrecfm
465  CALL write_surf(hselect, &
466  hprogram,yrecfm,dtt%LDATA_ROUGH_ROOF,iresp,hcomment=ycomment)
467 IF (dtt%LDATA_ROUGH_ROOF) THEN
468  yrecfm='D_ROUGH_ROOF'
469  ycomment='X_Y_'//yrecfm//' (-)'
470  CALL write_surf(hselect, &
471  hprogram,yrecfm,dtt%XPAR_ROUGH_ROOF,iresp,ycomment)
472 ENDIF
473 !
474 yrecfm='L_ROUGH_WALL'
475 ycomment=yrecfm
476  CALL write_surf(hselect, &
477  hprogram,yrecfm,dtt%LDATA_ROUGH_WALL,iresp,hcomment=ycomment)
478 IF (dtt%LDATA_ROUGH_WALL) THEN
479  yrecfm='D_ROUGH_WALL'
480  ycomment='X_Y_'//yrecfm//' (-)'
481  CALL write_surf(hselect, &
482  hprogram,yrecfm,dtt%XPAR_ROUGH_WALL,iresp,ycomment)
483 endif!
484 !
485 yrecfm='L_F_RESIDENT'
486 ycomment=yrecfm
487  CALL write_surf(hselect, &
488  hprogram,yrecfm,dtt%LDATA_RESIDENTIAL,iresp,hcomment=ycomment)
489 IF (dtt%LDATA_RESIDENTIAL) THEN
490  yrecfm='D_F_RESIDENT'
491  ycomment='X_Y_'//yrecfm//' (-)'
492  CALL write_surf(hselect, &
493  hprogram,yrecfm,dtt%XPAR_RESIDENTIAL,iresp,ycomment)
494 ENDIF
495 !
496 !* solar panels
497 !
498 yrecfm='L_EMIS_PANEL'
499 ycomment=yrecfm
500  CALL write_surf(hselect, &
501  hprogram,yrecfm,dtt%LDATA_EMIS_PANEL,iresp,hcomment=ycomment)
502 IF (dtt%LDATA_EMIS_PANEL) THEN
503  yrecfm='D_EMIS_PANEL'
504  ycomment='X_Y_'//yrecfm//' (-)'
505  CALL write_surf(hselect, &
506  hprogram,yrecfm,dtt%XPAR_EMIS_PANEL,iresp,ycomment)
507 ENDIF
508 !
509 yrecfm='L_ALB_PANEL'
510 ycomment=yrecfm
511  CALL write_surf(hselect, &
512  hprogram,yrecfm,dtt%LDATA_ALB_PANEL,iresp,hcomment=ycomment)
513 IF (dtt%LDATA_ALB_PANEL) THEN
514  yrecfm='D_ALB_PANEL'
515  ycomment='X_Y_'//yrecfm//' (-)'
516  CALL write_surf(hselect, &
517  hprogram,yrecfm,dtt%XPAR_ALB_PANEL,iresp,ycomment)
518 ENDIF
519 !
520 yrecfm='L_EFF_PANEL'
521 ycomment=yrecfm
522  CALL write_surf(hselect, &
523  hprogram,yrecfm,dtt%LDATA_EFF_PANEL,iresp,hcomment=ycomment)
524 IF (dtt%LDATA_EFF_PANEL) THEN
525  yrecfm='D_EFF_PANEL'
526  ycomment='X_Y_'//yrecfm//' (-)'
527  CALL write_surf(hselect, &
528  hprogram,yrecfm,dtt%XPAR_EFF_PANEL,iresp,ycomment)
529 ENDIF
530 !
531 yrecfm='L_FRAC_PANEL'
532 ycomment=yrecfm
533  CALL write_surf(hselect, &
534  hprogram,yrecfm,dtt%LDATA_FRAC_PANEL,iresp,hcomment=ycomment)
535 IF (dtt%LDATA_FRAC_PANEL) THEN
536  yrecfm='D_FRAC_PANEL'
537  ycomment='X_Y_'//yrecfm//' (-)'
538  CALL write_surf(hselect, &
539  hprogram,yrecfm,dtt%XPAR_FRAC_PANEL,iresp,ycomment)
540 ENDIF
541 !
542 !* Building Energy Model
543 !
544 IF (top%CBEM .EQ. 'BEM') THEN
545  !
546  IF (dtb%LDATA_HC_FLOOR) THEN
547  ycomment='Number of specified Floor thermal layers'
548  CALL write_surf(hselect, &
549  hprogram,'PAR_FL_LAYER',dtb%NPAR_FLOOR_LAYER,iresp,ycomment)
550  END IF
551  !
552  yrecfm='L_HC_FLOOR'
553  ycomment=yrecfm
554  CALL write_surf(hselect, &
555  hprogram,yrecfm,dtb%LDATA_HC_FLOOR,iresp,hcomment=ycomment)
556  IF (dtb%LDATA_HC_FLOOR) THEN
557  DO jl=1,dtb%NPAR_FLOOR_LAYER
558  WRITE(yrecfm,fmt='(A10,I1.1)') 'D_HC_FLOOR',jl
559  ycomment='X_Y_'//yrecfm//' (J/K/m3)'
560  CALL write_surf(hselect, &
561  hprogram,yrecfm,dtb%XPAR_HC_FLOOR(:,jl),iresp,ycomment)
562  END DO
563  ENDIF
564  !
565  yrecfm='L_TC_FLOOR'
566  ycomment=yrecfm
567  CALL write_surf(hselect, &
568  hprogram,yrecfm,dtb%LDATA_TC_FLOOR,iresp,hcomment=ycomment)
569  IF (dtb%LDATA_TC_FLOOR) THEN
570  DO jl=1,dtb%NPAR_FLOOR_LAYER
571  WRITE(yrecfm,fmt='(A10,I1.1)') 'D_TC_FLOOR',jl
572  ycomment='X_Y_'//yrecfm//' (W/K/m)'
573  CALL write_surf(hselect, &
574  hprogram,yrecfm,dtb%XPAR_TC_FLOOR(:,jl),iresp,ycomment)
575  END DO
576  ENDIF
577  !
578  yrecfm='L_D_FLOOR'
579  ycomment=yrecfm
580  CALL write_surf(hselect, &
581  hprogram,yrecfm,dtb%LDATA_D_FLOOR,iresp,hcomment=ycomment)
582  IF (dtb%LDATA_D_FLOOR) THEN
583  DO jl=1,dtb%NPAR_FLOOR_LAYER
584  WRITE(yrecfm,fmt='(A9,I1.1)') 'D_D_FLOOR',jl
585  ycomment='X_Y_'//yrecfm//' (m)'
586  CALL write_surf(hselect, &
587  hprogram,yrecfm,dtb%XPAR_D_FLOOR(:,jl),iresp,ycomment)
588  END DO
589  ENDIF
590  !
591  yrecfm='L_TCOOL_TARG'
592  ycomment=yrecfm
593  CALL write_surf(hselect, &
594  hprogram,yrecfm,dtb%LDATA_TCOOL_TARGET,iresp,hcomment=ycomment)
595  IF (dtb%LDATA_TCOOL_TARGET) THEN
596  yrecfm='D_TCOOL_TARG'
597  ycomment='X_Y_'//yrecfm//' (K)'
598  CALL write_surf(hselect, &
599  hprogram,yrecfm,dtb%XPAR_TCOOL_TARGET,iresp,ycomment)
600  ENDIF
601  !
602  yrecfm='L_THEAT_TARG'
603  ycomment=yrecfm
604  CALL write_surf(hselect, &
605  hprogram,yrecfm,dtb%LDATA_THEAT_TARGET,iresp,hcomment=ycomment)
606  IF (dtb%LDATA_THEAT_TARGET) THEN
607  yrecfm='D_THEAT_TARG'
608  ycomment='X_Y_'//yrecfm//' (K)'
609  CALL write_surf(hselect, &
610  hprogram,yrecfm,dtb%XPAR_THEAT_TARGET,iresp,ycomment)
611  ENDIF
612  !
613  yrecfm='L_F_WAST_CAN'
614  ycomment=yrecfm
615  CALL write_surf(hselect, &
616  hprogram,yrecfm,dtb%LDATA_F_WASTE_CAN,iresp,hcomment=ycomment)
617  IF (dtb%LDATA_F_WASTE_CAN) THEN
618  yrecfm='D_F_WAST_CAN'
619  ycomment='X_Y_'//yrecfm//' (-)'
620  CALL write_surf(hselect, &
621  hprogram,yrecfm,dtb%XPAR_F_WASTE_CAN,iresp,ycomment)
622  ENDIF
623  !
624  yrecfm='L_EFF_HEAT'
625  ycomment=yrecfm
626  CALL write_surf(hselect, &
627  hprogram,yrecfm,dtb%LDATA_EFF_HEAT,iresp,hcomment=ycomment)
628  IF (dtb%LDATA_EFF_HEAT) THEN
629  yrecfm='D_EFF_HEAT'
630  ycomment='X_Y_'//yrecfm//' (-)'
631  CALL write_surf(hselect, &
632  hprogram,yrecfm,dtb%XPAR_EFF_HEAT,iresp,ycomment)
633  ENDIF
634  !
635  yrecfm='L_QIN'
636  ycomment=yrecfm
637  CALL write_surf(hselect, &
638  hprogram,yrecfm,dtb%LDATA_QIN,iresp,hcomment=ycomment)
639  IF (dtb%LDATA_QIN) THEN
640  yrecfm='D_QIN'
641  ycomment='X_Y_'//yrecfm//' (K)'
642  CALL write_surf(hselect, &
643  hprogram,yrecfm,dtb%XPAR_QIN,iresp,ycomment)
644  ENDIF
645  !
646  yrecfm='L_QIN_FRAD'
647  ycomment=yrecfm
648  CALL write_surf(hselect, &
649  hprogram,yrecfm,dtb%LDATA_QIN_FRAD,iresp,hcomment=ycomment)
650  IF (dtb%LDATA_QIN_FRAD) THEN
651  yrecfm='D_QIN_FRAD'
652  ycomment='X_Y_'//yrecfm//' (K)'
653  CALL write_surf(hselect, &
654  hprogram,yrecfm,dtb%XPAR_QIN_FRAD,iresp,ycomment)
655  ENDIF
656  !
657  yrecfm='L_SHGC'
658  ycomment=yrecfm
659  CALL write_surf(hselect, &
660  hprogram,yrecfm,dtb%LDATA_SHGC,iresp,hcomment=ycomment)
661  IF (dtb%LDATA_SHGC) THEN
662  yrecfm='D_SHGC'
663  ycomment='X_Y_'//yrecfm//' (-)'
664  CALL write_surf(hselect, &
665  hprogram,yrecfm,dtb%XPAR_SHGC,iresp,ycomment)
666  ENDIF
667  !
668  yrecfm='L_U_WIN'
669  ycomment=yrecfm
670  CALL write_surf(hselect, &
671  hprogram,yrecfm,dtb%LDATA_U_WIN,iresp,hcomment=ycomment)
672  IF (dtb%LDATA_U_WIN) THEN
673  yrecfm='D_U_WIN'
674  ycomment='X_Y_'//yrecfm//' (W m-2 K-1)'
675  CALL write_surf(hselect, &
676  hprogram,yrecfm,dtb%XPAR_U_WIN,iresp,ycomment)
677  ENDIF
678  !
679  yrecfm='L_GR'
680  ycomment=yrecfm
681  CALL write_surf(hselect, &
682  hprogram,yrecfm,dtb%LDATA_GR,iresp,hcomment=ycomment)
683  IF (dtb%LDATA_GR) THEN
684  yrecfm='D_GR'
685  ycomment='X_Y_'//yrecfm//' (-)'
686  CALL write_surf(hselect, &
687  hprogram,yrecfm,dtb%XPAR_GR,iresp,ycomment)
688  ENDIF
689  !
690  yrecfm='L_SHGC_SH'
691  ycomment=yrecfm
692  CALL write_surf(hselect, &
693  hprogram,yrecfm,dtb%LDATA_SHGC_SH,iresp,hcomment=ycomment)
694  IF (dtb%LDATA_SHGC_SH) THEN
695  yrecfm='D_SHGC_SH'
696  ycomment='X_Y_'//yrecfm//' (-)'
697  CALL write_surf(hselect, &
698  hprogram,yrecfm,dtb%XPAR_SHGC_SH,iresp,ycomment)
699  ENDIF
700  !
701  yrecfm='L_FLOOR_HEIG'
702  ycomment=yrecfm
703  CALL write_surf(hselect, &
704  hprogram,yrecfm,dtb%LDATA_FLOOR_HEIGHT,iresp,hcomment=ycomment)
705  IF (dtb%LDATA_FLOOR_HEIGHT) THEN
706  yrecfm='D_FLOOR_HEIG'
707  ycomment='X_Y_'//yrecfm//' (m)'
708  CALL write_surf(hselect, &
709  hprogram,yrecfm,dtb%XPAR_FLOOR_HEIGHT,iresp,ycomment)
710  ENDIF
711  !
712  yrecfm='L_INF'
713  ycomment=yrecfm
714  CALL write_surf(hselect, &
715  hprogram,yrecfm,dtb%LDATA_INF,iresp,hcomment=ycomment)
716  IF (dtb%LDATA_INF) THEN
717  yrecfm='D_INF'
718  ycomment='X_Y_'//yrecfm//' (ACH)'
719  CALL write_surf(hselect, &
720  hprogram,yrecfm,dtb%XPAR_INF,iresp,ycomment)
721  ENDIF
722  !
723  yrecfm='L_QIN_FLAT'
724  ycomment=yrecfm
725  CALL write_surf(hselect, &
726  hprogram,yrecfm,dtb%LDATA_QIN_FLAT,iresp,hcomment=ycomment)
727  IF (dtb%LDATA_QIN_FLAT) THEN
728  yrecfm='D_QIN_FLAT'
729  ycomment='X_Y_'//yrecfm//' (-)'
730  CALL write_surf(hselect, &
731  hprogram,yrecfm,dtb%XPAR_QIN_FLAT,iresp,ycomment)
732  ENDIF
733  !
734  yrecfm='L_HR_TARGET'
735  ycomment=yrecfm
736  CALL write_surf(hselect, &
737  hprogram,yrecfm,dtb%LDATA_HR_TARGET,iresp,hcomment=ycomment)
738  IF (dtb%LDATA_HR_TARGET) THEN
739  yrecfm='D_HR_TARGET'
740  ycomment='X_Y_'//yrecfm//' (-)'
741  CALL write_surf(hselect, &
742  hprogram,yrecfm,dtb%XPAR_HR_TARGET,iresp,ycomment)
743  ENDIF
744  !
745  yrecfm='L_V_VENT'
746  ycomment=yrecfm
747  CALL write_surf(hselect, &
748  hprogram,yrecfm,dtb%LDATA_V_VENT,iresp,hcomment=ycomment)
749  IF (dtb%LDATA_V_VENT) THEN
750  yrecfm='D_V_VENT'
751  ycomment='X_Y_'//yrecfm//' (ACH)'
752  CALL write_surf(hselect, &
753  hprogram,yrecfm,dtb%XPAR_V_VENT,iresp,ycomment)
754  ENDIF
755  !
756  yrecfm='L_CAP_SYS_HE'
757  ycomment=yrecfm
758  CALL write_surf(hselect, &
759  hprogram,yrecfm,dtb%LDATA_CAP_SYS_HEAT,iresp,hcomment=ycomment)
760  IF (dtb%LDATA_CAP_SYS_HEAT) THEN
761  yrecfm='D_CAP_SYS_HE'
762  ycomment='X_Y_'//yrecfm//' (W m-2)'
763  CALL write_surf(hselect, &
764  hprogram,yrecfm,dtb%XPAR_CAP_SYS_HEAT,iresp,ycomment)
765  ENDIF
766  !
767  yrecfm='L_CAP_SYS_RA'
768  ycomment=yrecfm
769  CALL write_surf(hselect, &
770  hprogram,yrecfm,dtb%LDATA_CAP_SYS_RAT,iresp,hcomment=ycomment)
771  IF (dtb%LDATA_CAP_SYS_RAT) THEN
772  yrecfm='D_CAP_SYS_RA'
773  ycomment='X_Y_'//yrecfm//' (W m-2)'
774  CALL write_surf(hselect, &
775  hprogram,yrecfm,dtb%XPAR_CAP_SYS_RAT,iresp,ycomment)
776  ENDIF
777  !
778  yrecfm='L_T_ADP'
779  ycomment=yrecfm
780  CALL write_surf(hselect, &
781  hprogram,yrecfm,dtb%LDATA_T_ADP,iresp,hcomment=ycomment)
782  IF (dtb%LDATA_T_ADP) THEN
783  yrecfm='D_T_ADP'
784  ycomment='X_Y_'//yrecfm//' (K)'
785  CALL write_surf(hselect, &
786  hprogram,yrecfm,dtb%XPAR_T_ADP,iresp,ycomment)
787  ENDIF
788  !
789  yrecfm='L_M_SYS_RAT'
790  ycomment=yrecfm
791  CALL write_surf(hselect, &
792  hprogram,yrecfm,dtb%LDATA_M_SYS_RAT,iresp,hcomment=ycomment)
793  IF (dtb%LDATA_M_SYS_RAT) THEN
794  yrecfm='D_M_SYS_RAT'
795  ycomment='X_Y_'//yrecfm//' (kg s-1 m-)'
796  CALL write_surf(hselect, &
797  hprogram,yrecfm,dtb%XPAR_M_SYS_RAT,iresp,ycomment)
798  ENDIF
799  !
800  yrecfm='L_COP_RAT'
801  ycomment=yrecfm
802  CALL write_surf(hselect, &
803  hprogram,yrecfm,dtb%LDATA_COP_RAT,iresp,hcomment=ycomment)
804  IF (dtb%LDATA_COP_RAT) THEN
805  yrecfm='D_COP_RAT'
806  ycomment='X_Y_'//yrecfm//' (-)'
807  CALL write_surf(hselect, &
808  hprogram,yrecfm,dtb%XPAR_COP_RAT,iresp,ycomment)
809  ENDIF
810  !
811  yrecfm='L_T_SIZE_MAX'
812  ycomment=yrecfm
813  CALL write_surf(hselect, &
814  hprogram,yrecfm,dtb%LDATA_T_SIZE_MAX,iresp,hcomment=ycomment)
815  IF (dtb%LDATA_T_SIZE_MAX) THEN
816  yrecfm='D_T_SIZE_MAX'
817  ycomment='X_Y_'//yrecfm//' (K)'
818  CALL write_surf(hselect, &
819  hprogram,yrecfm,dtb%XPAR_T_SIZE_MAX,iresp,ycomment)
820  ENDIF
821  !
822  yrecfm='L_T_SIZE_MIN'
823  ycomment=yrecfm
824  CALL write_surf(hselect, &
825  hprogram,yrecfm,dtb%LDATA_T_SIZE_MIN,iresp,hcomment=ycomment)
826  IF (dtb%LDATA_T_SIZE_MIN) THEN
827  yrecfm='D_T_SIZE_MIN'
828  ycomment='X_Y_'//yrecfm//' (K)'
829  CALL write_surf(hselect, &
830  hprogram,yrecfm,dtb%XPAR_T_SIZE_MIN,iresp,ycomment)
831  ENDIF
832  !
833  yrecfm='L_FWAT_COND'
834  ycomment=yrecfm
835  CALL write_surf(hselect, &
836  hprogram,yrecfm,dtb%LDATA_F_WATER_COND,iresp,hcomment=ycomment)
837  IF (dtb%LDATA_F_WATER_COND) THEN
838  yrecfm='D_FWAT_COND'
839  ycomment='X_Y_'//yrecfm//' (-)'
840  CALL write_surf(hselect, &
841  hprogram,yrecfm,dtb%XPAR_F_WATER_COND,iresp,ycomment)
842  ENDIF
843  !
844  yrecfm='L_SHADE'
845  ycomment=yrecfm
846  CALL write_surf(hselect, &
847  hprogram,yrecfm,dtb%LDATA_SHADE,iresp,hcomment=ycomment)
848  IF (dtb%LDATA_SHADE) THEN
849  yrecfm='D_SHADE'
850  ycomment='X_Y_'//yrecfm//' (-)'
851  CALL write_surf(hselect, &
852  hprogram,yrecfm,dtb%XPAR_SHADE,iresp,ycomment)
853  ENDIF
854  !
855  yrecfm='L_NATVENT'
856  ycomment=yrecfm
857  CALL write_surf(hselect, &
858  hprogram,yrecfm,dtb%LDATA_NATVENT,iresp,hcomment=ycomment)
859  IF (dtb%LDATA_NATVENT) THEN
860  yrecfm='D_NATVENT'
861  ycomment='X_Y_'//yrecfm//' (-)'
862  CALL write_surf(hselect, &
863  hprogram,yrecfm,dtb%XPAR_NATVENT,iresp,ycomment)
864  ENDIF
865  !
866 ENDIF
867 !
868 ! Flag for data for gardens
869 yrecfm='PAR_GARDEN'
870 ycomment='FLAG FOR SPECIFIED GARDEN PARAMETERS'
871  CALL write_surf(hselect, &
872  hprogram,yrecfm,gdo%LPAR,iresp,hcomment=ycomment)
873 !
874 IF (top%LGARDEN .AND. gdo%LPAR) THEN
875 !
876  yrecfm='GD_NTIME'
877  ycomment=yrecfm
878  CALL write_surf(hselect, &
879  hprogram,yrecfm,dtgd%NTIME,iresp,hcomment=ycomment)
880 !
881 ! Type of high vegetation
882  yrecfm='D_TYPE_HVEG'
883  ycomment='X_Y_TYPE_HVEG'
884  CALL write_surf(hselect, &
885  hprogram,yrecfm,gdo%CTYPE_HVEG,iresp,hcomment=ycomment)
886 !
887 ! Type of low vegetation
888  yrecfm='D_TYPE_LVEG'
889  ycomment='X_Y_TYPE_LVEG'
890  CALL write_surf(hselect, &
891  hprogram,yrecfm,gdo%CTYPE_LVEG,iresp,hcomment=ycomment)
892 !
893 ! Type of bare soil (no vegetation)
894  yrecfm='D_TYPE_NVEG'
895  ycomment='X_Y_TYPE_NVEG'
896  CALL write_surf(hselect, &
897  hprogram,yrecfm,gdo%CTYPE_NVEG,iresp,hcomment=ycomment)
898 !
899 ! Fraction of high vegetation
900  yrecfm='D_FRAC_HVEG'
901  ycomment='X_Y_D_FRAC_HVEG'
902  CALL write_surf(hselect, &
903  hprogram,yrecfm,dtgd%XPAR_FRAC_HVEG(:),iresp,hcomment=ycomment)
904 !
905 ! Fraction of low vegetation
906  yrecfm='D_FRAC_LVEG'
907  ycomment='X_Y_D_FRAC_LVEG'
908  CALL write_surf(hselect, &
909  hprogram,yrecfm,dtgd%XPAR_FRAC_LVEG(:),iresp,hcomment=ycomment)
910 !
911 ! Fraction of bare soil
912  yrecfm='D_FRAC_NVEG'
913  ycomment='X_Y_D_FRAC_NVEG'
914  CALL write_surf(hselect, &
915  hprogram,yrecfm,dtgd%XPAR_FRAC_NVEG(:),iresp,hcomment=ycomment)
916 !
917 ! LAI of high vegetation
918  DO jtime=1,dtgd%NTIME
919  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_LAI_HVEG',jtime
920  ycomment='X_Y_D_LAI_HVEG'
921  CALL write_surf(hselect, &
922  hprogram,yrecfm,dtgd%XPAR_LAI_HVEG(:,jtime),iresp,hcomment=ycomment)
923  END DO
924 !
925 ! LAI of low vegetation
926  DO jtime=1,dtgd%NTIME
927  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_LAI_LVEG',jtime
928  ycomment='X_Y_D_LAI_LVEG'
929  CALL write_surf(hselect, &
930  hprogram,yrecfm,dtgd%XPAR_LAI_LVEG(:,jtime),iresp,hcomment=ycomment)
931  END DO
932 !
933 ! Height of trees
934  yrecfm='D_H_HVEG'
935  ycomment='X_Y_DATA_H_HVEG'
936  CALL write_surf(hselect, &
937  hprogram,yrecfm,dtgd%XPAR_H_HVEG(:),iresp,hcomment=ycomment)
938 !
939 ENDIF
940 !
941 IF (top%LGREENROOF .AND. gro%LPAR) THEN
942 !
943 ! Type of green roof
944  yrecfm='D_TYPE_GR'
945  ycomment='X_Y_TYPE_GR'
946  CALL write_surf(hselect, &
947  hprogram,yrecfm,gro%CTYP_COV,iresp,hcomment=ycomment)
948 !
949 ! Fraction of OM in green roof layer
950  DO jl=1,gro%NGROUND_LAYER
951  WRITE(yrecfm,fmt='(A7,I2.2)') 'D_OM_GR',jl
952  ycomment='X_Y_D_OM_GR'
953  CALL write_surf(hselect, &
954  hprogram,yrecfm,grs%XSOC(:,jl),iresp,hcomment=ycomment)
955  END DO
956 !
957 ! Fraction of CLAY in the non-OM part of the green roof layer
958  DO jl=1,gro%NGROUND_LAYER
959  WRITE(yrecfm,fmt='(A9,I2.2)') 'D_CLAY_GR',jl
960  ycomment='X_Y_D_CLAY_GR'
961  CALL write_surf(hselect, &
962  hprogram,yrecfm,grk%XCLAY(:,jl),iresp,hcomment=ycomment)
963  END DO
964 !
965 ! Fraction of SAND in the non-OM part of the green roof layer
966  DO jl=1,gro%NGROUND_LAYER
967  WRITE(yrecfm,fmt='(A9,I2.2)') 'D_SAND_GR',jl
968  ycomment='X_Y_D_SAND_GR'
969  CALL write_surf(hselect, &
970  hprogram,yrecfm,grk%XSAND(:,jl),iresp,hcomment=ycomment)
971  END DO
972 !
973 ! LAI of green roof vegetation
974  DO jtime=1,dtgr%NTIME
975  WRITE(yrecfm,fmt='(A8,I2.2)') 'D_LAI_GR',jtime
976  ycomment='X_Y_D_LAI_GR'
977  CALL write_surf(hselect, &
978  hprogram,yrecfm,dtgr%XPAR_LAI(:,jtime,1),iresp,hcomment=ycomment)
979  END DO
980 !
981 ENDIF
982 !-------------------------------------------------------------------------------
983 !
984 !* Irrigation of gardens or greenroofs
985 ! -----------------------------------
986 !
987  CALL writesurf_pgd_teb_irrig_n(hselect, tir, hprogram)
988 !
989 IF (lhook) CALL dr_hook('WRITESURF_PGD_TEB_PAR_N',1,zhook_handle)
990 !
991 !
992 !-------------------------------------------------------------------------------
993 !
994 END SUBROUTINE writesurf_pgd_teb_par_n
subroutine writesurf_pgd_teb_par_n(BDD, DTB, DTGD, DTGR, DTT, HSE
subroutine write_bld_description_n(HSELECT, BDD, HPROGRAM)
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine writesurf_pgd_teb_irrig_n(HSELECT, TIR, HPROGRAM)