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