2 subroutine mpi_scan(data1, data2, n, datatype, &
3 operation,
comm, ierror )
20 if ( datatype == mpi_double_precision )
then
22 call
copy( data2, data1, n )
24 else if ( datatype == mpi_integer )
then
28 else if ( datatype == mpi_integer8 )
then
32 else if ( datatype == mpi_real )
then
57 integer :: MPI_FAILURE
58 parameter( mpi_failure = 1 )
59 integer :: MPI_SUCCESS
60 parameter( mpi_success = 0 )
64 write ( *,
'(a)' )
' '
65 write ( *,
'(a)' )
'MPI_ABORT:'
66 write ( *,
'(a,i12)' ) &
67 ' Shut down with error code = ', errorcode
72 nrecv, recvtype,
comm, ierror )
85 integer :: data1(nsend)
86 integer :: data2(nsend)
94 if ( sendtype == mpi_double_precision )
then
96 else if ( sendtype == mpi_integer )
then
98 else if ( sendtype == mpi_real )
then
107 data2, nrecv, ndispls, recvtype,
comm, ierror )
115 include
"mpi_dummy.h"
120 integer :: data1(nsend)
121 integer :: data2(nsend)
130 if ( sendtype == mpi_double_precision )
then
132 else if ( sendtype == mpi_integer )
then
134 else if ( sendtype == mpi_real )
then
143 operation,
comm, ierror )
151 include
"mpi_dummy.h"
164 if ( datatype == mpi_double_precision )
then
167 data1, data2, n, operation, ierror )
169 else if ( datatype == mpi_integer )
then
172 data1, data2, n, operation, ierror )
174 else if ( datatype == mpi_integer8 )
then
177 data1, data2, n, operation, ierror )
179 else if ( datatype == mpi_real )
then
182 data1, data2, n, operation, ierror )
203 integer :: MPI_FAILURE
204 parameter( mpi_failure = 1 )
205 integer :: MPI_SUCCESS
206 parameter( mpi_success = 0 )
212 subroutine mpi_bcast ( data, n, datatype, node, comm, ierror )
226 integer :: MPI_FAILURE
227 parameter( mpi_failure = 1 )
228 integer :: MPI_SUCCESS
229 parameter( mpi_success = 0 )
236 subroutine mpi_bsend ( data, n, datatype, iproc, itag, &
253 integer :: MPI_FAILURE
254 parameter( mpi_failure = 1 )
255 integer :: MPI_SUCCESS
256 parameter( mpi_success = 0 )
260 write ( *,
'(a)' )
' '
261 write ( *,
'(a)' )
'MPI_BSEND - Error!'
262 write ( *,
'(a)' )
' Should not send message to self.'
267 reorder, comm_cart, ierror )
281 integer :: MPI_FAILURE
282 parameter( mpi_failure = 1 )
283 integer :: MPI_SUCCESS
284 parameter( mpi_success = 0 )
285 logical :: periods(*)
308 integer :: MPI_FAILURE
309 parameter( mpi_failure = 1 )
310 integer :: MPI_SUCCESS
311 parameter( mpi_success = 0 )
312 logical :: periods(*)
337 integer :: MPI_FAILURE
338 parameter( mpi_failure = 1 )
339 integer :: MPI_SUCCESS
340 parameter( mpi_success = 0 )
359 integer :: MPI_FAILURE
360 parameter( mpi_failure = 1 )
361 integer :: MPI_SUCCESS
362 parameter( mpi_success = 0 )
379 integer :: MPI_FAILURE
380 parameter( mpi_failure = 1 )
381 integer :: MPI_SUCCESS
382 parameter( mpi_success = 0 )
399 integer :: MPI_FAILURE
400 parameter( mpi_failure = 1 )
401 integer :: MPI_SUCCESS
402 parameter( mpi_success = 0 )
419 integer :: MPI_FAILURE
420 parameter( mpi_failure = 1 )
421 integer :: MPI_SUCCESS
422 parameter( mpi_success = 0 )
444 integer :: MPI_FAILURE
445 parameter( mpi_failure = 1 )
446 integer :: MPI_SUCCESS
447 parameter( mpi_success = 0 )
467 integer :: MPI_FAILURE
468 parameter( mpi_failure = 1 )
469 integer :: MPI_SUCCESS
470 parameter( mpi_success = 0 )
494 integer :: MPI_FAILURE
495 parameter( mpi_failure = 1 )
496 integer :: MPI_SUCCESS
497 parameter( mpi_success = 0 )
519 integer :: MPI_FAILURE
520 parameter( mpi_failure = 1 )
521 integer :: MPI_SUCCESS
522 parameter( mpi_success = 0 )
541 integer :: MPI_FAILURE
542 parameter( mpi_failure = 1 )
543 integer :: MPI_SUCCESS
544 parameter( mpi_success = 0 )
562 integer :: MPI_FAILURE
563 parameter( mpi_failure = 1 )
564 integer :: MPI_SUCCESS
565 parameter( mpi_success = 0 )
569 write ( *,
'(a)' )
' '
570 write ( *,
'(a)' )
'MPI_GET_COUNT - Error!'
571 write ( *,
'(a)' )
' Should not query message from self.'
584 integer :: MPI_FAILURE
585 parameter( mpi_failure = 1 )
586 integer :: MPI_SUCCESS
587 parameter( mpi_success = 0 )
593 subroutine mpi_irecv ( data, n, datatype, iproc, itag, &
594 comm, irequest, ierror )
611 integer :: MPI_FAILURE
612 parameter( mpi_failure = 1 )
613 integer :: MPI_SUCCESS
614 parameter( mpi_success = 0 )
618 write ( *,
'(a)' )
' '
619 write ( *,
'(a)' )
'MPI_IRECV - Error!'
620 write ( *,
'(a)' )
' Should not recv message from self.'
624 subroutine mpi_isend ( data, n, datatype, iproc, itag, &
625 comm, request, ierror )
641 integer :: MPI_FAILURE
642 parameter( mpi_failure = 1 )
643 integer :: MPI_SUCCESS
644 parameter( mpi_success = 0 )
650 write ( *,
'(a)' )
' '
651 write ( *,
'(a)' )
'MPI_ISEND - Error!'
652 write ( *,
'(a)' )
' Should not send message to self.'
656 subroutine mpi_recv ( data, n, datatype, iproc, itag, &
657 comm, istatus, ierror )
674 integer :: MPI_FAILURE
675 parameter( mpi_failure = 1 )
676 integer :: MPI_SUCCESS
677 parameter( mpi_success = 0 )
681 write ( *,
'(a)' )
' '
682 write ( *,
'(a)' )
'MPI_RECV - Error!'
683 write ( *,
'(a)' )
' Should not recv message from self.'
687 subroutine mpi_reduce ( data1, data2, n, datatype, operation, &
688 receiver,
comm, ierror )
696 include
"mpi_dummy.h"
710 if ( datatype == mpi_double_precision )
then
713 data1, data2, n, operation, ierror )
715 else if ( datatype == mpi_integer )
then
718 data1, data2, n, operation, ierror )
720 else if ( datatype == mpi_real )
then
723 data1, data2, n, operation, ierror )
734 data1, data2,
n, operation, ierror )
742 include
"mpi_dummy.h"
763 data1, data2,
n, operation, ierror )
769 include
"mpi_dummy.h"
773 integer*8 :: data1(n)
774 integer*8 :: data2(n)
791 data1, data2,
n, operation, ierror )
797 include
"mpi_dummy.h"
819 data1, data2,
n, operation, ierror )
829 include
"mpi_dummy.h"
848 operation,
comm, ierror )
856 include
"mpi_dummy.h"
869 if ( datatype == mpi_double_precision )
then
871 else if ( datatype == mpi_integer )
then
873 else if ( datatype == mpi_real )
then
881 subroutine mpi_rsend ( data, n, datatype, iproc, itag, &
898 integer :: MPI_FAILURE
899 parameter( mpi_failure = 1 )
900 integer :: MPI_SUCCESS
901 parameter( mpi_success = 0 )
905 write ( *,
'(a)' )
' '
906 write ( *,
'(a)' )
'MPI_RSEND - Error!'
907 write ( *,
'(a)' )
' Should not send message to self.'
911 subroutine mpi_send ( data, n, datatype, iproc, itag, &
928 integer :: MPI_FAILURE
929 parameter( mpi_failure = 1 )
930 integer :: MPI_SUCCESS
931 parameter( mpi_success = 0 )
935 write ( *,
'(a)' )
' '
936 write ( *,
'(a)' )
'MPI_SEND - Error!'
937 write ( *,
'(a)' )
' Should not send message to self.'
952 integer :: MPI_FAILURE
953 parameter( mpi_failure = 1 )
954 integer :: MPI_SUCCESS
955 parameter( mpi_success = 0 )
959 write ( *,
'(a)' )
' '
960 write ( *,
'(a)' )
'MPI_WAIT - Error!'
961 write ( *,
'(a)' )
' Should not wait on message from self.'
977 integer :: MPI_FAILURE
978 parameter( mpi_failure = 1 )
979 integer :: MPI_SUCCESS
980 parameter( mpi_success = 0 )
984 write ( *,
'(a)' )
' '
985 write ( *,
'(a)' )
'MPI_WAITALL - Error!'
986 write ( *,
'(a)' )
' Should not wait on message from self.'
999 integer :: array_of_requests(*)
1004 integer :: MPI_FAILURE
1005 parameter( mpi_failure = 1 )
1006 integer :: MPI_SUCCESS
1007 parameter( mpi_success = 0 )
1009 ierror = mpi_failure
1011 write ( *,
'(a)' )
' '
1012 write ( *,
'(a)' )
'MPI_WAITANY - Error!'
1013 write ( *,
'(a)' )
' Should not wait on message from self.'
1040 real*4 :: a(2),etime
1043 mpi_wtime = etime(a)
1050 mpi_is_initialized = 0
subroutine mpi_copy_integer(data1, data2, n, ierror)
subroutine mpi_group_free
subroutine mpi_comm_create(icomm, igroup, icommd, ierr)
subroutine mpi_send(data, n, datatype, iproc, itag, comm, ierror)
subroutine mpi_comm_dup(comm, comm_out, ierror)
subroutine mpi_reduce(data1, data2, n, datatype, operation, receiver, comm, ierror)
subroutine mpi_copy_real(data1, data2, n, ierror)
subroutine mpi_recv(data, n, datatype, iproc, itag, comm, istatus, ierror)
subroutine mpi_wait(irequest, istatus, ierror)
subroutine mpi_scan(data1, data2, n, datatype, operation, comm, ierror)
subroutine mpi_reduce_double_precision(data1, data2, n, operation, ierror)
subroutine mpi_init(ierror)
subroutine mpi_get_count(istatus, datatype, icount, ierror)
subroutine mpi_waitany(icount, array_of_requests, index, istatus, ierror)
subroutine mpi_reduce_integer8(data1, data2, n, operation, ierror)
subroutine mpi_cart_shift(comm, idir, idisp, isource, idest, ierror)
subroutine mpi_bcast(data, n, datatype, node, comm, ierror)
real *8 function mpi_wtick()
subroutine mpi_comm_group(icomm, igroup, ierr)
subroutine mpi_reduce_real(data1, data2, n, operation, ierror)
subroutine mpi_allgather(data1, nsend, sendtype, data2, nrecv, recvtype, comm, ierror)
subroutine mpi_comm_split(comm, icolor, ikey, comm_new, ierror)
subroutine mpi_reduce_scatter(data1, data2, n, datatype, operation, comm, ierror)
subroutine mpi_irecv(data, n, datatype, iproc, itag, comm, irequest, ierror)
subroutine mpi_barrier(comm, ierror)
subroutine mpi_bsend(data, n, datatype, iproc, itag, comm, ierror)
subroutine mpi_rsend(data, n, datatype, iproc, itag, comm, ierror)
subroutine mpi_finalize(ierror)
subroutine mpi_allreduce(data1, data2, n, datatype, operation, comm, ierror)
subroutine mpi_copy_double_precision(data1, data2, n, ierror)
subroutine mpi_abort(comm, errorcode, ierror)
subroutine mpi_cart_create(comm, ndims, dims, periods, reorder, comm_cart, ierror)
subroutine mpi_reduce_integer(data1, data2, n, operation, ierror)
subroutine mpi_cart_get(comm, ndims, dims, periods, coords, ierror)
subroutine mpi_comm_rank(comm, me, ierror)
subroutine mpi_allgatherv(data1, nsend, sendtype, data2, nrecv, ndispls, recvtype, comm, ierror)
subroutine mpi_attr_get(icomm, ikey, ival, iflag, ierr)
subroutine mpi_comm_free(comm, ierror)
subroutine mpi_comm_size(comm, nprocs, ierror)
real *8 function mpi_wtime()
subroutine mpi_waitall(icount, irequest, istatus, ierror)
subroutine mpi_isend(data, n, datatype, iproc, itag, comm, request, ierror)
subroutine mpi_initialized(mpi_is_initialized, ierr)