+++ /dev/null
-c---------------------------------------------------------------------
-c---------------------------------------------------------------------
-
- subroutine compute_buffer_size(dim)
-
-c---------------------------------------------------------------------
-c---------------------------------------------------------------------
-
- include 'header.h'
-
- integer c, dim, face_size
-
- if (ncells .eq. 1) return
-
-c---------------------------------------------------------------------
-c compute the actual sizes of the buffers; note that there is
-c always one cell face that doesn't need buffer space, because it
-c is at the boundary of the grid
-c---------------------------------------------------------------------
- west_size = 0
- east_size = 0
-
- do c = 1, ncells
- face_size = cell_size(2,c) * cell_size(3,c) * dim * 2
- if (cell_coord(1,c).ne.1) west_size = west_size + face_size
- if (cell_coord(1,c).ne.ncells) east_size = east_size +
- > face_size
- end do
-
- north_size = 0
- south_size = 0
- do c = 1, ncells
- face_size = cell_size(1,c)*cell_size(3,c) * dim * 2
- if (cell_coord(2,c).ne.1) south_size = south_size + face_size
- if (cell_coord(2,c).ne.ncells) north_size = north_size +
- > face_size
- end do
-
- top_size = 0
- bottom_size = 0
- do c = 1, ncells
- face_size = cell_size(1,c) * cell_size(2,c) * dim * 2
- if (cell_coord(3,c).ne.1) bottom_size = bottom_size +
- > face_size
- if (cell_coord(3,c).ne.ncells) top_size = top_size +
- > face_size
- end do
-
- start_send_west = 1
- start_send_east = start_send_west + west_size
- start_send_south = start_send_east + east_size
- start_send_north = start_send_south + south_size
- start_send_bottom = start_send_north + north_size
- start_send_top = start_send_bottom + bottom_size
- start_recv_west = 1
- start_recv_east = start_recv_west + west_size
- start_recv_south = start_recv_east + east_size
- start_recv_north = start_recv_south + south_size
- start_recv_bottom = start_recv_north + north_size
- start_recv_top = start_recv_bottom + bottom_size
-
- return
- end
-