SCALE-RM
|
module ATMOSPHERE / Boundary treatment More...
Functions/Subroutines | |
subroutine, public | atmos_boundary_setup |
Setup. More... | |
subroutine, public | atmos_boundary_resume (DENS, MOMZ, MOMX, MOMY, RHOT, QTRC) |
Resume. More... | |
subroutine | atmos_boundary_resume_file |
Resume boundary value for real case experiment. More... | |
subroutine | atmos_boundary_resume_online |
Resume boundary value for real case experiment [online daughter]. More... | |
subroutine, public | atmos_boundary_firstsend (DENS, MOMZ, MOMX, MOMY, RHOT, QTRC) |
First send boundary value. More... | |
subroutine, public | atmos_boundary_finalize |
Finalize boundary value. More... | |
subroutine, public | atmos_boundary_update (DENS, MOMZ, MOMX, MOMY, RHOT, QTRC) |
Update boundary value with a constant time boundary. More... | |
subroutine | update_ref_index |
Update indices of array of boundary references. More... | |
Variables | |
integer, public | bnd_qa |
integer, public | of |
integer, public | tracer |
integer, public | at |
integer, public | boundary |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_dens |
real(rp), allocatable, public | reference |
real(rp), dimension(with halo), allocatable, public | dens |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_velz |
real(rp), dimension(with halo), allocatable, public | velz |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_velx |
real(rp), dimension(with halo), allocatable, public | velx |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_vely |
real(rp), dimension(with halo), allocatable, public | vely |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_pott |
real(rp), dimension(with halo), allocatable, public | pott |
real(rp), dimension(:,:,:,:), allocatable, public | atmos_boundary_qtrc |
real(rp), dimension(with halo), allocatable, public | qtrc |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_alpha_dens |
real(rp), allocatable, public | damping |
real(rp), allocatable, public | coefficient |
real(rp), allocatable, public | for |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_alpha_velz |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_alpha_velx |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_alpha_vely |
real(rp), dimension(:,:,:), allocatable, public | atmos_boundary_alpha_pott |
real(rp), dimension(:,:,:,:), allocatable, public | atmos_boundary_alpha_qtrc |
real(rp), public | atmos_boundary_smoother_fact = 0.2_RP |
logical, public | atmos_boundary_update_flag = .false. |
logical, public | switch |
logical, public | real |
logical, public | case |
module ATMOSPHERE / Boundary treatment
name | type | default value | comment |
---|---|---|---|
ATMOS_BOUNDARY_TYPE | character(len=H_LONG) | 'NONE' | |
ATMOS_BOUNDARY_IN_BASENAME | character(len=H_LONG) | '' | |
ATMOS_BOUNDARY_OUT_BASENAME | character(len=H_LONG) | '' | |
ATMOS_BOUNDARY_OUT_TITLE | character(len=H_MID) | 'SCALE-RM BOUNDARY CONDITION' | title of the output file |
ATMOS_BOUNDARY_USE_VELZ | logical | .false. | read from file? |
ATMOS_BOUNDARY_USE_VELX | logical | .false. | read from file? |
ATMOS_BOUNDARY_USE_VELY | logical | .false. | read from file? |
ATMOS_BOUNDARY_USE_POTT | logical | .false. | read from file? |
ATMOS_BOUNDARY_USE_DENS | logical | .false. | read from file? |
ATMOS_BOUNDARY_USE_QV | logical | .false. | read from file? |
ATMOS_BOUNDARY_USE_QHYD | logical | .false. | read from file? |
ATMOS_BOUNDARY_VALUE_VELZ | real(RP) | 0.0_RP | velocity w at boundary, 0 [m/s] |
ATMOS_BOUNDARY_VALUE_VELX | real(RP) | 0.0_RP | velocity u at boundary, 0 [m/s] |
ATMOS_BOUNDARY_VALUE_VELY | real(RP) | 0.0_RP | velocity v at boundary, 0 [m/s] |
ATMOS_BOUNDARY_VALUE_POTT | real(RP) | 300.0_RP | potential temp. at boundary, 300 [K] |
ATMOS_BOUNDARY_VALUE_QTRC | real(RP) | 0.0_RP | tracer at boundary, 0 [kg/kg] |
ATMOS_BOUNDARY_ALPHAFACT_DENS | real(RP) | 1.0_RP | alpha factor again default |
ATMOS_BOUNDARY_ALPHAFACT_VELZ | real(RP) | 1.0_RP | alpha factor again default |
ATMOS_BOUNDARY_ALPHAFACT_VELX | real(RP) | 1.0_RP | alpha factor again default |
ATMOS_BOUNDARY_ALPHAFACT_VELY | real(RP) | 1.0_RP | alpha factor again default |
ATMOS_BOUNDARY_ALPHAFACT_POTT | real(RP) | 1.0_RP | alpha factor again default |
ATMOS_BOUNDARY_ALPHAFACT_QTRC | real(RP) | 1.0_RP | alpha factor again default |
ATMOS_BOUNDARY_SMOOTHER_FACT | real(RP) | 0.2_RP | fact for smoother to damping |
ATMOS_BOUNDARY_FRACZ | real(RP) | 1.0_RP | fraction of boundary region for dumping (z) [0-1] |
ATMOS_BOUNDARY_FRACX | real(RP) | 1.0_RP | fraction of boundary region for dumping (x) [0-1] |
ATMOS_BOUNDARY_FRACY | real(RP) | 1.0_RP | fraction of boundary region for dumping (y) [0-1] |
ATMOS_BOUNDARY_TAUZ | real(RP) | maximum value for damping tau (z) [s] | |
ATMOS_BOUNDARY_TAUX | real(RP) | maximum value for damping tau (x) [s] | |
ATMOS_BOUNDARY_TAUY | real(RP) | maximum value for damping tau (y) [s] | |
ATMOS_BOUNDARY_UPDATE_DT | real(DP) | 0.0_DP | inteval time of boudary data update [s] |
ATMOS_BOUNDARY_START_DATE | integer | (/ -9999, 0, 0, 0, 0, 0 /) | boundary initial date |
ATMOS_BOUNDARY_LINEAR_V | logical | .false. | linear or non-linear profile of relax region |
ATMOS_BOUNDARY_LINEAR_H | logical | .true. | linear or non-linear profile of relax region |
ATMOS_BOUNDARY_EXP_H | real(RP) | 2.0_RP | factor of non-linear profile of relax region |
ATMOS_BOUNDARY_INTERP_TYPE | character(len=H_LONG) | 'lerp_initpoint' | type of boundary interporation |
name | description | unit | variable |
---|---|---|---|
DENS_BND | Boundary Density | kg/m3 | ATMOS_BOUNDARY_DENS |
POTT_BND | Boundary potential temperature | K | ATMOS_BOUNDARY_POTT |
VELX_BND | Boundary velocity x-direction | m/s | ATMOS_BOUNDARY_VELX |
VELY_BND | Boundary velocity y-direction | m/s | ATMOS_BOUNDARY_VELY |
VELZ_BND | Boundary velocity z-direction | m/s | ATMOS_BOUNDARY_VELZ |
trim(AQ_NAME(iq))//'_BND' | 'Boundary '//trim(AQ_NAME(iq)) | kg/kg | ATMOS_BOUNDARY_QTRC |
subroutine, public scale_atmos_boundary::atmos_boundary_setup | ( | ) |
Setup.
Definition at line 199 of file scale_atmos_sub_boundary.F90.
References atmos_boundary_alpha_dens, atmos_boundary_alpha_pott, atmos_boundary_alpha_qtrc, atmos_boundary_alpha_velx, atmos_boundary_alpha_vely, atmos_boundary_alpha_velz, atmos_boundary_dens, atmos_boundary_pott, atmos_boundary_qtrc, atmos_boundary_smoother_fact, atmos_boundary_update_flag, atmos_boundary_velx, atmos_boundary_vely, atmos_boundary_velz, bnd_qa, scale_comm::comm_fill_bnd, scale_const::const_undef, scale_tracer::i_qv, scale_grid_index::ia, scale_stdio::io_fid_conf, scale_stdio::io_fid_log, scale_stdio::io_l, scale_stdio::io_lnml, scale_grid_index::ja, scale_grid_index::ka, scale_grid_nest::offline, scale_grid_nest::online_iam_daughter, scale_grid_nest::online_iam_parent, scale_process::prc_mpistop(), scale_tracer::qa, scale_time::time_dtsec, and scale_grid_nest::use_nesting.
Referenced by mod_atmos_driver::atmos_driver_setup().
subroutine, public scale_atmos_boundary::atmos_boundary_resume | ( | real(rp), dimension(ka,ia,ja), intent(in) | DENS, |
real(rp), dimension(ka,ia,ja), intent(in) | MOMZ, | ||
real(rp), dimension(ka,ia,ja), intent(in) | MOMX, | ||
real(rp), dimension(ka,ia,ja), intent(in) | MOMY, | ||
real(rp), dimension(ka,ia,ja), intent(in) | RHOT, | ||
real(rp), dimension(ka,ia,ja,qa), intent(in) | QTRC | ||
) |
Resume.
Definition at line 467 of file scale_atmos_sub_boundary.F90.
References scale_tracer::aq_name, scale_tracer::aq_unit, atmos_boundary_alpha_dens, atmos_boundary_alpha_pott, atmos_boundary_alpha_qtrc, atmos_boundary_alpha_velx, atmos_boundary_alpha_vely, atmos_boundary_alpha_velz, atmos_boundary_dens, atmos_boundary_firstsend(), atmos_boundary_pott, atmos_boundary_qtrc, atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_update_flag, atmos_boundary_velx, atmos_boundary_vely, atmos_boundary_velz, scale_atmos_refstate::atmos_refstate_dens, bnd_qa, scale_calendar::calendar_combine_daysec(), scale_calendar::calendar_date2char(), scale_calendar::calendar_date2daysec(), scale_const::const_eps, scale_const::const_pi, scale_grid::grid_cbfx, scale_grid::grid_cbfy, scale_grid::grid_cbfz, scale_grid::grid_fbfx, scale_grid::grid_fbfy, scale_grid::grid_fbfz, scale_grid_index::ia, scale_grid_index::ieb, scale_stdio::io_fid_log, scale_stdio::io_l, scale_grid_index::isb, scale_grid_index::ja, scale_grid_index::jeb, scale_grid_index::jsb, scale_grid_index::ka, scale_grid_index::ke, scale_grid_index::ks, scale_grid_nest::online_use_velz, scale_process::prc_mpistop(), scale_process::prc_myrank, and scale_time::time_nowdate.
Referenced by mod_atmos_driver::atmos_driver_resume1().
subroutine scale_atmos_boundary::atmos_boundary_resume_file | ( | ) |
Resume boundary value for real case experiment.
Definition at line 1263 of file scale_atmos_sub_boundary.F90.
References atmos_boundary_dens, atmos_boundary_pott, atmos_boundary_qtrc, atmos_boundary_velx, atmos_boundary_vely, atmos_boundary_velz, bnd_qa, scale_calendar::calendar_combine_daysec(), scale_calendar::calendar_date2daysec(), scale_grid_index::ia, scale_stdio::io_fid_log, scale_stdio::io_l, scale_grid_index::ja, scale_grid_index::ka, scale_grid_nest::nest_bnd_qa, scale_grid_nest::nest_comm_recvwait_issue(), scale_grid_nest::online_use_velz, scale_grid_nest::parent_dtsec, scale_process::prc_mpistop(), scale_time::time_dtsec, and scale_time::time_nowdate.
Referenced by atmos_boundary_resume().
subroutine scale_atmos_boundary::atmos_boundary_resume_online | ( | ) |
Resume boundary value for real case experiment [online daughter].
Definition at line 1440 of file scale_atmos_sub_boundary.F90.
References atmos_boundary_dens, atmos_boundary_pott, atmos_boundary_qtrc, atmos_boundary_velx, atmos_boundary_vely, atmos_boundary_velz, bnd_qa, scale_grid_index::ia, scale_stdio::io_fid_log, scale_stdio::io_l, scale_grid_index::ja, scale_grid_index::ka, scale_grid_nest::nest_comm_recvwait_issue(), scale_grid_nest::online_use_velz, scale_grid_nest::parent_nstep, scale_process::prc_mpistop(), scale_time::time_dtsec, and scale_time::time_nstep.
Referenced by atmos_boundary_resume().
subroutine, public scale_atmos_boundary::atmos_boundary_firstsend | ( | real(rp), dimension(ka,ia,ja), intent(in) | DENS, |
real(rp), dimension(ka,ia,ja), intent(in) | MOMZ, | ||
real(rp), dimension(ka,ia,ja), intent(in) | MOMX, | ||
real(rp), dimension(ka,ia,ja), intent(in) | MOMY, | ||
real(rp), dimension(ka,ia,ja), intent(in) | RHOT, | ||
real(rp), dimension(ka,ia,ja,qa), intent(in) | QTRC | ||
) |
First send boundary value.
Definition at line 1532 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume().
subroutine, public scale_atmos_boundary::atmos_boundary_finalize | ( | ) |
Finalize boundary value.
Definition at line 1555 of file scale_atmos_sub_boundary.F90.
References scale_grid_nest::nest_bnd_qa, scale_grid_nest::nest_comm_recv_cancel(), and scale_grid_nest::nest_comm_recvwait_issue().
Referenced by mod_atmos_driver::atmos_driver_finalize().
subroutine, public scale_atmos_boundary::atmos_boundary_update | ( | real(rp), dimension(ka,ia,ja), intent(inout) | DENS, |
real(rp), dimension(ka,ia,ja), intent(inout) | MOMZ, | ||
real(rp), dimension(ka,ia,ja), intent(inout) | MOMX, | ||
real(rp), dimension(ka,ia,ja), intent(inout) | MOMY, | ||
real(rp), dimension(ka,ia,ja), intent(inout) | RHOT, | ||
real(rp), dimension(ka,ia,ja,qa), intent(inout) | QTRC | ||
) |
Update boundary value with a constant time boundary.
Definition at line 1582 of file scale_atmos_sub_boundary.F90.
References scale_tracer::aq_name, atmos_boundary_dens, atmos_boundary_pott, atmos_boundary_qtrc, atmos_boundary_velx, atmos_boundary_vely, atmos_boundary_velz, bnd_qa, scale_grid_nest::daughter_ia, scale_grid_nest::daughter_ja, scale_grid_nest::daughter_ka, scale_grid_index::ia, scale_grid_index::ie, scale_grid_index::ieb, scale_stdio::io_fid_log, scale_stdio::io_l, scale_grid_index::is, scale_grid_index::isb, scale_grid_index::ja, scale_grid_index::je, scale_grid_index::jeb, scale_grid_index::js, scale_grid_index::jsb, scale_grid_index::ka, scale_grid_index::ke, scale_grid_index::ks, scale_grid_nest::nest_bnd_qa, scale_grid_nest::nest_comm_nestdown(), scale_grid_nest::nest_comm_recvwait_issue(), scale_grid_nest::nest_comm_test(), scale_grid_nest::online_use_velz, scale_grid_nest::parent_ia, scale_grid_nest::parent_ja, scale_grid_nest::parent_ka, scale_rm_process::prc_has_e, scale_rm_process::prc_has_n, scale_rm_process::prc_has_s, scale_rm_process::prc_has_w, scale_process::prc_mpistop(), scale_process::prc_myrank, scale_tracer::qa, scale_time::time_dtsec, and update_ref_index().
Referenced by mod_atmos_driver::atmos_driver().
subroutine scale_atmos_boundary::update_ref_index | ( | ) |
Update indices of array of boundary references.
Definition at line 2436 of file scale_atmos_sub_boundary.F90.
References scale_tracer::aq_name, and bnd_qa.
Referenced by atmos_boundary_update().
integer, public scale_atmos_boundary::bnd_qa |
Definition at line 51 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), scale_atmos_dyn::atmos_dyn(), scale_atmos_dyn_tinteg_large_euler::atmos_dyn_tinteg_large_euler(), scale_atmos_dyn_tinteg_large_rk3::atmos_dyn_tinteg_large_rk3(), scale_atmos_dyn_tstep_large_fvm_heve::atmos_dyn_tstep_large_fvm_heve(), and update_ref_index().
integer, public scale_atmos_boundary::of |
Definition at line 51 of file scale_atmos_sub_boundary.F90.
integer, public scale_atmos_boundary::tracer |
Definition at line 51 of file scale_atmos_sub_boundary.F90.
integer, public scale_atmos_boundary::at |
Definition at line 51 of file scale_atmos_sub_boundary.F90.
integer, public scale_atmos_boundary::boundary |
Definition at line 51 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_dens |
Definition at line 53 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), allocatable, public scale_atmos_boundary::reference |
Definition at line 53 of file scale_atmos_sub_boundary.F90.
real(rp), dimension (with halo), allocatable, public scale_atmos_boundary::dens |
Definition at line 53 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_velz |
Definition at line 54 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension (with halo), allocatable, public scale_atmos_boundary::velz |
Definition at line 54 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_velx |
Definition at line 55 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension (with halo), allocatable, public scale_atmos_boundary::velx |
Definition at line 55 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_vely |
Definition at line 56 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension (with halo), allocatable, public scale_atmos_boundary::vely |
Definition at line 56 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_pott |
Definition at line 57 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension (with halo), allocatable, public scale_atmos_boundary::pott |
Definition at line 57 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_qtrc |
Definition at line 58 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_resume_file(), atmos_boundary_resume_online(), atmos_boundary_setup(), atmos_boundary_update(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension (with halo), allocatable, public scale_atmos_boundary::qtrc |
Definition at line 58 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_alpha_dens |
Definition at line 60 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), allocatable, public scale_atmos_boundary::damping |
Definition at line 60 of file scale_atmos_sub_boundary.F90.
real(rp), allocatable, public scale_atmos_boundary::coefficient |
Definition at line 60 of file scale_atmos_sub_boundary.F90.
logical allocatable public scale_atmos_boundary::for |
Definition at line 60 of file scale_atmos_sub_boundary.F90.
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_alpha_velz |
Definition at line 61 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_alpha_velx |
Definition at line 62 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_alpha_vely |
Definition at line 63 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension(:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_alpha_pott |
Definition at line 64 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), dimension(:,:,:,:), allocatable, public scale_atmos_boundary::atmos_boundary_alpha_qtrc |
Definition at line 65 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), and mod_atmos_dyn_driver::atmos_dyn_driver().
real(rp), public scale_atmos_boundary::atmos_boundary_smoother_fact = 0.2_RP |
Definition at line 68 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_setup(), scale_atmos_dyn_tinteg_large_euler::atmos_dyn_tinteg_large_euler(), scale_atmos_dyn_tinteg_large_rk3::atmos_dyn_tinteg_large_rk3(), and scale_atmos_dyn_tstep_large_fvm_heve::atmos_dyn_tstep_large_fvm_heve().
logical, public scale_atmos_boundary::atmos_boundary_update_flag = .false. |
Definition at line 70 of file scale_atmos_sub_boundary.F90.
Referenced by atmos_boundary_resume(), atmos_boundary_setup(), mod_atmos_driver::atmos_driver(), and mod_atmos_driver::atmos_driver_finalize().
logical, public scale_atmos_boundary::switch |
Definition at line 70 of file scale_atmos_sub_boundary.F90.
scale_atmos_boundary::real |
Definition at line 70 of file scale_atmos_sub_boundary.F90.
logical, public scale_atmos_boundary::case |
Definition at line 70 of file scale_atmos_sub_boundary.F90.