DMUMPS_STRUC Derived Type

type, public :: DMUMPS_STRUC
sequence


Inherits

type~~dmumps_struc~~InheritsGraph type~dmumps_struc DMUMPS_STRUC DMUMPS_ROOT_STRUC DMUMPS_ROOT_STRUC type~dmumps_struc->DMUMPS_ROOT_STRUC root

Contents

COMM SYM PAR JOB N NZ NNZ A IRN JCN COLSCA ROWSCA pad0 NZ_loc pad1 NNZ_loc IRN_loc JCN_loc A_loc pad2 NELT pad3 ELTPTR ELTVAR A_ELT pad4 PERM_IN RHS REDRHS RHS_SPARSE SOL_loc IRHS_SPARSE IRHS_PTR ISOL_loc LRHS NRHS NZ_RHS LSOL_loc LREDRHS pad5 ICNTL INFO INFOG COST_SUBTREES CNTL RINFO RINFOG SYM_PERM UNS_PERM NPROW NPCOL MBLOCK NBLOCK SCHUR_MLOC SCHUR_NLOC SCHUR_LLD SIZE_SCHUR SCHUR SCHUR_CINTERFACE LISTVAR_SCHUR MAPPING VERSION_NUMBER OOC_TMPDIR OOC_PREFIX WRITE_PROBLEM SAVE_DIR SAVE_PREFIX pad8 KEEP8 MAX_SURF_MASTER INST_Number COMM_NODES MYID_NODES COMM_LOAD MYID NPROCS NSLAVES ASS_IRECV LBUFR LBUFR_BYTES BUFR IS IS1 MAXIS1 Deficiency KEEP LNA NBSA STEP NE_STEPS ND_STEPS Step2node FRERE_STEPS DAD_STEPS FILS FRTPTR FRTELT PTRAR NA PROCNODE_STEPS PTLUST_S PTRFAC S PROCNODE INTARR DBLARR NELT_loc LELTVAR ELTPROC CANDIDATES ISTEP_TO_INIV2 FUTURE_NIV2 TAB_POS_IN_PERE I_AM_CAND MEM_DIST POSINRHSCOMP_ROW POSINRHSCOMP_COL_ALLOC pad11 POSINRHSCOMP_COL RHSCOMP MEM_SUBTREE COST_TRAV MY_ROOT_SBTR MY_FIRST_LEAF MY_NB_LEAF DEPTH_FIRST DEPTH_FIRST_SEQ SBTR_ID SCHED_DEP SCHED_GRP SCHED_SBTR CROIX_MANU WK_USER NBSA_LOCAL LWK_USER DKEEP CB_SON_SIZE INSTANCE_NUMBER OOC_MAX_NB_NODES_FOR_ZONE OOC_INODE_SEQUENCE OOC_SIZE_OF_BLOCK OOC_VADDR OOC_TOTAL_NB_NODES OOC_NB_FILES OOC_NB_FILE_TYPE pad12 OOC_FILE_NAME_LENGTH OOC_FILE_NAMES PIVNUL_LIST SUP_PROC pad14 IPTR_WORKING WORKING root LRGROUPS NBGRP pad13 FDM_F_ENCODING BLRARRAY_ENCODING LPOOL_AFTER_L0_OMP LPOOL_BEFORE_L0_OMP L_PHYS_L0_OMP L_VIRT_L0_OMP LL0_OMP_MAPPING pad15 THREAD_LA IPOOL_BEFORE_L0_OMP IPOOL_AFTER_L0_OMP PHYS_L0_OMP VIRT_L0_OMP PERM_L0_OMP PTR_LEAFS_L0_OMP L0_OMP_MAPPING SINGULAR_VALUES NB_SINGULAR_VALUES ASSOCIATED_OOC_FILES

Source Code


Components

