process-wise buffer for data of type real(kind=rk)
this datatype is used to describe the exchange with a specific process, in case of explicit buffers it provides the memory for them.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | public, | pointer | :: | val(:) | => | null() |
explicit buffer for data to be transferred |
type(c_ptr), | public | :: | mem_mpi |
explicit buffer in memory allocated by mpi |
|||
integer, | public, | allocatable | :: | pos(:) |
position in the input vector from where to read the entries in val_real Notejz: in ateles we use this to specify the positions of the cell states that have to be sent. |
||
integer, | public | :: | nvals |
number of values to exchange Notejz: in ateles this variable stores the number of coefficients we transfer, i.e. number of cells to transfer times number of degree of freedoms per cell times the number of scalar variables. |
|||
integer, | public | :: | memindexed |
handle for the mpi-datatype to describe the memory access, without explicit copying in the application. |
type tem_realbuffer_type
!> explicit buffer for data to be transferred
real(kind=rk), pointer :: val(:) => null()
!> explicit buffer in memory allocated by mpi
type(c_ptr) :: mem_mpi
!> position in the input vector from where to read the entries in
!! val_real
!!
!! @note jz: in ateles we use this to specify the positions of the cell
!! states that have to be sent.
integer, allocatable :: pos(:)
!> number of values to exchange
!!
!! @note jz: in ateles this variable stores the number of coefficients we
!! transfer, i.e. number of cells to transfer times number of
!! degree of freedoms per cell times the number of scalar
!! variables.
integer :: nvals
!> handle for the mpi-datatype to describe the memory access,
!! without explicit copying in the application.
integer :: memindexed
end type tem_realbuffer_type