OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dsimpletest.F
Go to the documentation of this file.
1C
2C This file is part of MUMPS 5.5.1, released
3C on Tue Jul 12 13:17:24 UTC 2022
4C
5 PROGRAM mumps_test
6 IMPLICIT NONE
7 include 'mpif.h'
8 include 'dmumps_struc.h'
9 TYPE (dmumps_struc) mumps_par
10 INTEGER ierr, i
11 INTEGER(8) i8
12 CALL mpi_init(ierr)
13C Define a communicator for the package.
14 mumps_par%COMM = mpi_comm_world
15C Initialize an instance of the package
16C for L U factorization (sym = 0, with working host)
17 mumps_par%JOB = -1
18 mumps_par%SYM = 0
19 mumps_par%PAR = 1
20 CALL dmumps(mumps_par)
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)
25 GOTO 500
26 END IF
27C Define problem on the host (processor 0)
28 IF ( mumps_par%MYID .eq. 0 ) THEN
29 READ(5,*) mumps_par%N
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)
37 END DO
38 DO i = 1, mumps_par%N
39 READ(5,*) mumps_par%RHS(i)
40 END DO
41 END IF
42C Call package for solution
43 mumps_par%JOB = 6
44 CALL dmumps(mumps_par)
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)
49 GOTO 500
50 END IF
51C Solution has been assembled on the host
52 IF ( mumps_par%MYID .eq. 0 ) THEN
53 WRITE( 6, * ) ' Solution is ',(mumps_par%RHS(i),i=1,mumps_par%N)
54 END IF
55C Deallocate user data
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 )
61 END IF
62C Destroy the instance (deallocate internal data structures)
63 mumps_par%JOB = -2
64 CALL dmumps(mumps_par)
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)
69 GOTO 500
70 END IF
71 500 CALL mpi_finalize(ierr)
72 stop
73 END
program mumps_test
Definition dsimpletest.F:5
subroutine mpi_finalize(ierr)
Definition mpi.f:288
subroutine mpi_init(ierr)
Definition mpi.f:342