TypeVisibility AttributesNameInitial
integer, public :: COMM
integer, public :: SYM
integer, public :: PAR
integer, public :: JOB
integer, public :: N
integer, public :: NZ
integer(kind=8), public :: NNZ
double precision, public, DIMENSION(:), POINTER:: A
integer, public, DIMENSION(:), POINTER:: IRN
integer, public, DIMENSION(:), POINTER:: JCN
double precision, public, DIMENSION(:), POINTER:: COLSCA
double precision, public, DIMENSION(:), POINTER:: ROWSCA
double precision, public, DIMENSION(:), POINTER:: pad0
integer, public :: NZ_loc
integer, public :: pad1
integer(kind=8), public :: NNZ_loc
integer, public, DIMENSION(:), POINTER:: IRN_loc
integer, public, DIMENSION(:), POINTER:: JCN_loc
double precision, public, DIMENSION(:), POINTER:: A_loc
double precision, public, DIMENSION(:), POINTER:: pad2
integer, public :: NELT
integer, public :: pad3
integer, public, DIMENSION(:), POINTER:: ELTPTR
integer, public, DIMENSION(:), POINTER:: ELTVAR
double precision, public, DIMENSION(:), POINTER:: A_ELT
double precision, public, DIMENSION(:), POINTER:: pad4
integer, public, DIMENSION(:), POINTER:: PERM_IN
double precision, public, DIMENSION(:), POINTER:: RHS
double precision, public, DIMENSION(:), POINTER:: REDRHS
double precision, public, DIMENSION(:), POINTER:: RHS_SPARSE
double precision, public, DIMENSION(:), POINTER:: SOL_loc
integer, public, DIMENSION(:), POINTER:: IRHS_SPARSE
integer, public, DIMENSION(:), POINTER:: IRHS_PTR
integer, public, DIMENSION(:), POINTER:: ISOL_loc
integer, public :: LRHS
integer, public :: NRHS
integer, public :: NZ_RHS
integer, public :: LSOL_loc
integer, public :: LREDRHS
integer, public :: pad5
integer, public :: ICNTL(40)
integer, public :: INFO(40)
integer, public :: INFOG(40)
double precision, public :: COST_SUBTREES
double precision, public :: CNTL(15)
double precision, public :: RINFO(40)
double precision, public :: RINFOG(40)
integer, public, DIMENSION(:), POINTER:: SYM_PERM
integer, public, DIMENSION(:), POINTER:: UNS_PERM
integer, public :: NPROW
integer, public :: NPCOL
integer, public :: MBLOCK
integer, public :: NBLOCK
integer, public :: SCHUR_MLOC
integer, public :: SCHUR_NLOC
integer, public :: SCHUR_LLD
integer, public :: SIZE_SCHUR
double precision, public, DIMENSION(:), POINTER:: SCHUR
double precision, public, DIMENSION(:), POINTER:: SCHUR_CINTERFACE
integer, public, DIMENSION(:), POINTER:: LISTVAR_SCHUR
integer, public, DIMENSION(:), POINTER:: MAPPING
character(len=30), public :: VERSION_NUMBER
character(len=255), public :: OOC_TMPDIR
character(len=63), public :: OOC_PREFIX
character(len=255), public :: WRITE_PROBLEM
character(len=255), public :: SAVE_DIR
character(len=255), public :: SAVE_PREFIX
character(len=7), public :: pad8
integer(kind=8), public :: KEEP8(150)
integer(kind=8), public :: MAX_SURF_MASTER
integer, public :: INST_Number
integer, public :: COMM_NODES
integer, public :: MYID_NODES
integer, public :: COMM_LOAD
integer, public :: MYID
integer, public :: NPROCS
integer, public :: NSLAVES
integer, public :: ASS_IRECV
integer, public :: LBUFR
integer, public :: LBUFR_BYTES
integer, public, DIMENSION(:), POINTER:: BUFR
integer, public, DIMENSION(:), POINTER:: IS
integer, public, DIMENSION(:), POINTER:: IS1
integer, public :: MAXIS1
integer, public :: Deficiency
integer, public :: KEEP(500)
integer, public :: LNA
integer, public :: NBSA
integer, public, POINTER, DIMENSION(:):: STEP
integer, public, POINTER, DIMENSION(:):: NE_STEPS
integer, public, POINTER, DIMENSION(:):: ND_STEPS
integer, public, POINTER, DIMENSION(:):: Step2node
integer, public, POINTER, DIMENSION(:):: FRERE_STEPS
integer, public, POINTER, DIMENSION(:):: DAD_STEPS
integer, public, POINTER, DIMENSION(:):: FILS
integer, public, POINTER, DIMENSION(:):: FRTPTR
integer, public, POINTER, DIMENSION(:):: FRTELT
integer(kind=8), public, POINTER, DIMENSION(:):: PTRAR
integer, public, POINTER, DIMENSION(:):: NA
integer, public, POINTER, DIMENSION(:):: PROCNODE_STEPS
integer, public, DIMENSION(:), POINTER:: PTLUST_S
integer(kind=8), public, DIMENSION(:), POINTER:: PTRFAC
double precision, public, DIMENSION(:), POINTER:: S
integer, public, DIMENSION(:), POINTER:: PROCNODE
integer, public, DIMENSION(:), POINTER:: INTARR
double precision, public, DIMENSION(:), POINTER:: DBLARR
integer, public :: NELT_loc
integer, public :: LELTVAR
integer, public, DIMENSION(:), POINTER:: ELTPROC
integer, public, DIMENSION(:,:), POINTER:: CANDIDATES
integer, public, DIMENSION(:), POINTER:: ISTEP_TO_INIV2
integer, public, DIMENSION(:), POINTER:: FUTURE_NIV2
integer, public, DIMENSION(:,:), POINTER:: TAB_POS_IN_PERE
logical, public, DIMENSION(:), POINTER:: I_AM_CAND
integer, public, DIMENSION(:), POINTER:: MEM_DIST
integer, public, DIMENSION(:), POINTER:: POSINRHSCOMP_ROW
logical, public :: POSINRHSCOMP_COL_ALLOC
logical, public :: pad11
integer, public, DIMENSION(:), POINTER:: POSINRHSCOMP_COL
double precision, public, DIMENSION(:), POINTER:: RHSCOMP
double precision, public, DIMENSION(:), POINTER:: MEM_SUBTREE
double precision, public, DIMENSION(:), POINTER:: COST_TRAV
integer, public, DIMENSION(:), POINTER:: MY_ROOT_SBTR
integer, public, DIMENSION(:), POINTER:: MY_FIRST_LEAF
integer, public, DIMENSION(:), POINTER:: MY_NB_LEAF
integer, public, DIMENSION(:), POINTER:: DEPTH_FIRST
integer, public, DIMENSION(:), POINTER:: DEPTH_FIRST_SEQ
integer, public, DIMENSION(:), POINTER:: SBTR_ID
integer, public, DIMENSION(:), POINTER:: SCHED_DEP
integer, public, DIMENSION(:), POINTER:: SCHED_GRP
integer, public, DIMENSION(:), POINTER:: SCHED_SBTR
integer, public, DIMENSION(:), POINTER:: CROIX_MANU
double precision, public, DIMENSION(:), POINTER:: WK_USER
integer, public :: NBSA_LOCAL
integer, public :: LWK_USER
double precision, public :: DKEEP(230)
double precision, public, DIMENSION(:), POINTER:: CB_SON_SIZE
integer, public :: INSTANCE_NUMBER
integer, public :: OOC_MAX_NB_NODES_FOR_ZONE
integer, public, DIMENSION(:,:), POINTER:: OOC_INODE_SEQUENCE
integer(kind=8), public, DIMENSION(:,:), POINTER:: OOC_SIZE_OF_BLOCK
integer(kind=8), public, DIMENSION(:,:), POINTER:: OOC_VADDR
integer, public, DIMENSION(:), POINTER:: OOC_TOTAL_NB_NODES
integer, public, DIMENSION(:), POINTER:: OOC_NB_FILES
integer, public :: OOC_NB_FILE_TYPE
integer, public :: pad12
integer, public, DIMENSION(:), POINTER:: OOC_FILE_NAME_LENGTH
character, public, DIMENSION(:,:), POINTER:: OOC_FILE_NAMES
integer, public, DIMENSION(:), POINTER:: PIVNUL_LIST
integer, public, DIMENSION(:,:), POINTER:: SUP_PROC
integer, public, DIMENSION(:,:), POINTER:: pad14
integer, public, DIMENSION(:), POINTER:: IPTR_WORKING
integer, public, DIMENSION(:), POINTER:: WORKING
type(DMUMPS_ROOT_STRUC), public :: root
integer, public, POINTER, DIMENSION(:):: LRGROUPS
integer, public :: NBGRP
integer, public :: pad13
character(len=1), public, DIMENSION(:), POINTER:: FDM_F_ENCODING
character(len=1), public, DIMENSION(:), POINTER:: BLRARRAY_ENCODING
integer, public :: LPOOL_AFTER_L0_OMP
integer, public :: LPOOL_BEFORE_L0_OMP
integer, public :: L_PHYS_L0_OMP
integer, public :: L_VIRT_L0_OMP
integer, public :: LL0_OMP_MAPPING
integer, public :: pad15
integer(kind=8), public :: THREAD_LA
integer, public, DIMENSION(:), POINTER:: IPOOL_BEFORE_L0_OMP
integer, public, DIMENSION(:), POINTER:: IPOOL_AFTER_L0_OMP
integer, public, DIMENSION(:), POINTER:: PHYS_L0_OMP
integer, public, DIMENSION(:), POINTER:: VIRT_L0_OMP
integer, public, DIMENSION(:), POINTER:: PERM_L0_OMP
integer, public, DIMENSION(:), POINTER:: PTR_LEAFS_L0_OMP
integer, public, DIMENSION(:), POINTER:: L0_OMP_MAPPING
double precision, public, DIMENSION(:), POINTER:: SINGULAR_VALUES
integer, public :: NB_SINGULAR_VALUES
logical, public :: ASSOCIATED_OOC_FILES

