2 subroutine mpi_scan(data1, data2, n, datatype,
3 & operation, comm, ierror )
20 if ( datatype .eq. mpi_double_precision )
then
22 call copy ( data2, data1, n )
24 else if ( datatype .eq. mpi_integer )
then
26 call icopy ( data2, data1, n )
28 else if ( datatype .eq. mpi_integer8 )
then
30 call i8copy ( data2, data1, n )
32 else if ( datatype .eq. mpi_real )
then
34 call rrcopy ( data2, data1, n )
58 parameter( mpi_failure = 1 )
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 )
94 if ( sendtype .eq. mpi_double_precision )
then
96 else if ( sendtype .eq. mpi_integer )
then
98 else if ( sendtype .eq. mpi_real )
then
107 & data2, nrecv, ndispls, recvtype, comm, ierror )
115 include
"mpi_dummy.h"
130 if ( sendtype .eq. mpi_double_precision )
then
132 else if ( sendtype .eq. mpi_integer )
then
134 else if ( sendtype .eq. mpi_real )
then
143 & operation, comm, ierror )
151 include
"mpi_dummy.h"
164 if ( datatype .eq. mpi_double_precision )
then
167 & data1, data2, n, operation, ierror )
169 else if ( datatype .eq. mpi_integer )
then
172 & data1, data2, n, operation, ierror )
174 else if ( datatype .eq. mpi_integer8 )
then
177 & data1, data2, n, operation, ierror )
179 else if ( datatype .eq. mpi_real )
then
182 & data1, data2, n, operation, ierror )
204 parameter ( MPI_FAILURE = 1 )
206 parameter( mpi_success = 0 )
212 subroutine mpi_bcast ( data, n, datatype, node, comm, ierror )
227 parameter( mpi_failure = 1 )
229 parameter( mpi_success = 0 )
254 parameter( mpi_failure = 1 )
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 )
282 parameter ( MPI_FAILURE = 1 )
284 parameter( mpi_success = 0 )
309 parameter ( MPI_FAILURE = 1 )
311 parameter( mpi_success = 0 )
338 parameter ( MPI_FAILURE = 1 )
340 parameter( mpi_success = 0 )
360 parameter ( MPI_FAILURE = 1 )
362 parameter( mpi_success = 0 )
380 parameter ( MPI_FAILURE = 1 )
382 parameter( mpi_success = 0 )
400 parameter ( MPI_FAILURE = 1 )
402 parameter( mpi_success = 0 )
420 parameter ( MPI_FAILURE = 1 )
422 parameter( mpi_success = 0 )
445 parameter ( MPI_FAILURE = 1 )
447 parameter ( MPI_SUCCESS = 0 )
468 parameter( mpi_failure = 1 )
470 parameter( mpi_success = 0 )
495 parameter( mpi_failure = 1 )
497 parameter( mpi_success = 0 )
520 parameter( mpi_failure = 1 )
522 parameter( mpi_success = 0 )
542 parameter ( MPI_FAILURE = 1 )
544 parameter( mpi_success = 0 )
563 parameter ( MPI_FAILURE = 1 )
565 parameter( mpi_success = 0 )
569 write ( *,
'(a)' )
' '
570 write ( *,
'(a)' )
'MPI_GET_COUNT - Error!'
571 write ( *,
'(a)' )
' Should not query message from self.'
585 parameter ( MPI_FAILURE = 1 )
587 parameter( mpi_success = 0 )
589 write(6,*)
'Initialize dummy MPI library'
595 & comm, irequest, ierror )
613 parameter( mpi_failure = 1 )
615 parameter( mpi_success = 0 )
619 write ( *,
'(a)' )
' '
620 write ( *,
'(a)' )
'MPI_IRECV - Error!'
621 write ( *,
'(a)' )
' Should not recv message from self.'
626 & comm, request, ierror )
643 parameter( mpi_failure = 1 )
645 parameter( mpi_success = 0 )
651 write ( *,
'(a)' )
' '
652 write ( *,
'(a)' )
'MPI_ISEND - Error!'
653 write ( *,
'(a)' )
' Should not send message to self.'
657 subroutine mpi_recv ( data, n, datatype, iproc, itag,
658 & comm, istatus, ierror )
676 parameter( mpi_failure = 1 )
678 parameter( mpi_success = 0 )
682 write ( *,
'(a)' )
' '
683 write ( *,
'(a)' )
'MPI_RECV - Error!'
684 write ( *,
'(a)' )
' Should not recv message from self.'
688 subroutine mpi_reduce ( data1, data2, n, datatype, operation,
689 & receiver, comm, ierror )
697 include
"mpi_dummy.h"
711 if ( datatype .eq. mpi_double_precision )
then
714 & data1, data2, n, operation, ierror )
716 else if ( datatype .eq. mpi_integer )
then
719 & data1, data2, n, operation, ierror )
721 else if ( datatype .eq. mpi_real )
then
724 & data1, data2, n, operation, ierror )
735 & data1, data2, n, operation, ierror )
743 include
"mpi_dummy.h"
764 & data1, data2, n, operation, ierror )
770 include
"mpi_dummy.h"
792 & data1, data2, n, operation, ierror )
798 include
"mpi_dummy.h"
820 & data1, data2, n, operation, ierror )
830 include
"mpi_dummy.h"
849 & operation, comm, ierror )
857 include
"mpi_dummy.h"
870 if ( datatype .eq. mpi_double_precision )
then
872 else if ( datatype .eq. mpi_integer )
then
874 else if ( datatype .eq. mpi_real )
then
900 parameter( mpi_failure = 1 )
902 parameter ( MPI_SUCCESS = 0 )
906 write ( *,
'(a)' )
' '
907 write ( *,
'(a)' )
'MPI_RSEND - Error!'
908 write ( *,
'(a)' )
' Should not send message to self.'
912 subroutine mpi_send ( data, n, datatype, iproc, itag,
930 parameter( mpi_failure = 1 )
932 parameter( mpi_success = 0 )
936 write ( *,
'(a)' )
' '
937 write ( *,
'(a)' )
'MPI_SEND - Error!'
938 write ( *,
'(a)' )
' Should not send message to self.'
954 parameter( mpi_failure = 1 )
956 parameter( mpi_success = 0 )
960 write ( *,
'(a)' )
' '
961 write ( *,
'(a)' )
'MPI_WAIT - Error!'
962 write ( *,
'(a)' )
' Should not wait on message from self.'
979 parameter ( MPI_FAILURE = 1 )
981 parameter( mpi_success = 0 )
985 write ( *,
'(a)' )
' '
986 write ( *,
'(a)' )
'MPI_WAITALL - Error!'
987 write ( *,
'(a)' )
' Should not wait on message from self.'
1000 integer array_of_requests(*)
1006 parameter( mpi_failure = 1 )
1008 parameter( mpi_success = 0 )
1010 ierror = mpi_failure
1012 write ( *,
'(a)' )
' '
1013 write ( *,
'(a)' )
'MPI_WAITANY - Error!'
1014 write ( *,
'(a)' )
' Should not wait on message from self.'
1051 mpi_is_initialized = 0
1067 call exitti(
'mpi_intercomm_create not supported!$',1)
1074 call exitti(
'mpi_intercomm_merge not supported!$',1)
1114 include
"mpi_dummy.h"
1117 if (ikey.eq.mpi_double_precision) isize = 8
1118 if (ikey.eq.mpi_integer) isize = 4
1119 if (ikey.eq.mpi_integer8) isize = 8
subroutine exitti(stringi, idata)
subroutine icopy(a, b, n)
subroutine rrcopy(r, d, N)
subroutine i8copy(a, b, n)
subroutine mpi_barrier(comm, ierror)
subroutine mpi_initialized(mpi_is_initialized, ierr)
subroutine mpi_comm_dup(comm, comm_out, ierror)
subroutine mpi_intercomm_merge(icomm, ihigh, icommd, ierr)
subroutine mpi_cart_get(comm, ldims, dims, periods, coords, ierror)
subroutine mpi_scan(data1, data2, n, datatype, operation, comm, ierror)
subroutine mpi_reduce_real(data1, data2, n, operation, ierror)
subroutine mpi_isend(data, n, datatype, iproc, itag, comm, request, ierror)
subroutine mpi_rsend(data, n, datatype, iproc, itag, comm, ierror)
subroutine mpi_finalize(ierror)
subroutine mpi_comm_create(icomm, igroup, icommd, ierr)
subroutine mpi_reduce_double_precision(data1, data2, n, operation, ierror)
subroutine mpi_recv(data, n, datatype, iproc, itag, comm, istatus, ierror)
subroutine mpi_type_get_extent(ikey, ib, isize, ierr)
subroutine mpi_waitany(icount, array_of_requests, index, istatus, ierror)
subroutine mpi_comm_split(comm, icolor, ikey, comm_new, ierror)
subroutine mpi_group_free
subroutine mpi_abort(comm, errorcode, ierror)
subroutine mpi_wait(irequest, istatus, ierror)
subroutine mpi_cart_create(comm, ldims, dims, periods, reorder, comm_cart, ierror)
subroutine mpi_reduce(data1, data2, n, datatype, operation, receiver, comm, ierror)
subroutine mpi_copy_integer(data1, data2, n, ierror)
subroutine mpi_attr_get(icomm, ikey, ival, iflag, ierr)
subroutine mpi_reduce_scatter(data1, data2, n, datatype, operation, comm, ierror)
subroutine mpi_comm_free(comm, ierror)
subroutine mpi_reduce_integer(data1, data2, n, operation, ierror)
subroutine mpi_allgather(data1, nsend, sendtype, data2, nrecv, recvtype, comm, ierror)
subroutine mpi_comm_rank(comm, me, ierror)
subroutine mpi_bsend(data, n, datatype, iproc, itag, comm, ierror)
subroutine mpi_comm_group(icomm, igroup, ierr)
subroutine mpi_init(ierror)
subroutine mpi_reduce_integer8(data1, data2, n, operation, ierror)
subroutine mpi_waitall(icount, irequest, istatus, ierror)
subroutine mpi_copy_real(data1, data2, n, ierror)
subroutine mpi_comm_size(comm, nprocs, ierror)
real *8 function mpi_wtick()
subroutine mpi_allreduce(data1, data2, n, datatype, operation, comm, ierror)
subroutine mpi_copy_double_precision(data1, data2, n, ierror)
subroutine mpi_comm_get_attr(icomm, ikey, ival, iflag, ierr)
subroutine mpi_irecv(data, n, datatype, iproc, itag, comm, irequest, ierror)
subroutine mpi_bcast(data, n, datatype, node, comm, ierror)
subroutine mpi_allgatherv(data1, nsend, sendtype, data2, nrecv, ndispls, recvtype, comm, ierror)
real *8 function mpi_wtime()
subroutine mpi_intercomm_create(ilcomm, ill, ipcomm, irl, itag, newcomm, ierr)
subroutine mpi_get_count(istatus, datatype, icount, ierror)
subroutine mpi_send(data, n, datatype, iproc, itag, comm, ierror)
subroutine mpi_cart_shift(comm, idir, idisp, isource, idest, ierror)