module fd4_globaldef_mod module stack_modTypes:
public type fd4_mpiVariables:
integer, public, parameter :: MPI_I4K = MPI_INTEGER integer, public, parameter :: MPI_I8K = MPI_INTEGER8 integer, public, parameter :: MPI_I_K = MPI_INTEGER integer, public, parameter :: MPI_R4K = MPI_REAL integer, public, parameter :: MPI_R8K = MPI_DOUBLE_PRECISION integer, public, parameter :: MPI_R_K = MPI_DOUBLE_PRECISION integer, public, parameter :: MPI_RWK = FD4_WEIGHT_MPI_TYPE integer (kind=i_k), public, parameter :: MPI_R_K_size = 8Subroutines and functions:
public subroutine fd4_mpi_realloc_array (array, sz, ubound, err)
TODO:
Author: Matthias Lieber
See also: module kinds_mod
public type fd4_mpi integer :: comm integer :: comm_gc integer :: comm_cpl integer :: comm_mig integer :: rank = -1 integer :: nprocs integer :: lognprocs integer, pointer, dimension (:) :: recvcnt => NULL () integer, pointer, dimension (:) :: recvdis => NULL () integer, pointer, dimension (:) :: senddis => NULL () real (kind=rwk), pointer, dimension (:) :: sendreal => NULL () real (kind=rwk), pointer, dimension (:) :: recvreal => NULL () type (stack) :: requests integer, pointer, dimension (:,:) :: statuses end type fd4_mpiComponents:
comm | MPI communicator |
comm_gc | MPI communicator for ghost communication |
comm_cpl | MPI communicator for coupling |
comm_mig | MPI communicator for block migration |
rank | MPI rank |
nprocs | number of MPI processes |
lognprocs | ceiling(log(nprocs)) |
recvcnt | for MPI_Allgatherv |
recvdis | for MPI_Allgatherv |
senddis | for MPI_Allgatherv |
sendreal | to exchange block weights with neighbors |
recvreal | to exchange block weights with neighbors |
requests | requests for non-blocking communication |
statuses | array of statuses |
public subroutine fd4_mpi_realloc_array (array, sz, ubound, err) integer, pointer, dimension (:) :: array integer (kind=i_k), intent(in) :: sz integer (kind=i_k), intent(in) :: ubound integer (kind=i_k), intent(out) :: err end subroutine fd4_mpi_realloc_arrayReallocate the array if necessary (i.e. size(array,1) < sz or not allocated). Any array content gets lost.