Source Code

      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 :: 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 ::  SYM, PAR
        INTEGER ::  JOB 
!    --------------------
!    Order of Input matrix 
!    --------------------
        INTEGER ::  N
!
!    ----------------------------------------
!    Assembled input matrix : User interface
!    ----------------------------------------
        INTEGER    :: NZ  ! Standard integer input + bwd. compat.
        INTEGER(8) :: NNZ ! 64-bit integer input
        DOUBLE PRECISION, DIMENSION(:), POINTER :: A
        INTEGER, DIMENSION(:), POINTER :: IRN, JCN
        DOUBLE PRECISION, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
!
!       ------------------------------------
!       Case of distributed assembled matrix
!       matrix on entry:
!       ------------------------------------
        INTEGER    :: NZ_loc  ! Standard integer input + bwd. compat.
        INTEGER    :: pad1
        INTEGER(8) :: NNZ_loc ! 64-bit integer input
        INTEGER, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
        DOUBLE PRECISION, DIMENSION(:), POINTER :: A_loc, pad2
!
!    ----------------------------------------
!    Unassembled input matrix: User interface
!    ----------------------------------------
        INTEGER :: NELT, pad3
        INTEGER, DIMENSION(:), POINTER :: ELTPTR
        INTEGER, DIMENSION(:), POINTER :: ELTVAR
        DOUBLE PRECISION, DIMENSION(:), POINTER :: A_ELT, pad4
