8 include
'cmumps_struc.h'
9 TYPE (cmumps_struc) mumps_par
14 mumps_par%COMM = mpi_comm_world
21 IF (mumps_par%INFOG(1).LT.0)
THEN
22 WRITE(6,
'(A,A,I6,A,I9)')
" ERROR RETURN: ",
23 &
" mumps_par%INFOG(1)= ", mumps_par%INFOG(1),
24 &
" mumps_par%INFOG(2)= ", mumps_par%INFOG(2)
28 IF ( mumps_par%MYID .eq. 0 )
THEN
30 READ(5,*) mumps_par%NNZ
31 ALLOCATE( mumps_par%IRN ( mumps_par%NNZ ) )
32 ALLOCATE( mumps_par%JCN ( mumps_par%NNZ ) )
33 ALLOCATE( mumps_par%A( mumps_par%NNZ ) )
34 ALLOCATE( mumps_par%RHS ( mumps_par%N ) )
35 DO i8 = 1, mumps_par%NNZ
36 READ(5,*) mumps_par%IRN(i8),mumps_par%JCN(i8),mumps_par%A(i8)
39 READ(5,*) mumps_par%RHS(i)
45 IF (mumps_par%INFOG(1).LT.0)
THEN
46 WRITE(6,
'(A,A,I6,A,I9)')
" ERROR RETURN: ",
47 &
" mumps_par%INFOG(1)= ", mumps_par%INFOG(1),
48 &
" mumps_par%INFOG(2)= ", mumps_par%INFOG(2)
52 IF ( mumps_par%MYID .eq. 0 )
THEN
53 WRITE( 6, * )
' Solution is ',(mumps_par%RHS(i),i=1,mumps_par%N)
56 IF ( mumps_par%MYID .eq. 0 )
THEN
57 DEALLOCATE( mumps_par%IRN )
58 DEALLOCATE( mumps_par%JCN )
59 DEALLOCATE( mumps_par%A )
60 DEALLOCATE( mumps_par%RHS )
65 IF (mumps_par%INFOG(1).LT.0)
THEN
66 WRITE(6,
'(A,A,I6,A,I9)')
" ERROR RETURN: ",
67 &
" mumps_par%INFOG(1)= ", mumps_par%INFOG(1),
68 &
" mumps_par%INFOG(2)= ", mumps_par%INFOG(2)
subroutine mpi_finalize(ierr)
subroutine mpi_init(ierr)