OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
crank_revealing.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
5C
6C Copyright 1991-2022 CERFACS, CNRS, ENS Lyon, INP Toulouse, Inria,
7C Mumps Technologies, University of Bordeaux.
8C
9C This version of MUMPS is provided to you free of charge. It is
10C released under the CeCILL-C license
11C (see doc/CeCILL-C_V1-en.txt, doc/CeCILL-C_V1-fr.txt, and
12C https://cecill.info/licences/Licence_CeCILL-C_V1-en.html)
13C
14 SUBROUTINE cmumps_get_ns_options_facto(N,KEEP,ICNTL,MPG)
15 IMPLICIT NONE
16 INTEGER N, KEEP(500), ICNTL(60), MPG
17 keep(19)=0
18 RETURN
19 END SUBROUTINE cmumps_get_ns_options_facto
20 SUBROUTINE cmumps_get_ns_options_solve(ICNTL, KEEP,
21 & NRHS, MPG, INFO)
22 IMPLICIT NONE
23 INTEGER, intent(in) :: KEEP(500), NRHS, MPG, ICNTL(60)
24 INTEGER, intent(inout):: INFO(80)
25 IF (keep(19).EQ.0.AND.keep(110).EQ.0) THEN
26 IF (keep(111).NE.0) THEN
27 info(1) = -37
28 info(2) = 56
29 IF (keep(110).EQ.0) info(2) = 24
30 IF(mpg.GT.0) THEN
31 WRITE( mpg,'(A)')
32 &'** ERROR : Null space computation requirement'
33 WRITE( mpg,'(A)')
34 &'** not consistent with factorization options'
35 ENDIF
36 GOTO 333
37 ENDIF
38 ENDIF
39 IF (icntl(9).NE.1) THEN
40 IF (keep(111).NE.0) THEN
41 info(1) = -37
42 info(2) = 9
43 IF (mpg.GT.0) THEN
44 WRITE(mpg,'(A)')
45 &'** ERROR ICNTL(25) incompatible with '
46 WRITE( mpg,'(A)')
47 &.ne.'** option transposed system (ICNTL(9)1) '
48 ENDIF
49 ENDIF
50 GOTO 333
51 ENDIF
52 IF (keep(19).EQ.2) THEN
53 IF ((keep(111).NE.0).AND.(keep(50).EQ.0)) THEN
54 info(1) = -37
55 info(2) = 0
56 IF (mpg.GT.0) THEN
57 WRITE(mpg,'(A)')
58 &'** ERROR ICNTL(25) incompatible with '
59 WRITE( mpg,'(A)')
60 &'** option RRQR (ICNLT(56)=2) and unsym. matrices '
61 ENDIF
62 ENDIF
63 GOTO 333
64 ENDIF
65 IF (keep(111).eq.-1.AND.nrhs.NE.keep(112)+keep(17))THEN
66 info(1)=-32
67 info(2)=nrhs
68 GOTO 333
69 ENDIF
70 IF (keep(111).gt.0 .AND. nrhs .NE. 1) THEN
71 info(1)=-32
72 info(2)=nrhs
73 GOTO 333
74 ENDIF
75 IF (keep(248) .NE.0.AND.keep(111).NE.0) THEN
76 IF (mpg.GT.0) THEN
77 WRITE(mpg,'(A)')
78 & ' ERROR: ICNTL(20) and ICNTL(30) functionalities ',
79 & ' incompatible with null space'
80 ENDIF
81 info(1) = -37
82 IF (keep(237).NE.0) THEN
83 info(2) = 30
84 IF (mpg.GT.0) THEN
85 WRITE(mpg,'(A)')
86 & ' ERROR: ICNTL(30) functionality ',
87 & ' incompatible with null space'
88 ENDIF
89 ELSE
90 IF (mpg.GT.0) THEN
91 WRITE(mpg,'(A)')
92 & ' ERROR: ICNTL(20) functionality ',
93 & ' incompatible with null space'
94 ENDIF
95 info(2) = 20
96 ENDIF
97 GOTO 333
98 ENDIF
99 IF (( keep(111) .LT. -1 ) .OR.
100 & (keep(111).GT.keep(112)+keep(17)) .OR.
101 & (keep(111) .EQ.-1 .AND. keep(112)+keep(17).EQ.0))
102 & THEN
103 info(1)=-36
104 info(2)=keep(111)
105 GOTO 333
106 ENDIF
107 IF (keep(221).NE.0.AND.keep(111).NE.0) THEN
108 info(1)=-37
109 info(2)=26
110 GOTO 333
111 ENDIF
112 333 CONTINUE
113 RETURN
114 END SUBROUTINE cmumps_get_ns_options_solve
117 IMPLICIT NONE
118 TYPE (CMUMPS_STRUC) id
119 NULLIFY(id%root%QR_TAU)
120 NULLIFY(id%root%SVD_U)
121 NULLIFY(id%root%SVD_VT)
122 NULLIFY(id%root%SINGULAR_VALUES)
123 RETURN
124 END SUBROUTINE cmumps_rr_init_pointers
127 IMPLICIT NONE
128 TYPE (CMUMPS_STRUC) id
129 IF (associated(id%root%QR_TAU)) THEN
130 DEALLOCATE(id%root%QR_TAU)
131 NULLIFY(id%root%QR_TAU)
132 ENDIF
133 IF (associated(id%root%SVD_U)) THEN
134 DEALLOCATE(id%root%SVD_U)
135 NULLIFY(id%root%SVD_U)
136 ENDIF
137 IF (associated(id%root%SVD_VT)) THEN
138 DEALLOCATE(id%root%SVD_VT)
139 NULLIFY(id%root%SVD_VT)
140 ENDIF
141 IF (associated(id%root%SINGULAR_VALUES)) THEN
142 DEALLOCATE(id%root%SINGULAR_VALUES)
143 NULLIFY(id%root%SINGULAR_VALUES)
144 ENDIF
145 RETURN
146 END SUBROUTINE cmumps_rr_free_pointers
subroutine cmumps_get_ns_options_solve(icntl, keep, nrhs, mpg, info)
subroutine cmumps_get_ns_options_facto(n, keep, icntl, mpg)
subroutine cmumps_rr_free_pointers(id)
subroutine cmumps_rr_init_pointers(id)