r45352 - in /packages/code-aster/aster/trunk/debian: config-mpi_32.txt config-mpi_64.txt config_32.txt config_64.txt patches/mumps-4.10.0.patch patches/series

apalazzi-guest at users.alioth.debian.org apalazzi-guest at users.alioth.debian.org
Thu Sep 13 10:36:54 UTC 2012


Author: apalazzi-guest
Date: Thu Sep 13 10:36:53 2012
New Revision: 45352

URL: http://svn.debian.org/wsvn/debian-science/?sc=1&rev=45352
Log:
Added files from CA11.2.12 for mumps-4.10.0


Added:
    packages/code-aster/aster/trunk/debian/patches/mumps-4.10.0.patch
Modified:
    packages/code-aster/aster/trunk/debian/config-mpi_32.txt
    packages/code-aster/aster/trunk/debian/config-mpi_64.txt
    packages/code-aster/aster/trunk/debian/config_32.txt
    packages/code-aster/aster/trunk/debian/config_64.txt
    packages/code-aster/aster/trunk/debian/patches/series

Modified: packages/code-aster/aster/trunk/debian/config-mpi_32.txt
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/config-mpi_32.txt?rev=45352&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/config-mpi_32.txt (original)
+++ packages/code-aster/aster/trunk/debian/config-mpi_32.txt Thu Sep 13 10:36:53 2012
@@ -73,7 +73,7 @@
 F90            | f90     | ?     | /usr/bin/mpif90
 OPTF90_D       | f90     | ?     | -c -g  -ffixed-line-length-0 -x f77-cpp-input -fPIC
 OPTF90_O       | f90     | ?     | -c -O2 -fno-tree-dse -ffixed-line-length-0 -x f77-cpp-input -fPIC
-INCLF90        | include | ?     |  -I/usr/include/openmpi -IDEB_DESTDIR/ASTER_ROOT/STA10.6_mpi/bibf90/include_mumps-4.9.2 -I/usr/include -I/usr/include/mpi
+INCLF90        | include | ?     |  -I/usr/include/openmpi -IDEB_DESTDIR/ASTER_ROOT/STA10.6_mpi/bibf90/include_mumps-4.10.0_mpi -I/usr/include -I/usr/include/mpi
 #
 G77_AGLA       | g77     | ?     | unused
 #

Modified: packages/code-aster/aster/trunk/debian/config-mpi_64.txt
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/config-mpi_64.txt?rev=45352&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/config-mpi_64.txt (original)
+++ packages/code-aster/aster/trunk/debian/config-mpi_64.txt Thu Sep 13 10:36:53 2012
@@ -73,7 +73,7 @@
 F90            | f90     | ?     | /usr/bin/mpif90
 OPTF90_D       | f90     | ?     | -c -g  -ffixed-line-length-0 -x f77-cpp-input -fPIC  -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8
 OPTF90_O       | f90     | ?     | -c -O2 -fno-tree-dse -ffixed-line-length-0 -x f77-cpp-input -fPIC  -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8
-INCLF90        | include | ?     |  -I/usr/include/openmpi -IDEB_DESTDIR/ASTER_ROOT/STA10.6_mpi/bibf90/include_mumps-4.9.2_mpi -I/usr/include -I/usr/include/mpi
+INCLF90        | include | ?     |  -I/usr/include/openmpi -IDEB_DESTDIR/ASTER_ROOT/STA10.6_mpi/bibf90/include_mumps-4.10.0_mpi -I/usr/include -I/usr/include/mpi
 #
 G77_AGLA       | g77     | ?     | unused
 #

Modified: packages/code-aster/aster/trunk/debian/config_32.txt
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/config_32.txt?rev=45352&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/config_32.txt (original)
+++ packages/code-aster/aster/trunk/debian/config_32.txt Thu Sep 13 10:36:53 2012
@@ -74,7 +74,7 @@
 F90            | f90     | ?     | /usr/bin/gfortran
 OPTF90_D       | f90     | ?     | -c -g  -ffixed-line-length-0 -x f77-cpp-input -fPIC  -fopenmp
 OPTF90_O       | f90     | ?     | -c -O2 -fno-tree-dse -ffixed-line-length-0 -x f77-cpp-input -fopenmp
