anchor.diff:      i98 = hecMAT%IARRAY(98)
       if ( hecMAT%IARRAY(98)==1 ) then
         !* Interface to symbolic factorization
  -      call SETIJ(hecMESH,hecMAT,NEQns,NDEg,NTTbr,ISYm,JCOl,IROw)
  +      call SETIJ(hecMESH,hecMAT,FCT%NEQns,FCT%NDEg,FCT%NTTbr,FCT%ISYm,FCT%JCOl,FCT%IROw)
   
         !* Symbolic factorization
  -      call MATINI(NEQns,NTTbr,JCOl,IROw,LEN_colno,NSTop,LEN_dsln,IPErm,INVp,PARent,NCH,XLNzr,COLno,IALoc,RALoc,STAge,ir)
  +      call MATINI(FCT%NEQns,FCT%NTTbr,FCT%JCOl,FCT%IROw,FCT%LEN_colno,FCT%NSTop,FCT%LEN_dsln,FCT%IPErm,FCT%INVp,FCT%PARent,FCT%NCH,&
  +           FCT%XLNzr,FCT%COLno,FCT%IALoc,FCT%RALoc,FCT%STAge,ir)
         hecMAT%IARRAY(98) = 0
   
         if ( timelog > 0 .or. iterlog > 0 ) write (*,*) "[DIRECT]: symbolic fct done"
  
positive.code:     i97 = hecMAT%IARRAY(97)
      if ( hecMAT%IARRAY(97)==1 ) then
        !* Interface to numeric factorization
        call NUFORM(hecMESH,hecMAT,NEQns,NDEg,LEN_colno,NSTop,LEN_dsln,INVp,XLNzr,COLno,DIAg,ZLN,DSLn,RALoc,STAge,ir)
        call PTIME(t3)
  
        !* Numeric factorization
        call NUFCT0(NEQns,NDEg,NSTop,PARent,NCH,XLNzr,COLno,DIAg,ZLN,DSLn,STAge,ir)
        hecMAT%IARRAY(97) = 0
  
        if ( timelog > 0 .or. iterlog > 0 ) write (*,*) "[DIRECT]: numeric fct done"
  
negative.code:     type (HECMWST_MATRIX), intent(inout)::hecMAT
      integer(kind=kint), intent(in):: Ifmsg
      !------
      type (cholesky_factor), save :: FCT
      !------
      integer(kind=kint):: i98
      integer(kind=kint):: i97
  