2 #ifdef USE_8_BYTE_WORDS 10 INTEGER(KIND=8),
DIMENSION(MPI_STATUS_SIZE) ::
status8 31 INTEGER(KIND=JPIM),
INTENT(IN) :: &
33 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
37 COMM8, ERRORCODE8, IERROR8
40 errorcode8 = errorcode
42 CALL mpi_abort(comm8, errorcode8, ierror8)
51 INTEGER(KIND=JPIM),
INTENT(IN) :: &
53 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
61 CALL mpi_barrier(comm8, ierror8)
70 INTEGER(KIND=JPIM),
DIMENSION(:),
INTENT(OUT) :: &
72 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
75 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
80 ALLOCATE(buffer_addr8(
SIZE(buffer_addr)))
82 CALL mpi_buffer_detach(buffer_addr8, sz8, ierror8)
84 buffer_addr = buffer_addr8
88 DEALLOCATE(buffer_addr8)
95 INTEGER(KIND=JPIM),
DIMENSION(:),
INTENT(IN) :: &
97 INTEGER(KIND=JPIM),
INTENT(IN) :: &
99 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
102 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
107 ALLOCATE(buffer_addr8(
SIZE(buffer_addr)))
109 buffer_addr8 = buffer_addr
112 CALL mpi_buffer_attach(buffer_addr8, sz8, ierror8)
116 DEALLOCATE(buffer_addr8)
123 INTEGER(KIND=JPIM),
INTENT(IN) :: &
125 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
127 INTEGER(KIND=JPIM),
DIMENSION(:),
INTENT(OUT) :: COORDS
129 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: COORDS8
131 COMM8, RANK8, MAXDIMS8, IERROR8
133 ALLOCATE(coords8(
SIZE(coords)))
139 CALL mpi_cart_coords(comm8, rank8, maxdims8, coords8, ierror8)
149 SUBROUTINE mpi_cart_create8(COMM_OLD, NDIMS, DIMS, PERIODS, REORDER, COMM_CART, IERROR)
151 INTEGER(KIND=JPIM),
INTENT(IN) :: &
152 COMM_OLD, NDIMS, DIMS(:)
153 LOGICAL(KIND=JPIM),
INTENT(IN) :: &
155 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
158 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
161 COMM_OLD8, NDIMS8, COMM_CART8, IERROR8
162 LOGICAL(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
167 ALLOCATE(dims8(
SIZE(dims)))
168 ALLOCATE(periods8(
SIZE(periods)))
176 CALL mpi_cart_create(comm_old8, ndims8, dims8, periods8, reorder8, comm_cart8, ierror8)
178 comm_cart = comm_cart8
189 INTEGER(KIND=JPIM),
INTENT(IN) :: &
191 INTEGER(KIND=JPIM),
INTENT(IN),
DIMENSION(:) :: COORDS
192 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
195 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: COORDS8
197 COMM8, RANK8, IERROR8
199 ALLOCATE(coords8(
SIZE(coords)))
204 CALL mpi_cart_rank(comm8, coords8, rank8, ierror8)
216 INTEGER(KIND=JPIM),
INTENT(IN) :: &
218 LOGICAL(KIND=JPIM),
INTENT(IN),
DIMENSION(:) :: &
220 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
224 COMM8, NEWCOMM8, IERROR8
225 LOGICAL(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
228 ALLOCATE(remain_dims8(
SIZE(remain_dims)))
231 remain_dims8 = remain_dims
233 CALL mpi_cart_sub(comm8, remain_dims8, newcomm8, ierror8)
238 DEALLOCATE(remain_dims8)
245 INTEGER(KIND=JPIM),
INTENT(IN) :: &
247 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
251 COMM8, GROUP8, NEWCOMM8, IERROR8
256 CALL mpi_comm_create(comm8, group8, newcomm8, ierror8)
266 INTEGER(KIND=JPIM),
INTENT(IN) :: &
268 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
272 COMM8, GROUP8, IERROR8
276 CALL mpi_comm_group(comm8, group8, ierror8)
286 INTEGER(KIND=JPIM),
INTENT(IN) :: &
288 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
292 COMM8, RANK8, IERROR8
296 CALL mpi_comm_rank(comm8, rank8, ierror8)
306 INTEGER(KIND=JPIM),
INTENT(IN) :: &
308 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
312 COMM8, SIZE8, IERROR8
316 CALL mpi_comm_size(comm8, size8, ierror8)
326 INTEGER(KIND=JPIM),
INTENT(IN) :: &
328 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
332 COMM8, COLOR8, KEY8, NEWCOMM8, IERROR8
338 CALL mpi_comm_split(comm8, color8, key8, newcomm8, ierror8)
348 INTEGER(KIND=JPIM),
INTENT(IN) :: &
350 CHARACTER(LEN=*),
INTENT(OUT) :: &
352 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
356 ERRORCODE8, RESULTLEN8, IERROR8
358 errorcode8 = errorcode
360 CALL mpi_error_string(errorcode8, string, resultlen8, ierror8)
362 resultlen = resultlen8
370 INTEGER(KIND=JPIM),
INTENT(IN) :: &
372 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
380 CALL mpi_file_close(fh8, ierror8)
387 SUBROUTINE mpi_file_open8(COMM, FILENAME, AMODE, INFO, FH, IERROR)
389 INTEGER(KIND=JPIM),
INTENT(IN) :: &
391 CHARACTER(LEN=*),
INTENT(IN) :: &
393 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
397 COMM8, AMODE8, INFO8, FH8, IERROR8
403 CALL mpi_file_open(comm8, filename, amode8, info8, fh8, ierror8)
413 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
419 CALL mpi_finalize(ierror8)
428 INTEGER(KIND=JPIM),
INTENT(IN) :: &
430 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
434 DATATYPE8, COUNT8, IERROR8
439 CALL mpi_get_count(
status8, datatype8, count8, ierror8)
449 INTEGER(KIND=JPIM),
INTENT(IN) :: &
451 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
455 DATATYPE8, COUNT8, IERROR8, STATUS8
460 CALL mpi_get_count(status8, datatype8, count8, ierror8)
470 INTEGER(KIND=JPIM),
INTENT(IN) :: &
472 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
475 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
478 GROUP18, N8, NEWGROUP8, IERROR8
480 ALLOCATE(ranks8(
SIZE(ranks)))
486 CALL mpi_group_incl(group18, n8, ranks8, newgroup8, ierror8)
498 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
504 CALL mpi_init(ierror8)
513 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
515 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
524 CALL mpi_initialized(flag8, ierror8)
532 SUBROUTINE mpi_iprobe8(SOURCE, TAG, COMM, FLAG, STATUS, IERROR)
534 INTEGER(KIND=JPIM),
INTENT(IN) :: &
536 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
538 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
542 SOURCE8, TAG8, COMM8, IERROR8
550 CALL mpi_iprobe(source8, tag8, comm8, flag8,
status8, ierror8)
559 SUBROUTINE mpi_probe8(SOURCE, TAG, COMM, STATUS, IERROR)
561 INTEGER(KIND=JPIM),
INTENT(IN) :: &
563 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
567 SOURCE8, TAG8, COMM8, IERROR8
573 CALL mpi_probe(source8, tag8, comm8,
status8, ierror8)
583 INTEGER(KIND=JPIM),
INTENT(INOUT) :: &
585 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
590 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: STATUS8
592 ALLOCATE(status8(
SIZE(status)))
596 CALL mpi_wait(request8, status8, ierror8)
609 INTEGER(KIND=JPIM) :: &
611 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
615 REQUEST8, IERROR8, STATUS8
619 CALL mpi_wait(request8, status8, ierror8)
628 SUBROUTINE mpi_waitall8_i4(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
630 INTEGER(KIND=JPIM),
INTENT(IN) :: &
632 INTEGER(KIND=JPIM),
DIMENSION(:),
INTENT(INOUT) :: &
634 INTEGER(KIND=JPIM),
DIMENSION(:,:),
INTENT(OUT) :: &
636 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
639 INTEGER(KIND=8),
DIMENSION(:),
ALLOCATABLE :: &
641 INTEGER(KIND=8),
DIMENSION(:,:),
ALLOCATABLE :: &
650 ALLOCATE(array_of_requests8(
SIZE(array_of_requests)))
651 n =
SIZE(array_of_statuses) / mpi_status_size
652 ALLOCATE(array_of_statuses8(mpi_status_size,n))
654 array_of_requests8 = array_of_requests
656 CALL mpi_waitall(count8, array_of_requests8, array_of_statuses8, ierror8)
658 array_of_requests = array_of_requests8
659 array_of_statuses = array_of_statuses8
661 DEALLOCATE(array_of_requests8)
662 DEALLOCATE(array_of_statuses8)
669 SUBROUTINE mpi_waitall8_i4_1(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
671 INTEGER(KIND=JPIM),
INTENT(IN) :: &
673 INTEGER(KIND=JPIM) :: &
675 INTEGER(KIND=JPIM),
DIMENSION(:,:),
INTENT(OUT) :: &
677 INTEGER(KIND=JPIM),
INTENT(OUT) :: &
682 INTEGER(KIND=8),
DIMENSION(:,:),
ALLOCATABLE :: &
691 n =
SIZE(array_of_statuses) / mpi_status_size
692 ALLOCATE(array_of_statuses8(mpi_status_size,n))
694 array_of_requests8 = array_of_requests
696 CALL mpi_waitall(count8, array_of_requests8, array_of_statuses8, ierror8)
698 array_of_requests = array_of_requests8
699 array_of_statuses = array_of_statuses8
701 DEALLOCATE(array_of_statuses8)
subroutine mpi_cart_coords8(COMM, RANK, MAXDIMS, COORDS, IERROR)
subroutine mpi_file_close8(FH, IERROR)
subroutine mpi_cart_rank8(COMM, COORDS, RANK, IERROR)
subroutine mpi_error_string8(ERRORCODE, STRING, RESULTLEN, IERROR)
subroutine mpi_cart_create8(COMM_OLD, NDIMS, DIMS, PERIODS, REORDER, COMM_CART, IERROR)
subroutine mpi_file_open8(COMM, FILENAME, AMODE, INFO, FH, IERROR)
subroutine mpi_waitall8_i4(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
subroutine mpi_comm_create8(COMM, GROUP, NEWCOMM, IERROR)
subroutine mpi_comm_size8(COMM, SIZE, IERROR)
subroutine mpi_probe8(SOURCE, TAG, COMM, STATUS, IERROR)
subroutine mpi_comm_split8(COMM, COLOR, KEY, NEWCOMM, IERROR)
subroutine mpi_group_incl8(GROUP1, N, RANKS, NEWGROUP, IERROR)
subroutine mpi_barrier8(COMM, IERROR)
integer(kind=8), dimension(mpi_status_size), private status8
subroutine mpi_buffer_attach8(BUFFER_ADDR, SZ, IERROR)
subroutine mpi_iprobe8(SOURCE, TAG, COMM, FLAG, STATUS, IERROR)
subroutine mpi_buffer_detach8(BUFFER_ADDR, SZ, IERROR)
subroutine mpi_abort8(COMM, ERRORCODE, IERROR)
subroutine mpi_comm_group8(COMM, GROUP, IERROR)
subroutine mpi_waitall8_i4_1(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR)
subroutine mpi_init8(IERROR)
subroutine mpi_get_count8_i4(STATUS, DATATYPE, COUNT, IERROR)
subroutine mpi_wait8_i4_1(REQUEST, STATUS, IERROR)
subroutine mpi_finalize8(IERROR)
subroutine mpi_wait8_i4(REQUEST, STATUS, IERROR)
subroutine mpi_initialized8(FLAG, IERROR)
subroutine mpi_get_count8_i4_1(STATUS, DATATYPE, COUNT, IERROR)
subroutine mpi_cart_sub8(COMM, REMAIN_DIMS, NEWCOMM, IERROR)
subroutine mpi_comm_rank8(COMM, RANK, IERROR)