SCALE-RM
mod_atmos_dyn_driver.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
14 #include "scalelib.h"
16  !-----------------------------------------------------------------------------
17  !
18  !++ used modules
19  !
20  use scale_precision
21  use scale_io
22  use scale_prof
24  use scale_index
25  use scale_tracer
26  !-----------------------------------------------------------------------------
27  implicit none
28  private
29  !-----------------------------------------------------------------------------
30  !
31  !++ Public procedure
32  !
33  public :: atmos_dyn_driver_setup
34  public :: atmos_dyn_driver
35 
36  !-----------------------------------------------------------------------------
37  !
38  !++ Public parameters & variables
39  !
40  character(len=H_SHORT), public :: atmos_dyn_tstep_large_type = 'FVM-HEVE'
41  character(len=H_SHORT), public :: atmos_dyn_tstep_tracer_type = 'FVM-HEVE'
42 
43  character(len=H_SHORT), public :: atmos_dyn_tinteg_large_type = 'EULER' ! Type of time integration
44  ! 'RK3'
45  character(len=H_SHORT), public :: atmos_dyn_tinteg_short_type = 'RK4'
46  ! 'RK3WS2002'
47  ! 'RK3'
48  character(len=H_SHORT), public :: atmos_dyn_tinteg_tracer_type = 'RK3WS2002'
49  ! 'EULER'
50 
51  character(len=H_SHORT), public :: atmos_dyn_fvm_flux_type = 'CD4' ! Type of advective flux scheme (FVM)
52  character(len=H_SHORT), public :: atmos_dyn_fvm_flux_tracer_type = 'UD3KOREN1993'
53  ! 'CD2'
54  ! 'UD3'
55  ! 'CD4'
56  ! 'UD5'
57  ! 'CD6'
58 
59  ! Coriolis force
62  character(len=H_SHORT), public :: atmos_dyn_coriolis_type = 'PLANE' ! type of coriolis force: 'PLANE', 'SPHERE'
63  real(RP), public :: atmos_dyn_coriolis_f0 = 0.0_rp
64  real(RP), public :: atmos_dyn_coriolis_beta = 0.0_rp
65  real(RP), public :: atmos_dyn_coriolis_y0 ! default is domain center
66 
67 
68  !-----------------------------------------------------------------------------
69  !
70  !++ Private procedure
71  !
72  !-----------------------------------------------------------------------------
73  !
74  !++ Private parameters & variables
75  !
76  ! Numerical filter
77  integer, private :: atmos_dyn_numerical_diff_order = 1
78  real(RP), private :: atmos_dyn_numerical_diff_coef = 1.0e-4_rp ! nondimensional numerical diffusion
79  real(RP), private :: atmos_dyn_numerical_diff_coef_tracer = 0.0_rp ! nondimensional numerical diffusion for tracer
80  real(RP), private :: atmos_dyn_numerical_diff_sfc_fact = 1.0_rp
81  logical , private :: atmos_dyn_numerical_diff_use_refstate = .true.
82 
83  real(RP), private :: atmos_dyn_wdamp_tau = -1.0_rp ! maximum tau for Rayleigh damping of w [s]
84  real(RP), private :: atmos_dyn_wdamp_height = -1.0_rp ! height to start apply Rayleigh damping [m]
85  integer, private :: atmos_dyn_wdamp_layer = -1 ! layer number to start apply Rayleigh damping [num]
86 
87  ! Divergence damping
88  real(RP), private :: atmos_dyn_divdmp_coef = 0.0_rp ! Divergence dumping coef
89 
90  ! Flux-Corrected Transport limiter
91  logical, private :: atmos_dyn_flag_tracer_split_tend = .false.
92  logical, private :: atmos_dyn_flag_fct_momentum = .false.
93  logical, private :: atmos_dyn_flag_fct_t = .false.
94  logical, private :: atmos_dyn_flag_fct_tracer = .false.
95  logical, private :: atmos_dyn_flag_fct_along_stream = .true.
96 
97  !-----------------------------------------------------------------------------
98 contains
99  !-----------------------------------------------------------------------------
101  subroutine atmos_dyn_driver_setup
102  use scale_prc, only: &
103  prc_abort
104  use scale_atmos_grid_cartesc, only: &
105  domain_center_y => atmos_grid_cartesc_domain_center_y, &
106  cy => atmos_grid_cartesc_cy, &
107  fz => atmos_grid_cartesc_fz, &
108  cdz => atmos_grid_cartesc_cdz, &
109  cdx => atmos_grid_cartesc_cdx, &
110  cdy => atmos_grid_cartesc_cdy, &
111  fdz => atmos_grid_cartesc_fdz, &
112  fdx => atmos_grid_cartesc_fdx, &
114  use scale_atmos_grid_cartesc_real, only: &
115  real_lat => atmos_grid_cartesc_real_lat
116  use scale_time, only: &
118  use mod_atmos_admin, only: &
119  atmos_sw_dyn, &
121  use mod_atmos_vars, only: &
122  dens, &
123  momz, &
124  momx, &
125  momy, &
126  rhot, &
127  qtrc
128  use mod_atmos_dyn_vars, only: &
129  prog
130  use scale_atmos_dyn, only: &
132  implicit none
133 
134  namelist / param_atmos_dyn / &
140  atmos_dyn_numerical_diff_order, &
141  atmos_dyn_numerical_diff_coef, &
142  atmos_dyn_numerical_diff_coef_tracer, &
143  atmos_dyn_numerical_diff_sfc_fact, &
144  atmos_dyn_numerical_diff_use_refstate, &
145  atmos_dyn_wdamp_tau, &
146  atmos_dyn_wdamp_height, &
147  atmos_dyn_wdamp_layer, &
152  atmos_dyn_divdmp_coef, &
153  atmos_dyn_flag_tracer_split_tend, &
154  atmos_dyn_flag_fct_momentum, &
155  atmos_dyn_flag_fct_t, &
156  atmos_dyn_flag_fct_tracer, &
157  atmos_dyn_flag_fct_along_stream
158 
159  real(RP) :: DT
160  integer :: ierr
161  !---------------------------------------------------------------------------
162 
163  log_newline
164  log_info("ATMOS_DYN_driver_setup",*) 'Setup'
165 
166  if ( atmos_sw_dyn ) then
167 
168  atmos_dyn_coriolis_y0 = domain_center_y
169  !--- read namelist
170  rewind(io_fid_conf)
171  read(io_fid_conf,nml=param_atmos_dyn,iostat=ierr)
172  if( ierr < 0 ) then !--- missing
173  log_info("ATMOS_DYN_driver_setup",*) 'Not found namelist. Default used.'
174  elseif( ierr > 0 ) then !--- fatal error
175  log_error("ATMOS_DYN_driver_setup",*) 'Not appropriate names in namelist PARAM_ATMOS_DYN. Check!'
176  call prc_abort
177  endif
178  log_nml(param_atmos_dyn)
179 
180  dt = real(time_dtsec_atmos_dyn,kind=rp)
181 
182  if ( atmos_dyn_wdamp_layer > kmax ) then
183  log_error("ATMOS_DYN_driver_setup",*) 'ATMOS_DYN_wdamp_layer should be less than total number of vertical layer(KA). Check!'
184  call prc_abort
185  elseif( atmos_dyn_wdamp_layer > 0 ) then
186  atmos_dyn_wdamp_height = fz(atmos_dyn_wdamp_layer+ks-1)
187  endif
188 
189  if ( atmos_dyn_wdamp_tau < 0.0_rp ) then
190  atmos_dyn_wdamp_tau = dt * 10.0_rp
191  elseif ( atmos_dyn_wdamp_tau < dt ) then
192  log_error("ATMOS_DYN_driver_setup",*) 'ATMOS_DYN_wdamp_tau should be larger than TIME_DT_ATMOS_DYN. Check!'
193  call prc_abort
194  end if
195 
196  if ( atmos_sw_dyn ) then
197  log_newline
198  log_info("ATMOS_DYN_driver_setup",*) 'Scheme for Large time step : ', trim(atmos_dyn_tinteg_large_type)
199  log_info("ATMOS_DYN_driver_setup",*) 'Scheme for Short time step : ', trim(atmos_dyn_tinteg_short_type)
200  log_info("ATMOS_DYN_driver_setup",*) 'Scheme for Tracer advection : ', trim(atmos_dyn_tinteg_tracer_type)
201  endif
202 
208  atmos_dyn_fvm_flux_type, & ! [IN]
210  dens, momz, momx, momy, rhot, qtrc, & ! [IN]
211  prog, & ! [IN]
212  cdz, cdx, cdy, fdz, fdx, fdy, & ! [IN]
213  atmos_dyn_wdamp_tau, & ! [IN]
214  atmos_dyn_wdamp_height, & ! [IN]
215  fz, & ! [IN]
216  atmos_dyn_coriolis_type, & ! [IN]
217  atmos_dyn_coriolis_f0, & ! [IN]
218  atmos_dyn_coriolis_beta, & ! [IN]
219  atmos_dyn_coriolis_y0, & ! [IN]
220  cy, & ! [IN]
221  real_lat, & ! [IN]
222  none = atmos_dyn_type=='NONE' ) ! [IN]
223  endif
224 
225  return
226  end subroutine atmos_dyn_driver_setup
227 
228  !-----------------------------------------------------------------------------
230  subroutine atmos_dyn_driver( do_flag )
232  cdz => atmos_grid_cartesc_cdz, &
233  cdx => atmos_grid_cartesc_cdx, &
234  cdy => atmos_grid_cartesc_cdy, &
235  fdz => atmos_grid_cartesc_fdz, &
236  fdx => atmos_grid_cartesc_fdx, &
237  fdy => atmos_grid_cartesc_fdy, &
238  rcdz => atmos_grid_cartesc_rcdz, &
239  rcdx => atmos_grid_cartesc_rcdx, &
240  rcdy => atmos_grid_cartesc_rcdy, &
241  rfdz => atmos_grid_cartesc_rfdz, &
242  rfdx => atmos_grid_cartesc_rfdx, &
244  use scale_atmos_grid_cartesc_real, only: &
245  real_phi => atmos_grid_cartesc_real_phi
252  use scale_time, only: &
253  time_dtsec, &
255  use mod_atmos_admin, only: &
257  use scale_atmos_hydrometeor, only: &
258  i_qv
259  use mod_atmos_vars, only: &
261  dens, &
262  momz, &
263  momx, &
264  momy, &
265  rhot, &
266  qtrc, &
267  dens_av, &
268  momz_av, &
269  momx_av, &
270  momy_av, &
271  rhot_av, &
272  qtrc_av, &
273  dens_tp, &
274  rhou_tp, &
275  rhov_tp, &
276  rhot_tp, &
277  rhoq_tp, &
278  rhoh_p, &
279  momz_tp, &
280  momx_tp, &
281  momy_tp, &
282  cptot, &
283  exner
284  use mod_atmos_dyn_vars, only: &
285  prog
286  use scale_atmos_refstate, only: &
291  use mod_atmos_bnd_driver, only: &
304  bnd_qa, &
306  use scale_atmos_dyn, only: &
307  atmos_dyn
308  use scale_comm_cartesc, only: &
309  comm_vars8, &
310  comm_wait
311  implicit none
312 
313  logical, intent(in) :: do_flag
314 
315  integer :: k, i, j, iq
316  !---------------------------------------------------------------------------
317 
318 #if defined DEBUG || defined QUICKDEBUG
319  rhot_tp( 1:ks-1,:,:) = 0.0_rp
320  rhot_tp(ke+1:ka, :,:) = 0.0_rp
321  momx_tp( 1:ks-1,:,:) = 0.0_rp
322  momx_tp(ke+1:ka, :,:) = 0.0_rp
323  momy_tp( 1:ks-1,:,:) = 0.0_rp
324  momy_tp(ke+1:ka, :,:) = 0.0_rp
325 #endif
326 
327  if ( do_flag ) then
328 
329  call comm_vars8( rhou_tp, 1 )
330  call comm_vars8( rhov_tp, 2 )
331  call comm_vars8( momz_tp, 3 )
332  do iq = 1, qa
333  call comm_vars8( rhoq_tp(:,:,:,iq), 4+iq)
334  end do
335 
336  !$omp parallel do default(none) OMP_SCHEDULE_ collapse(2) &
337  !$omp private(k,i,j) &
338  !$omp shared (KA,KS,KE,ISB,IEB,JSB,JEB, &
339  !$omp RHOT_tp,RHOH_p,CPtot,EXNER)
340  do j = jsb, jeb
341  do i = isb, ieb
342  do k = ks, ke
343  rhot_tp(k,i,j) = rhot_tp(k,i,j) &
344  + rhoh_p(k,i,j) / ( cptot(k,i,j) * exner(k,i,j) )
345  end do
346  end do
347  end do
348  call comm_vars8( rhot_tp, 4 )
349 
350  call comm_wait ( rhou_tp, 1 )
351  !$omp parallel do default(none) OMP_SCHEDULE_ collapse(2) &
352  !$omp private(k,i,j) &
353  !$omp shared (KA,KS,KE,IS,IE,JS,JE, &
354  !$omp MOMX_tp,RHOU_tp)
355  do j = js, je
356  do i = is, ie
357  do k = ks, ke
358  momx_tp(k,i,j) = momx_tp(k,i,j) &
359  + 0.5_rp * ( rhou_tp(k,i,j) + rhou_tp(k,i+1,j) )
360  end do
361  end do
362  end do
363  call comm_vars8( momx_tp, 1 )
364 
365  call comm_wait ( rhov_tp, 2 )
366  !$omp parallel do default(none) OMP_SCHEDULE_ collapse(2) &
367  !$omp private(k,i,j) &
368  !$omp shared (KA,KS,KE,IS,IE,JS,JE, &
369  !$omp MOMY_tp,RHOV_tp)
370  do j = js, je
371  do i = is, ie
372  do k = ks, ke
373  momy_tp(k,i,j) = momy_tp(k,i,j) &
374  + 0.5_rp * ( rhov_tp(k,i,j) + rhov_tp(k,i,j+1) )
375  end do
376  end do
377  end do
378  call comm_vars8( momy_tp, 2 )
379 
380  call comm_wait ( momz_tp, 3 )
381  call comm_wait ( rhot_tp, 4, .false. )
382  do iq = 1, qa
383  call comm_wait ( rhoq_tp(:,:,:,iq), 4+iq, .false. )
384  end do
385  call comm_wait ( momx_tp, 1 )
386  call comm_wait ( momy_tp, 2 )
387 
388 
389  call atmos_dyn( dens, momz, momx, momy, rhot, qtrc, & ! [INOUT]
390  prog, & ! [IN]
391  dens_av, momz_av, momx_av, momy_av, rhot_av, qtrc_av, & ! [INOUT]
393  cdz, cdx, cdy, fdz, fdx, fdy, & ! [IN]
394  rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, & ! [IN]
395  real_phi, & ! [IN]
396  gsqrt, j13g, j23g, j33g, mapf, & ! [IN]
398  atmos_refstate_dens, & ! [IN]
399  atmos_refstate_pott, & ! [IN]
400  atmos_refstate_qv, & ! [IN]
401  atmos_refstate_pres, & ! [IN]
402  atmos_dyn_numerical_diff_coef, & ! [IN]
403  atmos_dyn_numerical_diff_coef_tracer, & ! [IN]
404  atmos_dyn_numerical_diff_order, & ! [IN]
405  atmos_dyn_numerical_diff_sfc_fact, & ! [IN]
406  atmos_dyn_numerical_diff_use_refstate, & ! [IN]
408  atmos_boundary_dens, & ! [IN]
409  atmos_boundary_velz, & ! [IN]
410  atmos_boundary_velx, & ! [IN]
411  atmos_boundary_vely, & ! [IN]
412  atmos_boundary_pott, & ! [IN]
413  atmos_boundary_qtrc, & ! [IN]
414  atmos_boundary_alpha_dens, & ! [IN]
415  atmos_boundary_alpha_velz, & ! [IN]
416  atmos_boundary_alpha_velx, & ! [IN]
417  atmos_boundary_alpha_vely, & ! [IN]
418  atmos_boundary_alpha_pott, & ! [IN]
419  atmos_boundary_alpha_qtrc, & ! [IN]
420  atmos_dyn_divdmp_coef, & ! [IN]
421  atmos_dyn_flag_tracer_split_tend, & ! [IN]
422  atmos_dyn_flag_fct_momentum, & ! [IN]
423  atmos_dyn_flag_fct_t, & ! [IN]
424  atmos_dyn_flag_fct_tracer, & ! [IN]
425  atmos_dyn_flag_fct_along_stream, & ! [IN]
426  atmos_use_average, & ! [IN]
427  i_qv, & ! [IN]
428  time_dtsec, & ! [IN]
429  time_dtsec_atmos_dyn ) ! [IN]
430 
431  call atmos_vars_total
432  endif
433 
434  return
435  end subroutine atmos_dyn_driver
436 
437 end module mod_atmos_dyn_driver
module ATMOS admin
real(rp), dimension(:,:,:), allocatable, public dens_tp
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdy
y-length of control volume [m]
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_gsqrt
transformation metrics from Z to Xi, {G}^1/2
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_phi
geopotential [m2/s2] (cell center)
real(rp), dimension(:,:,:), allocatable, target, public momz
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdx
x-length of control volume [m]
real(rp), dimension(:,:,:), allocatable, target, public rhot
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_vely
real(rp), dimension(:,:,:), allocatable, public momy_tp
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_dens
real(rp), dimension(qa_max), public tracer_r
character(len=h_short), public atmos_dyn_tstep_large_type
character(len=h_short), public atmos_dyn_fvm_flux_type
module Atmosphere Grid CartesianC metirc
module Atmosphere / Dynamics
character(len=h_short), public atmos_dyn_coriolis_type
If ATMOS_DYN_coriolis_type==&#39;PLANE&#39;, then f = ATMOS_DYN_coriolis_f0 + ATMOS_DYN_coriolis_beta * ( CY ...
module atmosphere / reference state
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_pott
refernce potential temperature [K]
module ATMOSPHERIC Variables
module Atmosphere / Dynamics FENT + FCT
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lat
latitude [rad,-pi,pi]
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
real(rp), dimension(:,:,:), allocatable, target, public momx
real(rp), dimension(:,:,:), allocatable, public rhot_tp
integer, public qa
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_pott
character(len=h_short), public atmos_dyn_tinteg_tracer_type
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
module Atmosphere / Dynamics
real(rp), public atmos_dyn_coriolis_f0
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdz
z-length of grid(i+1) to grid(i) [m]
real(rp), dimension(:,:,:), allocatable, target, public dens
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fz
face coordinate [m]: z, local
real(rp), dimension(:,:,:), allocatable, public rhov_tp
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdy
y-length of grid(j+1) to grid(j) [m]
real(rp), dimension(qa_max), public tracer_cv
real(rp), dimension(:,:,:), allocatable, public rhoh_p
subroutine, public atmos_dyn_driver(do_flag)
Dynamical Process (Wrapper)
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_velz
module COMMUNICATION
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdy
reciprocal of center-dy
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cy
center coordinate [m]: y, local
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdz
reciprocal of face-dz
integer, public is
start point of inner domain: x, local
real(rp), dimension(qa_max), public tracer_cp
subroutine, public atmos_dyn_driver_setup
Setup.
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:,:), pointer, public momx_av
module TRACER
module Index
Definition: scale_index.F90:11
real(rp), public atmos_grid_cartesc_metric_j33g
(3,3) element of Jacobian matrix * {G}^1/2
real(rp), public atmos_boundary_smoother_fact
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdz
reciprocal of center-dz
module atmosphere / hydrometeor
real(dp), public time_dtsec
time interval of model [sec]
Definition: scale_time.F90:38
character(len=h_short), public atmos_dyn_tinteg_short_type
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdx
x-length of grid(i+1) to grid(i) [m]
module atmosphere / grid / cartesC index
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_dens
refernce density [kg/m3]
character(len=h_short), public atmos_dyn_tstep_tracer_type
real(rp), public atmos_dyn_coriolis_y0
module ATMOSPHERE / Boundary treatment
module PROCESS
Definition: scale_prc.F90:11
real(rp), dimension(:,:,:,:), allocatable, public rhoq_tp
integer, public je
end point of inner domain: y, local
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdz
z-length of control volume [m]
real(rp), dimension(:,:,:,:), allocatable, public atmos_boundary_alpha_qtrc
logical, public atmos_sw_dyn
subroutine, public atmos_vars_total
Budget monitor for atmosphere.
module TIME
Definition: scale_time.F90:16
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_velx
module atmosphere / grid / cartesC
integer, public ks
start point of inner domain: z, local
real(dp), public time_dtsec_atmos_dyn
time interval of dynamics [sec]
Definition: scale_time.F90:40
subroutine, public atmos_dyn(DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, PROG, DENS_av, MOMZ_av, MOMX_av, MOMY_av, RHOT_av, QTRC_av, DENS_tp, MOMZ_tp, MOMX_tp, MOMY_tp, RHOT_tp, RHOQ_tp, CDZ, CDX, CDY, FDZ, FDX, FDY, RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, PHI, GSQRT, J13G, J23G, J33G, MAPF, AQ_R, AQ_CV, AQ_CP, AQ_MASS, REF_dens, REF_pott, REF_qv, REF_pres, ND_COEF, ND_COEF_Q, ND_ORDER, ND_SFC_FACT, ND_USE_RS, BND_QA, BND_SMOOTHER_FACT, DAMP_DENS, DAMP_VELZ, DAMP_VELX, DAMP_VELY, DAMP_POTT, DAMP_QTRC, DAMP_alpha_DENS, DAMP_alpha_VELZ, DAMP_alpha_VELX, DAMP_alpha_VELY, DAMP_alpha_POTT, DAMP_alpha_QTRC, divdmp_coef, FLAG_TRACER_SPLIT_TEND, FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM, USE_AVERAGE, I_QV, DTSEC, DTSEC_DYN)
Dynamical Process.
integer, public kmax
of computational cells: z, local
character(len=h_short), public atmos_dyn_tinteg_large_type
real(rp), dimension(:,:,:), pointer, public dens_av
real(rp), dimension(:,:,:,:), allocatable, public prog
real(rp), public atmos_dyn_coriolis_beta
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_pres
refernce pressure [Pa]
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_mapf
map factor
real(rp), dimension(:,:,:), allocatable, public momx_tp
real(rp), dimension(:,:,:), allocatable, target, public momy
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_j23g
(2,3) element of Jacobian matrix * {G}^1/2
real(rp), dimension(:,:,:), allocatable, target, public exner
subroutine, public atmos_dyn_setup(DYN_Tinteg_Short_TYPE, DYN_Tinteg_Tracer_TYPE, DYN_Tinteg_Large_TYPE, DYN_Tstep_Tracer_TYPE, DYN_Tstep_Large_TYPE, DYN_FVM_FLUX_TYPE, DYN_FVM_FLUX_TYPE_TRACER, DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, PROG, CDZ, CDX, CDY, FDZ, FDX, FDY, wdamp_tau, wdamp_height, FZ, coriolis_type, coriolis_f0, coriolis_beta, coriolis_y0, CY, lat, none)
Setup.
real(rp), dimension(:,:,:), allocatable, public momz_tp
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_j13g
(1,3) element of Jacobian matrix * {G}^1/2
module profiler
Definition: scale_prof.F90:11
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_qv
refernce vapor [kg/kg]
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdx
reciprocal of center-dx
module PRECISION
real(rp), dimension(:,:,:), allocatable, public rhou_tp
integer, public ka
of whole cells: z, local, with HALO
character(len=h_short), public atmos_dyn_type
real(rp), dimension(:,:,:), pointer, public momz_av
character(len=h_short), public atmos_dyn_fvm_flux_tracer_type
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdy
reciprocal of face-dy
real(rp), dimension(:,:,:), pointer, public rhot_av
real(rp), dimension(:,:,:), allocatable, target, public cptot
module STDIO
Definition: scale_io.F90:10
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_velz
real(rp), dimension(:,:,:), pointer, public momy_av
integer, parameter, public rp
real(rp), public atmos_grid_cartesc_domain_center_y
center position of global domain [m]: y
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_pott
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_dens
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_vely
real(rp), dimension(:,:,:,:), allocatable, public atmos_boundary_qtrc
real(rp), dimension(qa_max), public tracer_mass
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdx
reciprocal of face-dx
logical, public atmos_use_average
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_velx