!
!    ---------------------------------------------
!    Symmetric permutation : 
!               PERM_IN if given by user (optional)
!    ---------------------------------------------
        INTEGER, 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, DIMENSION(:), POINTER :: IRHS_SPARSE
        INTEGER, DIMENSION(:), POINTER :: IRHS_PTR
        INTEGER, DIMENSION(:), POINTER :: ISOL_loc
        INTEGER ::  LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
        INTEGER ::  pad5
!    ----------------------------
!    Control parameters,
!    statistics and output data
!    ---------------------------
        INTEGER ::  ICNTL(40)
        INTEGER ::  INFO(40) 
        INTEGER :: 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 permutation (optional)
!    ---------------------------------------------------------
        INTEGER, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
! 
!    -----
!    Schur
!    -----
        INTEGER ::  NPROW, NPCOL, MBLOCK, NBLOCK
        INTEGER ::  SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
        INTEGER ::  SIZE_SCHUR
        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR
        DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
        INTEGER, DIMENSION(:), POINTER :: LISTVAR_SCHUR
!    -------------------------------------
!    Case of distributed matrix on entry:
!    DMUMPS potentially provides mapping
!    -------------------------------------
        INTEGER, DIMENSION(:), POINTER :: MAPPING
!    --------------
!    Version number
!    --------------
        CHARACTER(LEN=30) ::  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
