SCALE-RM
mod_urban_vars.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
10 !-------------------------------------------------------------------------------
11 #include "scalelib.h"
13  !-----------------------------------------------------------------------------
14  !
15  !++ used modules
16  !
17  use scale_precision
18  use scale_io
19  use scale_prof
20  use scale_debug
22  use scale_tracer
24  !-----------------------------------------------------------------------------
25  implicit none
26  private
27  !-----------------------------------------------------------------------------
28  !
29  !++ Public procedure
30  !
31  public :: urban_vars_setup
32  public :: urban_vars_finalize
33  public :: urban_vars_restart_read
34  public :: urban_vars_restart_write
35  public :: urban_vars_history
36  public :: urban_vars_monitor
37  public :: urban_vars_check
38 
40  public :: urban_vars_restart_open
43  public :: urban_vars_restart_close
44 
45  !-----------------------------------------------------------------------------
46  !
47  !++ Public parameters & variables
48  !
49  logical, public :: urban_restart_output = .false.
50 
51  character(len=H_LONG), public :: urban_restart_in_basename = ''
52  logical, public :: urban_restart_in_aggregate
53  logical, public :: urban_restart_in_postfix_timelabel = .false.
54  character(len=H_LONG), public :: urban_restart_out_basename = ''
55  logical, public :: urban_restart_out_aggregate
56  logical, public :: urban_restart_out_postfix_timelabel = .true.
57  character(len=H_MID), public :: urban_restart_out_title = 'URBAN restart'
58  character(len=H_SHORT), public :: urban_restart_out_dtype = 'DEFAULT'
59 
60  ! prognostic variables
61  real(rp), public, allocatable :: urban_trl (:,:,:) ! urban temperature in layer of roof [K]
62  real(rp), public, allocatable :: urban_tbl (:,:,:) ! urban temperature in layer of wall [K]
63  real(rp), public, allocatable :: urban_tgl (:,:,:) ! urban temperature in layer of road [K]
64  real(rp), public, allocatable :: urban_tr (:,:) ! urban surface temperature of roof [K]
65  real(rp), public, allocatable :: urban_tb (:,:) ! urban surface temperature of wall [K]
66  real(rp), public, allocatable :: urban_tg (:,:) ! urban surface temperature of road [K]
67  real(rp), public, allocatable :: urban_tc (:,:) ! urban canopy air temperature [K]
68  real(rp), public, allocatable :: urban_qc (:,:) ! urban canopy humidity [kg/kg]
69  real(rp), public, allocatable :: urban_uc (:,:) ! urban canopy wind [m/s]
70  real(rp), public, allocatable :: urban_rainr(:,:) ! urban rain storage on roof [mm=kg/m2]
71  real(rp), public, allocatable :: urban_rainb(:,:) ! urban rain storage on wall [mm=kg/m2]
72  real(rp), public, allocatable :: urban_raing(:,:) ! urban rain storage on road [mm=kg/m2]
73 
74  ! for restart
75  real(rp), public, allocatable :: urban_sfc_temp (:,:) ! urban grid average of surface temperature [K]
76  real(rp), public, allocatable :: urban_sfc_albedo(:,:,:,:) ! urban grid average of albedo (direct/diffuse,IR/near-IR/VIS) (0-1)
77 
78  ! tendency variables
79  real(rp), public, allocatable :: urban_trl_t (:,:,:) ! tendency of URBAN_TRL
80  real(rp), public, allocatable :: urban_tbl_t (:,:,:) ! tendency of URBAN_TBL
81  real(rp), public, allocatable :: urban_tgl_t (:,:,:) ! tendency of URBAN_TGL
82  real(rp), public, allocatable :: urban_tc_t (:,:) ! tendency of URBAN_TC
83  real(rp), public, allocatable :: urban_uc_t (:,:) ! tendency of URBAN_UC
84  real(rp), public, allocatable :: urban_qc_t (:,:) ! tendency of URBAN_QC
85  real(rp), public, allocatable :: urban_tr_t (:,:) ! tendency of URBAN_TR
86  real(rp), public, allocatable :: urban_tb_t (:,:) ! tendency of URBAN_TB
87  real(rp), public, allocatable :: urban_tg_t (:,:) ! tendency of URBAN_TG
88  real(rp), public, allocatable :: urban_rainr_t(:,:) ! tendency of URBAN_RAINR
89  real(rp), public, allocatable :: urban_rainb_t(:,:) ! tendency of URBAN_RAINB
90  real(rp), public, allocatable :: urban_raing_t(:,:) ! tendency of URBAN_RAING
91 
92  real(rp), public, allocatable :: urban_roff (:,:) ! urban runoff [mm/s=kg/m2/s]
93 
94  real(rp), public, allocatable :: urban_sflx_mw (:,:) ! urban grid average of w-momentum flux [kg/m2/s]
95  real(rp), public, allocatable :: urban_sflx_mu (:,:) ! urban grid average of u-momentum flux [kg/m2/s]
96  real(rp), public, allocatable :: urban_sflx_mv (:,:) ! urban grid average of v-momentum flux [kg/m2/s]
97  real(rp), public, allocatable :: urban_sflx_sh (:,:) ! urban grid average of sensible heat flux [W/m2]
98  real(rp), public, allocatable :: urban_sflx_lh (:,:) ! urban grid average of latent heat flux [W/m2]
99  real(rp), public, allocatable :: urban_sflx_shex(:,:) ! grid average of extera (anthropogenic) sensible heat flux [W/m2]
100  real(rp), public, allocatable :: urban_sflx_lhex(:,:) ! grid average of extera (anthropogenic) latent heat flux [W/m2]
101  real(rp), public, allocatable :: urban_sflx_qvex(:,:) ! grid average of extera (anthropogenic) water vapour flux [kg/kg/m2/s]
102  real(rp), public, allocatable :: urban_sflx_qtrc (:,:,:) ! urban grid average of water vapor flux [kg/m2/s]
103  real(rp), public, allocatable :: urban_sflx_gh (:,:) ! urban grid average of ground heat flux [W/m2]
104 
105  ! given 2D variables expressing urban morphology
106  real(rp), public, allocatable :: urban_z0m (:,:) ! urban grid average of rougness length (momentum) [m]
107  real(rp), public, allocatable :: urban_z0h (:,:) ! urban grid average of rougness length (heat) [m]
108  real(rp), public, allocatable :: urban_z0e (:,:) ! urban grid average of rougness length (vapor) [m]
109  real(rp), public, allocatable :: urban_zd (:,:) ! urban grid average of displacement height [m]
110  real(rp), public, allocatable :: urban_ah (:,:) ! grid average of anthropogenic sensible heat [W/m2]
111  real(rp), public, allocatable :: urban_ahl (:,:) ! grid average of anthropogenic latent heat [W/m2]
112 
113  ! diagnostic variables
114  real(rp), public, allocatable :: urban_ustar(:,:) ! urban grid average of friction velocity [m/s]
115  real(rp), public, allocatable :: urban_tstar(:,:) ! urban grid average of temperature scale [K]
116  real(rp), public, allocatable :: urban_qstar(:,:) ! urban grid average of moisture scale [kg/kg]
117  real(rp), public, allocatable :: urban_wstar(:,:) ! urban grid average of convective velocity scale [m/s]
118  real(rp), public, allocatable :: urban_rlmo (:,:) ! urban grid average of inversed Obukhov length [1/m]
119  real(rp), public, allocatable :: urban_u10 (:,:) ! urban grid average of velocity u at 10m [m/s]
120  real(rp), public, allocatable :: urban_v10 (:,:) ! urban grid average of velocity v at 10m [m/s]
121  real(rp), public, allocatable :: urban_t2 (:,:) ! urban grid average of temperature at 2m [K]
122  real(rp), public, allocatable :: urban_q2 (:,:) ! urban grid average of water vapor at 2m [kg/kg]
123 
124  ! recieved atmospheric variables
125  real(rp), public, allocatable :: atmos_temp (:,:)
126  real(rp), public, allocatable :: atmos_pres (:,:)
127  real(rp), public, allocatable :: atmos_w (:,:)
128  real(rp), public, allocatable :: atmos_u (:,:)
129  real(rp), public, allocatable :: atmos_v (:,:)
130  real(rp), public, allocatable :: atmos_dens (:,:)
131  real(rp), public, allocatable :: atmos_qv (:,:)
132  real(rp), public, allocatable :: atmos_pbl (:,:)
133  real(rp), public, allocatable :: atmos_sfc_dens (:,:)
134  real(rp), public, allocatable :: atmos_sfc_pres (:,:)
135  real(rp), public, allocatable :: atmos_sflx_lw (:,:,:)
136  real(rp), public, allocatable :: atmos_sflx_sw (:,:,:)
137  real(rp), public, allocatable :: atmos_cossza (:,:)
138  real(rp), public, allocatable :: atmos_sflx_water(:,:)
139  real(rp), public, allocatable :: atmos_sflx_engi(:,:)
140 
141  !-----------------------------------------------------------------------------
142  !
143  !++ Private procedure
144  !
145  !-----------------------------------------------------------------------------
146  !
147  !++ Private parameters & variables
148  !
149  logical, private :: urban_vars_checkrange = .false.
150 
151  integer, private, parameter :: vmax = 19
152  integer, private, parameter :: i_trl = 1
153  integer, private, parameter :: i_tbl = 2
154  integer, private, parameter :: i_tgl = 3
155  integer, private, parameter :: i_tr = 4
156  integer, private, parameter :: i_tb = 5
157  integer, private, parameter :: i_tg = 6
158  integer, private, parameter :: i_tc = 7
159  integer, private, parameter :: i_qc = 8
160  integer, private, parameter :: i_uc = 9
161  integer, private, parameter :: i_rainr = 10
162  integer, private, parameter :: i_rainb = 11
163  integer, private, parameter :: i_raing = 12
164  integer, private, parameter :: i_sfc_temp = 13
165  integer, private, parameter :: i_sfc_alb_ir_dir = 14
166  integer, private, parameter :: i_sfc_alb_ir_dif = 15
167  integer, private, parameter :: i_sfc_alb_nir_dir = 16
168  integer, private, parameter :: i_sfc_alb_nir_dif = 17
169  integer, private, parameter :: i_sfc_alb_vis_dir = 18
170  integer, private, parameter :: i_sfc_alb_vis_dif = 19
171 
172  character(len=H_SHORT), private :: var_name(vmax)
173  character(len=H_MID), private :: var_desc(vmax)
174  character(len=H_MID), private :: var_stdn(vmax)
175  character(len=H_SHORT), private :: var_unit(vmax)
176  integer, private :: var_id(vmax)
177  integer, private :: restart_fid = -1 ! file ID
178 
179  data var_name / 'URBAN_TRL', &
180  'URBAN_TBL', &
181  'URBAN_TGL', &
182  'URBAN_TR', &
183  'URBAN_TB', &
184  'URBAN_TG', &
185  'URBAN_TC', &
186  'URBAN_QC', &
187  'URBAN_UC', &
188  'URBAN_RAINR', &
189  'URBAN_RAINB', &
190  'URBAN_RAING', &
191  'URBAN_SFC_TEMP', &
192  'URBAN_SFC_ALB_IR_dir', &
193  'URBAN_SFC_ALB_IR_dif', &
194  'URBAN_SFC_ALB_NIR_dir', &
195  'URBAN_SFC_ALB_NIR_dif', &
196  'URBAN_SFC_ALB_VIS_dir', &
197  'URBAN_SFC_ALB_VIS_dif' /
198 
199  data var_desc / 'urban temperature in layer of roof', &
200  'urban temperature in layer of wall', &
201  'urban temperature in layer of road', &
202  'urban surface temperature of roof', &
203  'urban surface temperature of wall', &
204  'urban surface temperature of road', &
205  'urban canopy air temperature', &
206  'urban canopy humidity', &
207  'urban canopy wind', &
208  'urban rain strage on roof', &
209  'urban rain strage on wall', &
210  'urban rain strage on road', &
211  'urban grid average of temperature', &
212  'urban grid average of albedo for IR (direct)', &
213  'urban grid average of albedo for IR (diffuse)', &
214  'urban grid average of albedo for NIR (direct)', &
215  'urban grid average of albedo for NIR (diffuse)', &
216  'urban grid average of albedo for VIS (direct)', &
217  'urban grid average of albedo for VIS (diffuse)' /
218 
219  data var_stdn / '', &
220  '', &
221  '', &
222  '', &
223  '', &
224  '', &
225  '', &
226  '', &
227  '', &
228  '', &
229  '', &
230  '', &
231  '', &
232  '', &
233  '', &
234  '', &
235  '', &
236  '', &
237  '' /
238 
239  data var_unit / 'K', &
240  'K', &
241  'K', &
242  'K', &
243  'K', &
244  'K', &
245  'K', &
246  'kg/kg', &
247  'm/s', &
248  'kg/m2', &
249  'kg/m2', &
250  'kg/m2', &
251  'K', &
252  '1', &
253  '1', &
254  '1', &
255  '1', &
256  '1', &
257  '1' /
258 
259  logical, private :: urban_restart_in_check_coordinates = .true.
260 
261  ! for monitor
262  integer, parameter :: im_trl = 1
263  integer, parameter :: im_tbl = 2
264  integer, parameter :: im_tgl = 3
265  integer, parameter :: im_tr = 4
266  integer, parameter :: im_tb = 5
267  integer, parameter :: im_tg = 6
268  integer, parameter :: im_tc = 7
269  integer, parameter :: im_uc = 8
270  integer, parameter :: im_qc = 9
271  integer, parameter :: im_rainr = 10
272  integer, parameter :: im_rainb = 11
273  integer, parameter :: im_raing = 12
274  integer, parameter :: im_roff = 13
275  integer, parameter :: im_sfcwr = 14
276  integer, parameter :: im_sfcwb = 15
277  integer, parameter :: im_sfcwg = 16
278  integer, parameter :: im_sfcir = 17
279  integer, parameter :: im_sfcib = 18
280  integer, parameter :: im_sfcig = 19
281  integer, parameter :: im_masflx = 20
282  integer, parameter :: im_engi_s = 21
283  integer, parameter :: im_engi_sr = 22
284  integer, parameter :: im_engi_sb = 23
285  integer, parameter :: im_engi_sg = 24
286  integer, parameter :: im_engi_w = 25
287  integer, parameter :: im_engi_wr = 26
288  integer, parameter :: im_engi_wb = 27
289  integer, parameter :: im_engi_wg = 28
290  integer, parameter :: im_engsfc_ghr = 29
291  integer, parameter :: im_engsfc_ghb = 30
292  integer, parameter :: im_engsfc_ghg = 31
293  integer, parameter :: im_engsfc_eir = 32
294  integer, parameter :: im_engsfc_eib = 33
295  integer, parameter :: im_engsfc_eig = 34
296  integer, parameter :: im_roff_ei = 35
297  integer, parameter :: im_engflx = 36
298  integer, parameter :: im_max = 35
299  integer, private :: monit_id(im_max)
300 
301  !-----------------------------------------------------------------------------
302 contains
303  !-----------------------------------------------------------------------------
305  subroutine urban_vars_setup
306  use scale_prc, only: &
307  prc_abort
308  use scale_const, only: &
309  undef => const_undef
310  use scale_monitor, only: &
312  implicit none
313 
314  namelist / param_urban_vars / &
318  urban_restart_in_check_coordinates, &
325  urban_vars_checkrange
326 
327  integer :: ierr
328  integer :: iv
329  !---------------------------------------------------------------------------
330 
331  log_newline
332  log_info("URBAN_vars_setup",*) 'Setup'
333 
334  allocate( urban_trl(uks:uke,uia,uja) )
335  allocate( urban_tbl(uks:uke,uia,uja) )
336  allocate( urban_tgl(uks:uke,uia,uja) )
337  allocate( urban_tr(uia,uja) )
338  allocate( urban_tb(uia,uja) )
339  allocate( urban_tg(uia,uja) )
340  allocate( urban_tc(uia,uja) )
341  allocate( urban_qc(uia,uja) )
342  allocate( urban_uc(uia,uja) )
343  allocate( urban_rainr(uia,uja) )
344  allocate( urban_rainb(uia,uja) )
345  allocate( urban_raing(uia,uja) )
346  allocate( urban_roff(uia,uja) )
347  urban_trl(:,:,:) = undef
348  urban_tbl(:,:,:) = undef
349  urban_tgl(:,:,:) = undef
350  urban_tr(:,:) = undef
351  urban_tb(:,:) = undef
352  urban_tg(:,:) = undef
353  urban_tc(:,:) = undef
354  urban_qc(:,:) = undef
355  urban_uc(:,:) = undef
356  urban_rainr(:,:) = undef
357  urban_rainb(:,:) = undef
358  urban_raing(:,:) = undef
359  urban_roff(:,:) = undef
360  !$acc enter data create(URBAN_TRL,URBAN_TBL,URBAN_TGL,URBAN_TR,URBAN_TB,URBAN_TG,URBAN_TC,URBAN_QC,URBAN_UC,URBAN_RAINR,URBAN_RAINB,URBAN_RAING,URBAN_ROFF)
361 
362  allocate( urban_sfc_temp(uia,uja) )
364  urban_sfc_temp(:,:) = undef
365  urban_sfc_albedo(:,:,:,:) = undef
366  !$acc enter data create(URBAN_SFC_TEMP,URBAN_SFC_albedo)
367 
368  allocate( urban_tr_t(uia,uja) )
369  allocate( urban_tb_t(uia,uja) )
370  allocate( urban_tg_t(uia,uja) )
371  allocate( urban_tc_t(uia,uja) )
372  allocate( urban_qc_t(uia,uja) )
373  allocate( urban_uc_t(uia,uja) )
374  allocate( urban_trl_t(uks:uke,uia,uja) )
375  allocate( urban_tbl_t(uks:uke,uia,uja) )
376  allocate( urban_tgl_t(uks:uke,uia,uja) )
377  allocate( urban_rainr_t(uia,uja) )
378  allocate( urban_rainb_t(uia,uja) )
379  allocate( urban_raing_t(uia,uja) )
380  urban_tr_t(:,:) = undef
381  urban_tb_t(:,:) = undef
382  urban_tg_t(:,:) = undef
383  urban_tc_t(:,:) = undef
384  urban_qc_t(:,:) = undef
385  urban_uc_t(:,:) = undef
386  urban_trl_t(:,:,:) = undef
387  urban_tbl_t(:,:,:) = undef
388  urban_tgl_t(:,:,:) = undef
389  urban_rainr_t(:,:) = undef
390  urban_rainb_t(:,:) = undef
391  urban_raing_t(:,:) = undef
392  !$acc enter data create(URBAN_TR_t,URBAN_TB_t,URBAN_TG_t,URBAN_TC_t,URBAN_QC_t,URBAN_UC_t,URBAN_TRL_t,URBAN_TBL_t,URBAN_TGL_t,URBAN_RAINR_t,URBAN_RAINB_t,URBAN_RAING_t)
393 
394  allocate( urban_sflx_mw(uia,uja) )
395  allocate( urban_sflx_mu(uia,uja) )
396  allocate( urban_sflx_mv(uia,uja) )
397  allocate( urban_sflx_sh(uia,uja) )
398  allocate( urban_sflx_lh(uia,uja) )
399  allocate( urban_sflx_shex(uia,uja) )
400  allocate( urban_sflx_lhex(uia,uja) )
401  allocate( urban_sflx_qvex(uia,uja) )
402  allocate( urban_sflx_gh(uia,uja) )
403  allocate( urban_sflx_qtrc(uia,uja,max(qa,1)) )
404  urban_sflx_mw(:,:) = undef
405  urban_sflx_mu(:,:) = undef
406  urban_sflx_mv(:,:) = undef
407  urban_sflx_sh(:,:) = undef
408  urban_sflx_lh(:,:) = undef
409  urban_sflx_shex(:,:) = undef
410  urban_sflx_lhex(:,:) = undef
411  urban_sflx_qvex(:,:) = undef
412  urban_sflx_gh(:,:) = undef
413  urban_sflx_qtrc(:,:,:) = undef
414  !$acc enter data create(URBAN_SFLX_MW,URBAN_SFLX_MU,URBAN_SFLX_MV,URBAN_SFLX_SH,URBAN_SFLX_LH,URBAN_SFLX_SHEX,URBAN_SFLX_LHEX,URBAN_SFLX_QVEX,URBAN_SFLX_GH,URBAN_SFLX_QTRC)
415 
416  allocate( urban_z0m(uia,uja) )
417  allocate( urban_z0h(uia,uja) )
418  allocate( urban_z0e(uia,uja) )
419  allocate( urban_zd(uia,uja) )
420  allocate( urban_ah(uia,uja) )
421  allocate( urban_ahl(uia,uja) )
422  allocate( urban_ustar(uia,uja) )
423  allocate( urban_tstar(uia,uja) )
424  allocate( urban_qstar(uia,uja) )
425  allocate( urban_wstar(uia,uja) )
426  allocate( urban_rlmo(uia,uja) )
427  allocate( urban_u10(uia,uja) )
428  allocate( urban_v10(uia,uja) )
429  allocate( urban_t2(uia,uja) )
430  allocate( urban_q2(uia,uja) )
431  urban_z0m(:,:) = undef
432  urban_z0h(:,:) = undef
433  urban_z0e(:,:) = undef
434  urban_zd(:,:) = undef
435  urban_ah(:,:) = undef
436  urban_ahl(:,:) = undef
437  urban_ustar(:,:) = undef
438  urban_tstar(:,:) = undef
439  urban_qstar(:,:) = undef
440  urban_wstar(:,:) = undef
441  urban_rlmo(:,:) = undef
442  urban_u10(:,:) = undef
443  urban_v10(:,:) = undef
444  urban_t2(:,:) = undef
445  urban_q2(:,:) = undef
446  !$acc enter data create(URBAN_Z0M,URBAN_Z0H,URBAN_Z0E,URBAN_ZD,URBAN_AH,URBAN_AHL,URBAN_Ustar,URBAN_Tstar,URBAN_Qstar,URBAN_Wstar,URBAN_RLmo,URBAN_U10,URBAN_V10,URBAN_T2,URBAN_Q2)
447 
448  allocate( atmos_temp(uia,uja) )
449  allocate( atmos_pres(uia,uja) )
450  allocate( atmos_w(uia,uja) )
451  allocate( atmos_u(uia,uja) )
452  allocate( atmos_v(uia,uja) )
453  allocate( atmos_dens(uia,uja) )
454  allocate( atmos_qv(uia,uja) )
455  allocate( atmos_pbl(uia,uja) )
456  allocate( atmos_sfc_dens(uia,uja) )
457  allocate( atmos_sfc_pres(uia,uja) )
458  allocate( atmos_sflx_lw(uia,uja,2) )
459  allocate( atmos_sflx_sw(uia,uja,2) )
460  allocate( atmos_cossza(uia,uja) )
461  allocate( atmos_sflx_water(uia,uja) )
462  allocate( atmos_sflx_engi(uia,uja) )
463  atmos_temp(:,:) = undef
464  atmos_pres(:,:) = undef
465  atmos_w(:,:) = undef
466  atmos_u(:,:) = undef
467  atmos_v(:,:) = undef
468  atmos_dens(:,:) = undef
469  atmos_qv(:,:) = undef
470  atmos_pbl(:,:) = undef
471  atmos_sfc_dens(:,:) = undef
472  atmos_sfc_pres(:,:) = undef
473  atmos_sflx_lw(:,:,:) = undef
474  atmos_sflx_sw(:,:,:) = undef
475  atmos_cossza(:,:) = undef
476  atmos_sflx_water(:,:) = undef
477  atmos_sflx_engi(:,:) = undef
478  !$acc enter data create(ATMOS_TEMP,ATMOS_PRES,ATMOS_W,ATMOS_U,ATMOS_V,ATMOS_DENS,ATMOS_QV,ATMOS_PBL,ATMOS_SFC_DENS,ATMOS_SFC_PRES,ATMOS_SFLX_LW,ATMOS_SFLX_SW,ATMOS_cosSZA,ATMOS_SFLX_water,ATMOS_SFLX_ENGI)
479 
480  !--- read namelist
481  rewind(io_fid_conf)
482  read(io_fid_conf,nml=param_urban_vars,iostat=ierr)
483  if( ierr < 0 ) then !--- missing
484  log_info("URBAN_vars_setup",*) 'Not found namelist. Default used.'
485  elseif( ierr > 0 ) then !--- fatal error
486  log_error("URBAN_vars_setup",*) 'Not appropriate names in namelist PARAM_URBAN_VARS. Check!'
487  call prc_abort
488  endif
489  log_nml(param_urban_vars)
490 
491  log_newline
492  log_info("URBAN_vars_setup",*) 'List of prognostic variables (URBAN) '
493  log_info_cont('(1x,A,A24,A,A48,A,A12,A)') &
494  ' |', 'VARNAME ','|', &
495  'DESCRIPTION ', '[', 'UNIT ', ']'
496  do iv = 1, vmax
497  log_info_cont('(1x,A,I3,A,A24,A,A48,A,A12,A)') &
498  'NO.',iv,'|',var_name(iv),'|',var_desc(iv),'[',var_unit(iv),']'
499  enddo
500 
501  log_newline
502  if ( urban_restart_in_basename /= '' ) then
503  log_info("URBAN_vars_setup",*) 'Restart input? : YES, file = ', trim(urban_restart_in_basename)
504  log_info("URBAN_vars_setup",*) 'Add timelabel? : ', urban_restart_in_postfix_timelabel
505  else
506  log_info("URBAN_vars_setup",*) 'Restart input? : NO'
507  endif
508  if ( urban_restart_output &
509  .AND. urban_restart_out_basename /= '' ) then
510  log_info("URBAN_vars_setup",*) 'Restart output? : YES, file = ', trim(urban_restart_out_basename)
511  log_info("URBAN_vars_setup",*) 'Add timelabel? : ', urban_restart_out_postfix_timelabel
512  else
513  log_info("URBAN_vars_setup",*) 'Restart output? : NO'
514  urban_restart_output = .false.
515  endif
516 
517  ! monitor
518  call monitor_reg( 'URB_TRL', 'roof temperature', 'K m3', & ! (in)
519  monit_id(im_trl), & ! (out)
520  dim_type='UXY', is_tendency=.false. ) ! (in)
521  call monitor_reg( 'URB_TBL', 'wall temperature', 'K m3', & ! (in)
522  monit_id(im_tbl), & ! (out)
523  dim_type='UXY', is_tendency=.false. ) ! (in)
524  call monitor_reg( 'URB_TGL', 'road temperature', 'K m3', & ! (in)
525  monit_id(im_tgl), & ! (out)
526  dim_type='UXY', is_tendency=.false. ) ! (in)
527  call monitor_reg( 'URB_TR', 'roof surface temperature', 'K m2', & ! (in)
528  monit_id(im_tr), & ! (out)
529  dim_type='XY', is_tendency=.false. ) ! (in)
530  call monitor_reg( 'URB_TB', 'wall surface temperature', 'K m2', & ! (in)
531  monit_id(im_tb), & ! (out)
532  dim_type='XY', is_tendency=.false. ) ! (in)
533  call monitor_reg( 'URB_TG', 'road surface temperature', 'K m2', & ! (in)
534  monit_id(im_tg), & ! (out)
535  dim_type='XY', is_tendency=.false. ) ! (in)
536  call monitor_reg( 'URB_TC', 'canopy temperature', 'K m2', & ! (in)
537  monit_id(im_tc), & ! (out)
538  dim_type='XY', is_tendency=.false. ) ! (in)
539  call monitor_reg( 'URB_UC', 'canopy wind speed', 'm3/s', & ! (in)
540  monit_id(im_uc), & ! (out)
541  dim_type='XY', is_tendency=.false. ) ! (in)
542  call monitor_reg( 'URB_QC', 'canopy humidity', 'kg/m', & ! (in)
543  monit_id(im_qc), & ! (out)
544  dim_type='XY', is_tendency=.false. ) ! (in)
545  call monitor_reg( 'URB_RAINR', 'roof water', 'kg', & ! (in)
546  monit_id(im_rainr), & ! (out)
547  dim_type='XY', is_tendency=.false. ) ! (in)
548  call monitor_reg( 'URB_RAINB', 'wall water', 'kg', & ! (in)
549  monit_id(im_rainb), & ! (out)
550  dim_type='XY', is_tendency=.false. ) ! (in)
551  call monitor_reg( 'URB_RAING', 'road water', 'kg', & ! (in)
552  monit_id(im_raing), & ! (out)
553  dim_type='XY', is_tendency=.false. ) ! (in)
554  call monitor_reg( 'URB_ROFF', 'runoff water', 'kg', & ! (in)
555  monit_id(im_roff), & ! (out)
556  dim_type='XY', is_tendency=.false. ) ! (in)
557 
558  return
559  end subroutine urban_vars_setup
560 
561  !-----------------------------------------------------------------------------
563  subroutine urban_vars_finalize
564  implicit none
565  !---------------------------------------------------------------------------
566 
567  log_newline
568  log_info("URBAN_vars_finalize",*) 'Finalize'
569 
570  !$acc exit data delete(URBAN_TRL,URBAN_TBL,URBAN_TGL,URBAN_TR,URBAN_TB,URBAN_TG,URBAN_TC,URBAN_QC,URBAN_UC,URBAN_RAINR,URBAN_RAINB,URBAN_RAING,URBAN_ROFF)
571  deallocate( urban_trl )
572  deallocate( urban_tbl )
573  deallocate( urban_tgl )
574  deallocate( urban_tr )
575  deallocate( urban_tb )
576  deallocate( urban_tg )
577  deallocate( urban_tc )
578  deallocate( urban_qc )
579  deallocate( urban_uc )
580  deallocate( urban_rainr )
581  deallocate( urban_rainb )
582  deallocate( urban_raing )
583  deallocate( urban_roff )
584 
585  !$acc exit data delete(URBAN_SFC_TEMP,URBAN_SFC_albedo)
586  deallocate( urban_sfc_temp )
587  deallocate( urban_sfc_albedo )
588 
589  !$acc exit data delete(URBAN_TR_t,URBAN_TB_t,URBAN_TG_t,URBAN_TC_t,URBAN_QC_t,URBAN_UC_t,URBAN_TRL_t,URBAN_TBL_t,URBAN_TGL_t,URBAN_RAINR_t,URBAN_RAINB_t,URBAN_RAING_t)
590  deallocate( urban_tr_t )
591  deallocate( urban_tb_t )
592  deallocate( urban_tg_t )
593  deallocate( urban_tc_t )
594  deallocate( urban_qc_t )
595  deallocate( urban_uc_t )
596  deallocate( urban_trl_t )
597  deallocate( urban_tbl_t )
598  deallocate( urban_tgl_t )
599  deallocate( urban_rainr_t )
600  deallocate( urban_rainb_t )
601  deallocate( urban_raing_t )
602 
603  !$acc exit data delete(URBAN_SFLX_MW,URBAN_SFLX_MU,URBAN_SFLX_MV,URBAN_SFLX_SH,URBAN_SFLX_LH,URBAN_SFLX_SHEX,URBAN_SFLX_LHEX,URBAN_SFLX_QVEX,URBAN_SFLX_GH,URBAN_SFLX_QTRC)
604  deallocate( urban_sflx_mw )
605  deallocate( urban_sflx_mu )
606  deallocate( urban_sflx_mv )
607  deallocate( urban_sflx_sh )
608  deallocate( urban_sflx_lh )
609  deallocate( urban_sflx_shex )
610  deallocate( urban_sflx_lhex )
611  deallocate( urban_sflx_qvex )
612  deallocate( urban_sflx_gh )
613  deallocate( urban_sflx_qtrc )
614 
615  !$acc exit data delete(URBAN_Z0M,URBAN_Z0H,URBAN_Z0E,URBAN_ZD,URBAN_AH,URBAN_AHL,URBAN_Ustar,URBAN_Tstar,URBAN_Qstar,URBAN_Wstar,URBAN_RLmo,URBAN_U10,URBAN_V10,URBAN_T2,URBAN_Q2)
616  deallocate( urban_z0m )
617  deallocate( urban_z0h )
618  deallocate( urban_z0e )
619  deallocate( urban_zd )
620  deallocate( urban_ah )
621  deallocate( urban_ahl )
622  deallocate( urban_ustar )
623  deallocate( urban_tstar )
624  deallocate( urban_qstar )
625  deallocate( urban_wstar )
626  deallocate( urban_rlmo )
627  deallocate( urban_u10 )
628  deallocate( urban_v10 )
629  deallocate( urban_t2 )
630  deallocate( urban_q2 )
631 
632  !$acc exit data delete(ATMOS_TEMP,ATMOS_PRES,ATMOS_W,ATMOS_U,ATMOS_V,ATMOS_DENS,ATMOS_QV,ATMOS_PBL,ATMOS_SFC_DENS,ATMOS_SFC_PRES,ATMOS_SFLX_LW,ATMOS_SFLX_SW,ATMOS_cosSZA,ATMOS_SFLX_water,ATMOS_SFLX_ENGI)
633  deallocate( atmos_temp )
634  deallocate( atmos_pres )
635  deallocate( atmos_w )
636  deallocate( atmos_u )
637  deallocate( atmos_v )
638  deallocate( atmos_dens )
639  deallocate( atmos_qv )
640  deallocate( atmos_pbl )
641  deallocate( atmos_sfc_dens )
642  deallocate( atmos_sfc_pres )
643  deallocate( atmos_sflx_lw )
644  deallocate( atmos_sflx_sw )
645  deallocate( atmos_cossza )
646  deallocate( atmos_sflx_water )
647  deallocate( atmos_sflx_engi )
648 
649  return
650  end subroutine urban_vars_finalize
651 
652  !-----------------------------------------------------------------------------
654  subroutine urban_vars_restart_open
655  use scale_time, only: &
657  use scale_file_cartesc, only: &
659  file_cartesc_check_coordinates
660  use mod_urban_admin, only: &
661  urban_do
662  implicit none
663 
664  character(len=19) :: timelabel
665  character(len=H_LONG) :: basename
666  !---------------------------------------------------------------------------
667 
668  call prof_rapstart('URB_Restart', 1)
669 
670  log_newline
671  log_info("URBAN_vars_restart_open",*) 'Open restart file (URBAN) '
672 
673  if ( urban_do .and. urban_restart_in_basename /= '' ) then
674 
676  call time_gettimelabel( timelabel )
677  basename = trim(urban_restart_in_basename)//'_'//trim(timelabel)
678  else
679  basename = trim(urban_restart_in_basename)
680  endif
681 
682  log_info("URBAN_vars_restart_open",*) 'basename: ', trim(basename)
683 
684  call file_cartesc_open( basename, restart_fid, aggregate=urban_restart_in_aggregate )
685 
686  if ( urban_restart_in_check_coordinates ) then
687  call file_cartesc_check_coordinates( restart_fid, urban=.true. )
688  end if
689 
690  else
691  log_info("URBAN_vars_restart_open",*) 'restart file for urban is not specified.'
692  endif
693 
694  call prof_rapend('URB_Restart', 1)
695 
696  return
697  end subroutine urban_vars_restart_open
698 
699  !-----------------------------------------------------------------------------
701  subroutine urban_vars_restart_read
702  use scale_prc, only: &
703  prc_abort
704  use scale_file, only: &
706  use scale_file_cartesc, only: &
707  file_cartesc_read, &
709  implicit none
710  !---------------------------------------------------------------------------
711 
712  call prof_rapstart('URB_Restart', 1)
713 
714  if ( restart_fid /= -1 ) then
715  log_newline
716  log_info("URBAN_vars_restart_read",*) 'Read from restart file (URBAN) '
717 
718  call file_cartesc_read( restart_fid, var_name(i_trl), 'UXY', & ! [IN]
719  urban_trl(:,:,:) ) ! [OUT]
720  call file_cartesc_read( restart_fid, var_name(i_tbl), 'UXY', & ! [IN]
721  urban_tbl(:,:,:) ) ! [OUT]
722  call file_cartesc_read( restart_fid, var_name(i_tgl), 'UXY', & ! [IN]
723  urban_tgl(:,:,:) ) ! [OUT]
724 
725  call file_cartesc_read( restart_fid, var_name(i_tr), 'XY', & ! [IN]
726  urban_tr(:,:) ) ! [OUT]
727  call file_cartesc_read( restart_fid, var_name(i_tb), 'XY', & ! [IN]
728  urban_tb(:,:) ) ! [OUT]
729  call file_cartesc_read( restart_fid, var_name(i_tg), 'XY', & ! [IN]
730  urban_tg(:,:) ) ! [OUT]
731  call file_cartesc_read( restart_fid, var_name(i_tc), 'XY', & ! [IN]
732  urban_tc(:,:) ) ! [OUT]
733  call file_cartesc_read( restart_fid, var_name(i_qc), 'XY', & ! [IN]
734  urban_qc(:,:) ) ! [OUT]
735  call file_cartesc_read( restart_fid, var_name(i_uc), 'XY', & ! [IN]
736  urban_uc(:,:) ) ! [OUT]
737 
738  call file_cartesc_read( restart_fid, var_name(i_rainr), 'XY', & ! [IN]
739  urban_rainr(:,:) ) ! [OUT]
740  call file_cartesc_read( restart_fid, var_name(i_rainb), 'XY', & ! [IN]
741  urban_rainb(:,:) ) ! [OUT]
742  call file_cartesc_read( restart_fid, var_name(i_raing), 'XY', & ! [IN]
743  urban_raing(:,:) ) ! [OUT]
744 
745  call file_cartesc_read( restart_fid, var_name(i_sfc_temp), 'XY', & ! [IN]
746  urban_sfc_temp(:,:) ) ! [OUT]
747  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dir), 'XY', & ! [IN]
748  urban_sfc_albedo(:,:,i_r_direct ,i_r_ir ) ) ! [OUT]
749  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dif), 'XY', & ! [IN]
750  urban_sfc_albedo(:,:,i_r_diffuse,i_r_ir ) ) ! [OUT]
751  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dir), 'XY', & ! [IN]
752  urban_sfc_albedo(:,:,i_r_direct ,i_r_nir) ) ! [OUT]
753  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dif), 'XY', & ! [IN]
754  urban_sfc_albedo(:,:,i_r_diffuse,i_r_nir) ) ! [OUT]
755  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dir), 'XY', & ! [IN]
756  urban_sfc_albedo(:,:,i_r_direct ,i_r_vis) ) ! [OUT]
757  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dif), 'XY', & ! [IN]
758  urban_sfc_albedo(:,:,i_r_diffuse,i_r_vis) ) ! [OUT]
759 
760  if( file_get_aggregate(restart_fid) ) call file_cartesc_flush( restart_fid ) ! commit all pending read requests
761 
762  !$acc update device(URBAN_TRL,URBAN_TGL)
763  !$acc update device(URBAN_TR,URBAN_TB,URBAN_TG,URBAN_TC,URBAN_QC,URBAN_UC)
764  !$acc update device(URBAN_RAINR,URBAN_RAINB,URBAN_RAING)
765  !$acc update device(URBAN_SFC_TEMP,URBAN_SFC_albedo)
766 
767  call urban_vars_check( force = .true. )
768  else
769  log_error("URBAN_vars_restart_read",*) 'invalid restart file ID for urban.'
770  call prc_abort
771  endif
772 
773  call prof_rapend('URB_Restart', 1)
774 
775  return
776  end subroutine urban_vars_restart_read
777 
778  !-----------------------------------------------------------------------------
780  subroutine urban_vars_history
781  use scale_file_history, only: &
782  file_history_in
783  use scale_atmos_hydrometeor, only: &
784  i_qv
785  implicit none
786  !---------------------------------------------------------------------------
787 
788  call prof_rapstart('URB_History', 1)
789 
790  call file_history_in( urban_trl(:,:,:), var_name(i_trl), var_desc(i_trl), var_unit(i_trl), dim_type='UXY' )
791  call file_history_in( urban_tbl(:,:,:), var_name(i_tbl), var_desc(i_tbl), var_unit(i_tbl), dim_type='UXY' )
792  call file_history_in( urban_tgl(:,:,:), var_name(i_tgl), var_desc(i_tgl), var_unit(i_tgl), dim_type='UXY' )
793 
794  call file_history_in( urban_tr(:,:), var_name(i_tr), var_desc(i_tr), var_unit(i_tr) )
795  call file_history_in( urban_tb(:,:), var_name(i_tb), var_desc(i_tb), var_unit(i_tb) )
796  call file_history_in( urban_tg(:,:), var_name(i_tg), var_desc(i_tg), var_unit(i_tg) )
797  call file_history_in( urban_tc(:,:), var_name(i_tc), var_desc(i_tc), var_unit(i_tc) )
798  call file_history_in( urban_qc(:,:), var_name(i_qc), var_desc(i_qc), var_unit(i_qc) )
799  call file_history_in( urban_uc(:,:), var_name(i_uc), var_desc(i_uc), var_unit(i_uc) )
800 
801  call file_history_in( urban_rainr(:,:), var_name(i_rainr), var_desc(i_rainr), var_unit(i_rainr) )
802  call file_history_in( urban_rainb(:,:), var_name(i_rainb), var_desc(i_rainb), var_unit(i_rainb) )
803  call file_history_in( urban_raing(:,:), var_name(i_raing), var_desc(i_raing), var_unit(i_raing) )
804 
805  call file_history_in( urban_sfc_temp(:,:), var_name(i_sfc_temp), &
806  var_desc(i_sfc_temp), var_unit(i_sfc_temp), standard_name=var_stdn(i_sfc_temp) )
807 
808  call file_history_in( urban_sfc_albedo(:,:,i_r_direct ,i_r_ir ), var_name(i_sfc_alb_ir_dir), &
809  var_desc(i_sfc_alb_ir_dir), var_unit(i_sfc_alb_ir_dir), standard_name=var_stdn(i_sfc_alb_ir_dir) )
810  call file_history_in( urban_sfc_albedo(:,:,i_r_diffuse,i_r_ir ), var_name(i_sfc_alb_ir_dif), &
811  var_desc(i_sfc_alb_ir_dif), var_unit(i_sfc_alb_ir_dif), standard_name=var_stdn(i_sfc_alb_ir_dif) )
812  call file_history_in( urban_sfc_albedo(:,:,i_r_direct ,i_r_nir), var_name(i_sfc_alb_nir_dir), &
813  var_desc(i_sfc_alb_nir_dir), var_unit(i_sfc_alb_nir_dir), standard_name=var_stdn(i_sfc_alb_nir_dir) )
814  call file_history_in( urban_sfc_albedo(:,:,i_r_diffuse,i_r_nir), var_name(i_sfc_alb_nir_dif), &
815  var_desc(i_sfc_alb_nir_dif), var_unit(i_sfc_alb_nir_dif), standard_name=var_stdn(i_sfc_alb_nir_dif) )
816  call file_history_in( urban_sfc_albedo(:,:,i_r_direct ,i_r_vis), var_name(i_sfc_alb_vis_dir), &
817  var_desc(i_sfc_alb_vis_dir), var_unit(i_sfc_alb_vis_dir), standard_name=var_stdn(i_sfc_alb_vis_dir) )
818  call file_history_in( urban_sfc_albedo(:,:,i_r_diffuse,i_r_vis), var_name(i_sfc_alb_vis_dif), &
819  var_desc(i_sfc_alb_vis_dif), var_unit(i_sfc_alb_vis_dif), standard_name=var_stdn(i_sfc_alb_vis_dif) )
820 
821  call file_history_in( urban_roff(:,:), 'URBAN_RUNOFF', &
822  'urban runoff water', 'kg/m2/s' )
823 
824  call file_history_in( urban_sflx_mw(:,:), 'URBAN_SFLX_MW', &
825  'urban grid average of w-momentum flux', 'kg/m2/s' )
826  call file_history_in( urban_sflx_mu(:,:), 'URBAN_SFLX_MU', &
827  'urban grid average of u-momentum flux', 'kg/m2/s' )
828  call file_history_in( urban_sflx_mv(:,:), 'URBAN_SFLX_MV', &
829  'urban grid average of v-momentum flux', 'kg/m2/s' )
830  call file_history_in( urban_sflx_sh(:,:), 'URBAN_SFLX_SH', &
831  'urban grid average of sensible heat flux (upward)', 'W/m2' )
832  call file_history_in( urban_sflx_lh(:,:), 'URBAN_SFLX_LH', &
833  'urban grid average of latent heat flux (upward)', 'W/m2' )
834  call file_history_in( urban_sflx_gh(:,:), 'URBAN_SFLX_GH', &
835  'urban grid average of subsurface heat flux (downward)', 'W/m2' )
836  if ( i_qv > 0 ) &
837  call file_history_in( urban_sflx_qtrc(:,:,i_qv), 'URBAN_SFLX_evap', &
838  'urban grid average of water vapor flux (upward)', 'kg/m2/s' )
839 
840  call file_history_in( urban_ustar(:,:), 'URBAN_Ustar', &
841  'urban friction velocity', 'm/s' )
842  call file_history_in( urban_tstar(:,:), 'URBAN_Tstar', &
843  'urban temperature scale', 'K' )
844  call file_history_in( urban_qstar(:,:), 'URBAN_Qstar', &
845  'urban moisture scale', 'kg/kg' )
846  call file_history_in( urban_wstar(:,:), 'URBAN_Wstar', &
847  'urban convective velocity scale', 'm/s' )
848  call file_history_in( urban_rlmo(:,:), 'URBAN_RLmo', &
849  'urban inversed Obukhov length', '1/m' )
850  call file_history_in( urban_u10(:,:), 'URBAN_U10', &
851  'urban 10m x-wind', 'm/s' )
852  call file_history_in( urban_v10(:,:), 'URBAN_V10', &
853  'urban 10m y-wind', 'm/s' )
854  call file_history_in( urban_t2(:,:), 'URBAN_T2', &
855  'urban 2m temprerature', 'K' )
856  call file_history_in( urban_q2(:,:), 'URBAN_Q2', &
857  'urban 2m specific humidity', 'kg/kg' )
858  call file_history_in( urban_z0m(:,:), 'URBAN_Z0M', &
859  'urban parameter of rougness length for momentum', 'm' )
860  call file_history_in( urban_z0h(:,:), 'URBAN_Z0H', &
861  'urban parameter of rougness length for heat', 'm' )
862  call file_history_in( urban_z0e(:,:), 'URBAN_Z0E', &
863  'urban parameter of rougness length for vapor', 'm' )
864  call file_history_in( urban_zd(:,:), 'URBAN_ZD', &
865  'urban parameter of displacement height', 'm' )
866  call file_history_in( urban_ah(:,:), 'URBAN_AH', &
867  'urban parameter of anthropogenic sensible heat', 'W/m2' )
868  call file_history_in( urban_ahl(:,:), 'URBAN_AHL', &
869  'urban parameter of anthropogenic latent heat', 'W/m2' )
870 
871 
872  call prof_rapend ('URB_History', 1)
873 
874  return
875  end subroutine urban_vars_history
876 
877  !-----------------------------------------------------------------------------
879  subroutine urban_vars_monitor
880  use scale_const, only: &
881  dwatr => const_dwatr
882  use scale_atmos_hydrometeor, only: &
883  cv_water
884  use scale_monitor, only: &
885  monitor_put
886  implicit none
887 
888  real(rp) :: work3d(uka,uia,uja)
889  real(rp) :: work2d(uia,uja)
890 
891  integer :: k, i, j
892  !---------------------------------------------------------------------------
893 
894  !$acc data create(WORK3D,WORK2D)
895 
896  call monitor_put( monit_id(im_trl), urban_trl(:,:,:) )
897  call monitor_put( monit_id(im_tbl), urban_tbl(:,:,:) )
898  call monitor_put( monit_id(im_tgl), urban_tgl(:,:,:) )
899 
900  call monitor_put( monit_id(im_tr), urban_tr(:,:) )
901  call monitor_put( monit_id(im_tb), urban_tb(:,:) )
902  call monitor_put( monit_id(im_tg), urban_tg(:,:) )
903  call monitor_put( monit_id(im_tc), urban_tc(:,:) )
904  call monitor_put( monit_id(im_uc), urban_uc(:,:) )
905  if ( monit_id(im_qc) > 0 ) then
906  !$omp parallel do
907  !$acc kernels
908  do j = ujs, uje
909  do i = uis, uie
910  work2d(i,j) = urban_qc(i,j) * atmos_dens(i,j)
911  end do
912  end do
913  !$acc end kernels
914  call monitor_put( monit_id(im_qc), work2d(:,:) )
915  end if
916 
917  ! mass budget
918  call monitor_put( monit_id(im_rainr), urban_rainr(:,:) )
919  call monitor_put( monit_id(im_rainb), urban_rainb(:,:) )
920  call monitor_put( monit_id(im_raing), urban_raing(:,:) )
921  call monitor_put( monit_id(im_roff) , urban_roff(:,:) )
922 !!$ call MONITOR_put( MONIT_id(IM_SFCWR), URBAN_SFLX_waterR(:,:) )
923 !!$ call MONITOR_put( MONIT_id(IM_SFCWB), URBAN_SFLX_waterB(:,:) )
924 !!$ call MONITOR_put( MONIT_id(IM_SFCWG), URBAN_SFLX_waterG(:,:) )
925 !!$ call MONITOR_put( MONIT_id(IM_SFCIR), URBAN_SFLX_iceR (:,:) )
926 !!$ call MONITOR_put( MONIT_id(IM_SFCIB), URBAN_SFLX_iceB (:,:) )
927 !!$ call MONITOR_put( MONIT_id(IM_SFCIG), URBAN_SFLX_iceG (:,:) )
928 !!$ if ( MONIT_id(IM_MASFLX) > 0 ) then
929 !!$ !$omp parallel do
930 !!$ do j = UJS, UJE
931 !!$ do i = UIS, UIE
932 !!$ WORK2D(i,j) = URBAN_SFLX_waterR(i,j) + URBAN_SFLX_iceR(i,j) &
933 !!$ + URBAN_SFLX_waterB(i,j) + URBAN_SFLX_iceB(i,j) &
934 !!$ + URBAN_SFLX_waterG(i,j) + URBAN_SFLX_iceG(i,j) &
935 !!$ - URBAN_RUNOFF(i,j)
936 !!$ end do
937 !!$ end do
938 !!$ call MONITOR_put( MONIT_id(IM_MASFLX), WORK2D(:,:) )
939 !!$ end if
940 
941  ! energy budget
942 !!$ if ( MONIT_id(IM_ENGI_S) > 0 ) then
943 !!$ !$omp parallel do
944 !!$ do j = UJS, UJE
945 !!$ do i = UIS, UIE
946 !!$ do k = UKS, UKE
947 !!$ WORK3D(k,i,j) = CAPR(i,j) * URBAN_TRL(k,i,j) &
948 !!$ + CAPB(i,j) * URBAN_TRB(k,i,j) &
949 !!$ + CAPG(i,j) * URBAN_TRG(k,i,j)
950 !!$ end do
951 !!$ end do
952 !!$ end do
953 !!$ call MONITOR_put( MONIT_id(IM_ENGI_S), WORK3D(:,:,:) )
954 !!$ end if
955 !!$ if ( MONIT_id(IM_ENGI_SR) > 0 ) then
956 !!$ !$omp parallel do
957 !!$ do j = UJS, UJE
958 !!$ do i = UIS, UIE
959 !!$ do k = UKS, UKE
960 !!$ WORK3D(k,i,j) = CAPR(i,j) * URBAN_TRL(k,i,j)
961 !!$ end do
962 !!$ end do
963 !!$ end do
964 !!$ call MONITOR_put( MONIT_id(IM_ENGI_SR), WORK3D(:,:,:) )
965 !!$ end if
966 !!$ if ( MONIT_id(IM_ENGI_SB) > 0 ) then
967 !!$ !$omp parallel do
968 !!$ do j = UJS, UJE
969 !!$ do i = UIS, UIE
970 !!$ do k = UKS, UKE
971 !!$ WORK3D(k,i,j) = CAPB(i,j) * URBAN_TBL(k,i,j)
972 !!$ end do
973 !!$ end do
974 !!$ end do
975 !!$ call MONITOR_put( MONIT_id(IM_ENGI_SB), WORK3D(:,:,:) )
976 !!$ end if
977 !!$ if ( MONIT_id(IM_ENGI_SG) > 0 ) then
978 !!$ !$omp parallel do
979 !!$ do j = UJS, UJE
980 !!$ do i = UIS, UIE
981 !!$ do k = UKS, UKE
982 !!$ WORK3D(k,i,j) = CAPG(i,j) * URBAN_TGL(k,i,j)
983 !!$ end do
984 !!$ end do
985 !!$ end do
986 !!$ call MONITOR_put( MONIT_id(IM_ENGI_SG), WORK3D(:,:,:) )
987 !!$ end if
988 !!$ if ( MONIT_id(IM_ENGI_W) > 0 ) then
989 !!$ !$omp parallel do
990 !!$ do j = UJS, UJE
991 !!$ do i = UIS, UIE
992 !!$ WORK2D(i,j) = CV_WATER * ( URBAN_RAINR(k,i,j) * URBAN_TRL(UKS,i,j) &
993 !!$ + URBAN_RAINB(k,i,j) * URBAN_TBL(UKS,i,j) &
994 !!$ + URBAN_RAING(k,i,j) * URBAN_TGL(UKS,i,j) )
995 !!$ end do
996 !!$ end do
997 !!$ call MONITOR_put( MONIT_id(IM_ENGI_W), WORK2D(:,:) )
998 !!$ end if
999 !!$ if ( MONIT_id(IM_ENGI_WR) > 0 ) then
1000 !!$ !$omp parallel do
1001 !!$ do j = UJS, UJE
1002 !!$ do i = UIS, UIE
1003 !!$ WORK2D(i,j) = CV_WATER * URBAN_RAINR(k,i,j) * URBAN_TRL(UKS,i,j)
1004 !!$ end do
1005 !!$ end do
1006 !!$ call MONITOR_put( MONIT_id(IM_ENGI_WR), WORK2D(:,:) )
1007 !!$ end if
1008 !!$ if ( MONIT_id(IM_ENGI_WB) > 0 ) then
1009 !!$ !$omp parallel do
1010 !!$ do j = UJS, UJE
1011 !!$ do i = UIS, UIE
1012 !!$ WORK2D(i,j) = CV_WATER * URBAN_RAINB(k,i,j) * URBAN_TBL(UKS,i,j)
1013 !!$ end do
1014 !!$ end do
1015 !!$ call MONITOR_put( MONIT_id(IM_ENGI_WB), WORK2D(:,:) )
1016 !!$ end if
1017 !!$ if ( MONIT_id(IM_ENGI_WG) > 0 ) then
1018 !!$ !$omp parallel do
1019 !!$ do j = UJS, UJE
1020 !!$ do i = UIS, UIE
1021 !!$ WORK2D(i,j) = CV_WATER * URBAN_RAING(k,i,j) * URBAN_TGL(UKS,i,j)
1022 !!$ end do
1023 !!$ end do
1024 !!$ call MONITOR_put( MONIT_id(IM_ENGI_WG), WORK2D(:,:) )
1025 !!$ end if
1026 
1027 !!$ call MONITOR_put( MONIT_id(IM_ENGSFC_GHR), URBAN_SFLX_GHR (:,:) )
1028 !!$ call MONITOR_put( MONIT_id(IM_ENGSFC_GHB), URBAN_SFLX_GHB (:,:) )
1029 !!$ call MONITOR_put( MONIT_id(IM_ENGSFC_GHG), URBAN_SFLX_GHG (:,:) )
1030 !!$ call MONITOR_put( MONIT_id(IM_ENGSFC_EIR), URBAN_SFLX_ENGIR (:,:) )
1031 !!$ call MONITOR_put( MONIT_id(IM_ENGSFC_EIB), URBAN_SFLX_ENGIB (:,:) )
1032 !!$ call MONITOR_put( MONIT_id(IM_ENGSFC_EIG), URBAN_SFLX_ENGIG (:,:) )
1033 !!$ call MONITOR_put( MONIT_id(IM_ROFF_EIR), URBAN_RUNOFF_ENGIR(:,:) )
1034 !!$ call MONITOR_put( MONIT_id(IM_ROFF_EIB), URBAN_RUNOFF_ENGIB(:,:) )
1035 !!$ call MONITOR_put( MONIT_id(IM_ROFF_EIG), URBAN_RUNOFF_ENGIG(:,:) )
1036 !!$ if ( MONIT_id(IM_ENGFLX) > 0 ) then
1037 !!$ !$omp parallel do
1038 !!$ do j = UJS, UJE
1039 !!$ do i = UIS, UIE
1040 !!$ WORK2D(i,j) = URBAN_SFLX_GHR(i,j) + URBAN_SFLX_ENGIR(i,j) &
1041 !!$ + URBAN_SFLX_GHB(i,j) + URBAN_SFLX_ENGIB(i,j) &
1042 !!$ + URBAN_SFLX_GHG(i,j) + URBAN_SFLX_ENGIG(i,j) &
1043 !!$ - URBAN_RUNOFF_ENGIR(i,j) &
1044 !!$ - URBAN_RUNOFF_ENGIB(i,j) &
1045 !!$ - URBAN_RUNOFF_ENGIG(i,j)
1046 !!$ end do
1047 !!$ end do
1048 !!$ call MONITOR_put( MONIT_id(IM_ENGFLX), WORK2D(:,:) )
1049 !!$ end if
1050 
1051  !$acc end data
1052 
1053  return
1054  end subroutine urban_vars_monitor
1055 
1056  !-----------------------------------------------------------------------------
1058  subroutine urban_vars_check( force )
1059  use scale_statistics, only: &
1061  statistics_total
1062  use scale_atmos_hydrometeor, only: &
1063  i_qv
1064  use scale_urban_grid_cartesc_real, only: &
1069  use scale_landuse, only: &
1071  implicit none
1072  logical, intent(in), optional :: force
1073  logical :: check
1074  !---------------------------------------------------------------------------
1075 
1076  if ( present(force) ) then
1077  check = force
1078  else
1079  check = urban_vars_checkrange
1080  end if
1081 
1082  if ( check ) then
1083  call valcheck( uka, uks, uke, uia, uis, uie, uja, ujs, uje, &
1084  urban_trl(:,:,:), 0.0_rp, 1000.0_rp, var_name(i_trl), &
1085  __file__, __line__, mask = landuse_exists_urban(:,:) )
1086  call valcheck( uka, uks, uke, uia, uis, uie, uja, ujs, uje, &
1087  urban_tbl(:,:,:), 0.0_rp, 1000.0_rp, var_name(i_tbl), &
1088  __file__, __line__, mask = landuse_exists_urban(:,:) )
1089  call valcheck( uka, uks, uke, uia, uis, uie, uja, ujs, uje, &
1090  urban_tgl(:,:,:), 0.0_rp, 1000.0_rp, var_name(i_tgl), &
1091  __file__, __line__, mask = landuse_exists_urban(:,:) )
1092  call valcheck( uia, uis, uie, uja, ujs, uje, &
1093  urban_tr(:,:), 0.0_rp, 1000.0_rp, var_name(i_tr), &
1094  __file__, __line__, mask = landuse_exists_urban(:,:) )
1095  call valcheck( uia, uis, uie, uja, ujs, uje, &
1096  urban_tb(:,:), 0.0_rp, 1000.0_rp, var_name(i_tb), &
1097  __file__, __line__, mask = landuse_exists_urban(:,:) )
1098  call valcheck( uia, uis, uie, uja, ujs, uje, &
1099  urban_tg(:,:), 0.0_rp, 1000.0_rp, var_name(i_tg), &
1100  __file__, __line__, mask = landuse_exists_urban(:,:) )
1101  call valcheck( uia, uis, uie, uja, ujs, uje, &
1102  urban_tc(:,:), 0.0_rp, 1000.0_rp, var_name(i_tc), &
1103  __file__, __line__, mask = landuse_exists_urban(:,:) )
1104  call valcheck( uia, uis, uie, uja, ujs, uje, &
1105  urban_qc(:,:), 0.0_rp, 1.0_rp, var_name(i_qc), &
1106  __file__, __line__, mask = landuse_exists_urban(:,:) )
1107  call valcheck( uia, uis, uie, uja, ujs, uje, &
1108  urban_uc(:,:), 0.0_rp, 100.0_rp, var_name(i_uc), &
1109  __file__, __line__, mask = landuse_exists_urban(:,:) )
1110  call valcheck( uia, uis, uie, uja, ujs, uje, &
1111  urban_rainr(:,:), 0.0_rp, 1000.0_rp, var_name(i_rainr), &
1112  __file__, __line__, mask = landuse_exists_urban(:,:) )
1113  call valcheck( uia, uis, uie, uja, ujs, uje, &
1114  urban_rainb(:,:), 0.0_rp, 1000.0_rp, var_name(i_rainb), &
1115  __file__, __line__, mask = landuse_exists_urban(:,:) )
1116  call valcheck( uia, uis, uie, uja, ujs, uje, &
1117  urban_raing(:,:), 0.0_rp, 1000.0_rp, var_name(i_raing), &
1118  __file__, __line__, mask = landuse_exists_urban(:,:) )
1119 
1120  call valcheck( uia, uis, uie, uja, ujs, uje, &
1121  urban_sfc_temp(:,:), 0.0_rp, 1000.0_rp, &
1122  var_name(i_sfc_temp), __file__, __line__, &
1123  mask = landuse_exists_urban(:,:) )
1124 
1125  call valcheck( uia, uis, uie, uja, ujs, uje, &
1126  urban_sfc_albedo(:,:,i_r_direct ,i_r_ir ), 0.0_rp, 2.0_rp, &
1127  var_name(i_sfc_alb_ir_dir ), __file__, __line__, &
1128  mask = landuse_exists_urban(:,:) )
1129  call valcheck( uia, uis, uie, uja, ujs, uje, &
1130  urban_sfc_albedo(:,:,i_r_diffuse,i_r_ir ), 0.0_rp, 2.0_rp, &
1131  var_name(i_sfc_alb_ir_dif ), __file__, __line__, &
1132  mask = landuse_exists_urban(:,:) )
1133  call valcheck( uia, uis, uie, uja, ujs, uje, &
1134  urban_sfc_albedo(:,:,i_r_direct ,i_r_nir), 0.0_rp, 2.0_rp, &
1135  var_name(i_sfc_alb_nir_dir), __file__, __line__, &
1136  mask = landuse_exists_urban(:,:) )
1137  call valcheck( uia, uis, uie, uja, ujs, uje, &
1138  urban_sfc_albedo(:,:,i_r_diffuse,i_r_nir), 0.0_rp, 2.0_rp, &
1139  var_name(i_sfc_alb_nir_dif), __file__, __line__, &
1140  mask = landuse_exists_urban(:,:) )
1141  call valcheck( uia, uis, uie, uja, ujs, uje, &
1142  urban_sfc_albedo(:,:,i_r_direct ,i_r_vis), 0.0_rp, 2.0_rp, &
1143  var_name(i_sfc_alb_vis_dir), __file__, __line__, &
1144  mask = landuse_exists_urban(:,:) )
1145  call valcheck( uia, uis, uie, uja, ujs, uje, &
1146  urban_sfc_albedo(:,:,i_r_diffuse,i_r_vis), 0.0_rp, 2.0_rp, &
1147  var_name(i_sfc_alb_vis_dif), __file__, __line__, &
1148  mask = landuse_exists_urban(:,:) )
1149  endif
1150 
1151  if ( present(force) ) then
1152  check = force
1153  else
1155  end if
1156 
1157  if ( check ) then
1158 
1159  ! 3D
1160  call statistics_total( uka, uks, uke, uia, uis, uie, uja, ujs, uje, &
1161  urban_trl(:,:,:), var_name(i_trl), & ! (in)
1162  urban_grid_cartesc_real_vol(:,:,:), & ! (in)
1164  call statistics_total( uka, uks, uke, uia, uis, uie, uja, ujs, uje, &
1165  urban_tbl(:,:,:), var_name(i_tbl), & ! (in)
1166  urban_grid_cartesc_real_vol(:,:,:), & ! (in)
1168  call statistics_total( uka, uks, uke, uia, uis, uie, uja, ujs, uje, &
1169  urban_tgl(:,:,:), var_name(i_tgl), & ! (in)
1170  urban_grid_cartesc_real_vol(:,:,:), & ! (in)
1172 
1173  ! 2D
1174  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1175  urban_tr(:,:), var_name(i_tr), & ! (in)
1176  urban_grid_cartesc_real_area(:,:), & ! (in)
1178  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1179  urban_tb(:,:), var_name(i_tb), & ! (in)
1180  urban_grid_cartesc_real_area(:,:), & ! (in)
1182  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1183  urban_tg(:,:), var_name(i_tg), & ! (in)
1184  urban_grid_cartesc_real_area(:,:), & ! (in)
1186  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1187  urban_tc(:,:), var_name(i_tc), & ! (in)
1188  urban_grid_cartesc_real_area(:,:), & ! (in)
1190  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1191  urban_qc(:,:), var_name(i_qc), & ! (in)
1192  urban_grid_cartesc_real_area(:,:), & ! (in)
1194  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1195  urban_uc(:,:), var_name(i_uc), & ! (in)
1196  urban_grid_cartesc_real_area(:,:), & ! (in)
1198 
1199  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1200  urban_rainr(:,:), var_name(i_rainr), & ! (in)
1201  urban_grid_cartesc_real_area(:,:), & ! (in)
1203  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1204  urban_rainb(:,:), var_name(i_rainb), & ! (in)
1205  urban_grid_cartesc_real_area(:,:), & ! (in)
1207  call statistics_total( uia, uis, uie, uja, ujs, uje, &
1208  urban_raing(:,:), var_name(i_raing), & ! (in)
1209  urban_grid_cartesc_real_area(:,:), & ! (in)
1211 
1212  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1213  urban_sfc_temp(:,:), var_name(i_sfc_temp), & ! [IN]
1214  urban_grid_cartesc_real_area(:,:), & ! [IN]
1216  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1217  urban_sfc_albedo(:,:,i_r_direct ,i_r_ir ), var_name(i_sfc_alb_ir_dir), & ! [IN]
1218  urban_grid_cartesc_real_area(:,:), & ! [IN]
1220  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1221  urban_sfc_albedo(:,:,i_r_diffuse,i_r_ir ), var_name(i_sfc_alb_ir_dif), & ! [IN]
1222  urban_grid_cartesc_real_area(:,:), & ! [IN]
1224  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1225  urban_sfc_albedo(:,:,i_r_direct ,i_r_nir), var_name(i_sfc_alb_nir_dir), & ! [IN]
1226  urban_grid_cartesc_real_area(:,:), & ! [IN]
1228  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1229  urban_sfc_albedo(:,:,i_r_diffuse,i_r_nir), var_name(i_sfc_alb_nir_dif), & ! [IN]
1230  urban_grid_cartesc_real_area(:,:), & ! [IN]
1232  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1233  urban_sfc_albedo(:,:,i_r_direct ,i_r_vis), var_name(i_sfc_alb_vis_dir), & ! [IN]
1234  urban_grid_cartesc_real_area(:,:), & ! [IN]
1236  call statistics_total( uia, uis, uie, uja, ujs, uje, & ! [IN]
1237  urban_sfc_albedo(:,:,i_r_diffuse,i_r_vis), var_name(i_sfc_alb_vis_dif), & ! [IN]
1238  urban_grid_cartesc_real_area(:,:), & ! [IN]
1240  endif
1241 
1242  return
1243  end subroutine urban_vars_check
1244 
1245  !-----------------------------------------------------------------------------
1247  subroutine urban_vars_restart_create
1248  use scale_time, only: &
1250  use scale_file_cartesc, only: &
1252  use mod_urban_admin, only: &
1253  urban_do
1254  implicit none
1255 
1256  character(len=19) :: timelabel
1257  character(len=H_LONG) :: basename
1258  !---------------------------------------------------------------------------
1259 
1260  call prof_rapstart('URB_Restart', 1)
1261 
1262  if ( urban_do .and. urban_restart_out_basename /= '' ) then
1263 
1264  log_newline
1265  log_info("URBAN_vars_restart_create",*) 'Create restart file (URBAN) '
1266 
1268  call time_gettimelabel( timelabel )
1269  basename = trim(urban_restart_out_basename)//'_'//trim(timelabel)
1270  else
1271  basename = trim(urban_restart_out_basename)
1272  endif
1273 
1274  log_info("URBAN_vars_restart_create",*) 'basename: ', trim(basename)
1275 
1276  call file_cartesc_create( &
1278  restart_fid, & ! [OUT]
1279  aggregate=urban_restart_out_aggregate ) ! [IN]
1280 
1281  endif
1282 
1283  call prof_rapend('URB_Restart', 1)
1284 
1285  return
1286  end subroutine urban_vars_restart_create
1287 
1288  !-----------------------------------------------------------------------------
1290  subroutine urban_vars_restart_enddef
1291  use scale_file_cartesc, only: &
1293  implicit none
1294 
1295  call prof_rapstart('URB_Restart', 1)
1296 
1297  if ( restart_fid /= -1 ) then
1298  call file_cartesc_enddef( restart_fid ) ! [IN]
1299  endif
1300 
1301  call prof_rapend('URB_Restart', 1)
1302 
1303  return
1304  end subroutine urban_vars_restart_enddef
1305 
1306  !-----------------------------------------------------------------------------
1308  subroutine urban_vars_restart_close
1309  use scale_file_cartesc, only: &
1311  implicit none
1312  !---------------------------------------------------------------------------
1313 
1314  call prof_rapstart('URB_Restart', 1)
1315 
1316  if ( restart_fid /= -1 ) then
1317  log_newline
1318  log_info("URBAN_vars_restart_close",*) 'Close restart file (URBAN) '
1319 
1320  call file_cartesc_close( restart_fid ) ! [IN]
1321 
1322  restart_fid = -1
1323  endif
1324 
1325  call prof_rapend('URB_Restart', 1)
1326 
1327  return
1328  end subroutine urban_vars_restart_close
1329 
1330  !-----------------------------------------------------------------------------
1332  subroutine urban_vars_restart_def_var
1333  use scale_file_cartesc, only: &
1335  implicit none
1336 
1337  integer :: i
1338  !---------------------------------------------------------------------------
1339 
1340  call prof_rapstart('URB_Restart', 1)
1341 
1342  if ( restart_fid /= -1 ) then
1343 
1344  do i = i_trl, i_tgl
1345  call file_cartesc_def_var( restart_fid, & ! [IN]
1346  var_name(i), var_desc(i), var_unit(i), & ! [IN]
1347  'UXY', urban_restart_out_dtype, & ! [IN]
1348  var_id(i) ) ! [OUT]
1349  end do
1350  do i = i_tr, i_sfc_alb_vis_dif
1351  call file_cartesc_def_var( restart_fid, & ! [IN]
1352  var_name(i), var_desc(i), var_unit(i), & ! [IN]
1353  'XY', urban_restart_out_dtype, & ! [IN]
1354  var_id(i) ) ! [OUT]
1355  end do
1356 
1357  endif
1358 
1359  call prof_rapend('URB_Restart', 1)
1360 
1361  return
1362  end subroutine urban_vars_restart_def_var
1363 
1364  !-----------------------------------------------------------------------------
1366  subroutine urban_vars_restart_write
1367  use scale_file_cartesc, only: &
1368  file_cartesc_write_var
1369  implicit none
1370  !---------------------------------------------------------------------------
1371 
1372  call prof_rapstart('URB_Restart', 1)
1373 
1374  if ( restart_fid /= -1 ) then
1375 
1376  call urban_vars_check( force = .true. )
1377 
1378  call file_cartesc_write_var( restart_fid, var_id(i_trl), urban_trl(:,:,:), & ! [IN]
1379  var_name(i_trl), 'UXY', fill_halo=.true. ) ! [IN]
1380  call file_cartesc_write_var( restart_fid, var_id(i_tbl), urban_tbl(:,:,:), & ! [IN]
1381  var_name(i_tbl), 'UXY', fill_halo=.true. ) ! [IN]
1382  call file_cartesc_write_var( restart_fid, var_id(i_tgl), urban_tgl(:,:,:), & ! [IN]
1383  var_name(i_tgl), 'UXY', fill_halo=.true. ) ! [IN]
1384 
1385  call file_cartesc_write_var( restart_fid, var_id(i_tr), urban_tr(:,:), & ! [IN]
1386  var_name(i_tr), 'XY', fill_halo=.true. ) ! [IN]
1387  call file_cartesc_write_var( restart_fid, var_id(i_tb), urban_tb(:,:), & ! [IN]
1388  var_name(i_tb), 'XY', fill_halo=.true. ) ! [IN]
1389  call file_cartesc_write_var( restart_fid, var_id(i_tg), urban_tg(:,:), & ! [IN]
1390  var_name(i_tg), 'XY', fill_halo=.true. ) ! [IN]
1391  call file_cartesc_write_var( restart_fid, var_id(i_tc), urban_tc(:,:), & ! [IN]
1392  var_name(i_tc), 'XY', fill_halo=.true. ) ! [IN]
1393  call file_cartesc_write_var( restart_fid, var_id(i_qc), urban_qc(:,:), & ! [IN]
1394  var_name(i_qc), 'XY', fill_halo=.true. ) ! [IN]
1395  call file_cartesc_write_var( restart_fid, var_id(i_uc), urban_uc(:,:), & ! [IN]
1396  var_name(i_uc), 'XY', fill_halo=.true. ) ! [IN]
1397 
1398 
1399  call file_cartesc_write_var( restart_fid, var_id(i_rainr), urban_rainr(:,:), & ! [IN]
1400  var_name(i_rainr), 'XY', fill_halo=.true. ) ! [IN]
1401  call file_cartesc_write_var( restart_fid, var_id(i_rainb), urban_rainb(:,:), & ! [IN]
1402  var_name(i_rainb), 'XY', fill_halo=.true. ) ! [IN]
1403  call file_cartesc_write_var( restart_fid, var_id(i_raing), urban_raing(:,:), & ! [IN]
1404  var_name(i_raing), 'XY', fill_halo=.true. ) ! [IN]
1405 
1406  call file_cartesc_write_var( restart_fid, var_id(i_sfc_temp), & ! [IN]
1407  urban_sfc_temp(:,:), & ! [IN]
1408  var_name(i_sfc_temp), 'XY', fill_halo=.true. ) ! [IN]
1409 
1410  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dir), & ! [IN]
1411  urban_sfc_albedo(:,:,i_r_direct ,i_r_ir ), & ! [IN]
1412  var_name(i_sfc_alb_ir_dir), 'XY', fill_halo=.true. ) ! [IN]
1413  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dif), & ! [IN]
1414  urban_sfc_albedo(:,:,i_r_diffuse,i_r_ir ), & ! [IN]
1415  var_name(i_sfc_alb_ir_dif), 'XY', fill_halo=.true. ) ! [IN]
1416  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dir), & ! [IN]
1417  urban_sfc_albedo(:,:,i_r_direct ,i_r_nir), & ! [IN]
1418  var_name(i_sfc_alb_nir_dir), 'XY', fill_halo=.true. ) ! [IN]
1419  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dif), & ! [IN]
1420  urban_sfc_albedo(:,:,i_r_diffuse,i_r_nir), & ! [IN]
1421  var_name(i_sfc_alb_nir_dif), 'XY', fill_halo=.true. ) ! [IN]
1422  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dir), & ! [IN]
1423  urban_sfc_albedo(:,:,i_r_direct ,i_r_vis), & ! [IN]
1424  var_name(i_sfc_alb_vis_dir), 'XY', fill_halo=.true. ) ! [IN]
1425  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dif), & ! [IN]
1426  urban_sfc_albedo(:,:,i_r_diffuse,i_r_vis), & ! [IN]
1427  var_name(i_sfc_alb_vis_dif), 'XY', fill_halo=.true. ) ! [IN]
1428 
1429  endif
1430 
1431  call prof_rapend('URB_Restart', 1)
1432 
1433  return
1434  end subroutine urban_vars_restart_write
1435 
1436 end module mod_urban_vars
mod_urban_vars::urban_q2
real(rp), dimension(:,:), allocatable, public urban_q2
Definition: mod_urban_vars.F90:122
mod_urban_vars::urban_trl_t
real(rp), dimension(:,:,:), allocatable, public urban_trl_t
Definition: mod_urban_vars.F90:79
mod_urban_vars::atmos_sflx_sw
real(rp), dimension(:,:,:), allocatable, public atmos_sflx_sw
Definition: mod_urban_vars.F90:136
scale_cpl_sfc_index::n_rad_dir
integer, parameter, public n_rad_dir
Definition: scale_cpl_sfc_index.F90:36
scale_statistics
module Statistics
Definition: scale_statistics.F90:11
mod_urban_vars::urban_z0m
real(rp), dimension(:,:), allocatable, public urban_z0m
Definition: mod_urban_vars.F90:106
mod_urban_vars::atmos_u
real(rp), dimension(:,:), allocatable, public atmos_u
Definition: mod_urban_vars.F90:128
scale_urban_grid_cartesc_index::uja
integer, public uja
Definition: scale_urban_grid_cartesC_index.F90:45
mod_urban_admin::urban_do
logical, public urban_do
Definition: mod_urban_admin.F90:32
mod_urban_vars::urban_tb_t
real(rp), dimension(:,:), allocatable, public urban_tb_t
Definition: mod_urban_vars.F90:86
mod_urban_vars::urban_sfc_temp
real(rp), dimension(:,:), allocatable, public urban_sfc_temp
Definition: mod_urban_vars.F90:75
scale_urban_grid_cartesc_real::urban_grid_cartesc_real_vol
real(rp), dimension(:,:,:), allocatable, public urban_grid_cartesc_real_vol
volume of grid cell
Definition: scale_urban_grid_cartesC_real.F90:39
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_cpl_sfc_index::i_r_direct
integer, parameter, public i_r_direct
Definition: scale_cpl_sfc_index.F90:37
scale_urban_grid_cartesc_real::urban_grid_cartesc_real_totvol
real(rp), public urban_grid_cartesc_real_totvol
total volume
Definition: scale_urban_grid_cartesC_real.F90:40
scale_tracer::qa
integer, public qa
Definition: scale_tracer.F90:35
mod_urban_vars::urban_tb
real(rp), dimension(:,:), allocatable, public urban_tb
Definition: mod_urban_vars.F90:65
scale_urban_grid_cartesc_index::uia
integer, public uia
Definition: scale_urban_grid_cartesC_index.F90:41
scale_file_cartesc::file_cartesc_enddef
subroutine, public file_cartesc_enddef(fid)
Exit netCDF file define mode.
Definition: scale_file_cartesC.F90:964
scale_file_cartesc::file_cartesc_def_var
subroutine, public file_cartesc_def_var(fid, varname, desc, unit, dim_type, datatype, vid, standard_name, timeintv, nsteps, cell_measures)
Define a variable to file.
Definition: scale_file_cartesC.F90:3360
mod_urban_vars::urban_raing_t
real(rp), dimension(:,:), allocatable, public urban_raing_t
Definition: mod_urban_vars.F90:90
scale_cpl_sfc_index::i_r_diffuse
integer, parameter, public i_r_diffuse
Definition: scale_cpl_sfc_index.F90:38
mod_urban_vars::urban_restart_in_postfix_timelabel
logical, public urban_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
Definition: mod_urban_vars.F90:53
scale_precision
module PRECISION
Definition: scale_precision.F90:14
mod_urban_vars::urban_restart_output
logical, public urban_restart_output
Output restart file?
Definition: mod_urban_vars.F90:49
mod_urban_vars::urban_sfc_albedo
real(rp), dimension(:,:,:,:), allocatable, public urban_sfc_albedo
Definition: mod_urban_vars.F90:76
mod_urban_vars::atmos_sflx_engi
real(rp), dimension(:,:), allocatable, public atmos_sflx_engi
Definition: mod_urban_vars.F90:139
scale_cpl_sfc_index::i_r_ir
integer, parameter, public i_r_ir
Definition: scale_cpl_sfc_index.F90:29
scale_prof::prof_rapstart
subroutine, public prof_rapstart(rapname_base, level, disable_barrier)
Start raptime.
Definition: scale_prof.F90:174
mod_urban_vars::urban_trl
real(rp), dimension(:,:,:), allocatable, public urban_trl
Definition: mod_urban_vars.F90:61
scale_atmos_hydrometeor
module atmosphere / hydrometeor
Definition: scale_atmos_hydrometeor.F90:12
mod_urban_vars::urban_sflx_shex
real(rp), dimension(:,:), allocatable, public urban_sflx_shex
Definition: mod_urban_vars.F90:99
mod_urban_vars::urban_sflx_mu
real(rp), dimension(:,:), allocatable, public urban_sflx_mu
Definition: mod_urban_vars.F90:95
mod_urban_vars::urban_vars_monitor
subroutine, public urban_vars_monitor
monitor output
Definition: mod_urban_vars.F90:880
mod_urban_vars::urban_raing
real(rp), dimension(:,:), allocatable, public urban_raing
Definition: mod_urban_vars.F90:72
mod_urban_vars::urban_z0h
real(rp), dimension(:,:), allocatable, public urban_z0h
Definition: mod_urban_vars.F90:107
mod_urban_vars::urban_qc
real(rp), dimension(:,:), allocatable, public urban_qc
Definition: mod_urban_vars.F90:68
scale_urban_grid_cartesc_index
module urban / grid / icosahedralA / index
Definition: scale_urban_grid_cartesC_index.F90:11
mod_urban_vars::atmos_pbl
real(rp), dimension(:,:), allocatable, public atmos_pbl
Definition: mod_urban_vars.F90:132
mod_urban_vars::urban_tbl_t
real(rp), dimension(:,:,:), allocatable, public urban_tbl_t
Definition: mod_urban_vars.F90:80
mod_urban_vars::urban_tgl_t
real(rp), dimension(:,:,:), allocatable, public urban_tgl_t
Definition: mod_urban_vars.F90:81
mod_urban_vars::urban_sflx_lhex
real(rp), dimension(:,:), allocatable, public urban_sflx_lhex
Definition: mod_urban_vars.F90:100
mod_urban_vars::atmos_w
real(rp), dimension(:,:), allocatable, public atmos_w
Definition: mod_urban_vars.F90:127
scale_file_history
module file_history
Definition: scale_file_history.F90:15
scale_file
module file
Definition: scale_file.F90:15
mod_urban_vars::atmos_v
real(rp), dimension(:,:), allocatable, public atmos_v
Definition: mod_urban_vars.F90:129
mod_urban_vars::atmos_sflx_water
real(rp), dimension(:,:), allocatable, public atmos_sflx_water
Definition: mod_urban_vars.F90:138
mod_urban_vars::atmos_dens
real(rp), dimension(:,:), allocatable, public atmos_dens
Definition: mod_urban_vars.F90:130
mod_urban_vars::urban_qstar
real(rp), dimension(:,:), allocatable, public urban_qstar
Definition: mod_urban_vars.F90:116
scale_prc
module PROCESS
Definition: scale_prc.F90:11
mod_urban_vars::urban_vars_restart_def_var
subroutine, public urban_vars_restart_def_var
Define urban variables in restart file.
Definition: mod_urban_vars.F90:1333
mod_urban_vars::urban_vars_restart_open
subroutine, public urban_vars_restart_open
Open urban restart file for read.
Definition: mod_urban_vars.F90:655
mod_urban_vars::urban_sflx_qtrc
real(rp), dimension(:,:,:), allocatable, public urban_sflx_qtrc
Definition: mod_urban_vars.F90:102
scale_precision::rp
integer, parameter, public rp
Definition: scale_precision.F90:41
scale_io
module STDIO
Definition: scale_io.F90:10
mod_urban_vars::urban_wstar
real(rp), dimension(:,:), allocatable, public urban_wstar
Definition: mod_urban_vars.F90:117
mod_urban_vars::urban_t2
real(rp), dimension(:,:), allocatable, public urban_t2
Definition: mod_urban_vars.F90:121
mod_urban_vars::urban_vars_restart_enddef
subroutine, public urban_vars_restart_enddef
Exit netCDF define mode.
Definition: mod_urban_vars.F90:1291
scale_cpl_sfc_index::i_r_nir
integer, parameter, public i_r_nir
Definition: scale_cpl_sfc_index.F90:30
mod_urban_vars::urban_vars_restart_write
subroutine, public urban_vars_restart_write
Write urban restart.
Definition: mod_urban_vars.F90:1367
scale_tracer::k
real(rp), public k
Definition: scale_tracer.F90:45
scale_const
module CONSTANT
Definition: scale_const.F90:11
mod_urban_vars::urban_vars_setup
subroutine, public urban_vars_setup
Setup.
Definition: mod_urban_vars.F90:306
mod_urban_vars::urban_vars_history
subroutine, public urban_vars_history
History output set for urban variables.
Definition: mod_urban_vars.F90:781
scale_debug::check
subroutine, public check(current_line, v)
Undefined value checker.
Definition: scale_debug.F90:59
mod_urban_vars::urban_sflx_mv
real(rp), dimension(:,:), allocatable, public urban_sflx_mv
Definition: mod_urban_vars.F90:96
mod_urban_vars::urban_tgl
real(rp), dimension(:,:,:), allocatable, public urban_tgl
Definition: mod_urban_vars.F90:63
mod_urban_vars::urban_vars_restart_create
subroutine, public urban_vars_restart_create
Create urban restart file.
Definition: mod_urban_vars.F90:1248
mod_urban_vars::urban_v10
real(rp), dimension(:,:), allocatable, public urban_v10
Definition: mod_urban_vars.F90:120
mod_urban_vars::atmos_qv
real(rp), dimension(:,:), allocatable, public atmos_qv
Definition: mod_urban_vars.F90:131
mod_urban_vars::urban_restart_out_basename
character(len=h_long), public urban_restart_out_basename
Basename of the output file.
Definition: mod_urban_vars.F90:54
mod_urban_vars::atmos_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
Definition: mod_urban_vars.F90:134
mod_urban_vars::atmos_sflx_lw
real(rp), dimension(:,:,:), allocatable, public atmos_sflx_lw
Definition: mod_urban_vars.F90:135
mod_urban_vars::urban_z0e
real(rp), dimension(:,:), allocatable, public urban_z0e
Definition: mod_urban_vars.F90:108
scale_file_cartesc::file_cartesc_close
subroutine, public file_cartesc_close(fid)
Close a netCDF file.
Definition: scale_file_cartesC.F90:1044
mod_urban_vars::urban_u10
real(rp), dimension(:,:), allocatable, public urban_u10
Definition: mod_urban_vars.F90:119
mod_urban_vars::urban_vars_restart_read
subroutine, public urban_vars_restart_read
Read urban restart.
Definition: mod_urban_vars.F90:702
mod_urban_vars::atmos_cossza
real(rp), dimension(:,:), allocatable, public atmos_cossza
Definition: mod_urban_vars.F90:137
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_monitor::monitor_reg
subroutine, public monitor_reg(name, desc, unit, itemid, ndims, dim_type, is_tendency)
Search existing item, or matching check between requested and registered item.
Definition: scale_monitor.F90:243
mod_urban_vars::urban_vars_finalize
subroutine, public urban_vars_finalize
Finalize.
Definition: mod_urban_vars.F90:564
scale_time
module TIME
Definition: scale_time.F90:11
mod_urban_vars::urban_vars_check
subroutine, public urban_vars_check(force)
Budget monitor for urban.
Definition: mod_urban_vars.F90:1059
mod_urban_vars::atmos_pres
real(rp), dimension(:,:), allocatable, public atmos_pres
Definition: mod_urban_vars.F90:126
mod_urban_vars::urban_tstar
real(rp), dimension(:,:), allocatable, public urban_tstar
Definition: mod_urban_vars.F90:115
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
mod_urban_vars::urban_restart_out_aggregate
logical, public urban_restart_out_aggregate
Switch to use aggregate file.
Definition: mod_urban_vars.F90:55
mod_urban_vars::urban_tc
real(rp), dimension(:,:), allocatable, public urban_tc
Definition: mod_urban_vars.F90:67
mod_urban_vars::urban_tg
real(rp), dimension(:,:), allocatable, public urban_tg
Definition: mod_urban_vars.F90:66
scale_atmos_hydrometeor::i_qv
integer, public i_qv
Definition: scale_atmos_hydrometeor.F90:93
scale_urban_grid_cartesc_index::uks
integer, public uks
Definition: scale_urban_grid_cartesC_index.F90:38
mod_urban_vars::urban_tg_t
real(rp), dimension(:,:), allocatable, public urban_tg_t
Definition: mod_urban_vars.F90:87
mod_urban_vars::urban_uc
real(rp), dimension(:,:), allocatable, public urban_uc
Definition: mod_urban_vars.F90:69
scale_const::const_dwatr
real(rp), parameter, public const_dwatr
density of water [kg/m3]
Definition: scale_const.F90:89
mod_urban_vars::urban_tr_t
real(rp), dimension(:,:), allocatable, public urban_tr_t
Definition: mod_urban_vars.F90:85
scale_debug
module DEBUG
Definition: scale_debug.F90:11
mod_urban_vars::urban_restart_out_dtype
character(len=h_short), public urban_restart_out_dtype
REAL4 or REAL8.
Definition: mod_urban_vars.F90:58
scale_file_cartesc::file_cartesc_create
subroutine, public file_cartesc_create(basename, title, datatype, fid, date, subsec, haszcoord, append, aggregate, single)
Create/open a netCDF file.
Definition: scale_file_cartesC.F90:796
scale_statistics::statistics_checktotal
logical, public statistics_checktotal
calc&report variable totals to logfile?
Definition: scale_statistics.F90:109
mod_urban_vars::urban_sflx_lh
real(rp), dimension(:,:), allocatable, public urban_sflx_lh
Definition: mod_urban_vars.F90:98
scale_file_cartesc::file_cartesc_flush
subroutine, public file_cartesc_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
Definition: scale_file_cartesC.F90:1018
scale_landuse::landuse_exists_urban
logical, dimension(:,:), allocatable, public landuse_exists_urban
urban calculation flag
Definition: scale_landuse.F90:52
scale_time::time_gettimelabel
subroutine, public time_gettimelabel(timelabel)
generate time label
Definition: scale_time.F90:93
scale_cpl_sfc_index
module coupler / surface-atmospehre
Definition: scale_cpl_sfc_index.F90:11
mod_urban_vars::urban_rainb
real(rp), dimension(:,:), allocatable, public urban_rainb
Definition: mod_urban_vars.F90:71
scale_cpl_sfc_index::i_r_vis
integer, parameter, public i_r_vis
Definition: scale_cpl_sfc_index.F90:31
mod_urban_vars::urban_ah
real(rp), dimension(:,:), allocatable, public urban_ah
Definition: mod_urban_vars.F90:110
mod_urban_vars::urban_ahl
real(rp), dimension(:,:), allocatable, public urban_ahl
Definition: mod_urban_vars.F90:111
mod_urban_vars::urban_sflx_sh
real(rp), dimension(:,:), allocatable, public urban_sflx_sh
Definition: mod_urban_vars.F90:97
mod_urban_vars::urban_qc_t
real(rp), dimension(:,:), allocatable, public urban_qc_t
Definition: mod_urban_vars.F90:84
mod_urban_vars::urban_tr
real(rp), dimension(:,:), allocatable, public urban_tr
Definition: mod_urban_vars.F90:64
scale_file::file_get_aggregate
logical function, public file_get_aggregate(fid)
Definition: scale_file.F90:6316
scale_file_cartesc::file_cartesc_open
subroutine, public file_cartesc_open(basename, fid, single, aggregate)
open a netCDF file for read
Definition: scale_file_cartesC.F90:760
scale_urban_grid_cartesc_index::uka
integer, public uka
Definition: scale_urban_grid_cartesC_index.F90:37
mod_urban_vars::urban_roff
real(rp), dimension(:,:), allocatable, public urban_roff
Definition: mod_urban_vars.F90:92
mod_urban_vars::urban_rainb_t
real(rp), dimension(:,:), allocatable, public urban_rainb_t
Definition: mod_urban_vars.F90:89
scale_urban_grid_cartesc_index::uis
integer, public uis
Definition: scale_urban_grid_cartesC_index.F90:42
mod_urban_vars::urban_ustar
real(rp), dimension(:,:), allocatable, public urban_ustar
Definition: mod_urban_vars.F90:114
mod_urban_vars::urban_zd
real(rp), dimension(:,:), allocatable, public urban_zd
Definition: mod_urban_vars.F90:109
scale_prof::prof_rapend
subroutine, public prof_rapend(rapname_base, level, disable_barrier)
Save raptime.
Definition: scale_prof.F90:246
mod_urban_vars::urban_sflx_qvex
real(rp), dimension(:,:), allocatable, public urban_sflx_qvex
Definition: mod_urban_vars.F90:101
scale_urban_grid_cartesc_real::urban_grid_cartesc_real_totarea
real(rp), public urban_grid_cartesc_real_totarea
total area
Definition: scale_urban_grid_cartesC_real.F90:38
mod_urban_vars::urban_uc_t
real(rp), dimension(:,:), allocatable, public urban_uc_t
Definition: mod_urban_vars.F90:83
mod_urban_vars::urban_rainr_t
real(rp), dimension(:,:), allocatable, public urban_rainr_t
Definition: mod_urban_vars.F90:88
mod_urban_vars::urban_tbl
real(rp), dimension(:,:,:), allocatable, public urban_tbl
Definition: mod_urban_vars.F90:62
scale_landuse
module LANDUSE
Definition: scale_landuse.F90:19
mod_urban_admin
module Urban admin
Definition: mod_urban_admin.F90:11
mod_urban_vars::urban_sflx_mw
real(rp), dimension(:,:), allocatable, public urban_sflx_mw
Definition: mod_urban_vars.F90:94
scale_cpl_sfc_index::n_rad_rgn
integer, parameter, public n_rad_rgn
Definition: scale_cpl_sfc_index.F90:28
mod_urban_vars::urban_restart_in_aggregate
logical, public urban_restart_in_aggregate
Switch to use aggregate file.
Definition: mod_urban_vars.F90:52
mod_urban_vars::atmos_sfc_dens
real(rp), dimension(:,:), allocatable, public atmos_sfc_dens
Definition: mod_urban_vars.F90:133
scale_urban_grid_cartesc_real
module urban / grid / cartesianC / real
Definition: scale_urban_grid_cartesC_real.F90:12
mod_urban_vars::urban_sflx_gh
real(rp), dimension(:,:), allocatable, public urban_sflx_gh
Definition: mod_urban_vars.F90:103
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:43
scale_urban_grid_cartesc_index::uje
integer, public uje
Definition: scale_urban_grid_cartesC_index.F90:47
mod_urban_vars::urban_rlmo
real(rp), dimension(:,:), allocatable, public urban_rlmo
Definition: mod_urban_vars.F90:118
mod_urban_vars::urban_restart_in_basename
character(len=h_long), public urban_restart_in_basename
Basename of the input file.
Definition: mod_urban_vars.F90:51
mod_urban_vars::urban_vars_restart_close
subroutine, public urban_vars_restart_close
Close restart file.
Definition: mod_urban_vars.F90:1309
scale_urban_grid_cartesc_index::ujs
integer, public ujs
Definition: scale_urban_grid_cartesC_index.F90:46
mod_urban_vars::urban_rainr
real(rp), dimension(:,:), allocatable, public urban_rainr
Definition: mod_urban_vars.F90:70
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
scale_file_cartesc
module file / cartesianC
Definition: scale_file_cartesC.F90:11
mod_urban_vars
module URBAN Variables
Definition: mod_urban_vars.F90:12
scale_atmos_hydrometeor::cv_water
real(rp), public cv_water
CV for water [J/kg/K].
Definition: scale_atmos_hydrometeor.F90:151
mod_urban_vars::urban_restart_out_postfix_timelabel
logical, public urban_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
Definition: mod_urban_vars.F90:56
mod_urban_vars::urban_restart_out_title
character(len=h_mid), public urban_restart_out_title
Title of the output file.
Definition: mod_urban_vars.F90:57
scale_urban_grid_cartesc_index::uie
integer, public uie
Definition: scale_urban_grid_cartesC_index.F90:43
scale_urban_grid_cartesc_index::uke
integer, public uke
Definition: scale_urban_grid_cartesC_index.F90:39
mod_urban_vars::atmos_temp
real(rp), dimension(:,:), allocatable, public atmos_temp
Definition: mod_urban_vars.F90:125
mod_urban_vars::urban_tc_t
real(rp), dimension(:,:), allocatable, public urban_tc_t
Definition: mod_urban_vars.F90:82
scale_urban_grid_cartesc_real::urban_grid_cartesc_real_area
real(rp), dimension(:,:), allocatable, public urban_grid_cartesc_real_area
area of grid cell
Definition: scale_urban_grid_cartesC_real.F90:37
scale_monitor
module MONITOR
Definition: scale_monitor.F90:12