|
FE-Project
|
Base derived type to manage data communication with 2D rectangle domain. More...
Public Member Functions | |
| procedure, public | init (this, sfield_num, hvfield_num, htensorfield_num, mesh2d, halosize_1d) |
| Initialize an object to manage data communication with 2D rectangle domain. | |
| procedure, public | put (this, field_list, varid_s) |
| Put field data into temporary buffers. | |
| procedure, public | get (this, field_list, varid_s) |
| Extract field data from temporary buffers. | |
| procedure, public | exchange (this, do_wait) |
| Exchange field data between neighboring MPI processes. | |
| procedure, public | final (this) |
| Finalize an object to manage data communication with 2D rectangle domain. | |
| Public Member Functions inherited from scale_meshfieldcomm_base::meshfieldcommbase | |
| procedure(meshfieldcommbase_put), deferred, public | put meshfieldcommbase_put |
| procedure(meshfieldcommbase_get), deferred, public | get meshfieldcommbase_get |
| procedure(meshfieldcommbase_exchange), deferred, public | exchange meshfieldcommbase_exchange |
| procedure, public | prepare_pc (this, use_mpi_pc_fujitsu_ext) |
| Prepare persistent communication. | |
Public Attributes | |
| class(meshrectdom2d), pointer | mesh2d |
| Pointer to an object representing 2D rectangular computational mesh. | |
| integer | halosize_1d |
| Halo size in 1D direction. | |
| Public Attributes inherited from scale_meshfieldcomm_base::meshfieldcommbase | |
| integer | sfield_num |
| Number of scalar fields. | |
| integer | hvfield_num |
| Number of horizontal vector fields. | |
| integer | htensorfield_num |
| Number of horizontal tensor fields. | |
| integer | field_num_tot |
| Total number of fields. | |
| integer | nfaces_comm |
| Number of faces where halo data is communicated. | |
| integer | bufsize_per_field |
| Buffer size per a field data. | |
| class(meshbase), pointer | mesh |
| real(rp), dimension(:,:,:), allocatable | send_buf |
| Buffer for sending data. | |
| real(rp), dimension(:,:,:), allocatable | recv_buf |
| Buffer for receiving data. | |
| integer, dimension(:), allocatable | request_send |
| integer, dimension(:), allocatable | request_recv |
| type(localmeshcommdata), dimension(:,:), allocatable | commdata_list |
| integer, dimension(:,:), allocatable | is_f |
| integer, dimension(:), allocatable | nnode_lcmeshallface |
| logical | mpi_pc_flag |
| Flag whether persistent communication is used. | |
| logical | use_mpi_pc_fujitsu_ext |
| Flag whether Fujitsu extension routines are used for persistent communication. | |
| integer, dimension(:), allocatable | request_pc |
| integer | req_counter |
| logical | call_wait_flag_sub_get |
| Flag whether MPI_wait need to be called before getting halo data from recv_buf. | |
| integer | obj_ind |
| logical | use_vmap_wide_flag |
| integer, dimension(:), allocatable | vmapb_size |
| integer, dimension(:), allocatable | vmapb2 |
Base derived type to manage data communication with 2D rectangle domain.
Definition at line 45 of file scale_meshfieldcomm_rectdom2d.F90.
| procedure, public scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::init | ( | class(meshfieldcommrectdom2d), intent(inout) | this, |
| integer, intent(in) | sfield_num, | ||
| integer, intent(in) | hvfield_num, | ||
| integer, intent(in) | htensorfield_num, | ||
| class(meshrectdom2d), intent(in), target | mesh2d, | ||
| integer, intent(in), optional | halosize_1d ) |
Initialize an object to manage data communication with 2D rectangle domain.
| [in] | sfield_num | Number of scalar fields |
| [in] | hvfield_num | Number of horizontal vector fields |
| [in] | htensorfield_num | Number of horizontal vector fields |
| [in] | mesh2d | Object to manage a 2D rectangular computational mesh |
| [in] | halosize_1d | Halo size in 1D direction (default: 1) |
Definition at line 50 of file scale_meshfieldcomm_rectdom2d.F90.
| procedure, public scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::put | ( | class(meshfieldcommrectdom2d), intent(inout) | this, |
| type(meshfieldcontainer), dimension(:), intent(in) | field_list, | ||
| integer, intent(in) | varid_s ) |
Put field data into temporary buffers.
Definition at line 51 of file scale_meshfieldcomm_rectdom2d.F90.
| procedure, public scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::get | ( | class(meshfieldcommrectdom2d), intent(inout) | this, |
| type(meshfieldcontainer), dimension(:), intent(inout) | field_list, | ||
| integer, intent(in) | varid_s ) |
Extract field data from temporary buffers.
Definition at line 52 of file scale_meshfieldcomm_rectdom2d.F90.
| procedure, public scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::exchange | ( | class(meshfieldcommrectdom2d), intent(inout), target | this, |
| logical, intent(in), optional | do_wait ) |
Exchange field data between neighboring MPI processes.
Definition at line 53 of file scale_meshfieldcomm_rectdom2d.F90.
| procedure, public scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::final | ( | class(meshfieldcommrectdom2d), intent(inout) | this | ) |
Finalize an object to manage data communication with 2D rectangle domain.
Definition at line 54 of file scale_meshfieldcomm_rectdom2d.F90.
| class(meshrectdom2d), pointer scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::mesh2d |
Pointer to an object representing 2D rectangular computational mesh.
Definition at line 46 of file scale_meshfieldcomm_rectdom2d.F90.
| integer scale_meshfieldcomm_rectdom2d::meshfieldcommrectdom2d::halosize_1d |
Halo size in 1D direction.
Definition at line 48 of file scale_meshfieldcomm_rectdom2d.F90.