!
!  This file is part of MUMPS 5.1.2, released
!  on Mon Oct  2 07:37:01 UTC 2017
!
!
!  Copyright 1991-2017 CERFACS, CNRS, ENS Lyon, INP Toulouse, Inria,
!  University of Bordeaux.
!
!  This version of MUMPS is provided to you free of charge. It is
!  released under the CeCILL-C license:
!  http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html
!
      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
!       for SVD on root (#define try_null_space)
        DOUBLE PRECISION, DIMENSION(:,:), POINTER :: SVD_U, SVD_VT
!       for RR on root (#define try_null_space)
        DOUBLE PRECISION, DIMENSION(:), POINTER :: SINGULAR_VALUES
        INTEGER(4) :: NB_SINGULAR_VALUES
!
      END TYPE DMUMPS_ROOT_STRUC
