SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
init_outfn_tebn.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 init_outfn_teb_n (BOP, CHT, DGMTO, DGU, DGT, DGUT, UG, U, TCP, TGD, TGDO, TGR, TGRO, T, TOP, TVG, &
7  hprogram,kluout)
8 ! ###############################
9 !
10 !
11 !!**** *INIT_OUTFN_TEB_n* - create output files and defines variables
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 !! P. LeMoigne *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 04-04 P. LeMoigne
37 !-------------------------------------------------------------------------------
38 !
39 !* 0. DECLARATIONS
40 ! ------------
41 !
42 !
43 !
44 !
45 !
47 USE modd_ch_teb_n, ONLY : ch_teb_t
50 USE modd_diag_teb_n, ONLY : diag_teb_t
53 USE modd_surf_atm_n, ONLY : surf_atm_t
59 USE modd_teb_n, ONLY : teb_t
62 !
63 USE modd_ol_fileid, ONLY : xvar_to_fileout, xid, xout
64 !
65 
66 USE modd_utci
67 !
68 !
69 USE modd_data_cover_par, ONLY: nvegtype
70 !
71 !
72 !
73 USE modn_io_offline, ONLY : xtstep_output
74 !
75 USE modi_get_dim_full_n
76 USE modi_ol_define_dim
77 USE modi_get_date_ol
78 USE modi_create_file
79 USE modi_def_var_netcdf
80 USE modi_ol_write_coord
81 !
82 USE yomhook ,ONLY : lhook, dr_hook
83 USE parkind1 ,ONLY : jprb
84 !
85 IMPLICIT NONE
86 include 'netcdf.inc'
87 
88 !
89 TYPE(bem_options_t), INTENT(INOUT) :: bop
90 TYPE(ch_teb_t), INTENT(INOUT) :: cht
91 TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: dgmto
92 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
93 TYPE(diag_teb_t), INTENT(INOUT) :: dgt
94 TYPE(diag_utci_teb_t), INTENT(INOUT) :: dgut
95 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
96 TYPE(surf_atm_t), INTENT(INOUT) :: u
97 TYPE(teb_canopy_t), INTENT(INOUT) :: tcp
98 TYPE(teb_garden_t), INTENT(INOUT) :: tgd
99 TYPE(teb_garden_options_t), INTENT(INOUT) :: tgdo
100 TYPE(teb_greenroof_t), INTENT(INOUT) :: tgr
101 TYPE(teb_greenroof_options_t), INTENT(INOUT) :: tgro
102 TYPE(teb_t), INTENT(INOUT) :: t
103 TYPE(teb_options_t), INTENT(INOUT) :: top
104 TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
105 !
106  CHARACTER(LEN=6), INTENT(IN) :: hprogram
107 INTEGER, INTENT(IN) :: kluout
108 !
109 !* 0.2 Declarations of local variables
110 ! -------------------------------
111 !
112  CHARACTER(LEN=100), DIMENSION(:), POINTER :: yname_dim
113  CHARACTER(LEN=100), DIMENSION(:), ALLOCATABLE :: yname_dim1
114  CHARACTER(LEN=100), DIMENSION(1) :: yatt_title, yatt
115  CHARACTER(LEN=40), DIMENSION(1) :: ydate
116  CHARACTER(LEN=13), DIMENSION(1) :: yunit1, yunit2
117  CHARACTER(LEN=100) :: ycomment
118  CHARACTER(LEN=50) :: yfile
119  CHARACTER(LEN=12) :: yrecfm
120  CHARACTER(LEN=3) :: ypas, ylvl
121  CHARACTER(LEN=3) :: ypatch
122  CHARACTER(LEN=2) :: ynum
123 !
124 INTEGER, DIMENSION(:), POINTER :: idims, iddim
125 INTEGER, DIMENSION(:), ALLOCATABLE :: iddim1, idims1
126 INTEGER :: ini, jnbiomass
127 INTEGER :: idim1, indims
128 INTEGER :: ifile_id, idimid, jsv, jsw
129 INTEGER :: jlayer, jpatch, jstress, jret
130 !
131 REAL,DIMENSION(:), POINTER :: zx, zy
132 !
133 REAL(KIND=JPRB) :: zhook_handle
134 !
135 !-------------------------------------------------------------------------------
136 
137 ! 1. Compute output lenght dimension
138 !-----------------------------------
139 IF (lhook) CALL dr_hook('INIT_OUTFN_TEB_N',0,zhook_handle)
140  CALL get_dim_full_n(u, &
141  ini)
142  CALL ol_define_dim(ug, u, &
143  hprogram, kluout, ini, idim1, yunit1, yunit2, &
144  zx, zy, idims, iddim, yname_dim)
145  CALL get_date_ol(top%TTIME,xtstep_output,ydate(1))
146 !
147 indims = SIZE(iddim)
148 !
149 ALLOCATE(idims1(indims+1))
150 idims1(indims+1) = idims(indims)
151 idims1(1:indims-1) = idims(1:indims-1)
152 idims1(indims) = 1
153 ALLOCATE(yname_dim1(indims+1))
154 yname_dim1(indims+1) = yname_dim(indims)
155 yname_dim1(1:indims-1) = yname_dim(1:indims-1)
156 yname_dim1(indims) = "Snow_patches"
157 ALLOCATE(iddim1(indims+1))
158 !
159 ! 4. Create output file for fluxes values
160 !----------------------------------------------------------
161 
162 IF (ALLOCATED(xvar_to_fileout)) DEALLOCATE(xvar_to_fileout)
163 IF (ALLOCATED(xid)) DEALLOCATE(xid)
164 ALLOCATE(xid(0))
165 xout=0
166 !
167 yatt_title(1)='units'
168 !
169 yfile='TEB_DIAGNOSTICS.OUT.nc'
170  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
171 jret=nf_redef(ifile_id)
172 !
173 IF (dgmto%LSURF_MISC_BUDGET) THEN
174  yatt='-'
175  CALL def_var_netcdf(dgu, &
176  ifile_id,'D_RD','Road fraction',iddim,yatt_title,yatt)
177  DO jpatch=1,top%NTEB_PATCH
178 
179  ypatch = ' '
180  IF (top%NTEB_PATCH>1) WRITE(ypatch,fmt='(A,I1,A)') 'T',jpatch,'_'
181  yatt='(m)'
182  CALL def_var_netcdf(dgu, &
183  ifile_id,adjustl(ypatch//'Z0_TOWN'),'Town_Rougness_Length',iddim,yatt_title,yatt)
184  yatt='(W/m2)'
185  CALL def_var_netcdf(dgu, &
186  ifile_id,adjustl(ypatch//'XQF_BLD'),'Domestic_heating',iddim,yatt_title,yatt)
187  CALL def_var_netcdf(dgu, &
188  ifile_id,adjustl(ypatch//'XQF_TOWN'),'Anthropogenic heat',iddim,yatt_title,yatt)
189  CALL def_var_netcdf(dgu, &
190  ifile_id,adjustl(ypatch//'XDQS_TOWN'),'Storage',iddim,yatt_title,yatt)
191  yatt='(kg/m2/s)'
192  CALL def_var_netcdf(dgu, &
193  ifile_id,adjustl(ypatch//'RUNOFF_TW'),'aggregated runoff for town',iddim,yatt_title,yatt)
194  yatt='(W/m2)'
195  CALL def_var_netcdf(dgu, &
196  ifile_id,adjustl(ypatch//'RN_RD'),'net radiation at road',iddim,yatt_title,yatt)
197  CALL def_var_netcdf(dgu, &
198  ifile_id,adjustl(ypatch//'H_RD'),'road sensible heat flux',iddim,yatt_title,yatt)
199  CALL def_var_netcdf(dgu, &
200  ifile_id,adjustl(ypatch//'LE_RD'),'road latent heat flux',iddim,yatt_title,yatt)
201  CALL def_var_netcdf(dgu, &
202  ifile_id,adjustl(ypatch//'GFLUX_RD'),'net road conduction flux',iddim,yatt_title,yatt)
203  yatt='(kg/m2/s)'
204  CALL def_var_netcdf(dgu, &
205  ifile_id,adjustl(ypatch//'RUNOFF_RD'),'road surface runoff',iddim,yatt_title,yatt)
206  yatt='(W/m2)'
207  IF (top%CWALL_OPT=='UNIF') THEN
208  CALL def_var_netcdf(dgu, &
209  ifile_id,adjustl(ypatch//'RN_WL'),'net radiation for wall',iddim,yatt_title,yatt)
210  CALL def_var_netcdf(dgu, &
211  ifile_id,adjustl(ypatch//'H_WL'),'wall sensible heat flux',iddim,yatt_title,yatt)
212  CALL def_var_netcdf(dgu, &
213  ifile_id,adjustl(ypatch//'GFLUX_WL'),'net wall conduction flux',iddim,yatt_title,yatt)
214  ELSE
215  CALL def_var_netcdf(dgu, &
216  ifile_id,adjustl(ypatch//'RN_WLA'),'net radiation for wall A',iddim,yatt_title,yatt)
217  CALL def_var_netcdf(dgu, &
218  ifile_id,adjustl(ypatch//'H_WLA'),'wall A sensible heat flux',iddim,yatt_title,yatt)
219  CALL def_var_netcdf(dgu, &
220  ifile_id,adjustl(ypatch//'GFLUX_WLA'),'net wall A conduction flux',iddim,yatt_title,yatt)
221  CALL def_var_netcdf(dgu, &
222  ifile_id,adjustl(ypatch//'RN_WLB'),'net radiation for wall B',iddim,yatt_title,yatt)
223  CALL def_var_netcdf(dgu, &
224  ifile_id,adjustl(ypatch//'H_WLB'),'wall B sensible heat flux',iddim,yatt_title,yatt)
225  CALL def_var_netcdf(dgu, &
226  ifile_id,adjustl(ypatch//'GFLUX_WLB'),'net wall B conduction flux',iddim,yatt_title,yatt)
227  ENDIF
228  CALL def_var_netcdf(dgu, &
229  ifile_id,adjustl(ypatch//'RN_RF'),'net radiation for roof',iddim,yatt_title,yatt)
230  CALL def_var_netcdf(dgu, &
231  ifile_id,adjustl(ypatch//'H_RF'),'roof sensible heat flux',iddim,yatt_title,yatt)
232  CALL def_var_netcdf(dgu, &
233  ifile_id,adjustl(ypatch//'LE_RF'),'roof latent heat flux',iddim,yatt_title,yatt)
234  CALL def_var_netcdf(dgu, &
235  ifile_id,adjustl(ypatch//'GFLUX_RF'),'net roof conduction flux',iddim,yatt_title,yatt)
236  yatt='(kg/m2/s)'
237  CALL def_var_netcdf(dgu, &
238  ifile_id,adjustl(ypatch//'RUNOFF_RF'),'roof surface runoff',iddim,yatt_title,yatt)
239  yatt='(W/m2)'
240  IF (top%LGARDEN) THEN
241  CALL def_var_netcdf(dgu, &
242  ifile_id,adjustl(ypatch//'RN_GD'),'net radiation for GARDEN areas',iddim,yatt_title,yatt)
243  CALL def_var_netcdf(dgu, &
244  ifile_id,adjustl(ypatch//'H_GD'),'GARDEN area sensible heat flux',iddim,yatt_title,yatt)
245  CALL def_var_netcdf(dgu, &
246  ifile_id,adjustl(ypatch//'LE_GD'),'GARDEN area latent heat flux',iddim,yatt_title,yatt)
247  CALL def_var_netcdf(dgu, &
248  ifile_id,adjustl(ypatch//'GFLUX_GD'),'net GARDEN area conduction flux',iddim,yatt_title,yatt)
249  yatt='(kg/m2/s)'
250  CALL def_var_netcdf(dgu, &
251  ifile_id,adjustl(ypatch//'RUNOFF_GD'),'garden surface runoff',iddim,yatt_title,yatt)
252  ENDIF
253  yatt='(W/m2)'
254  CALL def_var_netcdf(dgu, &
255  ifile_id,adjustl(ypatch//'RN_BLT'),'net radiation for built surfaces',iddim,yatt_title,yatt)
256  CALL def_var_netcdf(dgu, &
257  ifile_id,adjustl(ypatch//'H_BLT'),'built surface sensible heat flux',iddim,yatt_title,yatt)
258  CALL def_var_netcdf(dgu, &
259  ifile_id,adjustl(ypatch//'LE_BLT'),'built surface latent heat flux',iddim,yatt_title,yatt)
260  CALL def_var_netcdf(dgu, &
261  ifile_id,adjustl(ypatch//'GFLUX_BLT'),'built surface conduction flux',iddim,yatt_title,yatt)
262 
263  CALL def_var_netcdf(dgu, &
264  ifile_id,adjustl(ypatch//'SWA_RF'),'Sdown absorbed by roofs',iddim,yatt_title,yatt)
265  CALL def_var_netcdf(dgu, &
266  ifile_id,adjustl(ypatch//'SWA_SN_RF'),'Sdown absorbed by snow on roofs',iddim,yatt_title,yatt)
267  CALL def_var_netcdf(dgu, &
268  ifile_id,adjustl(ypatch//'LWA_RF'),'Ldown absorbed by roofs',iddim,yatt_title,yatt)
269  CALL def_var_netcdf(dgu, &
270  ifile_id,adjustl(ypatch//'LWA_SN_RF'),'Ldown absorbed by snow on roofs',iddim,yatt_title,yatt)
271  CALL def_var_netcdf(dgu, &
272  ifile_id,adjustl(ypatch//'SWA_RD'),'Sdown absorbed by roads',iddim,yatt_title,yatt)
273  CALL def_var_netcdf(dgu, &
274  ifile_id,adjustl(ypatch//'SWA_SN_RD'),'Sdown absorbed by snow on roads',iddim,yatt_title,yatt)
275  CALL def_var_netcdf(dgu, &
276  ifile_id,adjustl(ypatch//'LWA_RD'),'Ldown absorbed by roads',iddim,yatt_title,yatt)
277  CALL def_var_netcdf(dgu, &
278  ifile_id,adjustl(ypatch//'LWA_SN_RD'),'Ldown absorbed by snow on roads',iddim,yatt_title,yatt)
279  IF (top%CWALL_OPT=='UNIF') THEN
280  CALL def_var_netcdf(dgu, &
281  ifile_id,adjustl(ypatch//'SWA_WL'),'Sdown absorbed by wall',iddim,yatt_title,yatt)
282  CALL def_var_netcdf(dgu, &
283  ifile_id,adjustl(ypatch//'LWA_WL'),'Ldown absorbed by wall',iddim,yatt_title,yatt)
284  ELSE
285  CALL def_var_netcdf(dgu, &
286  ifile_id,adjustl(ypatch//'SWA_WLA'),'Sdown absorbed by wall A',iddim,yatt_title,yatt)
287  CALL def_var_netcdf(dgu, &
288  ifile_id,adjustl(ypatch//'LWA_WLA'),'Ldown absorbed by wall A',iddim,yatt_title,yatt)
289  CALL def_var_netcdf(dgu, &
290  ifile_id,adjustl(ypatch//'SWA_WLB'),'Sdown absorbed by wall B',iddim,yatt_title,yatt)
291  CALL def_var_netcdf(dgu, &
292  ifile_id,adjustl(ypatch//'LWA_WLB'),'Ldown absorbed by wall B',iddim,yatt_title,yatt)
293  ENDIF
294  IF (top%LGARDEN) THEN
295  yatt='(W/m2)'
296  CALL def_var_netcdf(dgu, &
297  ifile_id,adjustl(ypatch//'SWA_GD'),'Sdown absorbed by GARDEN areas',iddim,yatt_title,yatt)
298  CALL def_var_netcdf(dgu, &
299  ifile_id,adjustl(ypatch//'LWA_GD'),'Ldown absorbed by GARDEN areas',iddim,yatt_title,yatt)
300  ENDIF
301 
302  yatt='(W/m2)'
303  CALL def_var_netcdf(dgu, &
304  ifile_id,adjustl(ypatch//'REF_SW_GO'),'Total solar rad reflected by ground',iddim,yatt_title,yatt)
305  CALL def_var_netcdf(dgu, &
306  ifile_id,adjustl(ypatch//'LWE_GO'),'LW emitted by ground',iddim,yatt_title,yatt)
307  CALL def_var_netcdf(dgu, &
308  ifile_id,adjustl(ypatch//'REF_SW_FA'),'Total solar rad reflected by facade',iddim,yatt_title,yatt)
309  CALL def_var_netcdf(dgu, &
310  ifile_id,adjustl(ypatch//'LWE_FA'),'LW emitted by facade',iddim,yatt_title,yatt)
311 
312  IF (top%CBEM=='BEM') THEN
313  yatt='(K)'
314  CALL def_var_netcdf(dgu, &
315  ifile_id,adjustl(ypatch//'CL_CURT'),'Current Cooling system temperature set point',iddim,yatt_title,yatt)
316  CALL def_var_netcdf(dgu, &
317  ifile_id,adjustl(ypatch//'HT_CURT'),'Current Heating system temperature set point',iddim,yatt_title,yatt)
318  yatt='(W m-2(floor))'
319  CALL def_var_netcdf(dgu, &
320  ifile_id,adjustl(ypatch//'QIN_CUR'),'Current Building internal heat loads',iddim,yatt_title,yatt)
321 
322  yatt='(W m-2(bld))'
323  CALL def_var_netcdf(dgu, &
324  ifile_id,adjustl(ypatch//'XFLX_BLD'),'Heat flux from bld',iddim,yatt_title,yatt)
325  CALL def_var_netcdf(dgu, &
326  ifile_id,adjustl(ypatch//'H_BLD_CL'),'sensible cooling demand',iddim,yatt_title,yatt)
327  CALL def_var_netcdf(dgu, &
328  ifile_id,adjustl(ypatch//'T_BLD_CL'),'Total cooling demand',iddim,yatt_title,yatt)
329  CALL def_var_netcdf(dgu, &
330  ifile_id,adjustl(ypatch//'H_BLD_HT'),'sensible heating demand',iddim,yatt_title,yatt)
331  CALL def_var_netcdf(dgu, &
332  ifile_id,adjustl(ypatch//'LE_BLD_CL'),'latent cooling demand',iddim,yatt_title,yatt)
333  CALL def_var_netcdf(dgu, &
334  ifile_id,adjustl(ypatch//'LE_BLD_HT'),'latent heating demand',iddim,yatt_title,yatt)
335  CALL def_var_netcdf(dgu, &
336  ifile_id,adjustl(ypatch//'H_WASTE'),'sensible waste heat from HVAC',iddim,yatt_title,yatt)
337  CALL def_var_netcdf(dgu, &
338  ifile_id,adjustl(ypatch//'LE_WASTE'),'latent waste heat from HVAC',iddim,yatt_title,yatt)
339  CALL def_var_netcdf(dgu, &
340  ifile_id,adjustl(ypatch//'HVAC_CL'),'cooling energy consumption',iddim,yatt_title,yatt)
341  CALL def_var_netcdf(dgu, &
342  ifile_id,adjustl(ypatch//'HVAC_HT'),'heating energy consumption',iddim,yatt_title,yatt)
343  yatt='(W m-2(bld))'
344  CALL def_var_netcdf(dgu, &
345  ifile_id,adjustl(ypatch//'CAP_SYS'),'Actual capacity of the cooling system',iddim,yatt_title,yatt)
346  yatt='(kg s-1 m-2(bld))'
347  CALL def_var_netcdf(dgu, &
348  ifile_id,adjustl(ypatch//'M_SYS'),'ctual HVAC mass flow rate',iddim,yatt_title,yatt)
349  yatt='(-)'
350  CALL def_var_netcdf(dgu, &
351  ifile_id,adjustl(ypatch//'COP'),'Actual COP of the cooling system',iddim,yatt_title,yatt)
352  yatt='(kg kg-1)'
353  CALL def_var_netcdf(dgu, &
354  ifile_id,adjustl(ypatch//'Q_SYS'),'Supply air specific humidity',iddim,yatt_title,yatt)
355  yatt='(K)'
356  CALL def_var_netcdf(dgu, &
357  ifile_id,adjustl(ypatch//'T_SYS'),'Supply air temperature',iddim,yatt_title,yatt)
358  yatt='(W m-2(bld))'
359  CALL def_var_netcdf(dgu, &
360  ifile_id,adjustl(ypatch//'TR_SW_WIN'),'Solar radiation transmitted through windows',iddim,yatt_title,yatt)
361  CALL def_var_netcdf(dgu, &
362  ifile_id,adjustl(ypatch//'FAN_POWER'),'HVAC fan power',iddim,yatt_title,yatt)
363  yatt='(K)'
364  CALL def_var_netcdf(dgu, &
365  ifile_id,adjustl(ypatch//'T_RAD_IND'),'Indoor mean radiant temperature',iddim,yatt_title,yatt)
366  yatt='(-)'
367  CALL def_var_netcdf(dgu, &
368  ifile_id,adjustl(ypatch//'HU_BLD'),'Indoor relative humidity',iddim,yatt_title,yatt)
369  yatt='(W/m2)'
370  CALL def_var_netcdf(dgu, &
371  ifile_id,adjustl(ypatch//'SWA_WIN'),'Sdown absorbed by windows',iddim,yatt_title,yatt)
372  CALL def_var_netcdf(dgu, &
373  ifile_id,adjustl(ypatch//'LWA_WIN'),'Ldown absorbed by windows',iddim,yatt_title,yatt)
374  ENDIF
375 
376  IF (top%LGREENROOF) THEN
377  yatt='(W/m2)'
378  CALL def_var_netcdf(dgu, &
379  ifile_id,adjustl(ypatch//'RN_GR'),'net radiation for GREENROOFs',iddim,yatt_title,yatt)
380  CALL def_var_netcdf(dgu, &
381  ifile_id,adjustl(ypatch//'H_GR'),'sensible heat flux for GREENROOFs',iddim,yatt_title,yatt)
382  CALL def_var_netcdf(dgu, &
383  ifile_id,adjustl(ypatch//'LE_GR'),'latent heat flux for GREENROOFs',iddim,yatt_title,yatt)
384  CALL def_var_netcdf(dgu, &
385  ifile_id,adjustl(ypatch//'GFLUX_GR'),'net conduction flux for GREENROOFs',iddim,yatt_title,yatt)
386  CALL def_var_netcdf(dgu, &
387  ifile_id,adjustl(ypatch//'SWA_GR'),'Sdown absorbed by GREENROOFs',iddim,yatt_title,yatt)
388  CALL def_var_netcdf(dgu, &
389  ifile_id,adjustl(ypatch//'LWA_GR'),'Ldown absorbed by GREENROOFs',iddim,yatt_title,yatt)
390  CALL def_var_netcdf(dgu, &
391  ifile_id,adjustl(ypatch//'G_GR_ROOF'),'heat flux between GREENROOF and ROOF',iddim,yatt_title,yatt)
392  yatt='(kg/m2/s)'
393  CALL def_var_netcdf(dgu, &
394  ifile_id,adjustl(ypatch//'RUNOFF_FR'),'GREENROOF soil surface runoff',iddim,yatt_title,yatt)
395  CALL def_var_netcdf(dgu, &
396  ifile_id,adjustl(ypatch//'DRAIN_GR'),'GREENROOF total vertical drainage',iddim,yatt_title,yatt)
397  yatt='(W/m2)'
398  CALL def_var_netcdf(dgu, &
399  ifile_id,adjustl(ypatch//'RN_SR'),'structural roof net radiation',iddim,yatt_title,yatt)
400  CALL def_var_netcdf(dgu, &
401  ifile_id,adjustl(ypatch//'H_SR'),'structural roof sensible heat flux',iddim,yatt_title,yatt)
402  CALL def_var_netcdf(dgu, &
403  ifile_id,adjustl(ypatch//'LE_SR'),'structural roof latent heat flux',iddim,yatt_title,yatt)
404  CALL def_var_netcdf(dgu, &
405  ifile_id,adjustl(ypatch//'GFLUX_SR'),'structural roof net conduction flux',iddim,yatt_title,yatt)
406  yatt='(kg/m2/s)'
407  CALL def_var_netcdf(dgu, &
408  ifile_id,adjustl(ypatch//'RUNOFF_SR'),'structural roof surface runoff',iddim,yatt_title,yatt)
409  ENDIF
410 
411  IF (top%LSOLAR_PANEL) THEN
412  yatt='(W/m2(panel))'
413  CALL def_var_netcdf(dgu, &
414  ifile_id,adjustl(ypatch//'SWA_SP'),'Shortwave absorbed by solar panels on roofs',iddim,yatt_title,yatt)
415  CALL def_var_netcdf(dgu, &
416  ifile_id,adjustl(ypatch//'LWA_SP'),'Longwave absorbed by solar panels on roofs',iddim,yatt_title,yatt)
417  CALL def_var_netcdf(dgu, &
418  ifile_id,adjustl(ypatch//'RN_SP'),'Net radiation of solar panels on roofs',iddim,yatt_title,yatt)
419  CALL def_var_netcdf(dgu, &
420  ifile_id,adjustl(ypatch//'H_SP'),'Sensible Heat flux from solar panels on roofs',iddim,yatt_title,yatt)
421  yatt='(W/m2(photovoltaic panel))'
422  CALL def_var_netcdf(dgu, &
423  ifile_id,adjustl(ypatch//'PHOT_SP'),'Photovolatic production',iddim,yatt_title,yatt)
424  yatt='(W/m2(thermal panel))'
425  CALL def_var_netcdf(dgu, &
426  ifile_id,adjustl(ypatch//'THER_SP'),'Hot water production',iddim,yatt_title,yatt)
427  yatt='(W/m2(panel))'
428  CALL def_var_netcdf(dgu, &
429  ifile_id,adjustl(ypatch//'PROD_SP'),'Production by solar panels on roofs',iddim,yatt_title,yatt)
430  yatt='(W/m2(bld))'
431  CALL def_var_netcdf(dgu, &
432  ifile_id,adjustl(ypatch//'PHOT_BLD'),'Photovolatic production',iddim,yatt_title,yatt)
433  CALL def_var_netcdf(dgu, &
434  ifile_id,adjustl(ypatch//'THER_BLD'),'Hot water production',iddim,yatt_title,yatt)
435  END IF
436 
437  ENDDO
438 
439 ENDIF
440 !
441 IF (dgt%N2M>0) THEN
442  yatt='-'
443  CALL def_var_netcdf(dgu, &
444  ifile_id,'RI_TEB' ,'Averaged_Richardson_Number' ,iddim,yatt_title,yatt)
445 ENDIF
446 !
447 IF (dgt%LSURF_BUDGET) THEN
448  yatt='(W/m2)'
449  CALL def_var_netcdf(dgu, &
450  ifile_id,'RN_TEB' ,'Averaged_Net_Radiation' ,iddim,yatt_title,yatt)
451  CALL def_var_netcdf(dgu, &
452  ifile_id,'H_TEB' ,'Averaged_Sensible_Heat_Flux' ,iddim,yatt_title,yatt)
453  CALL def_var_netcdf(dgu, &
454  ifile_id,'LE_TEB' ,'Averaged_Latent_Heat_Flux ' ,iddim,yatt_title,yatt)
455  CALL def_var_netcdf(dgu, &
456  ifile_id,'GFLUX_TEB','Averaged_Ground_Heat_Flux ' ,iddim,yatt_title,yatt)
457  IF (dgt%LRAD_BUDGET) THEN
458  CALL def_var_netcdf(dgu, &
459  ifile_id,'SWD_TEB' ,'Averaged_Downward_SW ' ,iddim,yatt_title,yatt)
460  CALL def_var_netcdf(dgu, &
461  ifile_id,'SWU_TEB' ,'Averaged_Upward_SW ' ,iddim,yatt_title,yatt)
462  CALL def_var_netcdf(dgu, &
463  ifile_id,'LWD_TEB' ,'Averaged_Downward_LW ' ,iddim,yatt_title,yatt)
464  CALL def_var_netcdf(dgu, &
465  ifile_id,'LWU_TEB' ,'Averaged_Upward_LW ' ,iddim,yatt_title,yatt)
466  CALL def_var_netcdf(dgu, &
467  ifile_id,'FMU_TEB' ,'Averaged_Zonal_Wind_Stress ' ,iddim,yatt_title,yatt)
468  DO jsw=1, SIZE(dgt%XSWBD,2)
469  ynum=achar(48+jsw)
470  CALL def_var_netcdf(dgu, &
471  ifile_id,'SWD_TEB_'//ynum,'X_Y_SWD_TEB_'//ynum,iddim,yatt_title,yatt)
472  CALL def_var_netcdf(dgu, &
473  ifile_id,'SWU_TEB_'//ynum,'X_Y_SWD_TEB_'//ynum,iddim,yatt_title,yatt)
474  ENDDO
475  ENDIF
476  yatt='(kg/ms2)'
477  CALL def_var_netcdf(dgu, &
478  ifile_id,'FMU_TEB' ,'Averaged_Zonal_Wind_Stress ' ,iddim,yatt_title,yatt)
479  CALL def_var_netcdf(dgu, &
480  ifile_id,'FMV_TEB' ,'Averaged_Merid_Wind_Stress ' ,iddim,yatt_title,yatt)
481 ENDIF
482 !
483 IF (cht%SVT%NBEQ>0 .AND. cht%CCH_DRY_DEP=="WES89 ") THEN
484  !
485  yatt="(m/s)"
486  !
487  DO jsv = 1,SIZE(cht%CCH_NAMES,1)
488  !
489  yrecfm = 'DV_TWN_'//trim(cht%CCH_NAMES(jsv))
490  WRITE(ycomment,'(A7,I3.3)')'DV_TWN_',jsv
491  CALL def_var_netcdf(dgu, &
492  ifile_id,yrecfm,ycomment,iddim,yatt_title,yatt)
493  !
494  ENDDO
495  !
496 END IF
497 !
498 IF (dgt%LCOEF) THEN
499  yatt='W/s2'
500  CALL def_var_netcdf(dgu, &
501  ifile_id,'CD_TEB' ,'Drag_Coefficient_For_Momentum ' ,iddim,yatt_title,yatt)
502  yatt='W/s'
503  CALL def_var_netcdf(dgu, &
504  ifile_id,'CH_TEB' ,'Drag_Coefficient_For_Heat ' ,iddim,yatt_title,yatt)
505  yatt='W/s/K'
506  CALL def_var_netcdf(dgu, &
507  ifile_id,'CE_TEB' ,'Drag_Coefficient_For_Evaporation' ,iddim,yatt_title,yatt)
508  yatt='m'
509  CALL def_var_netcdf(dgu, &
510  ifile_id,'Z0_TEB' ,'Roughness_Length_For_Momentum' ,iddim,yatt_title,yatt)
511  yatt='m'
512  CALL def_var_netcdf(dgu, &
513  ifile_id,'Z0H_TEB' ,'Roughness_Length_For_Heat' ,iddim,yatt_title,yatt)
514 ENDIF
515 !
516 IF (dgt%LSURF_VARS) THEN
517  yatt='kg/kg'
518  CALL def_var_netcdf(dgu, &
519  ifile_id,'QS_TEB' ,'Surface_Humidity ' ,iddim,yatt_title,yatt)
520 ENDIF
521 !
522 IF (dgt%N2M>0) THEN
523  yatt='K'
524  CALL def_var_netcdf(dgu, &
525  ifile_id,'T2M_TEB' ,'2m_Temperature ' ,iddim,yatt_title,yatt)
526  CALL def_var_netcdf(dgu, &
527  ifile_id,'T2MMIN_TEB' ,'Minimum 2m_Temperature ' ,iddim,yatt_title,yatt)
528  CALL def_var_netcdf(dgu, &
529  ifile_id,'T2MMAX_TEB' ,'Maximum 2m_Temperature ' ,iddim,yatt_title,yatt)
530  yatt='kg/kg'
531  CALL def_var_netcdf(dgu, &
532  ifile_id,'Q2M_TEB' ,'2m_Specific_Humidity ' ,iddim,yatt_title,yatt)
533  yatt='(-)'
534  CALL def_var_netcdf(dgu, &
535  ifile_id,'HU2M_TEB','2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
536  CALL def_var_netcdf(dgu, &
537  ifile_id,'HU2MMIN_TEB','Minimum 2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
538  CALL def_var_netcdf(dgu, &
539  ifile_id,'HU2MMAX_TEB','Maximum 2m_Relative_Humidity ' ,iddim,yatt_title,yatt)
540  yatt='m/s'
541  CALL def_var_netcdf(dgu, &
542  ifile_id,'ZON10M_TEB','10m_Zonal_wind ' ,iddim,yatt_title,yatt)
543  yatt='m/s'
544  CALL def_var_netcdf(dgu, &
545  ifile_id,'MER10M_TEB','10m_Meridian_Wind ' ,iddim,yatt_title,yatt)
546  CALL def_var_netcdf(dgu, &
547  ifile_id,'W10M_TEB','10m_Wind Strength ' ,iddim,yatt_title,yatt)
548  CALL def_var_netcdf(dgu, &
549  ifile_id,'W10MMAX_TEB','Maximum 10m_Wind Strength ' ,iddim,yatt_title,yatt)
550  yatt='kg/m2/s'
551  CALL def_var_netcdf(dgu, &
552  ifile_id,'SFCO2_TEB','CO2 Flux ' ,iddim,yatt_title,yatt)
553 ENDIF
554 !
555 IF (dgut%LUTCI .AND. dgt%N2M >0) THEN
556 !RJ: extended ascii should be avoided in I/O
557  yatt='°C'
558  CALL def_var_netcdf(dgu, &
559  ifile_id,'UTCI_IN','UTCI for person indoor' ,iddim,yatt_title,yatt)
560  CALL def_var_netcdf(dgu, &
561  ifile_id,'UTCI_OUTSUN','UTCI for person at sun' ,iddim,yatt_title,yatt)
562  CALL def_var_netcdf(dgu, &
563  ifile_id,'UTCI_OUTSHAD','UTCI for person at shade' ,iddim,yatt_title,yatt)
564  yatt='K'
565  CALL def_var_netcdf(dgu, &
566  ifile_id,'TRAD_SUN','Mean radiant temperature seen by person at sun' ,iddim,yatt_title,yatt)
567  CALL def_var_netcdf(dgu, &
568  ifile_id,'TRAD_SHAD','Mean radiant temperature seen by person in shade' ,iddim,yatt_title,yatt)
569 
570  yatt='s'
571  DO jstress=1,nutci_stress
572  yrecfm='UTCIC_IN_'//cutci_stress_names(jstress)
573  CALL def_var_netcdf(dgu, &
574  ifile_id,yrecfm, &
575  'Cumulated time spent in'//cutci_stress_names(jstress)//' stress range for person indoor' ,&
576  iddim,yatt_title,yatt)
577  END DO
578  DO jstress=1,nutci_stress
579  yrecfm='UTCIC_SU_'//cutci_stress_names(jstress)
580  CALL def_var_netcdf(dgu, &
581  ifile_id,yrecfm, &
582  'Cumulated time spent in'//cutci_stress_names(jstress)//' stress range for person at sun' ,&
583  iddim,yatt_title,yatt)
584  END DO
585  DO jstress=1,nutci_stress
586  yrecfm='UTCIC_SH_'//cutci_stress_names(jstress)
587  CALL def_var_netcdf(dgu, &
588  ifile_id,yrecfm, &
589  'Cumulated time spent in'//cutci_stress_names(jstress)//' stress range for person in shade',&
590  iddim,yatt_title,yatt)
591  END DO
592 END IF
593 
594  CALL ol_write_coord(dgu, &
595  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
596 !
597 !
598 IF (dgt%LPGD .AND. ASSOCIATED(t%CUR%XBLD)) THEN
599 
600  yfile='TEB_PGD.OUT.nc'
601  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
602  jret=nf_redef(ifile_id)
603  !
604  yatt='(-)'
605  CALL def_var_netcdf(dgu, &
606  ifile_id,'BLD','building fraction',iddim(1:indims-1),yatt_title,yatt)
607  CALL def_var_netcdf(dgu, &
608  ifile_id,'WALL_O_HOR','Wall surface over plan area surface',iddim(1:indims-1),yatt_title,yatt)
609  yatt='(m)'
610  CALL def_var_netcdf(dgu, &
611  ifile_id,'BLD_HEIGHT','Building Height',iddim(1:indims-1),yatt_title,yatt)
612  CALL def_var_netcdf(dgu, &
613  ifile_id,'Z0_TOWN','Town roughness length',iddim(1:indims-1),yatt_title,yatt)
614  yatt='(-)'
615  CALL def_var_netcdf(dgu, &
616  ifile_id,'XROAD_DIR','Road direction',iddim(1:indims-1),yatt_title,yatt)
617  CALL def_var_netcdf(dgu, &
618  ifile_id,'GARDEN_FRAC','Garden fraction',iddim(1:indims-1),yatt_title,yatt)
619  CALL def_var_netcdf(dgu, &
620  ifile_id,'GREENROOF_FRAC','Greenroof fraction',iddim(1:indims-1),yatt_title,yatt)
621  CALL def_var_netcdf(dgu, &
622  ifile_id,'PANEL_FRAC','Solar panel fraction',iddim(1:indims-1),yatt_title,yatt)
623  !
624  CALL def_var_netcdf(dgu, &
625  ifile_id,'ALB_ROOF','Roof Albedo',iddim(1:indims-1),yatt_title,yatt)
626  CALL def_var_netcdf(dgu, &
627  ifile_id,'EMIS_ROOF','Roof Emissivity',iddim(1:indims-1),yatt_title,yatt)
628  DO jlayer=1,top%NROOF_LAYER
629  WRITE(yrecfm,fmt='(A,I1.1)') 'HC_ROOF',jlayer
630  CALL def_var_netcdf(dgu, &
631  ifile_id,yrecfm,'Roof Heat Capacity',iddim(1:indims-1),yatt_title,yatt)
632  WRITE(yrecfm,fmt='(A,I1.1)') 'TC_ROOF',jlayer
633  CALL def_var_netcdf(dgu, &
634  ifile_id,yrecfm,'Roof thermal conductivity',iddim(1:indims-1),yatt_title,yatt)
635  WRITE(yrecfm,fmt='(A,I1.1)') 'D_ROOF',jlayer
636  CALL def_var_netcdf(dgu, &
637  ifile_id,yrecfm,'Roof layer thickness',iddim(1:indims-1),yatt_title,yatt)
638  ENDDO
639  CALL def_var_netcdf(dgu, &
640  ifile_id,'ROUGH_ROOF','Roof Roughness',iddim(1:indims-1),yatt_title,yatt)
641  CALL def_var_netcdf(dgu, &
642  ifile_id,'RESIDENTIAL','Residential use fraction',iddim(1:indims-1),yatt_title,yatt)
643  !
644  CALL def_var_netcdf(dgu, &
645  ifile_id,'ALB_WALL','Wall Albedo',iddim(1:indims-1),yatt_title,yatt)
646  CALL def_var_netcdf(dgu, &
647  ifile_id,'EMIS_WALL','Wall Emissivity',iddim(1:indims-1),yatt_title,yatt)
648  DO jlayer=1,top%NWALL_LAYER
649  WRITE(yrecfm,fmt='(A,I1.1)') 'HC_WALL',jlayer
650  CALL def_var_netcdf(dgu, &
651  ifile_id,yrecfm,'Wall Heat Capacity',iddim(1:indims-1),yatt_title,yatt)
652  WRITE(yrecfm,fmt='(A,I1.1)') 'TC_WALL',jlayer
653  CALL def_var_netcdf(dgu, &
654  ifile_id,yrecfm,'Wall thermal conductivity',iddim(1:indims-1),yatt_title,yatt)
655  WRITE(yrecfm,fmt='(A,I1.1)') 'D_WALL',jlayer
656  CALL def_var_netcdf(dgu, &
657  ifile_id,yrecfm,'Wall layer thickness',iddim(1:indims-1),yatt_title,yatt)
658  ENDDO
659  CALL def_var_netcdf(dgu, &
660  ifile_id,'ROUGH_WALL','Wall Roughness',iddim(1:indims-1),yatt_title,yatt)
661  !
662  CALL def_var_netcdf(dgu, &
663  ifile_id,'ALB_ROAD','Road Albedo',iddim(1:indims-1),yatt_title,yatt)
664  CALL def_var_netcdf(dgu, &
665  ifile_id,'EMIS_ROAD','Road Emissivity',iddim(1:indims-1),yatt_title,yatt)
666  DO jlayer=1,top%NROAD_LAYER
667  WRITE(yrecfm,fmt='(A,I1.1)') 'HC_ROAD',jlayer
668  CALL def_var_netcdf(dgu, &
669  ifile_id,yrecfm,'Road Heat Capacity',iddim(1:indims-1),yatt_title,yatt)
670  WRITE(yrecfm,fmt='(A,I1.1)') 'TC_ROAD',jlayer
671  CALL def_var_netcdf(dgu, &
672  ifile_id,yrecfm,'Road thermal conductivity',iddim(1:indims-1),yatt_title,yatt)
673  WRITE(yrecfm,fmt='(A,I1.1)') 'D_ROAD',jlayer
674  CALL def_var_netcdf(dgu, &
675  ifile_id,yrecfm,'Road layer thickness',iddim(1:indims-1),yatt_title,yatt)
676  ENDDO
677  !
678  CALL def_var_netcdf(dgu, &
679  ifile_id,'H_TRAFFIC','Traffic Heat Flux',iddim(1:indims-1),yatt_title,yatt)
680  CALL def_var_netcdf(dgu, &
681  ifile_id,'LE_TRAFFIC','Traffic Latent Flux',iddim(1:indims-1),yatt_title,yatt)
682  CALL def_var_netcdf(dgu, &
683  ifile_id,'H_INDUSTRY','INDUSTRY Heat Flux',iddim(1:indims-1),yatt_title,yatt)
684  CALL def_var_netcdf(dgu, &
685  ifile_id,'LE_INDUSTRY','INDUSTRY Latent Flux',iddim(1:indims-1),yatt_title,yatt)
686  !
687  IF (top%CBEM=='BEM') THEN
688  CALL def_var_netcdf(dgu, &
689  ifile_id,'N_FLOOR','Number of floors',iddim(1:indims-1),yatt_title,yatt)
690  DO jlayer=1,bop%NFLOOR_LAYER
691  WRITE(yrecfm,fmt='(A,I1.1)') 'HC_FLOOR',jlayer
692  CALL def_var_netcdf(dgu, &
693  ifile_id,yrecfm,'FLOOR Heat Capacity',iddim(1:indims-1),yatt_title,yatt)
694  WRITE(yrecfm,fmt='(A,I1.1)') 'TC_FLOOR',jlayer
695  CALL def_var_netcdf(dgu, &
696  ifile_id,yrecfm,'FLOOR thermal conductivity',iddim(1:indims-1),yatt_title,yatt)
697  WRITE(yrecfm,fmt='(A,I1.1)') 'D_FLOOR',jlayer
698  CALL def_var_netcdf(dgu, &
699  ifile_id,yrecfm,'FLOOR layer thickness',iddim(1:indims-1),yatt_title,yatt)
700  ENDDO
701  ENDIF
702  !
703  IF (top%LGARDEN) THEN
704  CALL def_var_netcdf(dgu, &
705  ifile_id,'GD_LAI','leaf area index',iddim,yatt_title,yatt)
706  CALL def_var_netcdf(dgu, &
707  ifile_id,'GD_VEG','',iddim,yatt_title,yatt)
708  CALL def_var_netcdf(dgu, &
709  ifile_id,'GD_Z0VEG','',iddim,yatt_title,yatt)
710  yatt='(m)'
711  DO jlayer=1,tgdo%NGROUND_LAYER
712  WRITE(yrecfm,fmt='(A5,I1)') 'GD_DG',jlayer
713  CALL def_var_netcdf(dgu, &
714  ifile_id,yrecfm,'',iddim(1:indims-1),yatt_title,yatt)
715  ENDDO
716  IF (tvg%CHORT=='SGH') THEN
717  CALL def_var_netcdf(dgu, &
718  ifile_id,'GD_ICE','soil ice depth for runoff',iddim,yatt_title,yatt)
719  ENDIF
720  yatt='(-)'
721  DO jlayer=1,nvegtype
722  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
723  CALL def_var_netcdf(dgu, &
724  ifile_id,'GD_VEGTY_P'//ylvl,'fraction of each vegetation type',iddim(1:indims-1),yatt_title,yatt)
725  ENDDO
726  yatt='(s.m-1)'
727  CALL def_var_netcdf(dgu, &
728  ifile_id,'GD_RSMIN','minimum stomatal resistance',iddim,yatt_title,yatt)
729  yatt='(-)'
730  CALL def_var_netcdf(dgu, &
731  ifile_id,'GD_GAMMA','coefficient for RSMIN calculation',iddim,yatt_title,yatt)
732  CALL def_var_netcdf(dgu, &
733  ifile_id,'GD_CV','vegetation thermal inertia coefficient',iddim,yatt_title,yatt)
734  CALL def_var_netcdf(dgu, &
735  ifile_id,'GD_RGL','maximum solar radiation usable in photosynthesis',iddim,yatt_title,yatt)
736  CALL def_var_netcdf(dgu, &
737  ifile_id,'GD_EMIS_ISBA','surface emissivity',iddim,yatt_title,yatt)
738  CALL def_var_netcdf(dgu, &
739  ifile_id,'GD_WRMAX_CF','coefficient for maximum water interception',iddim,yatt_title,yatt)
740  IF (dgmto%LSURF_DIAG_ALBEDO) THEN
741  CALL def_var_netcdf(dgu, &
742  ifile_id,'GD_ALBNIR_S','soil near-infra-red albedo',iddim,yatt_title,yatt)
743  CALL def_var_netcdf(dgu, &
744  ifile_id,'GD_ALBVIS_S','soil visible albedo',iddim,yatt_title,yatt)
745  CALL def_var_netcdf(dgu, &
746  ifile_id,'GD_ALBUV_S','soil UV albedo',iddim,yatt_title,yatt)
747  CALL def_var_netcdf(dgu, &
748  ifile_id,'GD_ALBNIR_T','total near-infra-red albedo',iddim,yatt_title,yatt)
749  CALL def_var_netcdf(dgu, &
750  ifile_id,'GD_ALBVIS_T','total visible albedo',iddim,yatt_title,yatt)
751  CALL def_var_netcdf(dgu, &
752  ifile_id,'GD_ALBUV_T','total UV albedo',iddim,yatt_title,yatt)
753  ENDIF
754  ENDIF
755  !
756  CALL ol_write_coord(dgu, &
757  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
758  !
759 ENDIF
760 !
761 yfile='TEB_DIAG_CUMUL.OUT.nc'
762  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
763 jret=nf_redef(ifile_id)
764 !
765 IF (dgmto%LSURF_MISC_BUDGET) THEN
766  DO jpatch=1,top%NTEB_PATCH
767 
768  ypatch = ' '
769  IF (top%NTEB_PATCH>1) WRITE(ypatch,fmt='(A,I1,A)') 'T',jpatch,'_'
770  IF (top%CBEM=='BEM') THEN
771  yatt='J/m2'
772  CALL def_var_netcdf(dgu, &
773  ifile_id,adjustl(ypatch//'HVACC_CL'),'cumulated cooling energy consumption',iddim,yatt_title,yatt)
774  CALL def_var_netcdf(dgu, &
775  ifile_id,adjustl(ypatch//'HVACC_HT'),'cumulated heating energy consumption',iddim,yatt_title,yatt)
776  END IF
777  yatt='kg/m2'
778  CALL def_var_netcdf(dgu, &
779  ifile_id,adjustl(ypatch//'RUNOFFC_TW'),'cumulated aggregated runoff for town',iddim,yatt_title,yatt)
780  yatt='kg/m2(road)'
781  CALL def_var_netcdf(dgu, &
782  ifile_id,adjustl(ypatch//'RUNOFFC_RD'),'cumulated road surface runoff',iddim,yatt_title,yatt)
783  yatt='kg/m2(roof)'
784  CALL def_var_netcdf(dgu, &
785  ifile_id,adjustl(ypatch//'RUNOFFC_RF'),'cumulated roof surface runoff',iddim,yatt_title,yatt)
786  yatt='kg/m2(road)'
787  CALL def_var_netcdf(dgu, &
788  ifile_id,adjustl(ypatch//'IRRIGC_RD'),'cumulated road irrigation',iddim,yatt_title,yatt)
789 
790  IF (top%LGARDEN) THEN
791  yatt='kg/m2(garden)'
792  CALL def_var_netcdf(dgu, &
793  ifile_id,adjustl(ypatch//'RUNOFFC_GD'),'cumulated garden surface runoff',iddim,yatt_title,yatt)
794  CALL def_var_netcdf(dgu, &
795  ifile_id,adjustl(ypatch//'DRAINC_GD'),'cumulated garden surface drainage',iddim,yatt_title,yatt)
796  CALL def_var_netcdf(dgu, &
797  ifile_id,adjustl(ypatch//'IRRIGC_GD'),'cumulated garden irrigation',iddim,yatt_title,yatt)
798  END IF
799 
800  IF (top%LGREENROOF) THEN
801  yatt='kg/m2(greenroof)'
802  CALL def_var_netcdf(dgu, &
803  ifile_id,adjustl(ypatch//'RUNOFFC_GR'),'cumulated greenroof surface runoff',iddim,yatt_title,yatt)
804  CALL def_var_netcdf(dgu, &
805  ifile_id,adjustl(ypatch//'DRAINC_GR'),'cumulated greenroof surface drainage',iddim,yatt_title,yatt)
806  CALL def_var_netcdf(dgu, &
807  ifile_id,adjustl(ypatch//'IRRIGC_GR'),'cumulated greenroof irrigation',iddim,yatt_title,yatt)
808  yatt='kg/m2(roof)'
809  CALL def_var_netcdf(dgu, &
810  ifile_id,adjustl(ypatch//'RUNOFFC_SR'),'cumulated structural roof surface runoff',iddim,yatt_title,yatt)
811  END IF
812 
813  IF (top%LSOLAR_PANEL) THEN
814  yatt='J/m2(bld)'
815  CALL def_var_netcdf(dgu, &
816  ifile_id,adjustl(ypatch//'PHOTC_BLD'),'Cumulated Photovolatic production',iddim,yatt_title,yatt)
817  CALL def_var_netcdf(dgu, &
818  ifile_id,adjustl(ypatch//'THERC_BLD'),'Cumulated Hot Water production',iddim,yatt_title,yatt)
819  END IF
820 
821  END DO
822 END IF
823 !
824  CALL ol_write_coord(dgu, &
825  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
826 !
827 !
828 ! 5. Create output file for prognostic and semi-pronostic variable in teb
829 !------------------------------------------------------------------------
830 
831 yfile='TEB_PROGNOSTIC.OUT.nc'
832  CALL create_file(yfile,idims1,yname_dim1,ifile_id,iddim1)
833 jret=nf_redef(ifile_id)
834 iddim(1:indims-1) = iddim1(1:indims-1)
835 iddim(indims) = iddim1(indims+1)
836 !
837 ! 5.1 Temperatures
838 yatt='K'
839 !
840 DO jpatch=1,top%NTEB_PATCH
841 
842  ypatch = ' '
843  IF (top%NTEB_PATCH>1) WRITE(ypatch,fmt='(A,I1,A)') 'T',jpatch,'_'
844 
845  ! Roof temperatures
846  DO jlayer=1,top%NROOF_LAYER
847  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
848  CALL def_var_netcdf(dgu, &
849  ifile_id,adjustl(ypatch//'TROOF'//ylvl),'Roof_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
850  END DO
851  ! Road temperatures
852  DO jlayer=1,top%NROAD_LAYER
853  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
854  CALL def_var_netcdf(dgu, &
855  ifile_id,adjustl(ypatch//'TROAD'//ylvl),'Road_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
856  END DO
857  ! Wall temperatures
858  DO jlayer=1,top%NWALL_LAYER
859  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
860  IF (top%CWALL_OPT=='UNIF') THEN
861  CALL def_var_netcdf(dgu, &
862  ifile_id,adjustl(ypatch//'TWALL'//ylvl),'Wall_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
863  ELSE
864  CALL def_var_netcdf(dgu, &
865  ifile_id,adjustl(ypatch//'TWALLA'//ylvl),'Wall_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
866  CALL def_var_netcdf(dgu, &
867  ifile_id,adjustl(ypatch//'TWALLB'//ylvl),'Wall_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
868  ENDIF
869  END DO
870  ! Internal building temperature
871  CALL def_var_netcdf(dgu, &
872  ifile_id,adjustl(ypatch//'TI_BLD'),'Internal_Building_Temperature',iddim,yatt_title,yatt)
873  !
874  ! Deep road temperature
875  CALL def_var_netcdf(dgu, &
876  ifile_id,adjustl(ypatch//'TI_ROAD'),'Deep_Road_Temperature',iddim,yatt_title,yatt)
877  !
878  ! 5.2 Water contents
879  !
880  yatt = 'kg/m2'
881  ! Roof water content
882  CALL def_var_netcdf(dgu, &
883  ifile_id,adjustl(ypatch//'WS_ROOF'),'Roof_Water_Content_Layer' ,iddim,yatt_title,yatt)
884  !
885  ! Road water content
886  CALL def_var_netcdf(dgu, &
887  ifile_id,adjustl(ypatch//'WS_ROAD'),'Road_Water_Content_Layer' ,iddim,yatt_title,yatt)
888  !
889  ! 5.3 semi pronostic variables
890  !
891  ! temperature of canyon air
892  yatt = 'K'
893  CALL def_var_netcdf(dgu, &
894  ifile_id,adjustl(ypatch//'T_CANYON'),'Canyon_Air_Temperature',iddim,yatt_title,yatt)
895  !
896  ! humidity of canyon air
897  yatt = 'kg/kg'
898  CALL def_var_netcdf(dgu, &
899  ifile_id,adjustl(ypatch//'Q_CANYON'),'Canyon_Air_Humidity',iddim,yatt_title,yatt)
900  !
901  !* Thermal solar panels present day production
902  !
903  yatt = 'J/m2'
904  CALL def_var_netcdf(dgu, &
905  ifile_id,adjustl(ypatch//'THER_PDAY'),'Thermal Solar Panels present day production',iddim,yatt_title,yatt)
906  !
907  !* BEM semi-prognostic variables
908  !
909  IF (top%CBEM=='BEM') THEN
910  yatt = 'kg/kg'
911  CALL def_var_netcdf(dgu, &
912  ifile_id,adjustl(ypatch//'QI_BLD'),'QI_BLD',iddim,yatt_title,yatt)
913  yatt='(K)'
914  CALL def_var_netcdf(dgu, &
915  ifile_id,adjustl(ypatch//'T_WIN2'),'T_WIN2',iddim,yatt_title,yatt)
916  DO jlayer=1,bop%NFLOOR_LAYER
917  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
918  CALL def_var_netcdf(dgu, &
919  ifile_id,adjustl(ypatch//'TFLOO'//ylvl),'Floor_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
920  CALL def_var_netcdf(dgu, &
921  ifile_id,adjustl(ypatch//'TMASS'//ylvl),'Mass_Temperature_Layer_'//ylvl ,iddim,yatt_title,yatt)
922  END DO
923  ENDIF
924  !
925  CALL def_var_netcdf(dgu, &
926  ifile_id,adjustl(ypatch//'WSN_RF1'), 'Rf_Snow_Water_Eq_layer_1', iddim1, yatt_title, (/'Kg/m2'/))
927  CALL def_var_netcdf(dgu, &
928  ifile_id,adjustl(ypatch//'RSN_RF1'), 'Rf_snow_density_layer_1', iddim1, yatt_title, (/'Kg/m3'/))
929  CALL def_var_netcdf(dgu, &
930  ifile_id,adjustl(ypatch//'TSN_RF1'), 'Rf_snow_temperature_1', iddim1, yatt_title, (/'K'/))
931  !
932  CALL def_var_netcdf(dgu, &
933  ifile_id,adjustl(ypatch//'ASNOW_RF'), 'Rf_snow_albedo_1', iddim1, yatt_title, (/'-'/))
934  !
935  CALL def_var_netcdf(dgu, &
936  ifile_id,adjustl(ypatch//'WSN_RD1'), 'Rd_snow_Water_Eq_layer_1', iddim1, yatt_title, (/'Kg/m2'/))
937  CALL def_var_netcdf(dgu, &
938  ifile_id,adjustl(ypatch//'RSN_RD1'), 'Rd_snow_density_layer_1', iddim1, yatt_title, (/'Kg/m3'/))
939  CALL def_var_netcdf(dgu, &
940  ifile_id,adjustl(ypatch//'TSN_RD1'), 'Rd_snow_temperature_1', iddim1, yatt_title, (/'K'/))
941  !
942  CALL def_var_netcdf(dgu, &
943  ifile_id,adjustl(ypatch//'ASNOW_RD'), 'Rd_snow_albedo_1', iddim, yatt_title, (/'-'/))
944  !
945  IF (top%LGARDEN) THEN
946  !
947  DO jlayer=1,tgdo%NGROUND_LAYER
948  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
949  CALL def_var_netcdf(dgu, &
950  ifile_id,adjustl(ypatch//'GD_TG'//ylvl),'GD_TG',iddim,yatt_title,(/'K'/))
951  CALL def_var_netcdf(dgu, &
952  ifile_id,adjustl(ypatch//'GD_WG'//ylvl),'GD_WG',iddim,yatt_title,(/'m3/m3'/))
953  CALL def_var_netcdf(dgu, &
954  ifile_id,adjustl(ypatch//'GD_WGI'//ylvl),'GD_WG',iddim,yatt_title,(/'m3/m3'/))
955  ENDDO
956  !
957  CALL def_var_netcdf(dgu, &
958  ifile_id,adjustl(ypatch//'GD_WR'), 'GD_WR', iddim, yatt_title, (/'(kg/m2)'/))
959  !
960  IF (tvg%CPHOTO/='NON' .AND. tvg%CPHOTO/='AGS' .AND. tvg%CPHOTO/='AST') THEN
961  CALL def_var_netcdf(dgu, &
962  ifile_id,adjustl(ypatch//'GD_LAI'), 'GD_LAI', iddim, yatt_title, (/'(m2/m2)'/))
963  ENDIF
964  !
965  IF (tvg%CPHOTO=='NIT') THEN
966  DO jnbiomass=1,tvg%NNBIOMASS
967  WRITE(ypas,'(I3)') jnbiomass ; ylvl=adjustl(ypas(:len_trim(ypas)))
968  CALL def_var_netcdf(dgu, &
969  ifile_id,adjustl(ypatch//'GD_BIOMA'), 'GD_BIOMA', iddim, yatt_title, (/'(kg/m2)'/))
970  ENDDO
971  DO jnbiomass=2,tvg%NNBIOMASS
972  WRITE(ypas,'(I3)') jnbiomass ; ylvl=adjustl(ypas(:len_trim(ypas)))
973  CALL def_var_netcdf(dgu, &
974  ifile_id,adjustl(ypatch//'GD_RESPI'), 'GD_RESPI', iddim, yatt_title, (/'(kg/m2/s)'/))
975  ENDDO
976  ENDIF
977  !
978  CALL def_var_netcdf(dgu, &
979  ifile_id,adjustl(ypatch//'GD_RES'), 'GD_RES', iddim, yatt_title, (/'(kg/m2)'/))
980  !
981  DO jlayer=1,tgd%CUR%TSNOW%NLAYER
982  WRITE(ypas,'(I3)') jlayer; ylvl = adjustl(ypas(:len_trim(ypas)))
983  CALL def_var_netcdf(dgu, &
984  ifile_id, 'WSN_GD'//ylvl, 'Gd_Snow_Water_Eq_layer_'//ylvl, iddim1, yatt_title, (/'Kg/m2'/))
985  CALL def_var_netcdf(dgu, &
986  ifile_id, 'RSN_GD'//ylvl, 'Gd_snow_density_layer_'//ylvl , iddim1, yatt_title, (/'Kg/m3'/))
987  IF (tgd%CUR%TSNOW%SCHEME=='3-L' .OR. tgd%CUR%TSNOW%SCHEME=='CRO') THEN
988  CALL def_var_netcdf(dgu, &
989  ifile_id, 'HSN_GD'//ylvl, 'Gd_snow_heat_layer'//ylvl, iddim1, yatt_title, (/'J/m2'/))
990  ELSE
991  CALL def_var_netcdf(dgu, &
992  ifile_id, 'TSN_GD'//ylvl, 'Gd_snow_temp_layer'//ylvl, iddim1, yatt_title, (/'K'/))
993  ENDIF
994  IF (tgd%CUR%TSNOW%SCHEME=='CRO') THEN
995  CALL def_var_netcdf(dgu, &
996  ifile_id, 'SG1_GD'//ylvl, 'Gd_snow_grain_par1_layer_'//ylvl, iddim1, yatt_title, (/'-'/))
997  CALL def_var_netcdf(dgu, &
998  ifile_id, 'SG2_GD'//ylvl, 'Gd_snow_grain_par2_layer_'//ylvl, iddim1, yatt_title, (/'-'/))
999  CALL def_var_netcdf(dgu, &
1000  ifile_id, 'SHI_GD'//ylvl, 'Gd_snow_hist_par_layer_'//ylvl, iddim1, yatt_title, (/'-'/))
1001  CALL def_var_netcdf(dgu, &
1002  ifile_id, 'SAG_GD'//ylvl, 'Gd_snow_age_par_layer_'//ylvl, iddim1, yatt_title,&
1003  (/'days since snowfall'/))
1004  ENDIF
1005  ENDDO
1006  CALL def_var_netcdf(dgu, &
1007  ifile_id, 'ASNOW_GD', 'Gd_snow_albedo', iddim1, yatt_title, (/'-'/))
1008  !
1009  ENDIF
1010  !
1011  IF (top%LGREENROOF) THEN
1012  !
1013  DO jlayer=1,tgro%NLAYER_GR
1014  WRITE(ypas,'(I3)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
1015  CALL def_var_netcdf(dgu, &
1016  ifile_id,adjustl(ypatch//'GR_TG'//ylvl),'GR_TG',iddim,yatt_title,(/'K'/))
1017  CALL def_var_netcdf(dgu, &
1018  ifile_id,adjustl(ypatch//'GR_WG'//ylvl),'GR_WG',iddim,yatt_title,(/'m3/m3'/))
1019  CALL def_var_netcdf(dgu, &
1020  ifile_id,adjustl(ypatch//'GR_WGI'//ylvl),'GR_WG',iddim,yatt_title,(/'m3/m3'/))
1021  ENDDO
1022  !
1023  CALL def_var_netcdf(dgu, &
1024  ifile_id,adjustl(ypatch//'GR_WR'), 'GR_WR', iddim, yatt_title, (/'(kg/m2)'/))
1025  !
1026  IF (tvg%CPHOTO/='NON' .AND. tvg%CPHOTO/='AGS' .AND. tvg%CPHOTO/='AST') THEN
1027  CALL def_var_netcdf(dgu, &
1028  ifile_id,adjustl(ypatch//'GR_LAI'), 'GR_LAI', iddim, yatt_title, (/'(m2/m2)'/))
1029  ENDIF
1030  !
1031  IF (tvg%CPHOTO=='NIT') THEN
1032  DO jnbiomass=1,tvg%NNBIOMASS
1033  WRITE(ypas,'(I3)') jnbiomass ; ylvl=adjustl(ypas(:len_trim(ypas)))
1034  CALL def_var_netcdf(dgu, &
1035  ifile_id,adjustl(ypatch//'GR_BIOMA'), 'GR_BIOMA', iddim, yatt_title, (/'(kg/m2)'/))
1036  ENDDO
1037  DO jnbiomass=2,tvg%NNBIOMASS
1038  WRITE(ypas,'(I3)') jnbiomass ; ylvl=adjustl(ypas(:len_trim(ypas)))
1039  CALL def_var_netcdf(dgu, &
1040  ifile_id,adjustl(ypatch//'GR_RESPI'), 'GR_RESPI', iddim, yatt_title, (/'(kg/m2/s)'/))
1041  ENDDO
1042  ENDIF
1043  !
1044  CALL def_var_netcdf(dgu, &
1045  ifile_id,adjustl(ypatch//'GR_RES'), 'GR_RES', iddim, yatt_title, (/'(kg/m2)'/))
1046  !
1047  DO jlayer=1,tgr%CUR%TSNOW%NLAYER
1048  WRITE(ypas,'(I3)') jlayer; ylvl = adjustl(ypas(:len_trim(ypas)))
1049  CALL def_var_netcdf(dgu, &
1050  ifile_id, 'WSN_GR'//ylvl, 'Gr_Snow_Water_Eq_layer_'//ylvl, iddim1, yatt_title, (/'Kg/m2'/))
1051  CALL def_var_netcdf(dgu, &
1052  ifile_id, 'RSN_GR'//ylvl, 'Gr_snow_density_layer_'//ylvl , iddim1, yatt_title, (/'Kg/m3'/))
1053  IF (tgr%CUR%TSNOW%SCHEME=='3-L' .OR. tgr%CUR%TSNOW%SCHEME=='CRO') THEN
1054  CALL def_var_netcdf(dgu, &
1055  ifile_id, 'HSN_GR'//ylvl, 'Gr_snow_heat_layer'//ylvl, iddim1, yatt_title, (/'J/m2'/))
1056  ELSE
1057  CALL def_var_netcdf(dgu, &
1058  ifile_id, 'TSN_GR'//ylvl, 'Gr_snow_temp_layer'//ylvl, iddim1, yatt_title, (/'K'/))
1059  ENDIF
1060  IF (tgr%CUR%TSNOW%SCHEME=='CRO') THEN
1061  CALL def_var_netcdf(dgu, &
1062  ifile_id, 'SG1_GR'//ylvl, 'Gr_snow_grain_par1_layer_'//ylvl, iddim1, yatt_title, (/'-'/))
1063  CALL def_var_netcdf(dgu, &
1064  ifile_id, 'SG2_GR'//ylvl, 'Gr_snow_grain_par_layer_'//ylvl, iddim1, yatt_title, (/'-'/))
1065  CALL def_var_netcdf(dgu, &
1066  ifile_id, 'SHI_GR'//ylvl, 'Gr_snow_hist_par_layer_'//ylvl, iddim1, yatt_title, (/'-'/))
1067  CALL def_var_netcdf(dgu, &
1068  ifile_id, 'SAG_GR'//ylvl, 'Gr_snow_age_param_layer_'//ylvl , iddim1, yatt_title,&
1069  (/'days since snowfall'/))
1070  ENDIF
1071  ENDDO
1072  CALL def_var_netcdf(dgu, &
1073  ifile_id, 'ASNOW_GR', 'Gr_snow_albedo', iddim1, yatt_title, (/'-'/))
1074  !
1075  ENDIF
1076  !
1077 ENDDO
1078 !
1079  CALL ol_write_coord(dgu, &
1080  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
1081 !
1082 ! 6. Create output file for prognostic variables in teb canopy
1083 !------------------------------------------------------------------------
1084 !
1085 yfile='TEB_CANOPY.OUT.nc'
1086  CALL create_file(yfile,idims,yname_dim,ifile_id,iddim)
1087 jret=nf_redef(ifile_id)
1088 !
1089 ! 6.1 Heights
1090 yatt = 'm'
1091 !
1092 DO jlayer=1,tcp%NLVL
1093  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
1094  CALL def_var_netcdf(dgu, &
1095  ifile_id,'TEB_CAN_Z'//ylvl,'Height_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
1096 END DO
1097 !
1098 ! 6.2 Wind
1099 yatt = 'm/s'
1100 DO jlayer=1,tcp%NLVL
1101  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
1102  CALL def_var_netcdf(dgu, &
1103  ifile_id,'TEB_CAN_U'//ylvl,'Wind_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
1104 END DO
1105 !
1106 ! 6.3 Temperature
1107 yatt = 'K'
1108 DO jlayer=1,tcp%NLVL
1109  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
1110  CALL def_var_netcdf(dgu, &
1111  ifile_id,'TEB_CAN_T'//ylvl,'Temperature_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
1112 END DO
1113 !
1114 ! 6.4 Temperature
1115 yatt = 'kg/m3'
1116 DO jlayer=1,tcp%NLVL
1117  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
1118  CALL def_var_netcdf(dgu, &
1119  ifile_id,'TEB_CAN_Q'//ylvl,'Humidity_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
1120 END DO
1121 !
1122 ! 6.5 Turbulence
1123 yatt = 'm2/s2'
1124 DO jlayer=1,tcp%NLVL
1125  WRITE(ypas,'(I2.2,1X)') jlayer ; ylvl=adjustl(ypas(:len_trim(ypas)))
1126  CALL def_var_netcdf(dgu, &
1127  ifile_id,'TEB_CAN_E'//ylvl,'TKE_of_canopy_Layer_'//ylvl ,iddim,yatt_title,yatt)
1128 END DO
1129 !
1130  CALL ol_write_coord(dgu, &
1131  yfile,ifile_id,iddim,yatt_title,yname_dim,yunit1,yunit2,idim1,ydate,zx,zy)
1132 !
1133 IF (lhook) CALL dr_hook('INIT_OUTFN_TEB_N',1,zhook_handle)
1134 !
1135 END SUBROUTINE init_outfn_teb_n
subroutine create_file(HFILE, KDIMS, HNAME_DIM, KFILE_ID, KDIM_ID)
Definition: create_file.F90:6
subroutine get_dim_full_n(U, KDIM_FULL)
subroutine ol_write_coord(DGU, HFILE, KFILE_ID, KDDIM, HATT_TITLE, HNAME_DIM, HUNIT1, HUNIT2, KDIM1, HDATE, PX, PY)
subroutine get_date_ol(TPTIME, PTSTEP, HDATE)
Definition: get_date_ol.F90:6
subroutine ol_define_dim(UG, U, HPROGRAM, KLUOUT, KNI, KDIM1, HUNIT1, HUNIT2, PX, PY, KDIMS, KDDIM, HNAME_DIM, KNPATCH)
subroutine init_outfn_teb_n(BOP, CHT, DGMTO, DGU, DGT, DGUT, UG, U, TCP, TGD, TGDO, TGR, TGRO, T, TOP, TVG, HPROGRAM, KLUOUT)
subroutine def_var_netcdf(DGU, KFILE_ID, HNAME, HLONG_NAME, KDIM_ID, HATT_TITLE, HATT_TEXT, KVAR_ID, KTYPE, KLEN)