This module handles the MPI Communication calls for interface boundary conditions
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | layers | = | 3 | ||
integer, | private | :: | ibuf_size | Size of the buffer for I face interface |
|||
integer, | private | :: | jbuf_size | Size of the buffer for J face interface |
|||
integer, | private | :: | kbuf_size | Size of the buffer for K face interface |
|||
real(kind=wp), | private, | dimension(:), allocatable | :: | imin_send_buf | Array to store data to send data for Imin face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | jmin_send_buf | Array to store data to send data for Jmin face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | kmin_send_buf | Array to store data to send data for Kmin face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | imin_recv_buf | Array to store data to receive data for Imin face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | jmin_recv_buf | Array to store data to receive data for Jmin face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | kmin_recv_buf | Array to store data to receive data for Kmin face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | imax_send_buf | Array to store data to send data for Imax face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | jmax_send_buf | Array to store data to send data for Jmax face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | kmax_send_buf | Array to store data to send data for Kmax face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | imax_recv_buf | Array to store data to receive data for Imax face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | jmax_recv_buf | Array to store data to receive data for Jmax face |
||
real(kind=wp), | private, | dimension(:), allocatable | :: | kmax_recv_buf | Array to store data to receive data for Kmax face |
Allocate memory for the data communication between processors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(controltype), | intent(in) | :: | control | Control parameters: n_var |
||
type(extent), | intent(in) | :: | dims | Extent of the domain:imx,jmx,kmx |
MPISEND_RECV call to exchange interface infromation between connected blocks.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2,1:dims%n_var) | :: | qp | Store primitive variable at cell center |
||
type(controltype), | intent(in) | :: | control | Control parameters |
||
type(boundarytype), | intent(in) | :: | bc | boundary conditions and fixed values |
||
type(extent), | intent(in) | :: | dims | Extent of the domain:imx,jmx,kmx |
If a block is connected to another block in perodic fashion, this subroutine will take care of that boundary condition.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2,1:dims%n_var) | :: | qp | Store primitive variable at cell center |
||
type(controltype), | intent(in) | :: | control | Control parameters |
||
type(boundarytype), | intent(in) | :: | bc | boundary conditions and fixed values |
||
type(extent), | intent(in) | :: | dims | Extent of the domain:imx,jmx,kmx |