anchor.diff:      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 NUFORM(hecMESH,hecMAT,FCT%NEQns,FCT%NDEg,FCT%LEN_colno,FCT%NSTop,FCT%LEN_dsln,FCT%INVp,FCT%XLNzr,FCT%COLno,FCT%DIAg,&
  +           FCT%ZLN,FCT%DSLn,FCT%RALoc,FCT%STAge,ir)
         call PTIME(t3)
   
         !* Numeric factorization
  -      call NUFCT0(NEQns,NDEg,NSTop,PARent,NCH,XLNzr,COLno,DIAg,ZLN,DSLn,STAge,ir)
  +      call NUFCT0(FCT%NEQns,FCT%NDEg,FCT%NSTop,FCT%PARent,FCT%NCH,FCT%XLNzr,FCT%COLno,FCT%DIAg,FCT%ZLN,FCT%DSLn,FCT%STAge,ir)
         hecMAT%IARRAY(97) = 0
   
         if ( timelog > 0 .or. iterlog > 0 ) write (*,*) "[DIRECT]: numeric fct done"
  
positive.code:     do i=1,hecMAT%NP*hecMESH%n_dof
        hecMAT%X(i) = hecMAT%B(i)
      end do
      call NUSOL0(hecMAT%X,NEQns,NDEg,NSTop,IPErm,XLNzr,COLno,DIAg,ZLN,DSLn,STAge,ir)
      call PTIME(t5)
      !* Errors 4
      if ( ir/=0 ) then
  
negative.code:     i98 = hecMAT%IARRAY(98)
      if ( hecMAT%IARRAY(98)==1 ) then
        !* Interface to symbolic factorization
        call SETIJ(hecMESH,hecMAT,FCT%NEQns,FCT%NDEg,FCT%NTTbr,FCT%ISYm,FCT%JCOl,FCT%IROw)
  
        !* Symbolic factorization
        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"
  