Go to the documentation of this file.
65 integer,
private :: atmos_dyn_numerical_diff_laplacian_num = 2
66 real(
rp),
private :: atmos_dyn_numerical_diff_coef = 1.0e-4_rp
67 real(
rp),
private :: atmos_dyn_numerical_diff_coef_tracer = 0.0_rp
68 real(
rp),
private :: atmos_dyn_numerical_diff_sfc_fact = 1.0_rp
69 logical ,
private :: atmos_dyn_numerical_diff_use_refstate = .true.
71 real(
rp),
private :: atmos_dyn_wdamp_tau = -1.0_rp
72 real(
rp),
private :: atmos_dyn_wdamp_height = -1.0_rp
73 integer,
private :: atmos_dyn_wdamp_layer = -1
76 real(
rp),
private :: atmos_dyn_divdmp_coef = 0.0_rp
79 logical,
private :: atmos_dyn_flag_tracer_split_tend = .false.
80 logical,
private :: atmos_dyn_flag_fct_momentum = .false.
81 logical,
private :: atmos_dyn_flag_fct_t = .false.
82 logical,
private :: atmos_dyn_flag_fct_tracer = .false.
83 logical,
private :: atmos_dyn_flag_fct_along_stream = .true.
122 namelist / param_atmos_dyn / &
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'
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!'
196 cdz, cdx, cdy, fdz, fdx, fdy, &
197 atmos_dyn_wdamp_tau, &
198 atmos_dyn_wdamp_height, &
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, &
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, &
real(rp), dimension(:,:,:), pointer, public momz_av
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_pott
subroutine, public prc_abort
Abort Process.
module Atmosphere / Dynamics
character(len=h_short), public atmos_dyn_tstep_large_type
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(qa_max), public tracer_mass
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rfdx
reciprocal of face-dx
character(len=h_short), public atmos_dyn_tinteg_large_type
logical, public atmos_use_average
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
real(rp), dimension(:,:,:), allocatable, public atmos_refstate_dens
refernce density [kg/m3]
character(len=h_short), public atmos_dyn_fvm_flux_tracer_type
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
integer, parameter, public rp
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_rcdy
reciprocal of center-dy
real(rp), dimension(:,:,:), allocatable, target, public dens
module Atmosphere / Dynamics
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_vely
module atmosphere / grid / cartesC index
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
real(rp), dimension(qa_max), public tracer_cv
module ATMOSPHERE / Boundary treatment
real(rp), public atmos_boundary_smoother_fact
real(rp), dimension(:,:,:), allocatable, public momz_tp
character(len=h_short), public atmos_dyn_tinteg_tracer_type
real(rp), dimension(:,:,:), allocatable, target, public momx
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_alpha_velz
real(rp), dimension(:,:,:), allocatable, target, public exner
integer, public is
start point of inner domain: x, local
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
subroutine, public atmos_dyn_driver(do_flag)
Dynamical Process (Wrapper)
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
subroutine, public atmos_dyn_driver_setup
Setup.
real(rp), dimension(:,:,:), allocatable, public atmos_boundary_velz
real(rp), dimension(:,:,:), pointer, public dens_av
integer, public ks
start point of inner domain: z, local
character(len=h_short), public atmos_dyn_fvm_flux_type
real(rp), dimension(qa_max), public tracer_cp
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]
character(len=h_short), public atmos_dyn_tinteg_short_type
module ATMOSPHERIC Variables
real(rp), dimension(qa_max), public tracer_r
real(rp), dimension(:,:,:), allocatable, public rhot_tp
integer, public js
start point of inner domain: y, local
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
integer, public io_fid_conf
Config file ID.
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.
integer, public je
end point of inner domain: y, local
logical, public prc_twod
2D experiment
character(len=h_short), public atmos_dyn_tstep_tracer_type