SCALE-RM
|
module atmosphere / physics / lightninh / SATO2019 More...
Functions/Subroutines | |
subroutine, public | atmos_phy_lt_sato2019_setup (KA, KS, KE, IA, IS, IE, JA, JS, JE, IMAXG, JMAXG, KMAX, MP_TYPE, CDX, CDY) |
Setup. More... | |
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. More... | |
subroutine | atmos_phy_lt_electric_field (KA, KS, KE, IA, IS, IE, JA, JS, JE, QCRG, DENS, RHOT, E_pot, Efield) |
calculate electric field from charge density of each grid temporaly Bi-CGSTAB is used in this component More... | |
subroutine | atmos_phy_lt_solve_bicgstab (KA, KS, KE, IA, IS, IE, JA, JS, JE, PHI_N, PHI, M, B) |
subroutine | mul_matrix (KA, KS, KE, IA, IS, IE, JA, JS, JE, V, M, C) |
subroutine | atmos_phy_lt_neutralization_mg2001 (KA, KS, KE, IA, IS, IE, JA, JS, JE, KIJMAX, IMAX, JMAX, Efield, E_pot, DENS, QCRG, QHYD, NUM_end, LT_path, fls_int_p, d_QCRG) |
calculate charge neutralization MacGorman et al. (2001) More... | |
subroutine | atmos_phy_lt_neutralization_f2013 (KA, KS, KE, IA, IS, IE, JA, JS, JE, KIJMAX, Efield, E_pot, DENS, QCRG, QHYD, NUM_end, LT_path, fls_int_p, d_QCRG) |
calculate charge neutralization Fierro et al. (2013) More... | |
subroutine | atmos_phy_lt_judge_abse (KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, Efield, Emax, flg_lt_neut) |
judge max of |E| exceeds E_init More... | |
subroutine, public | atmos_phy_lt_sato2019_select_dqcrg_from_lut (KA, KS, KE, IA, IS, IE, JA, JS, JE, NLIQ, TEMP, DENS, QLIQ, dqcrg, beta_crg) |
Select cwc-temp point on LUT. More... | |
module atmosphere / physics / lightninh / SATO2019
name | type | default value | comment |
---|---|---|---|
NUTR_TYPE | character(len=64) | 'F2013' | |
ATMOS_PHY_LT_LUT_FILENAME | character(len=H_LONG) | — LUT file name | |
ITMAX | integer | 3000 | |
EPSILON | real(RP) | 0.1_RP ** (RP*2) | |
EINT | real(RP) | 150.0E+3_RP | [V/m] |
DELEINT | real(RP) | 10.0E+3_RP | [V/m] |
ESTOP | real(RP) | 15.0E+3_RP | [V/m] |
QRHO_CHAN | real(RP) | 0.5_RP | [nC/m3] |
QRHO_NEUT | real(RP) | 0.5_RP | [nC/m3] |
FP | real(RP) | 0.3_RP | [-] |
NUTR_ITMAX | integer | 1000 | |
MAX_NUTR | integer | 100 | |
NUTR_QHYD | character(len=64) | 'Each_POLARITY2' | |
ZCG | real(RP) | 0.0_RP | lowest grid point of lightning path for MG2001 [m] |
R_NEUT | real(RP) | 2000.0_RP | [m] |
HGT_DEPENDENCY_EINT | logical | .false. | |
LT_DO_LIGHTNING | logical | .true. |
name | description | unit | variable |
---|---|---|---|
FlashPoint | Cumulative Number of Flash point | num | FlashPoint |
subroutine, public scale_atmos_phy_lt_sato2019::atmos_phy_lt_sato2019_setup | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
integer, intent(in) | IMAXG, | ||
integer, intent(in) | JMAXG, | ||
integer, intent(in) | KMAX, | ||
character(len=*), intent(in) | MP_TYPE, | ||
real(rp), dimension(ia), intent(in) | CDX, | ||
real(rp), dimension(ja), intent(in) | CDY | ||
) |
Setup.
Definition at line 150 of file scale_atmos_phy_lt_sato2019.F90.
References scale_atmos_grid_cartesc::atmos_grid_cartesc_cz, scale_const::const_tem00, scale_file_history::file_history_reg(), scale_io::io_fid_conf, scale_io::io_get_available_fid(), scale_prc::prc_abort(), scale_prc::prc_ismaster, and scale_prc::prc_myrank.
Referenced by mod_atmos_phy_lt_driver::atmos_phy_lt_driver_setup().
subroutine, public scale_atmos_phy_lt_sato2019::atmos_phy_lt_sato2019_adjustment | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
integer, intent(in) | KIJMAX, | ||
integer, intent(in) | IMAX, | ||
integer, intent(in) | JMAX, | ||
integer, intent(in) | QA_LT, | ||
real(rp), dimension(ka,ia,ja), intent(in) | DENS, | ||
real(rp), dimension(ka,ia,ja), intent(in) | RHOT, | ||
real(rp), dimension(ka,ia,ja), intent(in) | QHYD, | ||
real(rp), dimension(ka,ia,ja,qa_lt), intent(in) | Sarea, | ||
real(dp), intent(in) | dt_LT, | ||
real(rp), dimension(ka,ia,ja,qa_lt), intent(inout) | QTRC, | ||
real(rp), dimension(ka,ia,ja), intent(inout) | Epot | ||
) |
Update of charge density.
Definition at line 304 of file scale_atmos_phy_lt_sato2019.F90.
References atmos_phy_lt_electric_field(), atmos_phy_lt_judge_abse(), atmos_phy_lt_neutralization_f2013(), atmos_phy_lt_neutralization_mg2001(), scale_const::const_eps, scale_prc::prc_abort(), and scale_prc::prc_ismaster.
Referenced by mod_atmos_phy_lt_driver::atmos_phy_lt_driver_adjustment().
subroutine scale_atmos_phy_lt_sato2019::atmos_phy_lt_electric_field | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
real(rp), dimension (ka,ia,ja), intent(in) | QCRG, | ||
real(rp), dimension (ka,ia,ja), intent(in) | DENS, | ||
real(rp), dimension (ka,ia,ja), intent(in) | RHOT, | ||
real(rp), dimension (ka,ia,ja), intent(inout) | E_pot, | ||
real(rp), dimension(ka,ia,ja,3), intent(out) | Efield | ||
) |
calculate electric field from charge density of each grid temporaly Bi-CGSTAB is used in this component
Definition at line 921 of file scale_atmos_phy_lt_sato2019.F90.
References 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::atmos_grid_cartesc_rfdx, scale_atmos_grid_cartesc::atmos_grid_cartesc_rfdy, scale_atmos_grid_cartesc::atmos_grid_cartesc_rfdz, atmos_phy_lt_solve_bicgstab(), scale_comm_cartesc::comm_datatype, scale_comm_cartesc::comm_world, scale_const::const_eps, scale_const::const_epsair, scale_const::const_epsvac, scale_atmos_grid_cartesc_index::i_uv, scale_atmos_grid_cartesc_index::i_uvz, scale_atmos_grid_cartesc_index::i_uy, scale_atmos_grid_cartesc_index::i_uyw, scale_atmos_grid_cartesc_index::i_uyz, scale_atmos_grid_cartesc_index::i_xv, scale_atmos_grid_cartesc_index::i_xvw, scale_atmos_grid_cartesc_index::i_xvz, scale_atmos_grid_cartesc_index::i_xy, scale_atmos_grid_cartesc_index::i_xyw, scale_atmos_grid_cartesc_index::i_xyz, scale_prc::prc_abort(), scale_prc_cartesc::prc_has_e, scale_prc_cartesc::prc_has_n, scale_prc_cartesc::prc_has_s, scale_prc_cartesc::prc_has_w, scale_prc::prc_ismaster, scale_prc::prc_myrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
Referenced by atmos_phy_lt_sato2019_adjustment().
subroutine scale_atmos_phy_lt_sato2019::atmos_phy_lt_solve_bicgstab | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
real(rp), dimension(ka,ia,ja), intent(out) | PHI_N, | ||
real(rp), dimension(ka,ia,ja), intent(in) | PHI, | ||
real(rp), dimension(ka,15,ia,ja), intent(in) | M, | ||
real(rp), dimension(ka,ia,ja), intent(in) | B | ||
) |
Definition at line 1228 of file scale_atmos_phy_lt_sato2019.F90.
References scale_comm_cartesc::comm_datatype, scale_comm_cartesc::comm_world, mul_matrix(), scale_prc::prc_abort(), and scale_prc::prc_ismaster.
Referenced by atmos_phy_lt_electric_field().
subroutine scale_atmos_phy_lt_sato2019::mul_matrix | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
real(rp), dimension(ka,ia,ja), intent(out) | V, | ||
real(rp), dimension(ka,15,ia,ja), intent(in) | M, | ||
real(rp), dimension(ka,ia,ja), intent(in) | C | ||
) |
Definition at line 1485 of file scale_atmos_phy_lt_sato2019.F90.
References scale_atmos_grid_cartesc::atmos_grid_cartesc_cdz, scale_atmos_grid_cartesc_metric::atmos_grid_cartesc_metric_gsqrt, and scale_atmos_grid_cartesc_index::i_xyz.
Referenced by atmos_phy_lt_solve_bicgstab().
subroutine scale_atmos_phy_lt_sato2019::atmos_phy_lt_neutralization_mg2001 | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
integer, intent(in) | KIJMAX, | ||
integer, intent(in) | IMAX, | ||
integer, intent(in) | JMAX, | ||
real(rp), dimension (ka,ia,ja,4), intent(in) | Efield, | ||
real(rp), dimension (ka,ia,ja), intent(in) | E_pot, | ||
real(rp), dimension (ka,ia,ja), intent(in) | DENS, | ||
real(rp), dimension (ka,ia,ja), intent(in) | QCRG, | ||
real(rp), dimension (ka,ia,ja), intent(in) | QHYD, | ||
real(rp), dimension (ka,ia,ja,3), intent(inout) | NUM_end, | ||
real(rp), dimension (ka,ia,ja), intent(inout) | LT_path, | ||
real(rp), dimension(ka,ia,ja), intent(out) | fls_int_p, | ||
real(rp), dimension (ka,ia,ja), intent(out) | d_QCRG | ||
) |
calculate charge neutralization MacGorman et al. (2001)
Definition at line 1578 of file scale_atmos_phy_lt_sato2019.F90.
References 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_cx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cy, scale_atmos_grid_cartesc::atmos_grid_cartesc_cz, 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_comm_cartesc::comm_datatype, scale_comm_cartesc::comm_world, scale_const::const_eps, scale_const::const_epsair, scale_const::const_epsvac, scale_const::const_huge, scale_prc::prc_abort(), scale_prc_cartesc::prc_e, scale_prc_cartesc::prc_has_e, scale_prc_cartesc::prc_has_n, scale_prc_cartesc::prc_has_s, scale_prc_cartesc::prc_has_w, scale_prc::prc_ismaster, scale_prc::prc_masterrank, scale_prc::prc_mpibarrier(), scale_prc::prc_myrank, scale_prc_cartesc::prc_n, scale_prc_cartesc::prc_ne, scale_prc_cartesc::prc_next, scale_prc::prc_nprocs, scale_prc_cartesc::prc_num_x, scale_prc_cartesc::prc_num_y, scale_prc_cartesc::prc_nw, scale_prc_cartesc::prc_s, scale_prc_cartesc::prc_se, scale_prc_cartesc::prc_sw, scale_prc_cartesc::prc_w, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
Referenced by atmos_phy_lt_sato2019_adjustment().
subroutine scale_atmos_phy_lt_sato2019::atmos_phy_lt_neutralization_f2013 | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
integer, intent(in) | KIJMAX, | ||
real(rp), dimension (ka,ia,ja,4), intent(in) | Efield, | ||
real(rp), dimension (ka,ia,ja), intent(in) | E_pot, | ||
real(rp), dimension (ka,ia,ja), intent(in) | DENS, | ||
real(rp), dimension (ka,ia,ja), intent(in) | QCRG, | ||
real(rp), dimension (ka,ia,ja), intent(in) | QHYD, | ||
real(rp), dimension (ka,ia,ja,3), intent(inout) | NUM_end, | ||
real(rp), dimension (ka,ia,ja), intent(inout) | LT_path, | ||
real(rp), dimension(ka,ia,ja), intent(out) | fls_int_p, | ||
real(rp), dimension (ka,ia,ja), intent(out) | d_QCRG | ||
) |
calculate charge neutralization Fierro et al. (2013)
Definition at line 2280 of file scale_atmos_phy_lt_sato2019.F90.
References 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_cx, scale_atmos_grid_cartesc::atmos_grid_cartesc_cy, scale_atmos_grid_cartesc::atmos_grid_cartesc_cz, 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_comm_cartesc::comm_datatype, scale_comm_cartesc::comm_world, scale_const::const_eps, scale_const::const_epsair, scale_const::const_epsvac, scale_prc::prc_abort(), scale_prc_cartesc::prc_e, scale_prc_cartesc::prc_has_e, scale_prc_cartesc::prc_has_n, scale_prc_cartesc::prc_has_s, scale_prc_cartesc::prc_has_w, scale_prc::prc_ismaster, scale_prc::prc_masterrank, scale_prc::prc_mpibarrier(), scale_prc::prc_myrank, scale_prc_cartesc::prc_n, scale_prc_cartesc::prc_ne, scale_prc_cartesc::prc_next, scale_prc::prc_nprocs, scale_prc_cartesc::prc_num_x, scale_prc_cartesc::prc_num_y, scale_prc_cartesc::prc_nw, scale_prc_cartesc::prc_s, scale_prc_cartesc::prc_se, scale_prc_cartesc::prc_sw, scale_prc_cartesc::prc_w, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
Referenced by atmos_phy_lt_sato2019_adjustment().
subroutine scale_atmos_phy_lt_sato2019::atmos_phy_lt_judge_abse | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
real(rp), dimension (ka,ia,ja), intent(in) | DENS, | ||
real(rp), dimension (ka,ia,ja), intent(in) | Efield, | ||
real(rp), intent(out) | Emax, | ||
integer, intent(out) | flg_lt_neut | ||
) |
judge max of |E| exceeds E_init
Definition at line 2535 of file scale_atmos_phy_lt_sato2019.F90.
References scale_comm_cartesc::comm_datatype, scale_comm_cartesc::comm_world, and scale_const::const_huge.
Referenced by atmos_phy_lt_sato2019_adjustment().
subroutine, public scale_atmos_phy_lt_sato2019::atmos_phy_lt_sato2019_select_dqcrg_from_lut | ( | integer, intent(in) | KA, |
integer, intent(in) | KS, | ||
integer, intent(in) | KE, | ||
integer, intent(in) | IA, | ||
integer, intent(in) | IS, | ||
integer, intent(in) | IE, | ||
integer, intent(in) | JA, | ||
integer, intent(in) | JS, | ||
integer, intent(in) | JE, | ||
integer, intent(in) | NLIQ, | ||
real(rp), dimension(ka,ia,ja), intent(in) | TEMP, | ||
real(rp), dimension(ka,ia,ja), intent(in) | DENS, | ||
real(rp), dimension(ka,ia,ja,nliq), intent(in) | QLIQ, | ||
real(rp), dimension(ka,ia,ja), intent(out) | dqcrg, | ||
real(rp), dimension(ka,ia,ja), intent(out) | beta_crg | ||
) |
Select cwc-temp point on LUT.
Definition at line 2621 of file scale_atmos_phy_lt_sato2019.F90.
References scale_const::const_tem00.
Referenced by mod_atmos_phy_mp_driver::atmos_phy_mp_driver_calc_tendency().