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 | comm_horizontal_mean_3d (varmean, var) |
calculate horizontal mean (global total with communication) 3D 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 | comm_bcast_character (var) |
Broadcast data for whole process value in character. 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... | |
module COMMUNICATION
name | type | default value | comment |
---|---|---|---|
COMM_VSIZE_MAX | integer | # limit of communication variables at once | |
COMM_VSIZE_MAX_PC | integer | # limit of total communication variables for MPI PC | |
COMM_USE_MPI_PC | logical | .true. |
subroutine, public scale_comm_cartesc::comm_setup | ( | ) |
Setup.
Definition at line 140 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ihalo, scale_atmos_grid_cartesc_index::imax, scale_io::io_fid_conf, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::jhalo, scale_atmos_grid_cartesc_index::jmax, scale_atmos_grid_cartesc_index::ka, 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_local_comm_world, scale_tracer::qa, and scale_precision::rp.
Referenced by mod_rm_driver::rm_driver(), mod_rm_prep::rm_prep(), and scale_statistics::statistics_setup().
subroutine, public scale_comm_cartesc::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 249 of file scale_comm_cartesC.F90.
References scale_prc::prc_abort(), scale_prof::prof_rapend(), scale_prof::prof_rapstart(), and vars_init_mpi_pc().
subroutine, public scale_comm_cartesc::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 289 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_const::const_undef, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_prc::prc_abort(), 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 scale_comm_cartesc::comm_horizontal_mean_3d | ( | real(rp), dimension(ka), intent(out) | varmean, |
real(rp), dimension (ka,ia,ja), intent(in) | var | ||
) |
calculate horizontal mean (global total with communication) 3D
[out] | varmean | horizontal mean |
[in] | var | 3D value |
Definition at line 517 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_const::const_undef, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_atmos_grid_cartesc_index::ka, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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,nprcs) |
[in] | send | send buffer (gIA,gJA) |
[in] | gia | dimension size of x |
[in] | gja | dimension size of y |
Definition at line 580 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, and scale_prc::prc_masterrank.
subroutine scale_comm_cartesc::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,nprcs) |
[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 612 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, and scale_prc::prc_masterrank.
subroutine scale_comm_cartesc::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 645 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 674 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 704 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 735 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 767 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 805 of file scale_comm_cartesC.F90.
References comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 834 of file scale_comm_cartesC.F90.
References comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 864 of file scale_comm_cartesC.F90.
References comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::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 895 of file scale_comm_cartesC.F90.
References comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::comm_bcast_character | ( | character(len=*), intent(inout) | var | ) |
Broadcast data for whole process value in character.
[in,out] | var | broadcast buffer |
Definition at line 924 of file scale_comm_cartesC.F90.
References comm_world, scale_prc::prc_masterrank, scale_prof::prof_rapend(), and scale_prof::prof_rapstart().
subroutine scale_comm_cartesc::vars_init_mpi_pc | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid, | ||
integer, intent(in) | seqid | ||
) |
Definition at line 954 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::ihalo, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jhalo, scale_atmos_grid_cartesc_index::js, 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_cartesc::prc_n, scale_prc_cartesc::prc_ne, scale_prc_cartesc::prc_next, scale_prc_cartesc::prc_nw, scale_prc_cartesc::prc_s, scale_prc_cartesc::prc_se, scale_prc_cartesc::prc_sw, and scale_prc_cartesc::prc_w.
Referenced by comm_vars_init().
subroutine scale_comm_cartesc::vars8_3d_mpi | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 1601 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::ihalo, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jhalo, scale_atmos_grid_cartesc_index::js, 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_cartesc::prc_n, scale_prc_cartesc::prc_ne, scale_prc_cartesc::prc_next, scale_prc_cartesc::prc_nw, scale_prc_cartesc::prc_s, scale_prc_cartesc::prc_se, scale_prc_cartesc::prc_sw, and scale_prc_cartesc::prc_w.
Referenced by comm_vars8_init().
subroutine scale_comm_cartesc::vars_2d_mpi | ( | real(rp), dimension(:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2046 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jhalo, scale_atmos_grid_cartesc_index::js, 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_cartesc::prc_n, scale_prc_cartesc::prc_next, scale_prc_cartesc::prc_s, and scale_prc_cartesc::prc_w.
Referenced by comm_vars8_init().
subroutine scale_comm_cartesc::vars8_2d_mpi | ( | real(rp), dimension(:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2198 of file scale_comm_cartesC.F90.
References comm_datatype, comm_world, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::ihalo, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jhalo, scale_atmos_grid_cartesc_index::js, 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_cartesc::prc_n, scale_prc_cartesc::prc_ne, scale_prc_cartesc::prc_next, scale_prc_cartesc::prc_nw, scale_prc_cartesc::prc_s, scale_prc_cartesc::prc_se, scale_prc_cartesc::prc_sw, and scale_prc_cartesc::prc_w.
Referenced by comm_vars8_init().
subroutine scale_comm_cartesc::vars_3d_mpi_pc | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2696 of file scale_comm_cartesC.F90.
References scale_prc::prc_abort().
Referenced by comm_vars8_init().
subroutine scale_comm_cartesc::wait_3d_mpi | ( | real(rp), dimension(:,:,:), intent(inout) | var, |
integer, intent(in) | vid | ||
) |
Definition at line 2721 of file scale_comm_cartesC.F90.
References scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::ihalo, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jhalo, scale_atmos_grid_cartesc_index::js, 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_prof::prof_rapend(), and scale_prof::prof_rapstart().
Referenced by comm_vars8_init().
subroutine, public scale_comm_cartesc::comm_cleanup | ( | ) |
Definition at line 3373 of file scale_comm_cartesC.F90.
Referenced by mod_rm_driver::rm_driver().
integer, public scale_comm_cartesc::comm_datatype |
datatype of variable
Definition at line 93 of file scale_comm_cartesC.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(), scale_comm_cartesc_nest::comm_cartesc_nest_domain_shape(), scale_comm_cartesc_nest::comm_cartesc_nest_intercomm_nestdown_3d(), scale_comm_cartesc_nest::comm_cartesc_nest_issuer_of_receive_3d(), comm_gather_2d(), comm_gather_3d(), comm_horizontal_mean_3d(), comm_setup(), comm_vars8_init(), scale_statistics::statistics_detail_2d(), scale_statistics::statistics_detail_3d(), scale_statistics::statistics_horizontal_max_2d(), scale_statistics::statistics_horizontal_max_3d(), scale_statistics::statistics_horizontal_min_2d(), scale_statistics::statistics_horizontal_min_3d(), vars8_2d_mpi(), vars8_3d_mpi(), vars_2d_mpi(), and vars_init_mpi_pc().
integer, public scale_comm_cartesc::comm_world |
communication world ID
Definition at line 94 of file scale_comm_cartesC.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_character(), comm_bcast_int_1d(), comm_bcast_int_2d(), comm_bcast_int_scr(), comm_bcast_logical_scr(), comm_bcast_scr(), scale_comm_cartesc_nest::comm_cartesc_nest_domain_shape(), comm_gather_2d(), comm_gather_3d(), comm_horizontal_mean_3d(), comm_setup(), comm_vars8_init(), scale_atmos_dyn_tstep_short_fvm_hivi::solve_bicgstab(), vars8_2d_mpi(), vars8_3d_mpi(), vars_2d_mpi(), and vars_init_mpi_pc().