!    -----------
!    Save/Restore
!    -----------
        CHARACTER(LEN=255) :: SAVE_DIR
        CHARACTER(LEN=255)  :: SAVE_PREFIX
        CHARACTER(LEN=7)   ::  pad8  
!
!
! **********************
! INTERNAL Working data
! *********************
        INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
        INTEGER ::  INST_Number
!       For MPI
        INTEGER ::  COMM_NODES, MYID_NODES, COMM_LOAD
        INTEGER ::   MYID, NPROCS, NSLAVES
        INTEGER ::  ASS_IRECV
        INTEGER ::  LBUFR
        INTEGER ::  LBUFR_BYTES
        INTEGER, DIMENSION(:), POINTER ::  BUFR
!       IS is used for the factors + workspace for contrib. blocks
        INTEGER, DIMENSION(:), POINTER :: IS
!       IS1 (maxis1) contains working arrays computed 
!       and used only during analysis
        INTEGER, DIMENSION(:), POINTER :: IS1
!       For analysis/facto/solve phases
        INTEGER ::  MAXIS1, Deficiency
        INTEGER ::  KEEP(500)
!       The following data/arrays are computed during the analysis
!       phase and used during the factorization and solve phases.
        INTEGER ::  LNA
        INTEGER ::  NBSA
        INTEGER,POINTER,DIMENSION(:) :: STEP, NE_STEPS, ND_STEPS
!  Info for pruning tree 
        INTEGER,POINTER,DIMENSION(:) :: Step2node
!  ---------------------
        INTEGER,POINTER,DIMENSION(:) :: FRERE_STEPS, DAD_STEPS
        INTEGER,POINTER,DIMENSION(:) :: FILS, FRTPTR, FRTELT
        INTEGER(8),POINTER,DIMENSION(:) :: PTRAR
        INTEGER,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, DIMENSION(:), POINTER :: PTLUST_S
        INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
!       main real working arrays for factorization/solve phases
        DOUBLE PRECISION, DIMENSION(:), POINTER :: S
!       Information on mapping
        INTEGER, DIMENSION(:), POINTER :: PROCNODE
!       Input matrix ready for numerical assembly 
!           -arrowhead format in case of assembled matrix
!           -element format otherwise
        INTEGER, DIMENSION(:), POINTER :: INTARR
        DOUBLE PRECISION, DIMENSION(:), POINTER :: DBLARR
!       Element entry: internal data
        INTEGER :: NELT_loc, LELTVAR
        INTEGER, DIMENSION(:), POINTER :: ELTPROC
!       Candidates and node partitionning
        INTEGER, DIMENSION(:,:), POINTER :: CANDIDATES
        INTEGER, DIMENSION(:),   POINTER :: ISTEP_TO_INIV2
        INTEGER, DIMENSION(:),   POINTER :: FUTURE_NIV2
        INTEGER, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE 
        LOGICAL, DIMENSION(:),   POINTER :: I_AM_CAND
!       For heterogeneous architecture
        INTEGER, DIMENSION(:), POINTER :: MEM_DIST
