SCALE-RM
|
module COMMUNICATION More...
Functions/Subroutines | |
subroutine, public | comm_setup |
Setup. More... | |
subroutine, public | comm_vars_init (varname, var, vid) |
Register variables. More... | |
subroutine, public | comm_vars8_init (varname, var, vid) |
Register variables. More... | |
subroutine, public | comm_horizontal_mean (varmean, var) |
calculate horizontal mean (global total with communication) More... | |
subroutine | comm_horizontal_max_2d (varmax, var) |
Get maximum value in horizontal area. More... | |
subroutine | comm_horizontal_min_2d (varmin, var) |
Get minimum value in horizontal area. More... | |
subroutine | comm_gather_2d (recv, send, gIA, gJA) |
Get data from whole process value in 2D field. More... | |
subroutine | comm_gather_3d (recv, send, gIA, gJA, gKA) |
Get data from whole process value in 3D field. More... | |
subroutine | comm_bcast_scr (var) |
Broadcast data for whole process value in scalar field. More... | |
subroutine | comm_bcast_1d (var, gIA) |
Broadcast data for whole process value in 1D field. More... | |
subroutine | comm_bcast_2d (var, gIA, gJA) |
Broadcast data for whole process value in 2D field. More... | |
subroutine | comm_bcast_3d (var, gIA, gJA, gKA) |
Broadcast data for whole process value in 3D field. More... | |
subroutine | comm_bcast_4d (var, gIA, gJA, gKA, gTime) |
Broadcast data for whole process value in 4D field. More... | |
subroutine | comm_bcast_int_scr (var) |
Broadcast data for whole process value in scalar (integer) More... | |
subroutine | comm_bcast_int_1d (var, gIA) |
Broadcast data for whole process value in 1D field (integer) More... | |
subroutine | comm_bcast_int_2d (var, gIA, gJA) |
Broadcast data for whole process value in 2D field (integer) More... | |
subroutine | comm_bcast_logical_scr (var) |
Broadcast data for whole process value in scalar (logical) More... | |
subroutine | vars_init_mpi_pc (var, vid, seqid) |
subroutine | vars8_3d_mpi (var, vid) |
subroutine | vars_2d_mpi (var, vid) |
subroutine | vars8_2d_mpi (var, vid) |
subroutine | vars_3d_mpi_pc (var, vid) |
subroutine | wait_3d_mpi (var, vid) |
subroutine, public | comm_cleanup |
Variables | |
integer, public | comm_datatype |
datatype of variable More... | |
integer, public | comm_world |
communication world ID More... | |
logical, public | comm_fill_bnd = .true. |
switch whether fill boundary data More... | |
module COMMUNICATION
name | type | default value | comment |
---|---|---|---|
COMM_VSIZE_MAX_PC | integer | # limit of total communication variables for MPI PC | |
COMM_USE_MPI_PC | logical | .true. |
subroutine, public scale_comm::comm_setup | ( | ) |
Setup.
Definition at line 165 of file scale_comm.F90.
References comm_datatype, comm_world, scale_grid_index::ia, scale_grid_index::ihalo, scale_grid_index::imax, scale_stdio::io_fid_conf, scale_grid_index::ja, scale_grid_index::jhalo, scale_grid_index::jmax, scale_grid_index::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_local_comm_world, scale_tracer::qa, and scale_precision::rp.
Referenced by mod_rm_driver::scalerm(), and mod_rm_prep::scalerm_prep().
subroutine, public scale_comm::comm_vars_init | ( | character(len=*), intent(in) | varname, |
real(rp), dimension(:,:,:), intent(inout) | var, | ||
integer, intent(inout) | vid | ||
) |
Register variables.
[in] | varname | variable name |
[in,out] | var | variable array for register |
[in,out] | vid | variable ID |
Definition at line 273 of file scale_comm.F90.
References scale_stdio::io_fid_log, scale_stdio::io_l, scale_process::prc_mpistop(), scale_prof::prof_rapend(), scale_prof::prof_rapstart(), and vars_init_mpi_pc().
subroutine, public scale_comm::comm_vars8_init | ( | character(len=*), intent(in) | varname, |
real(rp), dimension(:,:,:), intent(inout) | var, | ||
integer, intent(inout) | vid | ||
) |
Register variables.
[in] | varname | variable name |
[in,out] | var | variable array for register |
[in,out] | vid | variable ID |
Definition at line 313 of file scale_comm.F90.
References scale_stdio::io_fid_log, scale_stdio::io_l, scale_process::prc_mpistop(), scale_prof::prof_rapend(), scale_prof::prof_rapstart(), vars8_2d_mpi(), vars8_3d_mpi(), vars_2d_mpi(), vars_3d_mpi_pc(), and wait_3d_mpi().
Referenced by scale_atmos_dyn_common::atmos_dyn_filter_setup(), scale_atmos_dyn::atmos_dyn_setup(), scale_atmos_dyn_tinteg_short_rk3::atmos_dyn_tinteg_short_rk3_setup(), scale_atmos_dyn_tinteg_short_rk4::atmos_dyn_tinteg_short_rk4_setup(), scale_atmos_dyn_tinteg_tracer_rk3::atmos_dyn_tinteg_tracer_rk3_setup(), and scale_atmos_dyn_tstep_large_fvm_heve::atmos_dyn_tstep_large_fvm_heve_setup().
subroutine, public scale_comm::comm_horizontal_mean | ( | real(rp), dimension(ka), intent(out) | varmean, |
real(rp), dimension (ka,ia,ja), intent(in) | var | ||
) |
calculate horizontal mean (global total with communication)
[out] | varmean | horizontal mean |
[in] | var | 3D value |
Definition at line 482 of file scale_comm.F90.
References comm_datatype, comm_world, scale_const::const_undef, scale_grid_index::ie, scale_grid_index::is, scale_grid_index::je, scale_grid_index::js, scale_grid_index::ka, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
Referenced by scale_atmos_hydrostatic::atmos_hydrostatic_buildrho_3d(), scale_atmos_phy_mp_kessler::atmos_phy_mp_kessler(), scale_atmos_refstate::atmos_refstate_update(), scale_atmos_refstate::atmos_refstate_write(), and mod_atmos_vars::atmos_vars_history().
subroutine scale_comm::comm_horizontal_max_2d | ( | real(rp), intent(out) | varmax, |
real(rp), dimension(ia,ja), intent(in) | var | ||
) |
Get maximum value in horizontal area.
[out] | varmax | horizontal maximum |
[in] | var | 2D value |
Definition at line 545 of file scale_comm.F90.
References comm_datatype, comm_world, scale_const::const_huge, scale_grid_index::ie, scale_grid_index::is, scale_grid_index::je, scale_grid_index::js, scale_grid_index::ke, scale_grid_index::ks, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_horizontal_min_2d | ( | real(rp), intent(out) | varmin, |
real(rp), dimension(ia,ja), intent(in) | var | ||
) |
Get minimum value in horizontal area.
[out] | varmin | horizontal minimum |
[in] | var | 2D value |
Definition at line 623 of file scale_comm.F90.
References comm_datatype, comm_world, scale_const::const_huge, scale_grid_index::ie, scale_grid_index::is, scale_grid_index::je, scale_grid_index::js, scale_grid_index::ke, scale_grid_index::ks, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_gather_2d | ( | real(rp), dimension(:,:), intent(out) | recv, |
real(rp), dimension(:,:), intent(in) | send, | ||
integer, intent(in) | gIA, | ||
integer, intent(in) | gJA | ||
) |
Get data from whole process value in 2D field.
[out] | recv | receive buffer (gIA,gJA) |
[in] | send | send buffer (gIA,gJA) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
Definition at line 701 of file scale_comm.F90.
References comm_datatype, comm_world, and scale_process::prc_masterrank.
subroutine scale_comm::comm_gather_3d | ( | real(rp), dimension(:,:,:), intent(out) | recv, |
real(rp), dimension(:,:,:), intent(in) | send, | ||
integer, intent(in) | gIA, | ||
integer, intent(in) | gJA, | ||
integer, intent(in) | gKA | ||
) |
Get data from whole process value in 3D field.
[out] | recv | receive buffer(gIA,gJA,gKA) |
[in] | send | send buffer (gIA,gJA,gKA) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
[in] | gka | dimension size of z |
Definition at line 733 of file scale_comm.F90.
References comm_datatype, comm_world, and scale_process::prc_masterrank.
subroutine scale_comm::comm_bcast_scr | ( | real(rp), intent(inout) | var | ) |
Broadcast data for whole process value in scalar field.
[in,out] | var | broadcast buffer (gIA) |
Definition at line 766 of file scale_comm.F90.
References comm_datatype, comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_1d | ( | real(rp), dimension(:), intent(inout) | var, |
integer, intent(in) | gIA | ||
) |
Broadcast data for whole process value in 1D field.
[in,out] | var | broadcast buffer (gIA) |
[in] | gia | dimension size of x |
Definition at line 795 of file scale_comm.F90.
References comm_datatype, comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_2d | ( | real(rp), dimension(:,:), intent(inout) | var, |
integer, intent(in) | gIA, | ||
integer, intent(in) | gJA | ||
) |
Broadcast data for whole process value in 2D field.
[in,out] | var | broadcast buffer (gIA,gJA) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
Definition at line 825 of file scale_comm.F90.
References comm_datatype, comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_3d | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | gIA, | ||
integer, intent(in) | gJA, | ||
integer, intent(in) | gKA | ||
) |
Broadcast data for whole process value in 3D field.
[in,out] | var | broadcast buffer(gIA,gJA,gKA) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
[in] | gka | dimension size of z |
Definition at line 856 of file scale_comm.F90.
References comm_datatype, comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_4d | ( | real(rp), dimension(:,:,:,:), intent(inout) | var, |
integer, intent(in) | gIA, | ||
integer, intent(in) | gJA, | ||
integer, intent(in) | gKA, | ||
integer, intent(in) | gTime | ||
) |
Broadcast data for whole process value in 4D field.
[in,out] | var | broadcast buffer(gIA,gJA,gKA,gTime) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
[in] | gka | dimension size of z |
[in] | gtime | dimension size of time |
Definition at line 888 of file scale_comm.F90.
References comm_datatype, comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_int_scr | ( | integer, intent(inout) | var | ) |
Broadcast data for whole process value in scalar (integer)
[in,out] | var | broadcast buffer (gIA) |
Definition at line 926 of file scale_comm.F90.
References comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_int_1d | ( | integer, dimension(:), intent(inout) | var, |
integer, intent(in) | gIA | ||
) |
Broadcast data for whole process value in 1D field (integer)
[in,out] | var | broadcast buffer (gIA) |
[in] | gia | dimension size of x |
Definition at line 955 of file scale_comm.F90.
References comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_int_2d | ( | integer, dimension(:,:), intent(inout) | var, |
integer, intent(in) | gIA, | ||
integer, intent(in) | gJA | ||
) |
Broadcast data for whole process value in 2D field (integer)
[in,out] | var | broadcast buffer (gIA,gJA) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
Definition at line 985 of file scale_comm.F90.
References comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::comm_bcast_logical_scr | ( | logical, intent(inout) | var | ) |
Broadcast data for whole process value in scalar (logical)
[in,out] | var | broadcast buffer |
Definition at line 1016 of file scale_comm.F90.
References comm_world, scale_process::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm::vars_init_mpi_pc | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid, | ||
integer, intent(in) | seqid | ||
) |
Definition at line 1046 of file scale_comm.F90.
References comm_datatype, comm_world, scale_grid_index::ie, scale_grid_index::ihalo, scale_grid_index::is, scale_grid_index::je, scale_grid_index::jhalo, scale_grid_index::js, scale_rm_process::prc_e, 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_rm_process::prc_n, scale_rm_process::prc_ne, scale_rm_process::prc_next, scale_rm_process::prc_nw, scale_rm_process::prc_s, scale_rm_process::prc_se, scale_rm_process::prc_sw, and scale_rm_process::prc_w.
Referenced by comm_vars_init().
subroutine scale_comm::vars8_3d_mpi | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 1693 of file scale_comm.F90.
References comm_datatype, comm_world, scale_grid_index::ie, scale_grid_index::ihalo, scale_grid_index::is, scale_grid_index::je, scale_grid_index::jhalo, scale_grid_index::js, scale_rm_process::prc_e, 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_rm_process::prc_n, scale_rm_process::prc_ne, scale_rm_process::prc_next, scale_rm_process::prc_nw, scale_rm_process::prc_s, scale_rm_process::prc_se, scale_rm_process::prc_sw, and scale_rm_process::prc_w.
Referenced by comm_vars8_init().
subroutine scale_comm::vars_2d_mpi | ( | real(rp), dimension(:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2138 of file scale_comm.F90.
References comm_datatype, comm_world, scale_grid_index::je, scale_grid_index::jhalo, scale_grid_index::js, scale_rm_process::prc_e, 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_rm_process::prc_n, scale_rm_process::prc_next, scale_rm_process::prc_s, and scale_rm_process::prc_w.
Referenced by comm_vars8_init().
subroutine scale_comm::vars8_2d_mpi | ( | real(rp), dimension(:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2290 of file scale_comm.F90.
References comm_datatype, comm_world, scale_grid_index::ie, scale_grid_index::ihalo, scale_grid_index::is, scale_grid_index::je, scale_grid_index::jhalo, scale_grid_index::js, scale_rm_process::prc_e, 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_rm_process::prc_n, scale_rm_process::prc_ne, scale_rm_process::prc_next, scale_rm_process::prc_nw, scale_rm_process::prc_s, scale_rm_process::prc_se, scale_rm_process::prc_sw, and scale_rm_process::prc_w.
Referenced by comm_vars8_init().
subroutine scale_comm::vars_3d_mpi_pc | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2788 of file scale_comm.F90.
References scale_process::prc_mpistop().
Referenced by comm_vars8_init().
subroutine scale_comm::wait_3d_mpi | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2813 of file scale_comm.F90.
References scale_grid_index::ie, scale_grid_index::ihalo, scale_grid_index::is, scale_grid_index::je, scale_grid_index::jhalo, scale_grid_index::js, 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_prof::prof_rapend(), and scale_prof::prof_rapstart().
Referenced by comm_vars8_init().
subroutine, public scale_comm::comm_cleanup | ( | ) |
Definition at line 3465 of file scale_comm.F90.
Referenced by mod_rm_driver::scalerm().
integer, public scale_comm::comm_datatype |
datatype of variable
Definition at line 117 of file scale_comm.F90.
Referenced by scale_atmos_dyn::atmos_dyn(), scale_atmos_phy_mp_suzuki10::atmos_phy_mp_suzuki10_setup(), scale_atmos_dyn_tstep_large_fvm_heve::check_mass(), comm_bcast_1d(), comm_bcast_2d(), comm_bcast_3d(), comm_bcast_4d(), comm_bcast_scr(), comm_gather_2d(), comm_gather_3d(), comm_horizontal_max_2d(), comm_horizontal_mean(), comm_horizontal_min_2d(), comm_setup(), scale_grid_nest::nest_comm_intercomm_nestdown_3d(), scale_grid_nest::nest_comm_issuer_of_receive_3d(), scale_grid_nest::nest_domain_shape(), scale_rm_statistics::stat_detail(), scale_rm_statistics::stat_total_2d(), scale_rm_statistics::stat_total_3d(), vars8_2d_mpi(), vars8_3d_mpi(), vars_2d_mpi(), and vars_init_mpi_pc().
integer, public scale_comm::comm_world |
communication world ID
Definition at line 118 of file scale_comm.F90.
Referenced by scale_atmos_dyn::atmos_dyn(), scale_atmos_phy_mp_suzuki10::atmos_phy_mp_suzuki10_setup(), scale_atmos_dyn_tstep_large_fvm_heve::check_mass(), comm_bcast_1d(), comm_bcast_2d(), comm_bcast_3d(), comm_bcast_4d(), comm_bcast_int_1d(), comm_bcast_int_2d(), comm_bcast_int_scr(), comm_bcast_logical_scr(), comm_bcast_scr(), comm_gather_2d(), comm_gather_3d(), comm_horizontal_max_2d(), comm_horizontal_mean(), comm_horizontal_min_2d(), comm_setup(), scale_grid_nest::nest_domain_shape(), scale_atmos_dyn_tstep_short_fvm_hivi::solve_bicgstab(), vars8_2d_mpi(), vars8_3d_mpi(), vars_2d_mpi(), and vars_init_mpi_pc().
logical, public scale_comm::comm_fill_bnd = .true. |
switch whether fill boundary data
Definition at line 119 of file scale_comm.F90.
Referenced by scale_atmos_boundary::atmos_boundary_setup().