Go to the documentation of this file.
48 integer,
private,
parameter :: w_nmax = 3
49 integer,
private,
parameter :: I_CRGD_LIQ = 1
50 integer,
private,
parameter :: I_CRGD_ICE = 2
51 integer,
private,
parameter :: I_CRGD_TOT = 3
52 integer,
private :: HIST_id(w_nmax)
53 character(len=H_SHORT),
private :: w_name(w_nmax)
54 character(len=H_MID),
private :: w_longname(w_nmax)
55 character(len=H_SHORT),
private :: w_unit(w_nmax)
56 data w_name /
'CRGD_LIQ', &
59 data w_longname /
'Charge density of liquid water', &
60 'Charge density of ice water', &
61 'Charge density of QHYD' /
62 data w_unit /
'nC/m3', &
93 character(len=H_SHORT),
allocatable :: name(:)
94 character(len=H_MID ),
allocatable :: desc(:)
95 character(len=H_SHORT),
allocatable :: unit(:)
100 log_info(
"ATMOS_PHY_LT_driver_tracer_setup",*)
'Setup'
105 case (
'OFF',
'NONE' )
106 log_info(
"ATMOS_PHY_LT_driver_tracer_setup",*)
'this component is never called.'
109 case (
'TOMITA08',
'SN14' )
114 log_error(
"ATMOS_PHY_LT_driver_tracer_setup",*)
'nccn in SUZUKI10 should be 0 for lithgning component(',
atmos_phy_mp_suzuki10_nccn,
'). CHECK!'
118 log_error(
"ATMOS_PHY_LT_driver_tracer_setup",*)
'ICEFLG in SUZUKI10 should be 1 for lithgning component. CHECK!'
122 log_error(
"ATMOS_PHY_LT_driver_tracer_setup",*)
'ATMOS_PHY_MP_TYPE should be TOMITA08, or SN14, or SUZUKI10 (',
atmos_phy_mp_type,
'). CHECK!'
126 log_error(
"ATMOS_PHY_LT_driver_tracer_setup",*)
'invalid lithgning type(',
atmos_phy_lt_type,
'). CHECK!'
134 name(iq) =
'QCRG_'//trim(tracer_name(
qhs+iq-1)(2:))
135 desc(iq) =
'Ratio of charge density of '//trim(tracer_name(
qhs+iq-1))
143 deallocate( name, desc, unit )
181 logical :: lt_force_with_suzuki10 = .false.
183 namelist / param_atmos_phy_lt / &
184 lt_force_with_suzuki10
191 log_info(
"ATMOS_PHY_LT_driver_setup",*)
'Setup'
195 read(
io_fid_conf,nml=param_atmos_phy_lt,iostat=ierr)
197 log_info(
"ATMOS_PHY_LT_driver_setup",*)
'Not found namelist. Default used.'
198 elseif ( ierr > 0 )
then
199 log_error(
"ATMOS_PHY_LT_dirver_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_PHY_LT. Check!'
202 log_nml(param_atmos_phy_lt)
208 log_warn(
"ATMOS_PHY_LT_driver_setup",*)
'At this moment, ATMOS_PHY_MP_TYPE of SUZUKI10 with SATO2019 scheme is for experimental use only.'
209 if ( .not. lt_force_with_suzuki10 )
then
210 log_error(
"ATMOS_PHY_LT_driver_setup",*)
'At this moment, ATMOS_PHY_MP_TYPE of SUZUKI10 with SATO2019 scheme is for experimental use only.'
242 log_info(
"ATMOS_PHY_LT_driver_setup",*)
'This component is never called.'
263 log_info(
"ATMOS_PHY_LT_driver_finalize",*)
'Finalize'
267 case (
'OFF',
'NONE' )
288 atmos_vars_get_diagnostic
306 call atmos_vars_get_diagnostic(
"QHYD", qhyd(:,:,:) )
309 ka,
ks,
ke,
ia,
is,
ie,
ja,
js,
je,
kijmax,
imax,
jmax,
qa_lt, &
310 dens(:,:,:),
rhot(:,:,:), qhyd(:,:,:), sarea(:,:,:,:), &
332 file_history_query, &
335 real(RP) :: work(KA,IA,JA)
336 logical :: HIST_sw(w_nmax)
337 integer :: k, i, j, n, ip
342 call file_history_query( hist_id(ip), hist_sw(ip) )
345 if ( hist_sw(i_crgd_liq) )
then
353 work(k,i,j) = work(k,i,j) +
qtrc(k,i,j,n)
355 work(k,i,j) = work(k,i,j) *
dens(k,i,j) * 1.e-6_rp
360 call file_history_put( hist_id(i_crgd_liq), work(:,:,:) )
362 if ( hist_sw(i_crgd_ice) )
then
370 work(k,i,j) = work(k,i,j) +
qtrc(k,i,j,n)
372 work(k,i,j) = work(k,i,j) *
dens(k,i,j) * 1.e-6_rp
377 call file_history_put( hist_id(i_crgd_ice), work(:,:,:) )
379 if ( hist_sw(i_crgd_tot) )
then
387 work(k,i,j) = work(k,i,j) +
qtrc(k,i,j,n)
389 work(k,i,j) = work(k,i,j) *
dens(k,i,j) * 1.e-6_rp
394 call file_history_put( hist_id(i_crgd_tot), work(:,:,:) )
integer, public ke
end point of inner domain: z, local
subroutine, public prc_abort
Abort Process.
subroutine, public atmos_phy_lt_sato2019_setup(KA, KS, KE, IA, IS, IE, JA, JS, JE, IMAXG, JMAXG, KMAX, MP_TYPE, CDX, CDY)
Setup.
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
subroutine, public atmos_phy_lt_sato2019_adjustment(KA, KS, KE, IA, IS, IE, JA, JS, JE, KIJMAX, IMAX, JMAX, QA_LT, DENS, RHOT, QHYD, Sarea, dt_LT, QTRC, Epot)
Update of charge density.
subroutine, public atmos_phy_lt_sato2019_finalize
finalize
module Atmosphere / Physics Chemistry
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]
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_lt_sarea
real(rp), dimension(:,:,:), allocatable, target, public rhot
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lon
longitude [rad,0-2pi]
integer, parameter, public rp
integer, public ie
end point of inner domain: x, local
subroutine, public atmos_phy_lt_driver_finalize
real(rp), dimension(:,:,:), allocatable, target, public dens
module ATMOSPHERE / Physics Chemistry
module atmosphere / grid / cartesC index
character(len=h_short), public atmos_phy_lt_type
integer, public atmos_phy_mp_suzuki10_nwaters
subroutine, public atmos_phy_lt_driver_adjustment
Driver.
logical, public atmos_sw_phy_lt
integer, public is
start point of inner domain: x, local
module Spectran Bin Microphysics
subroutine, public tracer_regist(QS, NQ, NAME, DESC, UNIT, CV, CP, R, ENGI0, ADVC, MASS)
Regist tracer.
real(rp), dimension(:,:,:), pointer, public dens_av
integer, public ks
start point of inner domain: z, local
module ATMOSPHERIC Variables
integer, public js
start point of inner domain: y, local
module atmosphere / physics / lightninh / SATO2019
character(len=h_short), public atmos_phy_mp_type
subroutine, public file_history_reg(name, desc, unit, itemid, standard_name, ndims, dim_type, cell_measures, fill_halo)
Register/Append variable to history file.
subroutine, public atmos_phy_lt_driver_tracer_setup
Config.
real(dp), public time_dtsec_atmos_phy_lt
time interval of physics(lightning ) [sec]
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]
module atmosphere / grid / cartesC
integer, public atmos_phy_mp_suzuki10_nices
integer, public io_fid_conf
Config file ID.
integer, public je
end point of inner domain: y, local
integer, public atmos_phy_mp_suzuki10_nccn
real(rp), dimension(:,:,:), allocatable, public atmos_phy_lt_epot
subroutine, public atmos_phy_lt_driver_setup
Setup.