!       Compressed RHS
        INTEGER, DIMENSION(:),   POINTER :: POSINRHSCOMP_ROW
        LOGICAL  :: POSINRHSCOMP_COL_ALLOC, pad11
        INTEGER, DIMENSION(:),   POINTER :: POSINRHSCOMP_COL
        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, DIMENSION(:),   POINTER :: MY_ROOT_SBTR
        INTEGER, DIMENSION(:),   POINTER :: MY_FIRST_LEAF
        INTEGER, DIMENSION(:),   POINTER :: MY_NB_LEAF
        INTEGER, DIMENSION(:),   POINTER :: DEPTH_FIRST
        INTEGER, DIMENSION(:),   POINTER :: DEPTH_FIRST_SEQ
        INTEGER, DIMENSION(:),   POINTER :: SBTR_ID
        INTEGER, DIMENSION(:),   POINTER :: SCHED_DEP
        INTEGER, DIMENSION(:),   POINTER :: SCHED_GRP
        INTEGER, DIMENSION(:),   POINTER :: SCHED_SBTR
        INTEGER, DIMENSION(:),   POINTER :: CROIX_MANU
        DOUBLE PRECISION, DIMENSION(:), POINTER :: WK_USER
        INTEGER :: NBSA_LOCAL
        INTEGER :: LWK_USER
!    Internal control array
        DOUBLE PRECISION ::  DKEEP(230)
!    For simulating parallel out-of-core stack.
        DOUBLE PRECISION, DIMENSION(:),POINTER :: CB_SON_SIZE
!    Instance number used/managed by the C/F77 interface
        INTEGER ::  INSTANCE_NUMBER
!    OOC management data that must persist from factorization to solve.
        INTEGER ::  OOC_MAX_NB_NODES_FOR_ZONE
        INTEGER, DIMENSION(:,:),   POINTER :: OOC_INODE_SEQUENCE
        INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
        INTEGER(8), DIMENSION(:,:),   POINTER :: OOC_VADDR
        INTEGER,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
        INTEGER,DIMENSION(:), POINTER :: OOC_NB_FILES
        INTEGER :: OOC_NB_FILE_TYPE,pad12
        INTEGER,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
        CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES  
!    Indices of nul pivots
        INTEGER,DIMENSION(:), POINTER :: PIVNUL_LIST
!    Array needed to manage additionnal candidate processor 
        INTEGER, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
!    Lists of nodes where processors work. Built/used in solve phase.
        INTEGER, DIMENSION(:), POINTER :: IPTR_WORKING, WORKING
!    Root structure(internal)
        TYPE (DMUMPS_ROOT_STRUC) :: root
!    Low-rank
        INTEGER, POINTER, DIMENSION(:) :: LRGROUPS
        INTEGER :: NBGRP,pad13
!    Pointer encoding for FDM_F data
        CHARACTER(LEN=1), DIMENSION(:), POINTER :: FDM_F_ENCODING
!    Pointer array encoding BLR factors pointers
        CHARACTER(LEN=1), DIMENSION(:), POINTER :: BLRARRAY_ENCODING
!    Multicore
        INTEGER :: LPOOL_AFTER_L0_OMP, LPOOL_BEFORE_L0_OMP
        INTEGER :: L_PHYS_L0_OMP
        INTEGER :: L_VIRT_L0_OMP                                    
        INTEGER :: LL0_OMP_MAPPING,pad15
        INTEGER(8) :: THREAD_LA
! Pool before L0_OMP
        INTEGER, DIMENSION(:), POINTER :: IPOOL_BEFORE_L0_OMP
! Pool after L0_OMP
        INTEGER, DIMENSION(:), POINTER :: IPOOL_AFTER_L0_OMP
! Subtrees
        INTEGER, DIMENSION(:), POINTER :: PHYS_L0_OMP
! Amalgamated subtrees
        INTEGER, DIMENSION(:), POINTER :: VIRT_L0_OMP
! From heaviest to lowest subtree
        INTEGER, DIMENSION(:), POINTER :: PERM_L0_OMP
! To get leafs in global pool
        INTEGER, DIMENSION(:), POINTER :: PTR_LEAFS_L0_OMP
! Mapping of the subtrees
        INTEGER, DIMENSION(:), POINTER :: L0_OMP_MAPPING
! for RR on root
        DOUBLE PRECISION, DIMENSION(:), POINTER :: SINGULAR_VALUES
        INTEGER ::  NB_SINGULAR_VALUES
! To know if OOC files are associated to a saved and so if they should be removed.
        LOGICAL :: ASSOCIATED_OOC_FILES
      END TYPE DMUMPS_STRUC