1 /*
2  *
3  *  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
4  *
5  *
6  *  This version of MUMPS is provided to you free of charge. It is public
7  *  domain, based on public domain software developed during the Esprit IV
8  *  European project PARASOL (1996-1999). Since this first public domain
9  *  version in 1999, research and developments have been supported by the
10  *  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
11  *  INRIA, and University of Bordeaux.
12  *
13  *  The MUMPS team at the moment of releasing this version includes
14  *  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
15  *  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
16  *  Ucar and Clement Weisbecker.
17  *
18  *  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
19  *  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
20  *  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
21  *  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
22  *  have been contributing to this project.
23  *
24  *  Up-to-date copies of the MUMPS package can be obtained
25  *  from the Web pages:
26  *  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
27  *
28  *
29  *   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
30  *   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
31  *
32  *
33  *  User documentation of any code that uses this software can
34  *  include this complete notice. You can acknowledge (using
35  *  references [1] and [2]) the contribution of this package
36  *  in any scientific publication dependent upon the use of the
37  *  package. You shall use reasonable endeavours to notify
38  *  the authors of the package of this publication.
39  *
40  *   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
41  *   A fully asynchronous multifrontal solver using distributed dynamic
42  *   scheduling, SIAM Journal of Matrix Analysis and Applications,
43  *   Vol 23, No 1, pp 15-41 (2001).
44  *
45  *   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
46  *   S. Pralet, Hybrid scheduling for the parallel solution of linear
47  *   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
48  *
49  */
50 #include "mumps_common.h"
51 /* Special case of mapping and pivnul_list -- allocated from MUMPS */
52 static MUMPS_INT * MUMPS_MAPPING;
53 static MUMPS_INT * MUMPS_PIVNUL_LIST;
54 /* as uns_perm and sym_perm */
55 static MUMPS_INT * MUMPS_SYM_PERM;
56 static MUMPS_INT * MUMPS_UNS_PERM;
57 MUMPS_INT*
mumps_get_mapping()58 mumps_get_mapping()
59 {
60     return MUMPS_MAPPING;
61 }
62 void MUMPS_CALL
MUMPS_AFFECT_MAPPING(MUMPS_INT * f77mapping)63 MUMPS_AFFECT_MAPPING(MUMPS_INT * f77mapping)
64 {
65     MUMPS_MAPPING = f77mapping;
66 }
67 void MUMPS_CALL
MUMPS_NULLIFY_C_MAPPING()68 MUMPS_NULLIFY_C_MAPPING()
69 {
70     MUMPS_MAPPING = 0;
71 }
72 MUMPS_INT*
mumps_get_pivnul_list()73 mumps_get_pivnul_list()
74 {
75     return MUMPS_PIVNUL_LIST;
76 }
77 void MUMPS_CALL
MUMPS_AFFECT_PIVNUL_LIST(MUMPS_INT * f77pivnul_list)78 MUMPS_AFFECT_PIVNUL_LIST(MUMPS_INT * f77pivnul_list)
79 {
80     MUMPS_PIVNUL_LIST = f77pivnul_list;
81 }
82 void MUMPS_CALL
MUMPS_NULLIFY_C_PIVNUL_LIST()83 MUMPS_NULLIFY_C_PIVNUL_LIST()
84 {
85     MUMPS_PIVNUL_LIST = 0;
86 }
87 MUMPS_INT*
mumps_get_sym_perm()88 mumps_get_sym_perm()
89 {
90     return MUMPS_SYM_PERM;
91 }
92 void MUMPS_CALL
MUMPS_AFFECT_SYM_PERM(MUMPS_INT * f77sym_perm)93 MUMPS_AFFECT_SYM_PERM(MUMPS_INT * f77sym_perm)
94 {
95     MUMPS_SYM_PERM = f77sym_perm;
96 }
97 void MUMPS_CALL
MUMPS_NULLIFY_C_SYM_PERM()98 MUMPS_NULLIFY_C_SYM_PERM()
99 {
100     MUMPS_SYM_PERM = 0;
101 }
102 MUMPS_INT*
mumps_get_uns_perm()103 mumps_get_uns_perm()
104 {
105     return MUMPS_UNS_PERM;
106 }
107 void MUMPS_CALL
MUMPS_AFFECT_UNS_PERM(MUMPS_INT * f77uns_perm)108 MUMPS_AFFECT_UNS_PERM(MUMPS_INT * f77uns_perm)
109 {
110     MUMPS_UNS_PERM = f77uns_perm;
111 }
112 void MUMPS_CALL
MUMPS_NULLIFY_C_UNS_PERM()113 MUMPS_NULLIFY_C_UNS_PERM()
114 {
115     MUMPS_UNS_PERM = 0;
116 }
117