OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
ana_set_ordering.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 mumps_set_ordering(N, KEEP, SYM, NPROCS, IORD,
15 & NBQD, AvgDens,
16 & PROK, MP)
17 IMPLICIT NONE
18 INTEGER, intent(in) :: N, KEEP(500), NPROCS, SYM
19 INTEGER, intent(in) :: NBQD, AvgDens, MP
20 LOGICAL, intent(in) :: PROK
21 INTEGER, intent(inout) :: IORD
22 INTEGER MAXQD
23 parameter(maxqd=2)
24 INTEGER SMALLSYM, SMALLUNS
25 parameter(smalluns=5000, smallsym=10000)
26#if ! defined(metis) && ! defined(parmetis) && ! defined(metis4) && ! defined(parmetis3)
27 IF ( iord .EQ. 5 ) THEN
28 IF (prok) WRITE(mp,*)
29 & 'WARNING: METIS not available. Ordering set to default.'
30 iord = 7
31 END IF
32#endif
33#if ! defined(pord)
34 IF ( iord .EQ. 4 ) THEN
35 IF (prok) WRITE(mp,*)
36 & 'WARNING: PORD not available. Ordering set to default.'
37 iord = 7
38 END IF
39#endif
40#if ! defined(scotch) && ! defined(ptscotch)
41 IF ( iord .EQ. 3 ) THEN
42 IF (prok) WRITE(mp,*)
43 & 'WARNING: SCOTCH not available. Ordering set to default.'
44 iord = 7
45 END IF
46#endif
47 IF (iord.EQ.7) THEN
48 IF (sym.NE.0) THEN
49 IF ( n.LE.smallsym ) THEN
50 IF (nbqd.GE.maxqd) THEN
51 iord = 6
52 ELSE
53 iord = 2
54 ENDIF
55 ELSE
56#if defined(metis) || defined(parmetis) || defined(metis4) || defined(parmetis3)
57 iord = 5
58#else
59# if defined(scotch) || defined(ptscotch)
60 iord = 3
61# else
62# if defined(pord)
63 iord = 4
64# else
65 iord = 6
66# endif
67# endif
68#endif
69 ENDIF
70 ELSE
71 IF ( n.LE.smalluns ) THEN
72 IF (nbqd.GE.maxqd) THEN
73 iord = 6
74 ELSE
75 iord = 2
76 ENDIF
77 ELSE
78#if defined(metis) || defined(parmetis) || defined(metis4) || defined(parmetis3)
79 iord = 5
80#else
81# if defined(scotch) || defined(ptscotch)
82 iord = 3
83# else
84# if defined(pord)
85 iord = 4
86# else
87 iord = 6
88# endif
89# endif
90#endif
91 ENDIF
92 ENDIF
93 ENDIF
94 RETURN
95 END SUBROUTINE mumps_set_ordering
subroutine mumps_set_ordering(n, keep, sym, nprocs, iord, nbqd, avgdens, prok, mp)