-INCLF90        | include | ?     |  -IDEB_DESTDIR/ASTER_ROOT/STA10.6/bibf90/include_mumps-4.9.2 -I/usr/include/mpi
+INCLF90        | include | ?     |  -IDEB_DESTDIR/ASTER_ROOT/STA10.6/bibf90/include_mumps-4.10.0 -I/usr/include/mpi
 #
 G77_AGLA       | g77     | ?     | unused
 #

Modified: packages/code-aster/aster/trunk/debian/config_64.txt
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/config_64.txt?rev=45352&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/config_64.txt (original)
+++ packages/code-aster/aster/trunk/debian/config_64.txt Thu Sep 13 10:36:53 2012
@@ -74,7 +74,7 @@
 F90            | f90     | ?     | /usr/bin/gfortran
 OPTF90_D       | f90     | ?     | -c -g  -ffixed-line-length-0 -x f77-cpp-input -fPIC  -fopenmp -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8
 OPTF90_O       | f90     | ?     | -c -O2 -fno-tree-dse -ffixed-line-length-0 -x f77-cpp-input -fopenmp -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8
-INCLF90        | include | ?     |  -IDEB_DESTDIR/ASTER_ROOT/STA10.6/bibf90/include_mumps-4.9.2 -I/usr/include/mpi
+INCLF90        | include | ?     |  -IDEB_DESTDIR/ASTER_ROOT/STA10.6/bibf90/include_mumps-4.10.0 -I/usr/include/mpi
 #
 G77_AGLA       | g77     | ?     | unused
 #

