module Atmosphere / Dynamics
More...
module Atmosphere / Dynamics
- Description
- Dynamical step driver
- Author
- Team SCALE
- NAMELIST
-
PARAM_ATMOS_DYN
name | type | default value | comment |
ATMOS_DYN_TINTEG_SHORT_TYPE | character(len=H_SHORT) | 'RK4' | |
ATMOS_DYN_TINTEG_TRACER_TYPE | character(len=H_SHORT) | 'RK3WS2002' | |
ATMOS_DYN_TINTEG_LARGE_TYPE | character(len=H_SHORT) | 'EULER' | Type of time integration |
ATMOS_DYN_FVM_FLUX_TYPE | character(len=H_SHORT) | 'CD4' | Type of advective flux scheme (FVM) |
ATMOS_DYN_FVM_FLUX_TRACER_TYPE | character(len=H_SHORT) | 'UD3KOREN1993' | |
ATMOS_DYN_NUMERICAL_DIFF_LAPLACIAN_NUM | integer | 2 | |
ATMOS_DYN_NUMERICAL_DIFF_COEF | real(RP) | 1.0E-4_RP | nondimensional numerical diffusion |
ATMOS_DYN_NUMERICAL_DIFF_COEF_TRACER | real(RP) | 0.0_RP | nondimensional numerical diffusion for tracer |
ATMOS_DYN_NUMERICAL_DIFF_SFC_FACT | real(RP) | 1.0_RP | |
ATMOS_DYN_NUMERICAL_DIFF_USE_REFSTATE | logical | .true. | |
ATMOS_DYN_WDAMP_TAU | real(RP) | -1.0_RP | maximum tau for Rayleigh damping of w [s] |
ATMOS_DYN_WDAMP_HEIGHT | real(RP) | -1.0_RP | height to start apply Rayleigh damping [m] |
ATMOS_DYN_WDAMP_LAYER | integer | -1 | layer number to start apply Rayleigh damping [num] |
ATMOS_DYN_DIVDMP_COEF | real(RP) | 0.0_RP | Divergence dumping coef |
ATMOS_DYN_FLAG_TRACER_SPLIT_TEND | logical | .false. | |
ATMOS_DYN_FLAG_FCT_MOMENTUM | logical | .false. | |
ATMOS_DYN_FLAG_FCT_T | logical | .false. | |
ATMOS_DYN_FLAG_FCT_TRACER | logical | .false. | |
ATMOS_DYN_FLAG_FCT_ALONG_STREAM | logical | .true. | |
- History Output
- No history output
◆ atmos_dyn_driver_setup()
subroutine, public mod_atmos_dyn_driver::atmos_dyn_driver_setup |
Setup.
Definition at line 90 of file mod_atmos_dyn_driver.F90.
122 namelist / param_atmos_dyn / &
123 atmos_dyn_tinteg_short_type, &
124 atmos_dyn_tinteg_tracer_type, &
125 atmos_dyn_tinteg_large_type, &
126 atmos_dyn_fvm_flux_type, &
127 atmos_dyn_fvm_flux_tracer_type, &
128 atmos_dyn_numerical_diff_laplacian_num, &
129 atmos_dyn_numerical_diff_coef, &
130 atmos_dyn_numerical_diff_coef_tracer, &
131 atmos_dyn_numerical_diff_sfc_fact, &
132 atmos_dyn_numerical_diff_use_refstate, &
133 atmos_dyn_wdamp_tau, &
134 atmos_dyn_wdamp_height, &
135 atmos_dyn_wdamp_layer, &
136 atmos_dyn_divdmp_coef, &
137 atmos_dyn_flag_tracer_split_tend, &
138 atmos_dyn_flag_fct_momentum, &
139 atmos_dyn_flag_fct_t, &
140 atmos_dyn_flag_fct_tracer, &
141 atmos_dyn_flag_fct_along_stream
148 log_info(
"ATMOS_DYN_driver_setup",*)
'Setup'
154 read(io_fid_conf,nml=param_atmos_dyn,iostat=ierr)
156 log_info(
"ATMOS_DYN_driver_setup",*)
'Not found namelist. Default used.'
157 elseif( ierr > 0 )
then
158 log_error(
"ATMOS_DYN_driver_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_DYN. Check!'
161 log_nml(param_atmos_dyn)
165 if ( atmos_dyn_wdamp_layer > kmax )
then
166 log_error(
"ATMOS_DYN_driver_setup",*)
'ATMOS_DYN_wdamp_layer should be less than total number of vertical layer(KA). Check!'
168 elseif( atmos_dyn_wdamp_layer > 0 )
then
169 atmos_dyn_wdamp_height = fz(atmos_dyn_wdamp_layer+ks-1)
172 if ( atmos_dyn_wdamp_tau < 0.0_rp )
then
173 atmos_dyn_wdamp_tau = dt * 10.0_rp
174 elseif ( atmos_dyn_wdamp_tau < dt )
then
175 log_error(
"ATMOS_DYN_driver_setup",*)
'ATMOS_DYN_wdamp_tau should be larger than TIME_DT_ATMOS_DYN. Check!'
181 log_info(
"ATMOS_DYN_driver_setup",*)
'Scheme for Large time step : ', trim(atmos_dyn_tinteg_large_type)
182 log_info(
"ATMOS_DYN_driver_setup",*)
'Scheme for Short time step : ', trim(atmos_dyn_tinteg_short_type)
183 log_info(
"ATMOS_DYN_driver_setup",*)
'Scheme for Tracer advection : ', trim(atmos_dyn_tinteg_tracer_type)
187 atmos_dyn_tinteg_tracer_type, &
188 atmos_dyn_tinteg_large_type, &
189 atmos_dyn_tstep_tracer_type, &
190 atmos_dyn_tstep_large_type, &
192 atmos_dyn_fvm_flux_type, &
193 atmos_dyn_fvm_flux_tracer_type, &
196 cdz, cdx, cdy, fdz, fdx, fdy, &
197 atmos_dyn_wdamp_tau, &
198 atmos_dyn_wdamp_height, &
References atmos_dyn_fvm_flux_tracer_type, atmos_dyn_fvm_flux_type, scale_atmos_dyn::atmos_dyn_setup(), atmos_dyn_tinteg_large_type, atmos_dyn_tinteg_short_type, atmos_dyn_tinteg_tracer_type, atmos_dyn_tstep_large_type, atmos_dyn_tstep_tracer_type, mod_atmos_admin::atmos_dyn_type, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdz, scale_atmos_grid_cartesc::atmos_grid_cartesc_cy, scale_atmos_grid_cartesc::atmos_grid_cartesc_domain_center_y, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdz, scale_atmos_grid_cartesc::atmos_grid_cartesc_fz, scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_lat, mod_atmos_admin::atmos_sw_dyn, mod_atmos_vars::dens, scale_io::io_fid_conf, scale_atmos_grid_cartesc_index::kmax, scale_atmos_grid_cartesc_index::ks, mod_atmos_vars::momx, mod_atmos_vars::momy, mod_atmos_vars::momz, scale_prc::prc_abort(), mod_atmos_dyn_vars::prog, mod_atmos_vars::qtrc, mod_atmos_vars::rhot, scale_precision::rp, and scale_time::time_dtsec_atmos_dyn.
Referenced by mod_atmos_driver::atmos_driver_setup().
◆ atmos_dyn_driver()
subroutine, public mod_atmos_dyn_driver::atmos_dyn_driver |
( |
logical, intent(in) |
do_flag | ) |
|
Dynamical Process (Wrapper)
Definition at line 209 of file mod_atmos_dyn_driver.F90.
298 logical,
intent(in) :: do_flag
300 integer :: k, i, j, iq
303 #if defined DEBUG || defined QUICKDEBUG
319 call comm_vars8(
rhoq_tp(:,:,:,iq), 4+iq)
379 call comm_wait (
rhot_tp, 4, .false. )
381 call comm_wait (
rhoq_tp(:,:,:,iq), 4+iq, .false. )
393 cdz, cdx, cdy, fdz, fdx, fdy, &
394 rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, &
396 gsqrt, j13g, j23g, j33g, mapf, &
397 tracer_r, tracer_cv, tracer_cp, tracer_mass, &
402 atmos_dyn_numerical_diff_coef, &
403 atmos_dyn_numerical_diff_coef_tracer, &
404 atmos_dyn_numerical_diff_laplacian_num, &
405 atmos_dyn_numerical_diff_sfc_fact, &
406 atmos_dyn_numerical_diff_use_refstate, &
422 atmos_dyn_divdmp_coef, &
423 atmos_dyn_flag_tracer_split_tend, &
424 atmos_dyn_flag_fct_momentum, &
425 atmos_dyn_flag_fct_t, &
426 atmos_dyn_flag_fct_tracer, &
427 atmos_dyn_flag_fct_along_stream, &
References mod_atmos_bnd_driver::atmos_boundary_alpha_dens, mod_atmos_bnd_driver::atmos_boundary_alpha_pott, mod_atmos_bnd_driver::atmos_boundary_alpha_qtrc, mod_atmos_bnd_driver::atmos_boundary_alpha_velx, mod_atmos_bnd_driver::atmos_boundary_alpha_vely, mod_atmos_bnd_driver::atmos_boundary_alpha_velz, mod_atmos_bnd_driver::atmos_boundary_dens, mod_atmos_bnd_driver::atmos_boundary_mflux_offset_x, mod_atmos_bnd_driver::atmos_boundary_mflux_offset_y, mod_atmos_bnd_driver::atmos_boundary_pott, mod_atmos_bnd_driver::atmos_boundary_qtrc, mod_atmos_bnd_driver::atmos_boundary_smoother_fact, mod_atmos_bnd_driver::atmos_boundary_velx, mod_atmos_bnd_driver::atmos_boundary_vely, mod_atmos_bnd_driver::atmos_boundary_velz, scale_atmos_dyn::atmos_dyn(), scale_atmos_grid_cartesc::atmos_grid_cartesc_cdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_cdz, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_fdz, scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_gsqrt, scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_j13g, scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_j23g, scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_j33g, scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_mapf, scale_atmos_grid_cartesc::atmos_grid_cartesc_rcdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_rcdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_rcdz, scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_phi, scale_atmos_grid_cartesc::atmos_grid_cartesc_rfdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_rfdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_rfdz, scale_atmos_refstate::atmos_refstate_dens, scale_atmos_refstate::atmos_refstate_pott, scale_atmos_refstate::atmos_refstate_pres, scale_atmos_refstate::atmos_refstate_qv, mod_atmos_admin::atmos_use_average, mod_atmos_vars::atmos_vars_check(), mod_atmos_bnd_driver::bnd_iq, mod_atmos_bnd_driver::bnd_qa, scale_coriolis::coriolis_f, mod_atmos_vars::cptot, mod_atmos_vars::dens, mod_atmos_vars::dens_av, mod_atmos_vars::dens_tp, mod_atmos_vars::exner, scale_atmos_hydrometeor::i_qv, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_tracer::k, scale_atmos_grid_cartesc_index::ka, scale_atmos_grid_cartesc_index::ke, scale_atmos_grid_cartesc_index::ks, mod_atmos_vars::momx, mod_atmos_vars::momx_av, mod_atmos_vars::momx_tp, mod_atmos_vars::momy, mod_atmos_vars::momy_av, mod_atmos_vars::momy_tp, mod_atmos_vars::momz, mod_atmos_vars::momz_av, mod_atmos_vars::momz_tp, scale_prc_cartesc::prc_twod, mod_atmos_dyn_vars::prog, scale_tracer::qa, mod_atmos_vars::qtrc, mod_atmos_vars::qtrc_av, mod_atmos_vars::rhoh_p, mod_atmos_vars::rhoq_tp, mod_atmos_vars::rhot, mod_atmos_vars::rhot_av, mod_atmos_vars::rhot_tp, mod_atmos_vars::rhou_tp, mod_atmos_vars::rhov_tp, scale_time::time_dtsec, scale_time::time_dtsec_atmos_dyn, scale_tracer::tracer_cp, scale_tracer::tracer_cv, scale_tracer::tracer_mass, and scale_tracer::tracer_r.
Referenced by mod_atmos_driver::atmos_driver_update().
◆ atmos_dyn_tstep_large_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_tstep_large_type = 'FVM-HEVE' |
◆ atmos_dyn_tstep_tracer_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_tstep_tracer_type = 'FVM-HEVE' |
◆ atmos_dyn_tinteg_large_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_tinteg_large_type = 'EULER' |
◆ atmos_dyn_tinteg_short_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_tinteg_short_type = 'RK4' |
◆ atmos_dyn_tinteg_tracer_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_tinteg_tracer_type = 'RK3WS2002' |
◆ atmos_dyn_fvm_flux_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_fvm_flux_type = 'CD4' |
◆ atmos_dyn_fvm_flux_tracer_type
character(len=h_short), public mod_atmos_dyn_driver::atmos_dyn_fvm_flux_tracer_type = 'UD3KOREN1993' |
real(rp), dimension(:,:,:), pointer, public momz_av
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_pott
subroutine, public prc_abort
Abort Process.
module Atmosphere / Dynamics
real(rp), dimension(:,:,:), pointer, public momx_av
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdz
z-length of control volume [m]
real(rp), dimension(:,:,:,:), allocatable, public rhoq_tp
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdx
reciprocal of face-dx
logical, public atmos_use_average
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_dens
refernce density [kg/m3]
real(rp), dimension(:,:,:,:), allocatable, public prog
real(rp), dimension(:,:,:), allocatable, public rhov_tp
module Atmosphere / Dynamics FENT + FCT
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdx
reciprocal of center-dx
real(rp), dimension(:,:,:), allocatable, target, public cptot
logical, public atmos_sw_dyn
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_pres
refernce pressure [Pa]
module Atmosphere Grid CartesianC metirc
real(rp), dimension(:,:,:), pointer, public rhot_av
module atmosphere / hydrometeor
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdy
y-length of control volume [m]
module atmosphere / reference state
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_pott
refernce potential temperature [K]
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_dens
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdy
y-length of grid(j+1) to grid(j) [m]
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_dens
real(rp), dimension(:,:,:,:), allocatable, public atmos_boundary_qtrc
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_velx
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdz
reciprocal of center-dz
real(rp), dimension(:,:,:), allocatable, target, public rhot
subroutine, public atmos_vars_check(force)
Check variables for atmosphere.
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_qv
refernce vapor [kg/kg]
real(rp), public atmos_grid_cartesc_domain_center_y
center position of global domain [m]: y
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_pott
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_Tstep_Short_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, none)
Setup.
real(rp), dimension(:,:,:), allocatable, public rhou_tp
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_mapf
map factor
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdy
reciprocal of center-dy
real(rp), dimension(:,:,:), allocatable, target, public dens
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_vely
real(rp), dimension(:,:,:), allocatable, target, public momz
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_gsqrt
transformation metrics from Z to Xi, {G}^1/2
integer, dimension(:), allocatable, public bnd_iq
real(rp), dimension(:,:,:), pointer, public momy_av
module ATMOSPHERE / Boundary treatment
real(rp), public atmos_boundary_smoother_fact
real(rp), dimension(:,:,:), allocatable, public momz_tp
real(rp), dimension(:,:,:), allocatable, target, public momx
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_velz
real(rp), dimension(:,:,:), allocatable, target, public exner
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_j23g
(2,3) element of Jacobian matrix * {G}^1/2
real(dp), public time_dtsec_atmos_dyn
time interval of dynamics [sec]
real(rp), dimension(:,:,:), allocatable, public dens_tp
real(rp), dimension(:,:,:), allocatable, target, public momy
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdx
x-length of grid(i+1) to grid(i) [m]
real(rp), dimension(:,:,:,:), allocatable, public atmos_boundary_alpha_qtrc
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_vely
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_velz
real(rp), dimension(:,:,:), pointer, public dens_av
real(rp), dimension(:,:,:), allocatable, public rhoh_p
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fz
face coordinate [m]: z, local
real(rp), dimension(:,:), allocatable, public coriolis_f
character(len=h_short), public atmos_dyn_type
real(dp), public time_dtsec
time interval of model [sec]
module ATMOSPHERIC Variables
real(rp), dimension(:,:,:), allocatable, public rhot_tp
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cy
center coordinate [m]: y, local
real(rp), dimension(:,:,:), allocatable, public momy_tp
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdz
reciprocal of face-dz
real(rp), dimension(:,:,:), allocatable, public momx_tp
real(rp), public atmos_grid_cartesc_metric_j33g
(3,3) element of Jacobian matrix * {G}^1/2
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_phi
geopotential [m2/s2] (cell center)
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_mflux_offset_y
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_mflux_offset_x
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdx
x-length of control volume [m]
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lat
latitude [rad,-pi,pi]
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_metric_j13g
(1,3) element of Jacobian matrix * {G}^1/2
module atmosphere / grid / cartesC
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdz
z-length of grid(i+1) to grid(i) [m]
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_velx
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdy
reciprocal of face-dy
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, CORIOLIS, 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_LAPLACIAN_NUM, ND_SFC_FACT, ND_USE_RS, BND_QA, BND_IQ, 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, MFLUX_OFFSET_X, MFLUX_OFFSET_Y, 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.
logical, public prc_twod
2D experiment