24 SUBROUTINE mpi_bsend( BUF, CNT, DATATYPE, DEST, TAG, COMM,
28 INTEGER CNT, DATATYPE, DEST, TAG, COMM, IERR
30 WRITE(*,*)
'Error. MPI_BSEND should not be called.'
54 & DATATYPE, RECVBUF, RECCNT, RECTYPE,
57 INTEGER CNT, DATATYPE, RECCNT, RECTYPE, ROOT, COMM, IERR
58 INTEGER SENDBUF(*), RECVBUF(*)
59 IF ( reccnt .NE. cnt )
THEN
60 WRITE(*,*)
'ERROR in MPI_GATHER, RECCNT != CNT'
63 CALL mumps_copy( cnt, sendbuf, recvbuf, datatype, ierr )
64 IF ( ierr .NE. 0 )
THEN
65 WRITE(*,*)
'ERROR in MPI_GATHER, DATATYPE=',datatype
74 & DATATYPE, RECVBUF, RECCNT, DISPLS, RECTYPE,
77 INTEGER CNT, DATATYPE, RECTYPE, ROOT, COMM, IERR
79 INTEGER SENDBUF(*), RECVBUF(*)
87 IF ( reccnt(1) .NE. cnt )
THEN
88 WRITE(*,*)
'ERROR in MPI_GATHERV, RECCNT(1) != CNT'
91 CALL mumps_copy( cnt, sendbuf, recvbuf, datatype, ierr )
92 IF ( ierr .NE. 0 )
THEN
93 WRITE(*,*)
'ERROR in MPI_GATHERV, DATATYPE=',datatype
102 & OPERATION, COMM, IERR )
104 INTEGER CNT, DATATYPE, OPERATION, COMM, IERR
105 INTEGER SENDBUF(*), RECVBUF(*)
106 LOGICAL,
EXTERNAL :: MUMPS_IS_IN_PLACE
107 IF (.NOT. mumps_is_in_place(sendbuf, cnt))
THEN
108 CALL mumps_copy( cnt, sendbuf, recvbuf, datatype, ierr )
109 IF ( ierr .NE. 0 )
THEN
110 WRITE(*,*)
'ERROR in MPI_ALLREDUCE, DATATYPE=',datatype
121 INTEGER CNT, DATATYPE, OP, ROOT, COMM, IERR
122 INTEGER SENDBUF(*), RECVBUF(*)
123 LOGICAL,
EXTERNAL :: MUMPS_IS_IN_PLACE
124 IF (.NOT. MUMPS_IS_IN_PLACE(SENDBUF, CNT)) THEN
125 CALL mumps_copy( cnt, sendbuf, recvbuf, datatype, ierr )
126 IF ( ierr .NE. 0 )
THEN
127 WRITE(*,*)
'ERROR in MPI_REDUCE, DATATYPE=',datatype
136 & DATATYPE, OP, COMM, IERR )
138 INTEGER RCVCNT, DATATYPE, OP, COMM, IERR
139 INTEGER SENDBUF(*), RECVBUF(*)
140 LOGICAL,
EXTERNAL :: MUMPS_IS_IN_PLACE
141 IF (.NOT. mumps_is_in_place(sendbuf, rcvcnt))
THEN
142 CALL mumps_copy( rcvcnt, sendbuf, recvbuf, datatype, ierr )
143 IF ( ierr .NE. 0 )
THEN
144 WRITE(*,*)
'ERROR in MPI_REDUCE_SCATTER, DATATYPE=',datatype
154 INTEGER COMM, IERRCODE, IERR
155 WRITE(*,*)
"** MPI_ABORT called"
160 & RECVBUF, RECVCNT, RECVTYPE, COMM, IERR )
162 INTEGER SENDCNT, SENDTYPE, RECVCNT, RECVTYPE, COMM, IERR
163 INTEGER SENDBUF(*), RECVBUF(*)
164 IF ( recvcnt .NE. sendcnt )
THEN
165 WRITE(*,*)
'ERROR in MPI_ALLTOALL, RECVCNT != SENDCNT'
167 ELSE IF ( recvtype .NE. sendtype )
THEN
168 WRITE(*,*)
'ERROR in MPI_ALLTOALL, RECVTYPE != SENDTYPE'
171 CALL mumps_copy( sendcnt, sendbuf, recvbuf, sendtype, ierr )
172 IF ( ierr .NE. 0 )
THEN
173 WRITE(*,*)
'ERROR in MPI_ALLTOALL, SENDTYPE=',sendtype
183 INTEGER COMM, KEY, VAL, IERR
196 CHARACTER (LEN=*) NAME
197 INTEGER RESULTLEN,IERROR
204 SUBROUTINE mpi_bcast( BUFFER, CNT, DATATYPE, ROOT, COMM, IERR )
207 INTEGER CNT, DATATYPE, ROOT, COMM, IERR
224 INTEGER COMM, GROUP, COMM2, IERR
232 INTEGER COMM, COMM2, IERR
248 INTEGER COMM, GROUP, IERR
256 INTEGER COMM, RANK, IERR
265 INTEGER COMM, SIZE, IERR
274 INTEGER COMM, COLOR, KEY, COMM2, IERR
298 INTEGER DATATYPE, CNT, IERR
299 INTEGER STATUS( MPI_STATUS_SIZE )
300 WRITE(*,*)
'Error. MPI_GET_CNT should not be called.'
317 INTEGER GROUP, N, GROUP2, IERR
326 INTEGER GROUP, SIZE, IERR
335 INTEGER IERR, MPI_THREAD_REQ, THREAD_SUPPORT
337 thread_support=mpi_thread_req
359 SUBROUTINE mpi_iprobe( SOURCE, TAG, COMM, FLAG, STATUS, IERR )
362 INTEGER SOURCE, TAG, COMM, IERR
363 INTEGER STATUS(MPI_STATUS_SIZE)
370 SUBROUTINE mpi_irecv( BUF, CNT, DATATYPE, SOURCE, TAG, COMM,
374 INTEGER CNT, DATATYPE, SOURCE, TAG, COMM, IREQ, IERR
380 SUBROUTINE mpi_isend( BUF, CNT, DATATYPE, DEST, TAG, COMM,
384 INTEGER CNT, DATATYPE, DEST, TAG, COMM, IERR, IREQ
386 WRITE(*,*)
'Error. MPI_ISEND should not be called.'
394 INTEGER NEWTYP, IERR_MPI
400 INTEGER NEWTYP, IERR_MPI
407 INTEGER LENGTH, DATATYPE, NEWTYPE, IERR_MPI
426 SUBROUTINE mpi_pack( INBUF, INCNT, DATATYPE, OUTBUF, OUTCNT,
427 & POSITION, COMM, IERR )
430 INTEGER INCNT, DATATYPE, OUTCNT, POSITION, COMM, IERR
431 INTEGER INBUF(*), OUTBUF(*)
432 WRITE(*,*)
'Error. MPI_PACKED should not be called.'
441 INTEGER INCNT, DATATYPE, COMM, SIZE, IERR
442 WRITE(*,*)
'Error. MPI_PACK_SIZE should not be called.'
451 INTEGER SOURCE, TAG, COMM, IERR
452 INTEGER STATUS( MPI_STATUS_SIZE )
453 WRITE(*,*)
'Error. MPI_PROBE should not be called.'
459 SUBROUTINE mpi_recv( BUF, CNT, DATATYPE, SOURCE, TAG, COMM,
463 INTEGER CNT, DATATYPE, SOURCE, TAG, COMM, IERR
464 INTEGER BUF(*), STATUS(MPI_STATUS_SIZE)
465 WRITE(*,*)
'Error. MPI_RECV should not be called.'
479 SUBROUTINE mpi_send( BUF, CNT, DATATYPE, DEST, TAG, COMM, IERR )
482 INTEGER CNT, DATATYPE, DEST, TAG, COMM, IERR
484 WRITE(*,*)
'Error. MPI_SEND should not be called.'
490 SUBROUTINE mpi_ssend( BUF, CNT, DATATYPE, DEST, TAG, COMM, IERR)
493 INTEGER CNT, DATATYPE, DEST, TAG, COMM, IERR
495 WRITE(*,*)
'Error. MPI_SSEND should not be called.'
505 INTEGER STATUS( MPI_STATUS_SIZE )
512 SUBROUTINE mpi_unpack( INBUF, INSIZE, POSITION, OUTBUF, OUTCNT,
513 & DATATYPE, COMM, IERR )
516 INTEGER INSIZE, POSITION, OUTCNT, DATATYPE, COMM, IERR
517 INTEGER INBUF(*), OUTBUF(*)
518 WRITE(*,*)
'Error. MPI_UNPACK should not be called.'
528 INTEGER STATUS( MPI_STATUS_SIZE )
529 WRITE(*,*)
'Error. MPI_WAIT should not be called.'
539 INTEGER STATUS( MPI_STATUS_SIZE )
540 INTEGER ARRAY_OF_REQUESTS( CNT )
541 WRITE(*,*)
'Error. MPI_WAITALL should not be called.'
551 INTEGER CNT, INDEX, IERR
552 INTEGER STATUS( MPI_STATUS_SIZE )
553 INTEGER ARRAY_OF_REQUESTS( CNT )
554 WRITE(*,*)
'Error. MPI_WAITANY should not be called.'
577 SUBROUTINE mumps_copy( CNT, SENDBUF, RECVBUF, DATATYPE, IERR )
580 INTEGER CNT, DATATYPE, IERR
581 INTEGER SENDBUF(*), RECVBUF(*)
582 IF ( DATATYPE .EQ. MPI_INTEGER ) THEN
584 ELSEIF ( datatype .EQ. mpi_logical )
THEN
586 ELSE IF ( datatype .EQ. mpi_real )
THEN
588 ELSE IF ( datatype .EQ. mpi_double_precision .OR.
589 & datatype .EQ. mpi_real8 )
THEN
591 ELSE IF ( datatype .EQ. mpi_complex )
THEN
593 ELSE IF ( datatype .EQ. mpi_double_complex )
THEN
595 ELSE IF ( datatype .EQ. mpi_2double_precision)
THEN
597 ELSE IF ( datatype .EQ. mpi_2integer)
THEN
599 ELSE IF ( datatype .EQ. mpi_integer8)
THEN
642 INTEGER S(N+N),R(N+N)
662 DOUBLE PRECISION S(N+N),R(N+N)
672 DOUBLE PRECISION S(N),R(N)
693 COMPLEX(kind=kind(0.0D0)) :: S(N),R(N)
701 INTEGER sendbuf(*), cnt
706 IF ( cnt .GT. 0 )
THEN
707 CALL mumps_checkaddrequal(sendbuf(1), mpi_in_place, i)
746 INTEGER CNTXT, NPROW, NPCOL
748 WRITE(*,*)
'Error. BLACS_GRIDINIT should not be called.'
751 END SUBROUTINE blacs_gridinit
753 SUBROUTINE blacs_gridinfo( CNTXT, NPROW, NPCOL, MYROW, MYCOL )
755 INTEGER CNTXT, NPROW, NPCOL, MYROW, MYCOL
756 WRITE(*,*)
'Error. BLACS_GRIDINFO should not be called.'
759 END SUBROUTINE blacs_gridinfo
764 WRITE(*,*)
'Error. BLACS_GRIDEXIT should not be called.'
775 SUBROUTINE descinit( DESC, M, N, MB, NB, IRSRC, ICSRC,
778 INTEGER ICSRC, ICTXT, INFO, IRSRC, LLD, M, MB, N, NB
780 WRITE(*,*)
'Error. DESCINIT should not be called.'
785 INTEGER FUNCTION numroc( N, NB, IPROC, ISRCPROC, NPROCS )
786 INTEGER n, nb, iproc, isrcproc, nprocs
788 if ( nprocs .ne. 1 ) then
789 write(*,*)
'Error. Last parameter from NUMROC should be 1'
792 IF ( iproc .ne. 0 )
THEN
793 WRITE(*,*)
'Error. IPROC should be 0 in NUMROC.'
800 SUBROUTINE pcpotrf( UPLO, N, A, IA, JA, DESCA, INFO )
803 INTEGER IA, INFO, JA, N
806 WRITE(*,*)
'Error. PCPOTRF should not be called.'
811 SUBROUTINE pcgetrf( M, N, A, IA, JA, DESCA, IPIV, INFO )
813 INTEGER IA, INFO, JA, M, N
814 INTEGER DESCA( * ), IPIV( * )
816 WRITE(*,*)
'Error. PCGETRF should not be called.'
821 SUBROUTINE pctrtrs( UPLO, TRANS, DIAG, N, NRHS, A, IA, JA, DESCA,
822 & B, IB, JB, DESCB, INFO )
824 CHARACTER DIAG, TRANS, UPLO
825 INTEGER IA, IB, INFO, JA, JB, N, NRHS
826 INTEGER DESCA( * ), DESCB( * )
827 COMPLEX A( * ), B( * )
828 WRITE(*,*)
'Error. PCTRTRS should not be called.'
833 SUBROUTINE pzpotrf( UPLO, N, A, IA, JA, DESCA, INFO )
836 INTEGER IA, INFO, JA, N
839 COMPLEX(kind=kind(0.0D0)) :: A( * )
840 WRITE(*,*)
'Error. PZPOTRF should not be called.'
845 SUBROUTINE pzgetrf( M, N, A, IA, JA, DESCA, IPIV, INFO )
847 INTEGER IA, INFO, JA, M, N
848 INTEGER DESCA( * ), IPIV( * )
850 COMPLEX(kind=kind(0.0D0)) :: A( * )
851 WRITE(*,*)
'Error. PZGETRF should not be called.'
856 SUBROUTINE pztrtrs( UPLO, TRANS, DIAG, N, NRHS, A, IA, JA, DESCA,
857 & B, IB, JB, DESCB, INFO )
859 CHARACTER DIAG, TRANS, UPLO
860 INTEGER IA, IB, INFO, JA, JB, N, NRHS
861 INTEGER DESCA( * ), DESCB( * )
863 COMPLEX(kind=kind(0.0D0)) :: A( * ), B( * )
864 WRITE(*,*)
'Error. PZTRTRS should not be called.'
869 SUBROUTINE pspotrf( UPLO, N, A, IA, JA, DESCA, INFO )
872 INTEGER IA, INFO, JA, N
875 WRITE(*,*)
'Error. PSPOTRF should not be called.'
880 SUBROUTINE psgetrf( M, N, A, IA, JA, DESCA, IPIV, INFO )
882 INTEGER IA, INFO, JA, M, N
883 INTEGER DESCA( * ), IPIV( * )
885 WRITE(*,*)
'Error. PSGETRF should not be called.'
890 SUBROUTINE pstrtrs( UPLO, TRANS, DIAG, N, NRHS, A, IA, JA, DESCA,
891 & B, IB, JB, DESCB, INFO )
893 CHARACTER DIAG, TRANS, UPLO
894 INTEGER IA, IB, INFO, JA, JB, N, NRHS
895 INTEGER DESCA( * ), DESCB( * )
897 WRITE(*,*)
'Error. PSTRTRS should not be called.'
902 SUBROUTINE pdpotrf( UPLO, N, A, IA, JA, DESCA, INFO )
905 INTEGER IA, INFO, JA, N
907 DOUBLE PRECISION A( * )
908 WRITE(*,*)
'Error. PDPOTRF should not be called.'
913 SUBROUTINE pdgetrf( M, N, A, IA, JA, DESCA, IPIV, INFO )
915 INTEGER IA, INFO, JA, M, N
916 INTEGER DESCA( * ), IPIV( * )
917 DOUBLE PRECISION A( * )
918 WRITE(*,*)
'Error. PDGETRF should not be called.'
923 SUBROUTINE pdtrtrs( UPLO, TRANS, DIAG, N, NRHS, A, IA, JA, DESCA,
924 & B, IB, JB, DESCB, INFO )
926 CHARACTER DIAG, TRANS, UPLO
927 INTEGER IA, IB, INFO, JA, JB, N, NRHS
928 INTEGER DESCA( * ), DESCB( * )
929 DOUBLE PRECISION A( * ), B( * )
930 WRITE(*,*)
'Error. PDTRTRS should not be called.'
935 SUBROUTINE infog2l( GRINDX, GCINDX, DESC, NPROW, NPCOL, MYROW,
936 & MYCOL, LRINDX, LCINDX, RSRC, CSRC )
938 INTEGER CSRC, GCINDX, GRINDX, LRINDX, LCINDX, MYCOL,
939 & myrow, npcol, nprow, rsrc
941 WRITE(*,*)
'Error. INFOG2L should not be called.'
946 INTEGER FUNCTION indxg2p( INDXGLOB, NB, IPROC, ISRCPROC, NPROCS )
947 INTEGER indxglob, iproc, isrcproc, nb, nprocs
949 WRITE(*,*)
'Error. INFOG2L should not be called.'
954 SUBROUTINE pcscal(N, ALPHA, X, IX, JX, DESCX, INCX)
956 INTEGER INCX, N, IX, JX
960 WRITE(*,*)
'Error. PCSCAL should not be called.'
965 SUBROUTINE pzscal(N, ALPHA, X, IX, JX, DESCX, INCX)
967 INTEGER INCX, N, IX, JX
970 COMPLEX(kind=kind(0.0D0)) :: ALPHA, X( * )
972 WRITE(*,*)
'Error. PZSCAL should not be called.'
977 SUBROUTINE pdscal(N, ALPHA, X, IX, JX, DESCX, INCX)
979 INTEGER INCX, N, IX, JX
980 DOUBLE PRECISION ALPHA
981 DOUBLE PRECISION X( * )
983 WRITE(*,*)
'Error. PDSCAL should not be called.'
988 SUBROUTINE psscal(N, ALPHA, X, IX, JX, DESCX, INCX)
990 INTEGER INCX, N, IX, JX
994 WRITE(*,*)
'Error. PSSCAL should not be called.'
1000 & ( n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy )
1002 INTEGER N, IX, JX, IY, JY, INCX, INCY
1003 INTEGER DESCX(*), DESCY(*)
1005 COMPLEX(kind=kind(0.0D0)) :: X(*), Y(*)
1006 DOUBLE PRECISION DOT
1008 WRITE(*,*)
'Error. PZDOT should not be called.'
1011 END SUBROUTINE pzdot
1014 & ( n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy )
1016 INTEGER N, IX, JX, IY, JY, INCX, INCY
1017 INTEGER DESCX(*), DESCY(*)
1021 WRITE(*,*)
'Error. PCDOT should not be called.'
1024 END SUBROUTINE pcdot
1027 & ( n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy )
1029 INTEGER N, IX, JX, IY, JY, INCX, INCY
1030 INTEGER DESCX(*), DESCY(*)
1031 DOUBLE PRECISION X(*), Y(*), DOT
1033 WRITE(*,*)
'Error. PDDOT should not be called.'
1036 END SUBROUTINE pddot
1039 & ( n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy )
1041 INTEGER N, IX, JX, IY, JY, INCX, INCY
1042 INTEGER DESCX(*), DESCY(*)
1043 REAL X(*), Y(*), DOT
1045 WRITE(*,*)
'Error. PSDOT should not be called.'
1048 END SUBROUTINE psdot
1050 SUBROUTINE zgebs2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1052 INTEGER CONTXT, M, N, LDA
1054 COMPLEX(kind=kind(0.0D0)) :: A(*)
1055 CHARACTER SCOPE, TOP
1056 WRITE(*,*)
'Error. ZGEBS2D should not be called.'
1061 SUBROUTINE cgebs2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1063 INTEGER CONTXT, M, N, LDA
1065 CHARACTER SCOPE, TOP
1066 WRITE(*,*)
'Error. CGEBS2D should not be called.'
1071 SUBROUTINE sgebs2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1073 INTEGER CONTXT, M, N, LDA
1075 CHARACTER SCOPE, TOP
1076 WRITE(*,*)
'Error. SGEBS2D should not be called.'
1081 SUBROUTINE dgebs2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1083 INTEGER CONTXT, M, N, LDA
1084 DOUBLE PRECISION A(*)
1085 CHARACTER SCOPE, TOP
1086 WRITE(*,*)
'Error. DGEBS2D should not be called.'
1091 SUBROUTINE zgebr2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1093 INTEGER CONTXT, M, N, LDA
1095 COMPLEX(kind=kind(0.0D0)) :: A(*)
1096 CHARACTER SCOPE, TOP
1097 WRITE(*,*)
'Error. ZGEBR2D should not be called.'
1102 SUBROUTINE cgebr2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1104 INTEGER CONTXT, M, N, LDA
1106 CHARACTER SCOPE, TOP
1107 WRITE(*,*)
'Error. CGEBR2D should not be called.'
1112 SUBROUTINE sgebr2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1114 INTEGER CONTXT, M, N, LDA
1116 CHARACTER SCOPE, TOP
1117 WRITE(*,*)
'Error. SGEBR2D should not be called.'
1122 SUBROUTINE dgebr2d( CONTXT, SCOPE, TOP, M, N, A, LDA )
1124 INTEGER CONTXT, M, N, LDA
1125 DOUBLE PRECISION A(*)
1126 CHARACTER SCOPE, TOP
1127 WRITE(*,*)
'Error. DGEBR2D should not be called.'
1132 SUBROUTINE pcgetrs( TRANS, N, NRHS, A, IA, JA, DESCA, IPIV, B,
1133 & IB, JB, DESCB, INFO )
1136 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1137 INTEGER DESCA( * ), DESCB( * ), IPIV( * )
1138 COMPLEX A( * ), B( * )
1139 WRITE(*,*)
'Error. PCGETRS should not be called.'
1144 SUBROUTINE pzgetrs( TRANS, N, NRHS, A, IA, JA, DESCA, IPIV, B,
1145 & IB, JB, DESCB, INFO )
1148 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1149 INTEGER DESCA( * ), DESCB( * ), IPIV( * )
1151 COMPLEX(kind=kind(0.0D0)) :: A( * ), B( * )
1152 WRITE(*,*)
'Error. PZGETRS should not be called.'
1157 SUBROUTINE psgetrs( TRANS, N, NRHS, A, IA, JA, DESCA, IPIV, B,
1158 & IB, JB, DESCB, INFO )
1161 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1162 INTEGER DESCA( * ), DESCB( * ), IPIV( * )
1164 WRITE(*,*)
'Error. PSGETRS should not be called.'
1169 SUBROUTINE pdgetrs( TRANS, N, NRHS, A, IA, JA, DESCA, IPIV, B,
1170 & IB, JB, DESCB, INFO )
1173 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1174 INTEGER DESCA( * ), DESCB( * ), IPIV( * )
1175 DOUBLE PRECISION A( * ), B( * )
1176 WRITE(*,*)
'Error. PDGETRS should not be called.'
1181 SUBROUTINE pcpotrs( UPLO, N, NRHS, A, IA, JA, DESCA, B, IB, JB,
1185 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1186 INTEGER DESCA( * ), DESCB( * )
1187 COMPLEX A( * ), B( * )
1188 WRITE(*,*)
'Error. PCPOTRS should not be called.'
1193 SUBROUTINE pzpotrs( UPLO, N, NRHS, A, IA, JA, DESCA, B, IB, JB,
1197 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1198 INTEGER DESCA( * ), DESCB( * )
1200 COMPLEX(kind=kind(0.0D0)) :: A( * ), B( * )
1201 WRITE(*,*)
'Error. PZPOTRS should not be called.'
1206 SUBROUTINE pspotrs( UPLO, N, NRHS, A, IA, JA, DESCA, B, IB, JB,
1210 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1211 INTEGER DESCA( * ), DESCB( * )
1213 WRITE(*,*)
'Error. PSPOTRS should not be called.'
1218 SUBROUTINE pdpotrs( UPLO, N, NRHS, A, IA, JA, DESCA, B, IB, JB,
1222 INTEGER IA, IB, INFO, JA, JB, N, NRHS
1223 INTEGER DESCA( * ), DESCB( * )
1224 DOUBLE PRECISION A( * ), B( * )
1225 WRITE(*,*)
'Error. PDPOTRS should not be called.'
1230 SUBROUTINE pscnrm2( N, NORM2, X, IX, JX, DESCX, INCX )
1232 INTEGER N, IX, JX, INCX
1236 WRITE(*,*)
'Error. PCNRM2 should not be called.'
1241 SUBROUTINE pdznrm2( N, NORM2, X, IX, JX, DESCX, INCX )
1243 INTEGER N, IX, JX, INCX
1245 DOUBLE PRECISION NORM2
1247 COMPLEX(kind=kind(0.0D0)) :: X( * )
1248 WRITE(*,*)
'Error. PZNRM2 should not be called.'
1253 SUBROUTINE psnrm2( N, NORM2, X, IX, JX, DESCX, INCX )
1255 INTEGER N, IX, JX, INCX
1258 WRITE(*,*)
'Error. PSNRM2 should not be called.'
1263 SUBROUTINE pdnrm2( N, NORM2, X, IX, JX, DESCX, INCX )
1265 INTEGER N, IX, JX, INCX
1267 DOUBLE PRECISION NORM2, X( * )
1268 WRITE(*,*)
'Error. PDNRM2 should not be called.'
1276 INTEGER ia, ja, m, n
1278 COMPLEX a( * ), work( * )
1280 WRITE(*,*)
'Error. PCLANGE should not be called.'
1285 DOUBLE PRECISION FUNCTION pzlange( NORM, M, N, A, IA, JA,
1288 INTEGER ia, ja, m, n
1290 REAL a( * ), work( * )
1292 WRITE(*,*)
'Error. PZLANGE should not be called.'
1300 INTEGER ia, ja, m, n
1302 REAL a( * ), work( * )
1304 WRITE(*,*)
'Error. PSLANGE should not be called.'
1309 DOUBLE PRECISION FUNCTION pdlange( NORM, M, N, A, IA, JA,
1312 INTEGER ia, ja, m, n
1314 DOUBLE PRECISION a( * ), work( * )
1316 WRITE(*,*)
'Error. PDLANGE should not be called.'
1321 SUBROUTINE pcgecon( NORM, N, A, IA, JA, DESCA, ANORM,
1322 & RCOND, WORK, LWORK, IWORK, LIWORK, INFO )
1326 INTEGER IA, INFO, JA, LIWORK, LWORK, N
1328 INTEGER DESCA( * ), IWORK( * )
1329 COMPLEX A( * ), WORK( * )
1330 WRITE(*,*)
'Error. PCGECON should not be called.'
1335 SUBROUTINE pzgecon( NORM, N, A, IA, JA, DESCA, ANORM,
1336 & RCOND, WORK, LWORK, IWORK, LIWORK, INFO )
1340 INTEGER IA, INFO, JA, LIWORK, LWORK, N
1341 DOUBLE PRECISION ANORM, RCOND
1342 INTEGER DESCA( * ), IWORK( * )
1344 COMPLEX(kind=kind(0.0D0)) :: A( * ), WORK( * )
1345 WRITE(*,*)
'Error. PZGECON should not be called.'
1350 SUBROUTINE psgecon( NORM, N, A, IA, JA, DESCA, ANORM,
1351 & RCOND, WORK, LWORK, IWORK, LIWORK, INFO )
1355 INTEGER IA, INFO, JA, LIWORK, LWORK, N
1357 INTEGER DESCA( * ), IWORK( * )
1358 REAL A( * ), WORK( * )
1359 WRITE(*,*)
'Error. PSGECON should not be called.'
1364 SUBROUTINE pdgecon( NORM, N, A, IA, JA, DESCA, ANORM,
1365 & RCOND, WORK, LWORK, IWORK, LIWORK, INFO )
1369 INTEGER IA, INFO, JA, LIWORK, LWORK, N
1370 DOUBLE PRECISION ANORM, RCOND
1371 INTEGER DESCA( * ), IWORK( * )
1372 DOUBLE PRECISION A( * ), WORK( * )
1373 WRITE(*,*)
'Error. PDGECON should not be called.'
1378 SUBROUTINE pcgeqpf( M, N, A, IA, JA, DESCA, IPIV, TAU,
1379 & WORK, LWORK, INFO )
1381 INTEGER IA, JA, INFO, LWORK, M, N
1382 INTEGER DESCA( * ), IPIV( * )
1383 COMPLEX A( * ), TAU( * ), WORK( * )
1384 WRITE(*,*)
'Error. PCGEQPF should not be called.'
1389 SUBROUTINE pzgeqpf( M, N, A, IA, JA, DESCA, IPIV, TAU,
1390 & WORK, LWORK, INFO )
1392 INTEGER IA, JA, INFO, LWORK, M, N
1393 INTEGER DESCA( * ), IPIV( * )
1395 COMPLEX(kind=kind(0.0D0)) :: A( * ), TAU( * ), WORK( * )
1396 WRITE(*,*)
'Error. PZGEQPF should not be called.'
1401 SUBROUTINE psgeqpf( M, N, A, IA, JA, DESCA, IPIV, TAU,
1402 & WORK, LWORK, INFO )
1404 INTEGER IA, JA, INFO, LWORK, M, N
1405 INTEGER DESCA( * ), IPIV( * )
1406 REAL A( * ), TAU( * ), WORK( * )
1407 WRITE(*,*)
'Error. PSGEQPF should not be called.'
1412 SUBROUTINE pdgeqpf( M, N, A, IA, JA, DESCA, IPIV, TAU,
1413 & WORK, LWORK, INFO )
1415 INTEGER IA, JA, INFO, LWORK, M, N
1416 INTEGER DESCA( * ), IPIV( * )
1417 DOUBLE PRECISION A( * ), TAU( * ), WORK( * )
1418 WRITE(*,*)
'Error. PDGEQPF should not be called.'
1423 SUBROUTINE pcaxpy(N, A, X, IX, JX, DESCX, INCX, Y, IY, JY,
1426 INTEGER N, IX, IY, JX, JY, INCX, INCY
1427 INTEGER DESCX(*), DESCY(*)
1428 COMPLEX A(*),X(*),Y(*)
1429 WRITE(*,*)
'Error. PCAXPY should not be called.'
1434 SUBROUTINE pzaxpy(N, A, X, IX, JX, DESCX, INCX, Y, IY, JY,
1437 INTEGER N, IX, IY, JX, JY, INCX, INCY
1438 INTEGER DESCX(*), DESCY(*)
1440 COMPLEX(kind=kind(0.0D0)) :: A(*),X(*),Y(*)
1441 WRITE(*,*)
'Error. PZAXPY should not be called.'
1446 SUBROUTINE psaxpy(N, A, X, IX, JX, DESCX, INCX, Y, IY, JY,
1449 INTEGER N, IX, IY, JX, JY, INCX, INCY
1450 INTEGER DESCX(*), DESCY(*)
1452 WRITE(*,*)
'Error. PSAXPY should not be called.'
1457 SUBROUTINE pdaxpy(N, A, X, IX, JX, DESCX, INCX, Y, IY, JY,
1460 INTEGER N, IX, IY, JX, JY, INCX, INCY
1461 INTEGER DESCX(*), DESCY(*)
1462 DOUBLE PRECISION A(*),X(*),Y(*)
1463 WRITE(*,*)
'Error. PDAXPY should not be called.'
1468 SUBROUTINE pctrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, IA,
1469 $ JA, DESCA, B, IB, JB, DESCB )
1471 CHARACTER SIDE, UPLO, TRANSA, DIAG
1472 INTEGER M, N, IA, JA, IB, JB
1474 INTEGER DESCA( * ), DESCB( * )
1475 COMPLEX A( * ), B( * )
1476 WRITE(*,*)
'Error. PCTRSM should not be called.'
1481 SUBROUTINE pztrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, IA,
1482 $ JA, DESCA, B, IB, JB, DESCB )
1484 CHARACTER SIDE, UPLO, TRANSA, DIAG
1485 INTEGER M, N, IA, JA, IB, JB
1487 COMPLEX(kind=kind(0.0D0)) :: ALPHA
1488 INTEGER DESCA( * ), DESCB( * )
1490 COMPLEX(kind=kind(0.0D0)) :: A( * ), B( * )
1491 WRITE(*,*)
'Error. PZTRSM should not be called.'
1496 SUBROUTINE pstrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, IA,
1497 $ JA, DESCA, B, IB, JB, DESCB )
1499 CHARACTER SIDE, UPLO, TRANSA, DIAG
1500 INTEGER M, N, IA, JA, IB, JB
1502 INTEGER DESCA( * ), DESCB( * )
1504 WRITE(*,*)
'Error. PSTRSM should not be called.'
1509 SUBROUTINE pdtrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, IA,
1510 $ JA, DESCA, B, IB, JB, DESCB )
1512 CHARACTER SIDE, UPLO, TRANSA, DIAG
1513 INTEGER M, N, IA, JA, IB, JB
1514 DOUBLE PRECISION ALPHA
1515 INTEGER DESCA( * ), DESCB( * )
1516 DOUBLE PRECISION A( * ), B( * )
1517 WRITE(*,*)
'Error. PDTRSM should not be called.'
1522 SUBROUTINE pcunmqr( SIDE, TRANS, M, N, K, A, IA, JA,
1523 & DESCA, TAU, C, IC, JC, DESCC, WORK,
1526 CHARACTER SIDE, TRANS
1527 INTEGER IA, IC, INFO, JA, JC, K, LWORK, M, N
1528 INTEGER DESCA( * ), DESCC( * )
1529 COMPLEX A( * ), C( * ), TAU( * ), WORK( * )
1530 WRITE(*,*)
'Error. PCUNMQR should not be called.'
1535 SUBROUTINE pzunmqr( SIDE, TRANS, M, N, K, A, IA, JA,
1536 & DESCA, TAU, C, IC, JC, DESCC, WORK,
1539 CHARACTER SIDE, TRANS
1540 INTEGER IA, IC, INFO, JA, JC, K, LWORK, M, N
1541 INTEGER DESCA( * ), DESCC( * )
1543 COMPLEX(kind=kind(0.0D0)) :: A( * ), C( * ), TAU( * ), WORK( * )
1544 WRITE(*,*)
'Error. PZUNMQR should not be called.'
1549 SUBROUTINE psormqr( SIDE, TRANS, M, N, K, A, IA, JA,
1550 & DESCA, TAU, C, IC, JC, DESCC, WORK,
1553 CHARACTER SIDE, TRANS
1554 INTEGER IA, IC, INFO, JA, JC, K, LWORK, M, N
1555 INTEGER DESCA( * ), DESCC( * )
1556 REAL A( * ), C( * ), TAU( * ), WORK( * )
1557 WRITE(*,*)
'Error. PSORMQR should not be called.'
1562 SUBROUTINE pdormqr( SIDE, TRANS, M, N, K, A, IA, JA,
1563 & DESCA, TAU, C, IC, JC, DESCC, WORK,
1566 CHARACTER SIDE, TRANS
1567 INTEGER IA, IC, INFO, JA, JC, K, LWORK, M, N
1568 INTEGER DESCA( * ), DESCC( * )
1569 DOUBLE PRECISION A( * ), C( * ), TAU( * ), WORK( * )
1570 WRITE(*,*)
'Error. PDORMQR should not be called.'
1575 SUBROUTINE chk1mat( MA, MAPOS0, NA, NAPOS0, IA, JA, DESCA,
1578 INTEGER DESCAPOS0, IA, INFO, JA, MA, MAPOS0, NA, NAPOS0
1580 WRITE(*,*)
'Error. CHK1MAT should not be called.'
1585 SUBROUTINE pchk2mat( MA, MAPOS0, NA, NAPOS0, IA, JA, DESCA,
1586 & DESCAPOS0, MB, MBPOS0, NB, NBPOS0, IB, JB,
1587 & DESCB, DESCBPOS0, NEXTRA, EX, EXPOS, INFO )
1589 INTEGER DESCAPOS0, DESCBPOS0, IA, IB, INFO, JA, JB, MA,
1590 & mapos0, mb, mbpos0, na, napos0, nb, nbpos0,
1592 INTEGER DESCA( * ), DESCB( * ), EX( NEXTRA ),
1594 WRITE(*,*)
'Error. PCHK2MAT should not be called.'
1601 INTEGER CONTXT, INFO
1603 WRITE(*,*)
'Error. PXERBLA should not be called.'
1608 SUBROUTINE descset( DESC, M, N, MB, NB, IRSRC, ICSRC, ICTXT,
1611 INTEGER ICSRC, ICTXT, IRSRC, LLD, M, MB, N, NB
1613 WRITE(*,*)
'Error. DESCSET should not be called.'
if(complex_arithmetic) id
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
void mumps_elapse(double *val)
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine pdgetrs(trans, n, nrhs, a, ia, ja, desca, ipiv, b, ib, jb, descb, info)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_type_free(newtyp, ierr_mpi)
subroutine mpi_buffer_attach(buf, cnt, ierr)
subroutine cgebs2d(contxt, scope, top, m, n, a, lda)
subroutine mumps_copy_double_precision(s, r, n)
subroutine sgebs2d(contxt, scope, top, m, n, a, lda)
subroutine pzgeqpf(m, n, a, ia, ja, desca, ipiv, tau, work, lwork, info)
subroutine mpi_test(ireq, flag, status, ierr)
subroutine blacs_gridinit(cntxt, c, nprow, npcol)
subroutine pdgetrf(m, n, a, ia, ja, desca, ipiv, info)
subroutine mumps_copy_double_complex(s, r, n)
subroutine mpi_iprobe(source, tag, comm, flag, status, ierr)
subroutine mpi_wait(ireq, status, ierr)
subroutine dgebs2d(contxt, scope, top, m, n, a, lda)
subroutine pdnrm2(n, norm2, x, ix, jx, descx, incx)
subroutine mpi_reduce(sendbuf, recvbuf, cnt, datatype, op, root, comm, ierr)
subroutine pdaxpy(n, a, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine mumps_copy_integer8(s, r, n)
subroutine mpi_finalize(ierr)
subroutine pspotrf(uplo, n, a, ia, ja, desca, info)
subroutine pspotrs(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine pdtrtrs(uplo, trans, diag, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine mpi_attr_put(comm, key, val, ierr)
subroutine mpi_get_count(status, datatype, cnt, ierr)
subroutine mumps_copy_2double_precision(s, r, n)
subroutine mumps_copy(cnt, sendbuf, recvbuf, datatype, ierr)
subroutine mpi_waitall(cnt, array_of_requests, status, ierr)
subroutine pdscal(n, alpha, x, ix, jx, descx, incx)
integer function indxg2p(indxglob, nb, iproc, isrcproc, nprocs)
subroutine pcpotrf(uplo, n, a, ia, ja, desca, info)
subroutine zgebr2d(contxt, scope, top, m, n, a, lda)
subroutine mpi_type_contiguous(length, datatype, newtype, ierr_mpi)
subroutine pdgecon(norm, n, a, ia, ja, desca, anorm, rcond, work, lwork, iwork, liwork, info)
subroutine pcscal(n, alpha, x, ix, jx, descx, incx)
subroutine mpi_comm_split(comm, color, key, comm2, ierr)
double precision function mpi_wtime()
subroutine mpi_comm_group(comm, group, ierr)
subroutine chk1mat(ma, mapos0, na, napos0, ia, ja, desca, descapos0, info)
subroutine zgebs2d(contxt, scope, top, m, n, a, lda)
subroutine mpi_group_free(group, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine mumps_copy_complex(s, r, n)
subroutine mumps_copy_integer(s, r, n)
subroutine mumps_copy_logical(s, r, n)
subroutine mpi_ssend(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine mpi_allreduce(sendbuf, recvbuf, cnt, datatype, operation, comm, ierr)
subroutine pscnrm2(n, norm2, x, ix, jx, descx, incx)
subroutine mpi_probe(source, tag, comm, status, ierr)
subroutine mpi_init_thread(mpi_thread_req, thread_support, ierr)
subroutine pzscal(n, alpha, x, ix, jx, descx, incx)
subroutine mpi_get_processor_name(name, resultlen, ierror)
subroutine mpi_comm_dup(comm, comm2, ierr)
subroutine mpi_alltoall(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, comm, ierr)
subroutine mpi_reduce_scatter(sendbuf, recvbuf, rcvcnt, datatype, op, comm, ierr)
subroutine mpi_buffer_detach(buf, cnt, ierr)
subroutine pzpotrf(uplo, n, a, ia, ja, desca, info)
subroutine pdormqr(side, trans, m, n, k, a, ia, ja, desca, tau, c, ic, jc, descc, work, lwork, info)
subroutine pzgetrf(m, n, a, ia, ja, desca, ipiv, info)
subroutine pxerbla(contxt, srname, info)
subroutine mpi_barrier(comm, ierr)
subroutine mpi_comm_size(comm, size, ierr)
subroutine pztrsm(side, uplo, transa, diag, m, n, alpha, a, ia, ja, desca, b, ib, jb, descb)
subroutine psnrm2(n, norm2, x, ix, jx, descx, incx)
subroutine mpi_waitany(cnt, array_of_requests, index, status, ierr)
subroutine pdpotrs(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine mpi_bcast(buffer, cnt, datatype, root, comm, ierr)
subroutine pstrtrs(uplo, trans, diag, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine pdpotrf(uplo, n, a, ia, ja, desca, info)
subroutine descset(desc, m, n, mb, nb, irsrc, icsrc, ictxt, lld)
subroutine dgebr2d(contxt, scope, top, m, n, a, lda)
subroutine pstrsm(side, uplo, transa, diag, m, n, alpha, a, ia, ja, desca, b, ib, jb, descb)
subroutine psgetrs(trans, n, nrhs, a, ia, ja, desca, ipiv, b, ib, jb, descb, info)
subroutine mpi_group_range_excl(group, n, ranges, group2, ierr)
subroutine mpi_group_size(group, size, ierr)
subroutine pzpotrs(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine mpi_init(ierr)
subroutine mpi_gather(sendbuf, cnt, datatype, recvbuf, reccnt, rectype, root, comm, ierr)
subroutine pcgecon(norm, n, a, ia, ja, desca, anorm, rcond, work, lwork, iwork, liwork, info)
real function pslange(norm, m, n, a, ia, ja, desca, work)
subroutine sgebr2d(contxt, scope, top, m, n, a, lda)
subroutine mpi_pack(inbuf, incnt, datatype, outbuf, outcnt, position, comm, ierr)
subroutine mpi_request_free(ireq, ierr)
subroutine pcgeqpf(m, n, a, ia, ja, desca, ipiv, tau, work, lwork, info)
subroutine pcdot(n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine pchk2mat(ma, mapos0, na, napos0, ia, ja, desca, descapos0, mb, mbpos0, nb, nbpos0, ib, jb, descb, descbpos0, nextra, ex, expos, info)
subroutine pdtrsm(side, uplo, transa, diag, m, n, alpha, a, ia, ja, desca, b, ib, jb, descb)
subroutine cgebr2d(contxt, scope, top, m, n, a, lda)
subroutine pztrtrs(uplo, trans, diag, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine pzgetrs(trans, n, nrhs, a, ia, ja, desca, ipiv, b, ib, jb, descb, info)
subroutine pdznrm2(n, norm2, x, ix, jx, descx, incx)
subroutine mpi_pack_size(incnt, datatype, comm, size, ierr)
subroutine mpi_bsend(buf, cnt, datatype, dest, tag, comm, ierr)
subroutine mpi_cancel(ireq, ierr)
subroutine mpi_comm_free(comm, ierr)
subroutine psgetrf(m, n, a, ia, ja, desca, ipiv, info)
subroutine pcgetrf(m, n, a, ia, ja, desca, ipiv, info)
subroutine psscal(n, alpha, x, ix, jx, descx, incx)
subroutine psdot(n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine pzaxpy(n, a, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine infog2l(grindx, gcindx, desc, nprow, npcol, myrow, mycol, lrindx, lcindx, rsrc, csrc)
double precision function pzlange(norm, m, n, a, ia, ja, desca, work)
subroutine pcpotrs(uplo, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine mpi_type_commit(newtyp, ierr_mpi)
subroutine mpi_gatherv(sendbuf, cnt, datatype, recvbuf, reccnt, displs, rectype, root, comm, ierr)
subroutine psgecon(norm, n, a, ia, ja, desca, anorm, rcond, work, lwork, iwork, liwork, info)
subroutine pddot(n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine pdgeqpf(m, n, a, ia, ja, desca, ipiv, tau, work, lwork, info)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
subroutine mpi_unpack(inbuf, insize, position, outbuf, outcnt, datatype, comm, ierr)
subroutine descinit(desc, m, n, mb, nb, irsrc, icsrc, ictxt, lld, info)
subroutine psormqr(side, trans, m, n, k, a, ia, ja, desca, tau, c, ic, jc, descc, work, lwork, info)
subroutine pctrtrs(uplo, trans, diag, n, nrhs, a, ia, ja, desca, b, ib, jb, descb, info)
subroutine pzunmqr(side, trans, m, n, k, a, ia, ja, desca, tau, c, ic, jc, descc, work, lwork, info)
subroutine mpi_op_create(func, commute, op, ierr)
subroutine mpi_comm_rank(comm, rank, ierr)
subroutine mpi_initialized(flag, ierr)
subroutine mpi_op_free(op, ierr)
subroutine pzgecon(norm, n, a, ia, ja, desca, anorm, rcond, work, lwork, iwork, liwork, info)
real function pclange(norm, m, n, a, ia, ja, desca, work)
subroutine blacs_gridexit(cntxt)
subroutine pcaxpy(n, a, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
double precision function pdlange(norm, m, n, a, ia, ja, desca, work)
subroutine mpi_abort(comm, ierrcode, ierr)
logical function mumps_is_in_place(sendbuf, cnt)
subroutine pcgetrs(trans, n, nrhs, a, ia, ja, desca, ipiv, b, ib, jb, descb, info)
subroutine pzdot(n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine pcunmqr(side, trans, m, n, k, a, ia, ja, desca, tau, c, ic, jc, descc, work, lwork, info)
subroutine psaxpy(n, a, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine mumps_copy_2integer(s, r, n)
integer function numroc(n, nb, iproc, isrcproc, nprocs)
subroutine psgeqpf(m, n, a, ia, ja, desca, ipiv, tau, work, lwork, info)
subroutine mpi_comm_create(comm, group, comm2, ierr)
subroutine mumps_copy_real(s, r, n)
subroutine pctrsm(side, uplo, transa, diag, m, n, alpha, a, ia, ja, desca, b, ib, jb, descb)