SCALE-RM
mod_atmos_phy_sf_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 :: atmos_phy_sf_vars_setup
36 
42 
43  !-----------------------------------------------------------------------------
44  !
45  !++ Public parameters & variables
46  !
47  logical, public :: atmos_phy_sf_restart_output = .false.
48 
49  character(len=H_LONG), public :: atmos_phy_sf_restart_in_basename = ''
51  logical, public :: atmos_phy_sf_restart_in_postfix_timelabel = .false.
52  character(len=H_LONG), public :: atmos_phy_sf_restart_out_basename = ''
54  logical, public :: atmos_phy_sf_restart_out_postfix_timelabel = .true.
55  character(len=H_MID), public :: atmos_phy_sf_restart_out_title = 'ATMOS_PHY_SF restart'
56  character(len=H_SHORT), public :: atmos_phy_sf_restart_out_dtype = 'DEFAULT'
57 
58  real(rp), public, allocatable :: atmos_phy_sf_dens_t (:,:) ! tendency DENS [ kg/m3/s]
59  real(rp), public, allocatable :: atmos_phy_sf_momz_t (:,:) ! tendency MOMZ [m/s*kg/m2/s]
60  real(rp), public, allocatable :: atmos_phy_sf_rhou_t (:,:) ! tendency rho*U [m/s*kg/m2/s]
61  real(rp), public, allocatable :: atmos_phy_sf_rhov_t (:,:) ! tendency rho*V [m/s*kg/m2/s]
62  real(rp), public, allocatable :: atmos_phy_sf_rhoh (:,:) ! diabatic heating [J/m3/s]
63  real(rp), public, allocatable :: atmos_phy_sf_rhoq_t (:,:,:) ! tendency rho*QTRC [ kg/kg/s]
64 
65  real(rp), public, allocatable :: atmos_phy_sf_sfc_temp (:,:) ! surface skin temperature [K]
66  real(rp), public, allocatable :: atmos_phy_sf_sfc_albedo(:,:,:,:) ! surface albedo (direct/diffuse,IR/near-IR/VIS) (0-1)
67  real(rp), public, allocatable :: atmos_phy_sf_sfc_z0m (:,:) ! surface roughness length, ocean only [m]
68  real(rp), public, allocatable :: atmos_phy_sf_sfc_z0h (:,:) ! surface roughness length, ocean only [m]
69  real(rp), public, allocatable :: atmos_phy_sf_sfc_z0e (:,:) ! surface roughness length, ocean only [m]
70 
71  ! surface diagnostic variables
72  real(rp), public, allocatable :: atmos_phy_sf_sfc_dens (:,:) ! surface atmosphere density [kg/m3]
73  real(rp), public, allocatable :: atmos_phy_sf_sfc_pres (:,:) ! surface atmosphere pressure [Pa]
74 
75  real(rp), public, allocatable :: atmos_phy_sf_prec_mass (:,:) ! mass flux of the precipitation [kg/m2/s]
76  real(rp), public, allocatable :: atmos_phy_sf_prec_engi (:,:) ! internal energy flux of the precipitation [J/m2/s]
77  real(rp), public, allocatable :: atmos_phy_sf_sflx_mw (:,:) ! z-momentum flux (area center) [m/s*kg/m2/s]
78  real(rp), public, allocatable :: atmos_phy_sf_sflx_mu (:,:) ! x-momentum flux (area center) [m/s*kg/m2/s]
79  real(rp), public, allocatable :: atmos_phy_sf_sflx_mv (:,:) ! y-momentum flux (area center) [m/s*kg/m2/s]
80  real(rp), public, allocatable :: atmos_phy_sf_sflx_sh (:,:) ! sensible heat flux [J/m2/s]
81  real(rp), public, allocatable :: atmos_phy_sf_sflx_lh (:,:) ! latent heat flux [J/m2/s]
82  real(rp), public, allocatable :: atmos_phy_sf_sflx_shex (:,:) ! extra sensible heat flux [J/m2/s]
83  real(rp), public, allocatable :: atmos_phy_sf_sflx_lhex (:,:) ! extra latent heat flux [J/m2/s]
84  real(rp), public, allocatable :: atmos_phy_sf_sflx_qvex (:,:) ! extra latent heat flux [kg/kg/m2/s]
85  real(rp), public, allocatable :: atmos_phy_sf_sflx_gh (:,:) ! ground heat flux [J/m2/s] (downward)
86  real(rp), public, allocatable, target :: atmos_phy_sf_sflx_qtrc (:,:,:) ! tracer mass flux [kg/m2/s]
87  real(rp), public, allocatable :: atmos_phy_sf_sflx_engi (:,:) ! internal energy flux [J/m2/s]
88  real(rp), public, pointer :: atmos_phy_sf_sflx_qv (:,:)
89 
90  real(rp), public, allocatable :: atmos_phy_sf_ustar (:,:) ! friction velocity [m/2]
91  real(rp), public, allocatable :: atmos_phy_sf_tstar (:,:) ! temperature scale [K]
92  real(rp), public, allocatable :: atmos_phy_sf_qstar (:,:) ! moisture scale [kg/kg]
93  real(rp), public, allocatable :: atmos_phy_sf_wstar (:,:) ! convective velocity scale [m/s]
94 
95  real(rp), public, allocatable :: atmos_phy_sf_u10 (:,:) ! 10m x-wind [m/s]
96  real(rp), public, allocatable :: atmos_phy_sf_v10 (:,:) ! 10m y-wind [m/s]
97  real(rp), public, allocatable :: atmos_phy_sf_t2 (:,:) ! 2m temperature [K]
98  real(rp), public, allocatable :: atmos_phy_sf_q2 (:,:) ! 2m specific humidity [kg/kg]
99 
100  real(rp), public, allocatable :: atmos_phy_sf_rlmo (:,:) ! inverse of monin-obukhov length
101 
102 ! real(RP), public, allocatable :: ATMOS_PHY_SF_SFLX_QEMIS(:,:,:) ! tracer emission flux [kg/m2/s]
103 ! real(RP), public, allocatable :: ATMOS_PHY_SF_SFLX_QDEP (:,:,:) ! tracer deposition flux [kg/m2/s]
104 ! real(RP), public, allocatable :: ATMOS_PHY_SF_SFLX_VDEP (:,:,:) ! tracer deposition velocity [m/s]
105 
106  !-----------------------------------------------------------------------------
107  !
108  !++ Private procedure
109  !
110  !-----------------------------------------------------------------------------
111  !
112  !++ Private parameters & variables
113  !
114  integer, private, parameter :: vmax = 10
115  integer, private, parameter :: i_sfc_temp = 1
116  integer, private, parameter :: i_sfc_alb_ir_dir = 2
117  integer, private, parameter :: i_sfc_alb_ir_dif = 3
118  integer, private, parameter :: i_sfc_alb_nir_dir = 4
119  integer, private, parameter :: i_sfc_alb_nir_dif = 5
120  integer, private, parameter :: i_sfc_alb_vis_dir = 6
121  integer, private, parameter :: i_sfc_alb_vis_dif = 7
122  integer, private, parameter :: i_sfc_z0m = 8
123  integer, private, parameter :: i_sfc_z0h = 9
124  integer, private, parameter :: i_sfc_z0e = 10
125 
126  character(len=H_SHORT), private :: var_name(vmax)
127  character(len=H_MID), private :: var_desc(vmax)
128  character(len=H_MID), private :: var_stdn(vmax)
129  character(len=H_SHORT), private :: var_unit(vmax)
130  integer, private :: var_id(vmax)
131  integer, private :: restart_fid = -1 ! file ID
132 
133  data var_name / 'SFC_TEMP', &
134  'SFC_ALB_IR_dir', &
135  'SFC_ALB_IR_dif', &
136  'SFC_ALB_NIR_dir', &
137  'SFC_ALB_NIR_dif', &
138  'SFC_ALB_VIS_dir', &
139  'SFC_ALB_VIS_dif', &
140  'SFC_Z0M', &
141  'SFC_Z0H', &
142  'SFC_Z0E' /
143 
144  data var_desc / 'surface skin temperature', &
145  'surface albedo for IR, direct ', &
146  'surface albedo for IR, diffuse', &
147  'surface albedo for NIR, direct ', &
148  'surface albedo for NIR, diffuse', &
149  'surface albedo for VIS, direct ', &
150  'surface albedo for VIS, diffuse', &
151  'surface roughness length (momentum)', &
152  'surface roughness length (heat)', &
153  'surface roughness length (vapor)' /
154 
155  data var_stdn / 'surface_temp', &
156  '', &
157  '', &
158  '', &
159  '', &
160  '', &
161  '', &
162  'surface_roughness_length_for_momentum_in_air', &
163  'surface_roughness_length_for_heat_in_air', &
164  '' /
165 
166  data var_unit / 'K', &
167  '1', &
168  '1', &
169  '1', &
170  '1', &
171  '1', &
172  '1', &
173  'm', &
174  'm', &
175  'm' /
176 
177  real(rp), private :: atmos_phy_sf_default_sfc_temp = 300.0_rp
178  real(rp), private :: atmos_phy_sf_default_sfc_albedo_lw = 0.04_rp
179  real(rp), private :: atmos_phy_sf_default_sfc_albedo_sw = 0.10_rp
180  real(rp), private :: atmos_phy_sf_default_sfc_z0m = 1e-4_rp
181  real(rp), private :: atmos_phy_sf_default_sfc_z0h = 1e-5_rp
182  real(rp), private :: atmos_phy_sf_default_sfc_z0e = 1e-5_rp
183 
184  real(rp), allocatable, target :: zero(:,:)
185 
186  !-----------------------------------------------------------------------------
187 contains
188  !-----------------------------------------------------------------------------
190  subroutine atmos_phy_sf_vars_setup
191  use scale_prc, only: &
192  prc_abort
193  use scale_const, only: &
194  undef => const_undef
195  use scale_atmos_hydrometeor, only: &
196  i_qv
197  implicit none
198 
199  namelist / param_atmos_phy_sf_vars / &
209  atmos_phy_sf_default_sfc_temp, &
210  atmos_phy_sf_default_sfc_albedo_lw, &
211  atmos_phy_sf_default_sfc_albedo_sw, &
212  atmos_phy_sf_default_sfc_z0m, &
213  atmos_phy_sf_default_sfc_z0h, &
214  atmos_phy_sf_default_sfc_z0e
215 
216  integer :: ierr
217  integer :: iv
218  !---------------------------------------------------------------------------
219 
220  log_newline
221  log_info("ATMOS_PHY_SF_vars_setup",*) 'Setup'
222 
223  !--- read namelist
224  rewind(io_fid_conf)
225  read(io_fid_conf,nml=param_atmos_phy_sf_vars,iostat=ierr)
226  if( ierr < 0 ) then !--- missing
227  log_info("ATMOS_PHY_SF_vars_setup",*) 'Not found namelist. Default used.'
228  elseif( ierr > 0 ) then !--- fatal error
229  log_error("ATMOS_PHY_SF_vars_setup",*) 'Not appropriate names in namelist PARAM_ATMOS_PHY_SF_VARS. Check!'
230  call prc_abort
231  endif
232  log_nml(param_atmos_phy_sf_vars)
233 
234 
235  allocate( atmos_phy_sf_dens_t(ia,ja) )
236  allocate( atmos_phy_sf_momz_t(ia,ja) )
237  allocate( atmos_phy_sf_rhou_t(ia,ja) )
238  allocate( atmos_phy_sf_rhov_t(ia,ja) )
239  allocate( atmos_phy_sf_rhoh(ia,ja) )
240  allocate( atmos_phy_sf_rhoq_t(ia,ja,max(qa,1)) )
241  atmos_phy_sf_dens_t(:,:) = undef
242  atmos_phy_sf_momz_t(:,:) = undef
243  atmos_phy_sf_rhou_t(:,:) = undef
244  atmos_phy_sf_rhov_t(:,:) = undef
245  atmos_phy_sf_rhoh(:,:) = undef
246  atmos_phy_sf_rhoq_t(:,:,:) = undef
247  !$acc enter data create(ATMOS_PHY_SF_DENS_t,ATMOS_PHY_SF_MOMZ_t,ATMOS_PHY_SF_RHOU_t,ATMOS_PHY_SF_RHOV_t,ATMOS_PHY_SF_RHOH,ATMOS_PHY_SF_RHOQ_t)
248 
249  allocate( atmos_phy_sf_sfc_temp(ia,ja) )
251  allocate( atmos_phy_sf_sfc_z0m(ia,ja) )
252  allocate( atmos_phy_sf_sfc_z0h(ia,ja) )
253  allocate( atmos_phy_sf_sfc_z0e(ia,ja) )
254  atmos_phy_sf_sfc_temp(:,:) = atmos_phy_sf_default_sfc_temp
255  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_ir ) = atmos_phy_sf_default_sfc_albedo_lw
256  atmos_phy_sf_sfc_albedo(:,:,i_r_diffuse,i_r_ir ) = atmos_phy_sf_default_sfc_albedo_lw
257  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_nir) = atmos_phy_sf_default_sfc_albedo_sw
258  atmos_phy_sf_sfc_albedo(:,:,i_r_diffuse,i_r_nir) = atmos_phy_sf_default_sfc_albedo_sw
259  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_vis) = atmos_phy_sf_default_sfc_albedo_sw
260  atmos_phy_sf_sfc_albedo(:,:,i_r_diffuse,i_r_vis) = atmos_phy_sf_default_sfc_albedo_sw
261  atmos_phy_sf_sfc_z0m(:,:) = atmos_phy_sf_default_sfc_z0m
262  atmos_phy_sf_sfc_z0h(:,:) = atmos_phy_sf_default_sfc_z0h
263  atmos_phy_sf_sfc_z0e(:,:) = atmos_phy_sf_default_sfc_z0e
264  !$acc enter data copyin(ATMOS_PHY_SF_SFC_TEMP,ATMOS_PHY_SF_SFC_albedo,ATMOS_PHY_SF_SFC_Z0M,ATMOS_PHY_SF_SFC_Z0H,ATMOS_PHY_SF_SFC_Z0E)
265 
266  allocate( atmos_phy_sf_sfc_dens(ia,ja) )
267  allocate( atmos_phy_sf_sfc_pres(ia,ja) )
268  atmos_phy_sf_sfc_dens(:,:) = undef
269  atmos_phy_sf_sfc_pres(:,:) = undef
270  !$acc enter data create(ATMOS_PHY_SF_SFC_DENS,ATMOS_PHY_SF_SFC_PRES)
271 
272  allocate( atmos_phy_sf_prec_mass(ia,ja) )
273  allocate( atmos_phy_sf_prec_engi(ia,ja) )
274  atmos_phy_sf_prec_mass(:,:) = undef
275  atmos_phy_sf_prec_engi(:,:) = undef
276  !$acc enter data create(ATMOS_PHY_SF_PREC_MASS,ATMOS_PHY_SF_PREC_ENGI)
277 
278  allocate( atmos_phy_sf_sflx_mw(ia,ja) )
279  allocate( atmos_phy_sf_sflx_mu(ia,ja) )
280  allocate( atmos_phy_sf_sflx_mv(ia,ja) )
281  allocate( atmos_phy_sf_sflx_sh(ia,ja) )
282  allocate( atmos_phy_sf_sflx_lh(ia,ja) )
283  allocate( atmos_phy_sf_sflx_shex(ia,ja) )
284  allocate( atmos_phy_sf_sflx_lhex(ia,ja) )
285  allocate( atmos_phy_sf_sflx_qvex(ia,ja) )
286  allocate( atmos_phy_sf_sflx_gh(ia,ja) )
287  allocate( atmos_phy_sf_sflx_qtrc(ia,ja,max(qa,1)) )
288  allocate( atmos_phy_sf_sflx_engi(ia,ja) )
289  atmos_phy_sf_sflx_mw(:,:) = undef
290  atmos_phy_sf_sflx_mu(:,:) = undef
291  atmos_phy_sf_sflx_mv(:,:) = undef
292  atmos_phy_sf_sflx_sh(:,:) = undef
293  atmos_phy_sf_sflx_lh(:,:) = undef
294  atmos_phy_sf_sflx_shex(:,:) = undef
295  atmos_phy_sf_sflx_lhex(:,:) = undef
296  atmos_phy_sf_sflx_qvex(:,:) = undef
297  atmos_phy_sf_sflx_gh(:,:) = undef
298  atmos_phy_sf_sflx_qtrc(:,:,:) = undef
299  atmos_phy_sf_sflx_engi(:,:) = undef
300  !$acc enter data create(ATMOS_PHY_SF_SFLX_MW,ATMOS_PHY_SF_SFLX_MU,ATMOS_PHY_SF_SFLX_MV,ATMOS_PHY_SF_SFLX_SH,ATMOS_PHY_SF_SFLX_LH,ATMOS_PHY_SF_SFLX_SHEX,ATMOS_PHY_SF_SFLX_LHEX,ATMOS_PHY_SF_SFLX_QVEX,ATMOS_PHY_SF_SFLX_GH,ATMOS_PHY_SF_SFLX_QTRC,ATMOS_PHY_SF_SFLX_ENGI)
301 
302  allocate( atmos_phy_sf_ustar(ia,ja) )
303  allocate( atmos_phy_sf_tstar(ia,ja) )
304  allocate( atmos_phy_sf_qstar(ia,ja) )
305  allocate( atmos_phy_sf_wstar(ia,ja) )
306  atmos_phy_sf_ustar(:,:) = undef
307  atmos_phy_sf_tstar(:,:) = undef
308  atmos_phy_sf_wstar(:,:) = undef
309  !$acc enter data create(ATMOS_PHY_SF_Ustar,ATMOS_PHY_SF_Tstar,ATMOS_PHY_SF_Qstar,ATMOS_PHY_SF_Wstar)
310 
311  allocate( atmos_phy_sf_u10(ia,ja) )
312  allocate( atmos_phy_sf_v10(ia,ja) )
313  allocate( atmos_phy_sf_t2(ia,ja) )
314  allocate( atmos_phy_sf_q2(ia,ja) )
315  allocate( atmos_phy_sf_rlmo(ia,ja) )
316  atmos_phy_sf_u10(:,:) = undef
317  atmos_phy_sf_v10(:,:) = undef
318  atmos_phy_sf_t2(:,:) = undef
319  atmos_phy_sf_q2(:,:) = undef
320  atmos_phy_sf_rlmo(:,:) = undef
321  !$acc enter data create(ATMOS_PHY_SF_U10,ATMOS_PHY_SF_V10,ATMOS_PHY_SF_T2,ATMOS_PHY_SF_Q2,ATMOS_PHY_SF_RLmo)
322 
323  log_newline
324  log_info("ATMOS_PHY_SF_vars_setup",*) '[ATMOS_PHY_SF] prognostic/diagnostic variables'
325  log_info_cont('(1x,A,A24,A,A48,A,A12,A)') &
326  ' |', 'VARNAME ','|', &
327  'DESCRIPTION ', '[', 'UNIT ', ']'
328  do iv = 1, vmax
329  log_info_cont('(1x,A,I3,A,A24,A,A48,A,A12,A)') &
330  'NO.',iv,'|',var_name(iv),'|',var_desc(iv),'[',var_unit(iv),']'
331  enddo
332 
333  log_newline
334  if ( atmos_phy_sf_restart_in_basename /= '' ) then
335  log_info("ATMOS_PHY_SF_vars_setup",*) 'Restart input? : YES, file = ', trim(atmos_phy_sf_restart_in_basename)
336  log_info("ATMOS_PHY_SF_vars_setup",*) 'Add timelabel? : ', atmos_phy_sf_restart_in_postfix_timelabel
337  else
338  log_info("ATMOS_PHY_SF_vars_setup",*) 'Restart input? : NO'
339  endif
341  .AND. atmos_phy_sf_restart_out_basename /= '' ) then
342  log_info("ATMOS_PHY_SF_vars_setup",*) 'Restart output? : YES, file = ', trim(atmos_phy_sf_restart_out_basename)
343  log_info("ATMOS_PHY_SF_vars_setup",*) 'Add timelabel? : ', atmos_phy_sf_restart_out_postfix_timelabel
344  else
345  log_info("ATMOS_PHY_SF_vars_setup",*) 'Restart output? : NO'
347  endif
348 
349  if ( i_qv > 0 ) then
351  else
352  allocate( zero(ia,ja) )
353  zero(:,:) = 0.0_rp
354  !$acc enter data copyin(ZERO)
355  atmos_phy_sf_sflx_qv => zero
356  end if
357 
358  return
359  end subroutine atmos_phy_sf_vars_setup
360 
361  !-----------------------------------------------------------------------------
363  subroutine atmos_phy_sf_vars_finalize
364  implicit none
365  !---------------------------------------------------------------------------
366 
367  log_newline
368  log_info("ATMOS_PHY_SF_vars_finalize",*) 'Finalize'
369 
370  !$acc exit data delete(ATMOS_PHY_SF_DENS_t,ATMOS_PHY_SF_MOMZ_t,ATMOS_PHY_SF_RHOU_t,ATMOS_PHY_SF_RHOV_t,ATMOS_PHY_SF_RHOH,ATMOS_PHY_SF_RHOQ_t)
371  deallocate( atmos_phy_sf_dens_t )
372  deallocate( atmos_phy_sf_momz_t )
373  deallocate( atmos_phy_sf_rhou_t )
374  deallocate( atmos_phy_sf_rhov_t )
375  deallocate( atmos_phy_sf_rhoh )
376  deallocate( atmos_phy_sf_rhoq_t )
377 
378  !$acc exit data delete(ATMOS_PHY_SF_SFC_TEMP,ATMOS_PHY_SF_SFC_albedo,ATMOS_PHY_SF_SFC_Z0M,ATMOS_PHY_SF_SFC_Z0H,ATMOS_PHY_SF_SFC_Z0E)
379  deallocate( atmos_phy_sf_sfc_temp )
380  deallocate( atmos_phy_sf_sfc_albedo )
381  deallocate( atmos_phy_sf_sfc_z0m )
382  deallocate( atmos_phy_sf_sfc_z0h )
383  deallocate( atmos_phy_sf_sfc_z0e )
384 
385  !$acc exit data delete(ATMOS_PHY_SF_SFC_DENS,ATMOS_PHY_SF_SFC_PRES)
386  deallocate( atmos_phy_sf_sfc_dens )
387  deallocate( atmos_phy_sf_sfc_pres )
388 
389  !$acc exit data delete(ATMOS_PHY_SF_PREC_MASS,ATMOS_PHY_SF_PREC_ENGI)
390  deallocate( atmos_phy_sf_prec_mass )
391  deallocate( atmos_phy_sf_prec_engi )
392 
393 
394  !$acc exit data delete(ATMOS_PHY_SF_SFLX_MW,ATMOS_PHY_SF_SFLX_MU,ATMOS_PHY_SF_SFLX_MV,ATMOS_PHY_SF_SFLX_SH,ATMOS_PHY_SF_SFLX_LH,ATMOS_PHY_SF_SFLX_SHEX,ATMOS_PHY_SF_SFLX_LHEX,ATMOS_PHY_SF_SFLX_QVEX,ATMOS_PHY_SF_SFLX_GH,ATMOS_PHY_SF_SFLX_QTRC,ATMOS_PHY_SF_SFLX_ENGI)
395  deallocate( atmos_phy_sf_sflx_mw )
396  deallocate( atmos_phy_sf_sflx_mu )
397  deallocate( atmos_phy_sf_sflx_mv )
398  deallocate( atmos_phy_sf_sflx_sh )
399  deallocate( atmos_phy_sf_sflx_lh )
400  deallocate( atmos_phy_sf_sflx_shex )
401  deallocate( atmos_phy_sf_sflx_lhex )
402  deallocate( atmos_phy_sf_sflx_qvex )
403  deallocate( atmos_phy_sf_sflx_gh )
404  deallocate( atmos_phy_sf_sflx_qtrc )
405  deallocate( atmos_phy_sf_sflx_engi )
406 
407  !$acc exit data delete(ATMOS_PHY_SF_Ustar,ATMOS_PHY_SF_Tstar,ATMOS_PHY_SF_Qstar,ATMOS_PHY_SF_Wstar)
408  deallocate( atmos_phy_sf_ustar )
409  deallocate( atmos_phy_sf_tstar )
410  deallocate( atmos_phy_sf_qstar )
411  deallocate( atmos_phy_sf_wstar )
412 
413  !$acc exit data delete(ATMOS_PHY_SF_U10,ATMOS_PHY_SF_V10,ATMOS_PHY_SF_T2,ATMOS_PHY_SF_Q2,ATMOS_PHY_SF_RLmo)
414  deallocate( atmos_phy_sf_u10 )
415  deallocate( atmos_phy_sf_v10 )
416  deallocate( atmos_phy_sf_t2 )
417  deallocate( atmos_phy_sf_q2 )
418  deallocate( atmos_phy_sf_rlmo )
419 
420  if ( allocated( zero ) ) then
421  !$acc exit data delete(ZERO)
422  deallocate( zero )
423  end if
424  return
425  end subroutine atmos_phy_sf_vars_finalize
426 
427  !-----------------------------------------------------------------------------
429  subroutine atmos_phy_sf_vars_fillhalo
430  use scale_comm_cartesc, only: &
431  comm_vars8, &
432  comm_wait
433  implicit none
434 
435  integer :: n ,idir, irgn
436  !---------------------------------------------------------------------------
437 
438  call comm_vars8( atmos_phy_sf_sfc_temp(:,:), 1 )
439  call comm_vars8( atmos_phy_sf_sfc_z0m(:,:), 2 )
440  call comm_vars8( atmos_phy_sf_sfc_z0h(:,:), 3 )
441  call comm_vars8( atmos_phy_sf_sfc_z0e(:,:), 4 )
442 
443  n = 4
444  do irgn = i_r_ir, i_r_vis
445  do idir = i_r_direct, i_r_diffuse
446  n = n + 1
447  call comm_vars8( atmos_phy_sf_sfc_albedo(:,:,idir,irgn), n )
448  enddo
449  enddo
450 
451  call comm_wait ( atmos_phy_sf_sfc_temp(:,:), 1 )
452  call comm_wait ( atmos_phy_sf_sfc_z0m(:,:), 2 )
453  call comm_wait ( atmos_phy_sf_sfc_z0h(:,:), 3 )
454  call comm_wait ( atmos_phy_sf_sfc_z0e(:,:), 4 )
455 
456  n = 4
457  do irgn = i_r_ir, i_r_vis
458  do idir = i_r_direct, i_r_diffuse
459  n = n + 1
460  call comm_wait ( atmos_phy_sf_sfc_albedo(:,:,idir,irgn), n )
461  enddo
462  enddo
463 
464  return
465  end subroutine atmos_phy_sf_vars_fillhalo
466 
467  !-----------------------------------------------------------------------------
470  use scale_time, only: &
472  use scale_file_cartesc, only: &
474  implicit none
475 
476  character(len=19) :: timelabel
477  character(len=H_LONG) :: basename
478  !---------------------------------------------------------------------------
479 
480  log_newline
481  log_info("ATMOS_PHY_SF_vars_restart_open",*) 'Open restart file (ATMOS_PHY_SF) '
482 
483  if ( atmos_phy_sf_restart_in_basename /= '' ) then
484 
486  call time_gettimelabel( timelabel )
487  basename = trim(atmos_phy_sf_restart_in_basename)//'_'//trim(timelabel)
488  else
489  basename = trim(atmos_phy_sf_restart_in_basename)
490  endif
491 
492  log_info("ATMOS_PHY_SF_vars_restart_open",*) 'basename: ', trim(basename)
493 
494  call file_cartesc_open( basename, restart_fid, aggregate=atmos_phy_sf_restart_in_aggregate )
495 
496  else
497  log_info("ATMOS_PHY_SF_vars_restart_open",*) 'restart file for ATMOS_PHY_SF is not specified.'
498  endif
499 
500  return
501  end subroutine atmos_phy_sf_vars_restart_open
502 
503  !-----------------------------------------------------------------------------
506  use scale_file, only: &
508  use scale_file_cartesc, only: &
509  file_cartesc_read, &
511  implicit none
512  !---------------------------------------------------------------------------
513 
514  if ( restart_fid /= -1 ) then
515  log_newline
516  log_info("ATMOS_PHY_SF_vars_restart_read",*) 'Read from restart file (ATMOS_PHY_SF) '
517 
518  call file_cartesc_read( restart_fid, var_name(i_sfc_temp), 'XY', & ! [IN]
519  atmos_phy_sf_sfc_temp(:,:) ) ! [OUT]
520  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dir), 'XY', & ! [IN]
521  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_ir ) ) ! [OUT]
522  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dif), 'XY', & ! [IN]
524  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dir), 'XY', & ! [IN]
526  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dif), 'XY', & ! [IN]
528  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dir), 'XY', & ! [IN]
530  call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dif), 'XY', & ! [IN]
532  call file_cartesc_read( restart_fid, var_name(i_sfc_z0m), 'XY', & ! [IN]
533  atmos_phy_sf_sfc_z0m(:,:) ) ! [OUT]
534  call file_cartesc_read( restart_fid, var_name(i_sfc_z0h), 'XY', & ! [IN]
535  atmos_phy_sf_sfc_z0h(:,:) ) ! [OUT]
536  call file_cartesc_read( restart_fid, var_name(i_sfc_z0e), 'XY', & ! [IN]
537  atmos_phy_sf_sfc_z0e(:,:) ) ! [OUT]
538 
539  if ( file_get_aggregate(restart_fid) ) then
540  call file_cartesc_flush( restart_fid ) ! X/Y halos have been read from file
541  !$acc update device(ATMOS_PHY_SF_SFC_TEMP,ATMOS_PHY_SF_SFC_albedo,ATMOS_PHY_SF_SFC_Z0M,ATMOS_PHY_SF_SFC_Z0H,ATMOS_PHY_SF_SFC_Z0E)
542  else
544  end if
545 
547 
548  else
549  log_info("ATMOS_PHY_SF_vars_restart_read",*) 'invalid restart file ID for ATMOS_PHY_SF.'
550  endif
551 
552  return
553  end subroutine atmos_phy_sf_vars_restart_read
554 
555  !-----------------------------------------------------------------------------
558  use scale_time, only: &
560  use scale_file_cartesc, only: &
562  implicit none
563 
564  character(len=19) :: timelabel
565  character(len=H_LONG) :: basename
566  !---------------------------------------------------------------------------
567 
568  if ( atmos_phy_sf_restart_out_basename /= '' ) then
569 
570  log_newline
571  log_info("ATMOS_PHY_SF_vars_restart_create",*) 'Create restart file (ATMOS_PHY_AE) '
572 
574  call time_gettimelabel( timelabel )
575  basename = trim(atmos_phy_sf_restart_out_basename)//'_'//trim(timelabel)
576  else
577  basename = trim(atmos_phy_sf_restart_out_basename)
578  endif
579 
580  log_info("ATMOS_PHY_SF_vars_restart_create",*) 'basename: ', trim(basename)
581 
582  call file_cartesc_create( &
584  restart_fid, & ! [OUT]
585  aggregate=atmos_phy_sf_restart_out_aggregate ) ! [IN]
586  endif
587 
588  return
589  end subroutine atmos_phy_sf_vars_restart_create
590 
591  !-----------------------------------------------------------------------------
594  use scale_file_cartesc, only: &
596  implicit none
597 
598  if ( restart_fid /= -1 ) then
599  call file_cartesc_enddef( restart_fid ) ! [IN]
600  endif
601 
602  return
603  end subroutine atmos_phy_sf_vars_restart_enddef
604 
605  !-----------------------------------------------------------------------------
608  use scale_file_cartesc, only: &
610  implicit none
611  !---------------------------------------------------------------------------
612 
613  if ( restart_fid /= -1 ) then
614  log_newline
615  log_info("ATMOS_PHY_SF_vars_restart_close",*) 'Close restart file (ATMOS_PHY_SF) '
616 
617  call file_cartesc_close( restart_fid ) ! [IN]
618 
619  restart_fid = -1
620  endif
621 
622  return
623  end subroutine atmos_phy_sf_vars_restart_close
624 
625  !-----------------------------------------------------------------------------
628  use scale_file_cartesc, only: &
630  implicit none
631 
632  integer :: i
633  !---------------------------------------------------------------------------
634 
635  if ( restart_fid /= -1 ) then
636 
637  do i = 1, vmax
638  call file_cartesc_def_var( restart_fid, & ! [IN]
639  var_name(i), var_desc(i), var_unit(i), & ! [IN]
640  'XY', atmos_phy_sf_restart_out_dtype, & ! [IN]
641  var_id(i), & ! [OUT]
642  standard_name=var_stdn(i) ) ! [IN]
643  end do
644 
645  endif
646 
647  return
648  end subroutine atmos_phy_sf_vars_restart_def_var
649 
650  !-----------------------------------------------------------------------------
653  use scale_file_cartesc, only: &
654  file_cartesc_write_var
655  implicit none
656  !---------------------------------------------------------------------------
657 
658  if ( restart_fid /= -1 ) then
659 
661 
663 
664  call file_cartesc_write_var( restart_fid, var_id(i_sfc_temp), & ! [IN]
665  atmos_phy_sf_sfc_temp(:,:), & ! [IN]
666  var_name(i_sfc_temp), 'XY' ) ! [IN]
667  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dir), & ! [IN]
668  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_ir ), & ! [IN]
669  var_name(i_sfc_alb_ir_dir), 'XY' ) ! [IN]
670  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dif), & ! [IN]
672  var_name(i_sfc_alb_ir_dif), 'XY' ) ! [IN]
673  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dir), & ! [IN]
675  var_name(i_sfc_alb_nir_dir), 'XY' ) ! [IN]
676  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dif), & ! [IN]
678  var_name(i_sfc_alb_nir_dif), 'XY' ) ! [IN]
679  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dir), & ! [IN]
681  var_name(i_sfc_alb_vis_dir), 'XY' ) ! [IN]
682  call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dif), & ! [IN]
684  var_name(i_sfc_alb_vis_dif), 'XY' ) ! [IN]
685  call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0m), & ! [IN]
686  atmos_phy_sf_sfc_z0m(:,:), & ! [IN]
687  var_name(i_sfc_z0m), 'XY' ) ! [IN]
688  call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0h), & ! [IN]
689  atmos_phy_sf_sfc_z0h(:,:), & ! [IN]
690  var_name(i_sfc_z0h), 'XY' ) ! [IN]
691  call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0e), & ! [IN]
692  atmos_phy_sf_sfc_z0e(:,:), & ! [IN]
693  var_name(i_sfc_z0e), 'XY' ) ! [IN]
694  endif
695 
696  return
697  end subroutine atmos_phy_sf_vars_restart_write
698 
699  !-----------------------------------------------------------------------------
700  subroutine atmos_phy_sf_vars_check
701  use scale_statistics, only: &
702  statistics_total
703  use scale_atmos_grid_cartesc_real, only: &
706  implicit none
707  !---------------------------------------------------------------------------
708 
709  call valcheck( ia, is, ie, ja, js, je, &
710  atmos_phy_sf_sfc_temp(:,:), & ! (in)
711  0.0_rp, 1.0e3_rp, var_name(i_sfc_temp), & ! (in)
712  __file__, __line__ ) ! (in)
713  call valcheck( ia, is, ie, ja, js, je, &
714  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_ir ), & ! (in)
715  0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_ir_dir), & ! (in)
716  __file__, __line__ ) ! (in)
717  call valcheck( ia, is, ie, ja, js, je, &
719  0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_ir_dif), & ! (in)
720  __file__, __line__ ) ! (in)
721  call valcheck( ia, is, ie, ja, js, je, &
723  0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_nir_dir), & ! (in)
724  __file__, __line__ ) ! (in)
725  call valcheck( ia, is, ie, ja, js, je, &
727  0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_nir_dif), & ! (in)
728  __file__, __line__ ) ! (in)
729  call valcheck( ia, is, ie, ja, js, je, &
731  0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_vis_dir), & ! (in)
732  __file__, __line__ ) ! (in)
733  call valcheck( ia, is, ie, ja, js, je, &
735  0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_vis_dif), & ! (in)
736  __file__, __line__ ) ! (in)
737  call valcheck( ia, is, ie, ja, js, je, &
738  atmos_phy_sf_sfc_z0m(:,:), & ! (in)
739  0.0_rp, 1.0e2_rp, var_name(i_sfc_z0m), & ! (in)
740  __file__, __line__ ) ! (in)
741  call valcheck( ia, is, ie, ja, js, je, &
742  atmos_phy_sf_sfc_z0h(:,:), & ! (in)
743  0.0_rp, 1.0e2_rp, var_name(i_sfc_z0h), & ! (in)
744  __file__, __line__ ) ! (in)
745  call valcheck( ia, is, ie, ja, js, je, &
746  atmos_phy_sf_sfc_z0e(:,:), & ! (in)
747  0.0_rp, 1.0e2_rp, var_name(i_sfc_z0e), & ! (in)
748  __file__, __line__ ) ! (in)
749 
750  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
751  atmos_phy_sf_sfc_temp(:,:), & ! [IN]
752  var_name(i_sfc_temp), & ! [IN]
753  atmos_grid_cartesc_real_area(:,:), & ! [IN]
755  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
756  atmos_phy_sf_sfc_albedo(:,:,i_r_direct ,i_r_ir ), & ! [IN]
757  var_name(i_sfc_alb_ir_dir), & ! [IN]
758  atmos_grid_cartesc_real_area(:,:), & ! [IN]
760  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
762  var_name(i_sfc_alb_ir_dif), & ! [IN]
763  atmos_grid_cartesc_real_area(:,:), & ! [IN]
765  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
767  var_name(i_sfc_alb_nir_dir), & ! [IN]
768  atmos_grid_cartesc_real_area(:,:), & ! [IN]
770  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
772  var_name(i_sfc_alb_nir_dif), & ! [IN]
773  atmos_grid_cartesc_real_area(:,:), & ! [IN]
775  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
777  var_name(i_sfc_alb_vis_dir), & ! [IN]
778  atmos_grid_cartesc_real_area(:,:), & ! [IN]
780  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
782  var_name(i_sfc_alb_vis_dif), & ! [IN]
783  atmos_grid_cartesc_real_area(:,:), & ! [IN]
785  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
786  atmos_phy_sf_sfc_z0m(:,:), & ! [IN]
787  var_name(i_sfc_z0m), & ! [IN]
788  atmos_grid_cartesc_real_area(:,:), & ! [IN]
790  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
791  atmos_phy_sf_sfc_z0h(:,:), & ! [IN]
792  var_name(i_sfc_z0h), & ! [IN]
793  atmos_grid_cartesc_real_area(:,:), & ! [IN]
795  call statistics_total( ia, is, ie, ja, js, je, & ! [IN]
796  atmos_phy_sf_sfc_z0e(:,:), & ! [IN]
797  var_name(i_sfc_z0e), & ! [IN]
798  atmos_grid_cartesc_real_area(:,:), & ! [IN]
800 
801  return
802  end subroutine atmos_phy_sf_vars_check
803 
804 end module mod_atmos_phy_sf_vars
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_z0m
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0m
Definition: mod_atmos_phy_sf_vars.F90:67
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_atmos_phy_sf_vars::atmos_phy_sf_restart_out_basename
character(len=h_long), public atmos_phy_sf_restart_out_basename
Basename of the output file.
Definition: mod_atmos_phy_sf_vars.F90:52
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_dens
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_dens
Definition: mod_atmos_phy_sf_vars.F90:72
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_mu
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mu
Definition: mod_atmos_phy_sf_vars.F90:78
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
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_out_aggregate
logical, public atmos_phy_sf_restart_out_aggregate
Switch to use aggregate file.
Definition: mod_atmos_phy_sf_vars.F90:53
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_open
subroutine, public atmos_phy_sf_vars_restart_open
Open restart file for read.
Definition: mod_atmos_phy_sf_vars.F90:470
scale_tracer::qa
integer, public qa
Definition: scale_tracer.F90:35
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_check
subroutine atmos_phy_sf_vars_check
Definition: mod_atmos_phy_sf_vars.F90:701
mod_atmos_phy_sf_vars::atmos_phy_sf_v10
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_v10
Definition: mod_atmos_phy_sf_vars.F90:96
mod_atmos_phy_sf_vars::atmos_phy_sf_prec_mass
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_prec_mass
Definition: mod_atmos_phy_sf_vars.F90:75
scale_file_cartesc::file_cartesc_enddef
subroutine, public file_cartesc_enddef(fid)
Exit netCDF file define mode.
Definition: scale_file_cartesC.F90:964
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_z0e
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0e
Definition: mod_atmos_phy_sf_vars.F90:69
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
scale_cpl_sfc_index::i_r_diffuse
integer, parameter, public i_r_diffuse
Definition: scale_cpl_sfc_index.F90:38
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_output
logical, public atmos_phy_sf_restart_output
output restart file?
Definition: mod_atmos_phy_sf_vars.F90:47
scale_precision
module PRECISION
Definition: scale_precision.F90:14
mod_atmos_phy_sf_vars::atmos_phy_sf_qstar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_qstar
Definition: mod_atmos_phy_sf_vars.F90:92
mod_atmos_phy_sf_vars::atmos_phy_sf_prec_engi
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_prec_engi
Definition: mod_atmos_phy_sf_vars.F90:76
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_def_var
subroutine, public atmos_phy_sf_vars_restart_def_var
Write restart.
Definition: mod_atmos_phy_sf_vars.F90:628
mod_atmos_phy_sf_vars::atmos_phy_sf_rhoh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhoh
Definition: mod_atmos_phy_sf_vars.F90:62
mod_atmos_phy_sf_vars::atmos_phy_sf_ustar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_ustar
Definition: mod_atmos_phy_sf_vars.F90:90
mod_atmos_phy_sf_vars::atmos_phy_sf_wstar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_wstar
Definition: mod_atmos_phy_sf_vars.F90:93
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totarea
real(rp), public atmos_grid_cartesc_real_totarea
total area (xy, local) [m2]
Definition: scale_atmos_grid_cartesC_real.F90:78
scale_cpl_sfc_index::i_r_ir
integer, parameter, public i_r_ir
Definition: scale_cpl_sfc_index.F90:29
scale_atmos_hydrometeor
module atmosphere / hydrometeor
Definition: scale_atmos_hydrometeor.F90:12
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_mv
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mv
Definition: mod_atmos_phy_sf_vars.F90:79
mod_atmos_phy_sf_vars
module ATMOSPHERIC Surface Variables
Definition: mod_atmos_phy_sf_vars.F90:12
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_mw
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mw
Definition: mod_atmos_phy_sf_vars.F90:77
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_in_aggregate
logical, public atmos_phy_sf_restart_in_aggregate
Switch to use aggregate file.
Definition: mod_atmos_phy_sf_vars.F90:50
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_z0h
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0h
Definition: mod_atmos_phy_sf_vars.F90:68
scale_atmos_grid_cartesc_real
module Atmosphere GRID CartesC Real(real space)
Definition: scale_atmos_grid_cartesC_real.F90:11
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_temp
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_temp
Definition: mod_atmos_phy_sf_vars.F90:65
scale_file
module file
Definition: scale_file.F90:15
scale_prc
module PROCESS
Definition: scale_prc.F90:11
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_qvex
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_qvex
Definition: mod_atmos_phy_sf_vars.F90:84
mod_atmos_phy_sf_vars::atmos_phy_sf_u10
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_u10
Definition: mod_atmos_phy_sf_vars.F90:95
scale_precision::rp
integer, parameter, public rp
Definition: scale_precision.F90:41
scale_atmos_grid_cartesc_index::ie
integer, public ie
end point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:54
scale_io
module STDIO
Definition: scale_io.F90:10
scale_cpl_sfc_index::i_r_nir
integer, parameter, public i_r_nir
Definition: scale_cpl_sfc_index.F90:30
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_write
subroutine, public atmos_phy_sf_vars_restart_write
Write variables to restart file.
Definition: mod_atmos_phy_sf_vars.F90:653
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_close
subroutine, public atmos_phy_sf_vars_restart_close
Close restart file.
Definition: mod_atmos_phy_sf_vars.F90:608
mod_atmos_phy_sf_vars::atmos_phy_sf_rhoq_t
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_rhoq_t
Definition: mod_atmos_phy_sf_vars.F90:63
scale_atmos_grid_cartesc_index
module atmosphere / grid / cartesC index
Definition: scale_atmos_grid_cartesC_index.F90:12
scale_const
module CONSTANT
Definition: scale_const.F90:11
scale_atmos_grid_cartesc_index::ia
integer, public ia
Definition: scale_atmos_grid_cartesC_index.F90:48
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_enddef
subroutine, public atmos_phy_sf_vars_restart_enddef
Exit netCDF define mode.
Definition: mod_atmos_phy_sf_vars.F90:594
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_shex
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_shex
Definition: mod_atmos_phy_sf_vars.F90:82
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_finalize
subroutine, public atmos_phy_sf_vars_finalize
Finalize.
Definition: mod_atmos_phy_sf_vars.F90:364
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_albedo
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_sf_sfc_albedo
Definition: mod_atmos_phy_sf_vars.F90:66
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_setup
subroutine, public atmos_phy_sf_vars_setup
Setup.
Definition: mod_atmos_phy_sf_vars.F90:191
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_fillhalo
subroutine, public atmos_phy_sf_vars_fillhalo
HALO Communication.
Definition: mod_atmos_phy_sf_vars.F90:430
scale_file_cartesc::file_cartesc_close
subroutine, public file_cartesc_close(fid)
Close a netCDF file.
Definition: scale_file_cartesC.F90:1044
mod_atmos_phy_sf_vars::atmos_phy_sf_rlmo
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rlmo
Definition: mod_atmos_phy_sf_vars.F90:100
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_area
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_area
horizontal area ( xy, normal z) [m2]
Definition: scale_atmos_grid_cartesC_real.F90:66
scale_atmos_grid_cartesc_index::is
integer, public is
start point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:53
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_create
subroutine, public atmos_phy_sf_vars_restart_create
Create restart file.
Definition: mod_atmos_phy_sf_vars.F90:558
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_out_postfix_timelabel
logical, public atmos_phy_sf_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
Definition: mod_atmos_phy_sf_vars.F90:54
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_in_basename
character(len=h_long), public atmos_phy_sf_restart_in_basename
Basename of the input file.
Definition: mod_atmos_phy_sf_vars.F90:49
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_qv
real(rp), dimension(:,:), pointer, public atmos_phy_sf_sflx_qv
Definition: mod_atmos_phy_sf_vars.F90:88
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_out_dtype
character(len=h_short), public atmos_phy_sf_restart_out_dtype
REAL4 or REAL8.
Definition: mod_atmos_phy_sf_vars.F90:56
scale_atmos_grid_cartesc_index::ja
integer, public ja
Definition: scale_atmos_grid_cartesC_index.F90:49
scale_time
module TIME
Definition: scale_time.F90:11
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_qtrc
real(rp), dimension(:,:,:), allocatable, target, public atmos_phy_sf_sflx_qtrc
Definition: mod_atmos_phy_sf_vars.F90:86
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_lhex
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_lhex
Definition: mod_atmos_phy_sf_vars.F90:83
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
scale_atmos_hydrometeor::i_qv
integer, public i_qv
Definition: scale_atmos_hydrometeor.F90:93
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_engi
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_engi
Definition: mod_atmos_phy_sf_vars.F90:87
mod_atmos_phy_sf_vars::atmos_phy_sf_t2
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_t2
Definition: mod_atmos_phy_sf_vars.F90:97
scale_debug
module DEBUG
Definition: scale_debug.F90:11
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_lh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_lh
Definition: mod_atmos_phy_sf_vars.F90:81
mod_atmos_phy_sf_vars::atmos_phy_sf_dens_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_dens_t
Definition: mod_atmos_phy_sf_vars.F90:58
mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_pres
Definition: mod_atmos_phy_sf_vars.F90:73
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
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_out_title
character(len=h_mid), public atmos_phy_sf_restart_out_title
title of the output file
Definition: mod_atmos_phy_sf_vars.F90:55
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_time::time_gettimelabel
subroutine, public time_gettimelabel(timelabel)
generate time label
Definition: scale_time.F90:93
scale_comm_cartesc
module COMMUNICATION
Definition: scale_comm_cartesC.F90:11
scale_cpl_sfc_index
module coupler / surface-atmospehre
Definition: scale_cpl_sfc_index.F90:11
mod_atmos_phy_sf_vars::atmos_phy_sf_restart_in_postfix_timelabel
logical, public atmos_phy_sf_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
Definition: mod_atmos_phy_sf_vars.F90:51
scale_atmos_grid_cartesc_index::js
integer, public js
start point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:55
scale_cpl_sfc_index::i_r_vis
integer, parameter, public i_r_vis
Definition: scale_cpl_sfc_index.F90:31
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_sh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_sh
Definition: mod_atmos_phy_sf_vars.F90:80
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
mod_atmos_phy_sf_vars::atmos_phy_sf_q2
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_q2
Definition: mod_atmos_phy_sf_vars.F90:98
mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_gh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_gh
Definition: mod_atmos_phy_sf_vars.F90:85
mod_atmos_phy_sf_vars::atmos_phy_sf_rhou_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhou_t
Definition: mod_atmos_phy_sf_vars.F90:60
scale_cpl_sfc_index::n_rad_rgn
integer, parameter, public n_rad_rgn
Definition: scale_cpl_sfc_index.F90:28
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:43
mod_atmos_phy_sf_vars::atmos_phy_sf_vars_restart_read
subroutine, public atmos_phy_sf_vars_restart_read
Read restart.
Definition: mod_atmos_phy_sf_vars.F90:506
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
scale_atmos_grid_cartesc_index::je
integer, public je
end point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:56
scale_file_cartesc
module file / cartesianC
Definition: scale_file_cartesC.F90:11
mod_atmos_phy_sf_vars::atmos_phy_sf_tstar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_tstar
Definition: mod_atmos_phy_sf_vars.F90:91
mod_atmos_phy_sf_vars::atmos_phy_sf_momz_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_momz_t
Definition: mod_atmos_phy_sf_vars.F90:59
mod_atmos_phy_sf_vars::atmos_phy_sf_rhov_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhov_t
Definition: mod_atmos_phy_sf_vars.F90:61