Added: packages/code-aster/aster/trunk/debian/patches/mumps-4.10.0.patch
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/patches/mumps-4.10.0.patch?rev=45352&op=file
==============================================================================
--- packages/code-aster/aster/trunk/debian/patches/mumps-4.10.0.patch (added)
+++ packages/code-aster/aster/trunk/debian/patches/mumps-4.10.0.patch Thu Sep 13 10:36:53 2012
@@ -1,0 +1,3047 @@
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/cmumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE CMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        COMPLEX*8, DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        COMPLEX*8, DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        COMPLEX*8, DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        COMPLEX*8, DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        REAL*4 :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE CMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/cmumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'cmumps_root.h'
++      TYPE CMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        COMPLEX*8, DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        REAL*4, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        COMPLEX*8, DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        COMPLEX*8, DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        COMPLEX*8, DIMENSION(:), POINTER :: RHS, REDRHS
++        COMPLEX*8, DIMENSION(:), POINTER :: RHS_SPARSE
++        COMPLEX*8, DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        REAL*4 COST_SUBTREES
++        REAL*4 CNTL(15)
++        REAL*4 RINFO(40)
++        REAL*4 RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        COMPLEX*8, DIMENSION(:), POINTER :: SCHUR
++        COMPLEX*8, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    CMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        COMPLEX*8, DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        COMPLEX*8, DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        COMPLEX*8, DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        COMPLEX*8, DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        REAL*4 DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (CMUMPS_ROOT_STRUC) :: root
++      END TYPE CMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/dmumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE DMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        DOUBLE PRECISION, DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        DOUBLE PRECISION :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE DMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/dmumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'dmumps_root.h'
++      TYPE DMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS, REDRHS
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS_SPARSE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        DOUBLE PRECISION COST_SUBTREES
++        DOUBLE PRECISION CNTL(15)
++        DOUBLE PRECISION RINFO(40)
++        DOUBLE PRECISION RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    DMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        DOUBLE PRECISION, DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        DOUBLE PRECISION DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (DMUMPS_ROOT_STRUC) :: root
++      END TYPE DMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/mpif.h
+@@ -0,0 +1,114 @@
++!
++!  This file is part of MUMPS 4.9.2, built on Thu Nov  5 07:05:08 UTC 2009
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999) by CERFACS, ENSEEIHT-IRIT and RAL.
++!  Since this first public domain version in 1999, the developments are
++!  supported by the following institutions: CERFACS, CNRS, INPT(ENSEEIHT)-
++!  IRIT, and INRIA.
++!
++!  Current development team includes Patrick Amestoy, Alfredo Buttari,
++!  Abdou Guermouche, Jean-Yves L'Excellent, Bora Ucar.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++!
++!      Dummy mpif.h file including symbols used by MUMPS.
++!
++      INTEGER*4 MPI_2DOUBLE_PRECISION
++      INTEGER*4 MPI_2INTEGER
++      INTEGER*4 MPI_2REAL
++      INTEGER*4 MPI_ANY_SOURCE
++      INTEGER*4 MPI_ANY_TAG
++      INTEGER*4 MPI_BYTE
++      INTEGER*4 MPI_CHARACTER
++      INTEGER*4 MPI_COMM_NULL
++      INTEGER*4 MPI_COMM_WORLD
++      INTEGER*4 MPI_COMPLEX
++      INTEGER*4 MPI_DOUBLE_COMPLEX
++      INTEGER*4 MPI_DOUBLE_PRECISION
++      INTEGER*4 MPI_INTEGER
++      INTEGER*4 MPI_LOGICAL
++      INTEGER*4 MPI_MAX
++      INTEGER*4 MPI_MAX_PROCESSOR_NAME
++      INTEGER*4 MPI_MAXLOC
++      INTEGER*4 MPI_MIN
++      INTEGER*4 MPI_MINLOC
++      INTEGER*4 MPI_PACKED
++      INTEGER*4 MPI_PROD
++      INTEGER*4 MPI_REAL
++      INTEGER*4 MPI_REPLACE
++      INTEGER*4 MPI_REQUEST_NULL
++      INTEGER*4 MPI_SOURCE
++      INTEGER*4 MPI_STATUS_SIZE
++      INTEGER*4 MPI_SUM
++      INTEGER*4 MPI_TAG
++      INTEGER*4 MPI_UNDEFINED
++      INTEGER*4 MPI_WTIME_IS_GLOBAL
++      INTEGER*4 MPI_LOR
++      INTEGER*4 MPI_LAND
++      INTEGER*4 MPI_INTEGER8
++      INTEGER*4 MPI_REAL8
++      INTEGER*4 MPI_BSEND_OVERHEAD
++      PARAMETER (MPI_2DOUBLE_PRECISION=2)
++      PARAMETER (MPI_2INTEGER=0)
++      PARAMETER (MPI_2REAL=1)
++      PARAMETER (MPI_ANY_SOURCE=4)
++      PARAMETER (MPI_ANY_TAG=5)
++      PARAMETER (MPI_BYTE=6)
++      PARAMETER (MPI_CHARACTER=4)
++      PARAMETER (MPI_COMM_NULL=0)
++      PARAMETER (MPI_COMM_WORLD=1)
++      PARAMETER (MPI_COMPLEX=3)
++      PARAMETER (MPI_DOUBLE_COMPLEX=5)
++      PARAMETER (MPI_DOUBLE_PRECISION=2)
++      PARAMETER (MPI_INTEGER=0)
++      PARAMETER (MPI_LOGICAL=0)
++      PARAMETER (MPI_MAX=15)
++      PARAMETER (MPI_MAX_PROCESSOR_NAME=31)
++      PARAMETER (MPI_MAXLOC=16)
++      PARAMETER (MPI_MIN=17)
++      PARAMETER (MPI_MINLOC=18)
++      PARAMETER (MPI_PACKED=19)
++      PARAMETER (MPI_PROD=20)
++      PARAMETER (MPI_REAL=1)
++      PARAMETER (MPI_REAL8=2)
++      PARAMETER (MPI_REPLACE=22)
++      PARAMETER (MPI_REQUEST_NULL=23)
++      PARAMETER (MPI_SOURCE=2)
++      PARAMETER (MPI_STATUS_SIZE=3)
++      PARAMETER (MPI_SUM=0)
++      PARAMETER (MPI_TAG=3)
++      PARAMETER (MPI_UNDEFINED=-32766)
++      PARAMETER (MPI_WTIME_IS_GLOBAL=30)
++      PARAMETER (MPI_LOR=31)
++      PARAMETER (MPI_LAND=32)
++      PARAMETER (MPI_INTEGER8=2)
++      PARAMETER (MPI_BSEND_OVERHEAD=0)
++      DOUBLE PRECISION MPI_WTIME
++      EXTERNAL MPI_WTIME
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/mumps_compat.h
+@@ -0,0 +1,78 @@
++/*
++ *
++ *  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++ *
++ *
++ *  This version of MUMPS is provided to you free of charge. It is public
++ *  domain, based on public domain software developed during the Esprit IV
++ *  European project PARASOL (1996-1999). Since this first public domain
++ *  version in 1999, research and developments have been supported by the
++ *  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++ *  INRIA, and University of Bordeaux.
++ *
++ *  The MUMPS team at the moment of releasing this version includes
++ *  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++ *  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++ *  Ucar and Clement Weisbecker.
++ *
++ *  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++ *  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++ *  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++ *  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++ *  have been contributing to this project.
++ *
++ *  Up-to-date copies of the MUMPS package can be obtained
++ *  from the Web pages:
++ *  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++ *
++ *
++ *   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++ *   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++ *
++ *
++ *  User documentation of any code that uses this software can
++ *  include this complete notice. You can acknowledge (using
++ *  references [1] and [2]) the contribution of this package
++ *  in any scientific publication dependent upon the use of the
++ *  package. You shall use reasonable endeavours to notify
++ *  the authors of the package of this publication.
++ *
++ *   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++ *   A fully asynchronous multifrontal solver using distributed dynamic
++ *   scheduling, SIAM Journal of Matrix Analysis and Applications,
++ *   Vol 23, No 1, pp 15-41 (2001).
++ *
++ *   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++ *   S. Pralet, Hybrid scheduling for the parallel solution of linear
++ *   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++ *
++ */
++
++/* Compatibility issues between various Windows versions */
++#ifndef MUMPS_COMPAT_H
++#define MUMPS_COMPAT_H
++
++
++#if defined(_WIN32) && ! defined(__MINGW32__)
++# define MUMPS_WIN32 1
++#endif
++
++#ifndef MUMPS_CALL
++# ifdef MUMPS_WIN32
++/* Modify/choose between next 2 lines depending
++ * on your Windows calling conventions */
++/* #  define MUMPS_CALL __stdcall */
++#  define MUMPS_CALL
++# else
++#  define MUMPS_CALL
++# endif
++#endif
++
++#if (__STDC_VERSION__ >= 199901L)
++# define MUMPS_INLINE static inline
++#else
++# define MUMPS_INLINE
++#endif
++
++
++#endif /* MUMPS_COMPAT_H */
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/smumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE SMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        REAL*4, DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        REAL*4, DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        REAL*4, DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        REAL*4, DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        REAL*4 :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE SMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/smumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'smumps_root.h'
++      TYPE SMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        REAL*4, DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        REAL*4, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        REAL*4, DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        REAL*4, DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        REAL*4, DIMENSION(:), POINTER :: RHS, REDRHS
++        REAL*4, DIMENSION(:), POINTER :: RHS_SPARSE
++        REAL*4, DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        REAL*4 COST_SUBTREES
++        REAL*4 CNTL(15)
++        REAL*4 RINFO(40)
++        REAL*4 RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        REAL*4, DIMENSION(:), POINTER :: SCHUR
++        REAL*4, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    SMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        REAL*4, DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        REAL*4, DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        REAL*4, DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        REAL*4, DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        REAL*4 DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (SMUMPS_ROOT_STRUC) :: root
++      END TYPE SMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/zmumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE ZMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        COMPLEX(kind=8), DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        DOUBLE PRECISION :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE ZMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0/zmumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'zmumps_root.h'
++      TYPE ZMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: RHS, REDRHS
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: RHS_SPARSE
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        DOUBLE PRECISION COST_SUBTREES
++        DOUBLE PRECISION CNTL(15)
++        DOUBLE PRECISION RINFO(40)
++        DOUBLE PRECISION RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SCHUR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    ZMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        COMPLEX(kind=8), DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        DOUBLE PRECISION DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (ZMUMPS_ROOT_STRUC) :: root
++      END TYPE ZMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/cmumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE CMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        COMPLEX*8, DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        COMPLEX*8, DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        COMPLEX*8, DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        COMPLEX*8, DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        REAL*4 :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE CMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/cmumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'cmumps_root.h'
++      TYPE CMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        COMPLEX*8, DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        REAL*4, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        COMPLEX*8, DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        COMPLEX*8, DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        COMPLEX*8, DIMENSION(:), POINTER :: RHS, REDRHS
++        COMPLEX*8, DIMENSION(:), POINTER :: RHS_SPARSE
++        COMPLEX*8, DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        REAL*4 COST_SUBTREES
++        REAL*4 CNTL(15)
++        REAL*4 RINFO(40)
++        REAL*4 RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        COMPLEX*8, DIMENSION(:), POINTER :: SCHUR
++        COMPLEX*8, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    CMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        COMPLEX*8, DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        COMPLEX*8, DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        COMPLEX*8, DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        COMPLEX*8, DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        REAL*4 DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (CMUMPS_ROOT_STRUC) :: root
++      END TYPE CMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/dmumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE DMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        DOUBLE PRECISION, DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        DOUBLE PRECISION :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE DMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/dmumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'dmumps_root.h'
++      TYPE DMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS, REDRHS
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS_SPARSE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        DOUBLE PRECISION COST_SUBTREES
++        DOUBLE PRECISION CNTL(15)
++        DOUBLE PRECISION RINFO(40)
++        DOUBLE PRECISION RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    DMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        DOUBLE PRECISION, DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        DOUBLE PRECISION DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (DMUMPS_ROOT_STRUC) :: root
++      END TYPE DMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/mumps_compat.h
+@@ -0,0 +1,78 @@
++/*
++ *
++ *  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++ *
++ *
++ *  This version of MUMPS is provided to you free of charge. It is public
++ *  domain, based on public domain software developed during the Esprit IV
++ *  European project PARASOL (1996-1999). Since this first public domain
++ *  version in 1999, research and developments have been supported by the
++ *  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++ *  INRIA, and University of Bordeaux.
++ *
++ *  The MUMPS team at the moment of releasing this version includes
++ *  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++ *  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++ *  Ucar and Clement Weisbecker.
++ *
++ *  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++ *  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++ *  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++ *  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++ *  have been contributing to this project.
++ *
++ *  Up-to-date copies of the MUMPS package can be obtained
++ *  from the Web pages:
++ *  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++ *
++ *
++ *   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++ *   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++ *
++ *
++ *  User documentation of any code that uses this software can
++ *  include this complete notice. You can acknowledge (using
++ *  references [1] and [2]) the contribution of this package
++ *  in any scientific publication dependent upon the use of the
++ *  package. You shall use reasonable endeavours to notify
++ *  the authors of the package of this publication.
++ *
++ *   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++ *   A fully asynchronous multifrontal solver using distributed dynamic
++ *   scheduling, SIAM Journal of Matrix Analysis and Applications,
++ *   Vol 23, No 1, pp 15-41 (2001).
++ *
++ *   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++ *   S. Pralet, Hybrid scheduling for the parallel solution of linear
++ *   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++ *
++ */
++
++/* Compatibility issues between various Windows versions */
++#ifndef MUMPS_COMPAT_H
++#define MUMPS_COMPAT_H
++
++
++#if defined(_WIN32) && ! defined(__MINGW32__)
++# define MUMPS_WIN32 1
++#endif
++
++#ifndef MUMPS_CALL
++# ifdef MUMPS_WIN32
++/* Modify/choose between next 2 lines depending
++ * on your Windows calling conventions */
++/* #  define MUMPS_CALL __stdcall */
++#  define MUMPS_CALL
++# else
++#  define MUMPS_CALL
++# endif
++#endif
++
++#if (__STDC_VERSION__ >= 199901L)
++# define MUMPS_INLINE static inline
++#else
++# define MUMPS_INLINE
++#endif
++
++
++#endif /* MUMPS_COMPAT_H */
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/smumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE SMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        REAL*4, DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        REAL*4, DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        REAL*4, DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        REAL*4, DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        REAL*4 :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE SMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/smumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'smumps_root.h'
++      TYPE SMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        REAL*4, DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        REAL*4, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        REAL*4, DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        REAL*4, DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        REAL*4, DIMENSION(:), POINTER :: RHS, REDRHS
++        REAL*4, DIMENSION(:), POINTER :: RHS_SPARSE
++        REAL*4, DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        REAL*4 COST_SUBTREES
++        REAL*4 CNTL(15)
++        REAL*4 RINFO(40)
++        REAL*4 RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        REAL*4, DIMENSION(:), POINTER :: SCHUR
++        REAL*4, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    SMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        REAL*4, DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        REAL*4, DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        REAL*4, DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        REAL*4, DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        REAL*4 DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (SMUMPS_ROOT_STRUC) :: root
++      END TYPE SMUMPS_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/zmumps_root.h
+@@ -0,0 +1,75 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      TYPE ZMUMPS_ROOT_STRUC
++        SEQUENCE
++        INTEGER*4 :: MBLOCK, NBLOCK, NPROW, NPCOL
++        INTEGER*4 :: MYROW, MYCOL
++        INTEGER*4 :: SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 :: RHS_NLOC
++        INTEGER*4 :: ROOT_SIZE, TOT_ROOT_SIZE
++!       descriptor for scalapack
++        INTEGER*4, DIMENSION( 9 ) :: DESCRIPTOR
++        INTEGER*4 :: CNTXT_BLACS, LPIV, rootpad0
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_ROW
++        INTEGER*4, DIMENSION(:), POINTER :: RG2L_COL
++        INTEGER*4 , DIMENSION(:), POINTER :: IPIV, rootpad1
++!       Centralized master of root
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: RHS_CNTR_MASTER_ROOT
++!       Used to access Schur easily from root structure
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SCHUR_POINTER
++!       for try_null_space preprocessing constant only:
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: QR_TAU, rootpad2
++!       Fwd in facto: 
++!           case of scalapack root: to store RHS in 2D block cyclic
++!           format compatible with root distribution
++        COMPLEX(kind=8), DIMENSION(:,:), POINTER :: RHS_ROOT, rootpad
++!       for try_nullspace preprocessing constant only:
++        DOUBLE PRECISION :: QR_RCOND, rootpad3
++        LOGICAL*4 yes, gridinit_done
++!
++      END TYPE ZMUMPS_ROOT_STRUC
+--- /dev/null
++++ b/STA10.6/bibf90/include_mumps-4.10.0_mpi/zmumps_struc.h
+@@ -0,0 +1,265 @@
++!
++!  This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
++!
++!
++!  This version of MUMPS is provided to you free of charge. It is public
++!  domain, based on public domain software developed during the Esprit IV
++!  European project PARASOL (1996-1999). Since this first public domain
++!  version in 1999, research and developments have been supported by the
++!  following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
++!  INRIA, and University of Bordeaux.
++!
++!  The MUMPS team at the moment of releasing this version includes
++!  Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
++!  Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
++!  Ucar and Clement Weisbecker.
++!
++!  We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
++!  Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
++!  Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
++!  Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
++!  have been contributing to this project.
++!
++!  Up-to-date copies of the MUMPS package can be obtained
++!  from the Web pages:
++!  http://mumps.enseeiht.fr/  or  http://graal.ens-lyon.fr/MUMPS
++!
++!
++!   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
++!   EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
++!
++!
++!  User documentation of any code that uses this software can
++!  include this complete notice. You can acknowledge (using
++!  references [1] and [2]) the contribution of this package
++!  in any scientific publication dependent upon the use of the
++!  package. You shall use reasonable endeavours to notify
++!  the authors of the package of this publication.
++!
++!   [1] P. R. Amestoy, I. S. Duff, J. Koster and  J.-Y. L'Excellent,
++!   A fully asynchronous multifrontal solver using distributed dynamic
++!   scheduling, SIAM Journal of Matrix Analysis and Applications,
++!   Vol 23, No 1, pp 15-41 (2001).
++!
++!   [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
++!   S. Pralet, Hybrid scheduling for the parallel solution of linear
++!   systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
++!
++      INCLUDE 'zmumps_root.h'
++      TYPE ZMUMPS_STRUC
++        SEQUENCE
++!
++! This structure contains all parameters 
++! for the interface to the user, plus internal
++! information from the solver
++!
++! *****************
++! INPUT PARAMETERS
++! *****************
++!    -----------------
++!    MPI Communicator
++!    -----------------
++        INTEGER*4 COMM
++!    ------------------
++!    Problem definition
++!    ------------------
++!    Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite, 
++!        SYM=2 general symmetric)
++!    Type of parallelism (PAR=1 host working, PAR=0 host not working)
++        INTEGER*4 SYM, PAR
++        INTEGER*4 JOB 
++!    --------------------
++!    Order of Input matrix 
++!    --------------------
++        INTEGER*4 N
++!
++!    ----------------------------------------
++!    Assembled input matrix : User interface
++!    ----------------------------------------
++        INTEGER*4 NZ
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: A
++        INTEGER*4, DIMENSION(:), POINTER :: IRN, JCN
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
++!
++!       ------------------------------------
++!       Case of distributed assembled matrix
++!       matrix on entry:
++!       ------------------------------------
++        INTEGER*4 NZ_loc, pad1
++        INTEGER*4, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: A_loc, pad2
++!
++!    ----------------------------------------
++!    Unassembled input matrix: User interface
++!    ----------------------------------------
++        INTEGER*4 NELT, pad3
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPTR
++        INTEGER*4, DIMENSION(:), POINTER :: ELTVAR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: A_ELT, pad4
++!
++!    ---------------------------------------------
++!    Symmetric permutation : 
++!               PERM_IN if given by user (optional)
++!    ---------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: PERM_IN
++!
++!
++! ******************
++! INPUT/OUTPUT data 
++! ******************
++!    --------------------------------------------------------
++!    RHS / SOL_loc
++!    -------------
++!       right-hand side and solution
++!    -------------------------------------------------------
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: RHS, REDRHS
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: RHS_SPARSE
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SOL_loc
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_SPARSE
++        INTEGER*4, DIMENSION(:), POINTER :: IRHS_PTR
++        INTEGER*4, DIMENSION(:), POINTER :: ISOL_loc
++        INTEGER*4 LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
++        INTEGER*4 pad5
++!    ----------------------------
++!    Control parameters,
++!    statistics and output data
++!    ---------------------------
++        INTEGER*4 ICNTL(40)
++        INTEGER*4 INFO(40) 
++        INTEGER*4 INFOG(40)
++        DOUBLE PRECISION COST_SUBTREES
++        DOUBLE PRECISION CNTL(15)
++        DOUBLE PRECISION RINFO(40)
++        DOUBLE PRECISION RINFOG(40)
++!    ---------------------------------------------------------
++!    Permutations computed during analysis:
++!       SYM_PERM: Symmetric permutation 
++!       UNS_PERM: Column permutations (optionnal)
++!    ---------------------------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
++! 
++!    -----
++!    Schur
++!    -----
++        INTEGER*4 NPROW, NPCOL, MBLOCK, NBLOCK
++        INTEGER*4 SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
++        INTEGER*4 SIZE_SCHUR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SCHUR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: SCHUR_CINTERFACE
++        INTEGER*4, DIMENSION(:), POINTER :: LISTVAR_SCHUR
++!    -------------------------------------
++!    Case of distributed matrix on entry:
++!    ZMUMPS potentially provides mapping
++!    -------------------------------------
++        INTEGER*4, DIMENSION(:), POINTER :: MAPPING
++!    --------------
++!    Version number
++!    --------------
++        CHARACTER(LEN=14) VERSION_NUMBER
++!    -----------
++!    Out-of-core
++!    -----------
++        CHARACTER(LEN=255) :: OOC_TMPDIR
++        CHARACTER(LEN=63) :: OOC_PREFIX
++!    ------------------------------------------
++!    To save the matrix in matrix market format
++!    ------------------------------------------
++        CHARACTER(LEN=255) WRITE_PROBLEM
++        CHARACTER(LEN=5) :: pad8
++!
++!
++! **********************
++! INTERNAL Working data
++! *********************
++        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
++        INTEGER*4 INST_Number
++!       For MPI
++        INTEGER*4 COMM_NODES, MYID_NODES, COMM_LOAD
++        INTEGER*4  MYID, NPROCS, NSLAVES
++        INTEGER*4 ASS_IRECV
++        INTEGER*4 LBUFR
++        INTEGER*4 LBUFR_BYTES
++        INTEGER*4, DIMENSION(:), POINTER :: POIDS
++        INTEGER*4, DIMENSION(:), POINTER ::  BUFR
++!       IS is used for the factors + workspace for contrib. blocks
++        INTEGER*4, DIMENSION(:), POINTER :: IS
++!       IS1 (maxis1) contains working arrays computed 
++!       and used only during analysis
++        INTEGER*4, DIMENSION(:), POINTER :: IS1
++!       For analysis/facto/solve phases
++        INTEGER*4 MAXIS1, Deficiency
++        INTEGER*4 KEEP(500)
++!       The following data/arrays are computed during the analysis
++!       phase and used during the factorization and solve phases.
++        INTEGER*4 LNA
++        INTEGER*4 NBSA
++        INTEGER*4,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
++!  Info for pruning tree 
++        INTEGER*4,POINTER,DIMENSION(:)::Step2node
++!  ---------------------
++        INTEGER*4,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
++        INTEGER*4,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
++        INTEGER*4,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
++!       The two pointer arrays computed in facto and used by the solve
++!          (except the factors) are PTLUST_S and PTRFAC. 
++        INTEGER*4, DIMENSION(:), POINTER :: PTLUST_S
++        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
++!       main REAL*4 working arrays for factorization/solve phases
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: S
++!       Information on mapping
++        INTEGER*4, DIMENSION(:), POINTER :: PROCNODE
++!       Input matrix ready for numerical assembly 
++!           -arrowhead format in case of assembled matrix
++!           -element format otherwise
++        INTEGER*4, DIMENSION(:), POINTER :: INTARR
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: DBLARR
++!       Element entry: internal data
++        INTEGER*4 NELT_loc, LELTVAR, NA_ELT, pad11
++        INTEGER*4, DIMENSION(:), POINTER :: ELTPROC
++!       Candidates and node partitionning
++        INTEGER*4, DIMENSION(:,:), POINTER :: CANDIDATES
++        INTEGER*4, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
++        INTEGER*4, DIMENSION(:),   POINTER :: FUTURE_NIV2
++        INTEGER*4, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
++        LOGICAL*4, DIMENSION(:),   POINTER :: I_AM_CAND
++!       For heterogeneous architecture
++        INTEGER*4, DIMENSION(:), POINTER :: MEM_DIST
++!       Compressed RHS
++        INTEGER*4, DIMENSION(:),   POINTER :: POSINRHSCOMP
++        COMPLEX(kind=8), DIMENSION(:),   POINTER :: RHSCOMP
++!       Info on the subtrees to be used during factorization
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
++        DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: MY_NB_LEAF
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST
++        INTEGER*4, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
++        INTEGER*4, DIMENSION(:),   POINTER :: SBTR_ID
++        COMPLEX(kind=8), DIMENSION(:), POINTER :: WK_USER
++        INTEGER*4 :: NBSA_LOCAL
++        INTEGER*4 :: LWK_USER
++!    Internal control array
++        DOUBLE PRECISION DKEEP(30)
++!    For simulating parallel out-of-core stack.
++        DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
++!    Instance number used/managed by the C/F77 interface
++        INTEGER*4 INSTANCE_NUMBER
++!    OOC management data that must persist from factorization to solve.
++        INTEGER*4 OOC_MAX_NB_NODES_FOR_ZONE
++        INTEGER*4, DIMENSION(:,:),  POINTER :: OOC_INODE_SEQUENCE, pad13
++        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
++        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_NB_FILES
++        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
++        INTEGER*4,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
++!    Indices of nul pivots
++        INTEGER*4,DIMENSION(:), POINTER :: PIVNUL_LIST
++!    Array needed to manage additionnal candidate processor 
++        INTEGER*4, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
++!   ------------------------
++!   Root structure(internal)
++!   ------------------------
++        TYPE (ZMUMPS_ROOT_STRUC) :: root
++      END TYPE ZMUMPS_STRUC

Modified: packages/code-aster/aster/trunk/debian/patches/series
URL: http://svn.debian.org/wsvn/debian-science/packages/code-aster/aster/trunk/debian/patches/series?rev=45352&op=diff
==============================================================================
--- packages/code-aster/aster/trunk/debian/patches/series (original)
+++ packages/code-aster/aster/trunk/debian/patches/series Thu Sep 13 10:36:53 2012
@@ -4,3 +4,4 @@
 mpi.diff
 tests_without_homard.patch
 med_f90.diff
+mumps-4.10.0.patch




More information about the debian-science-commits mailing list