anchor.diff:      INITIALIZED = .true.
       hecMAT%Iarray(98) = 0 ! symbolic setup done
       hecMAT%Iarray(97) = 0 ! numerical setup done
  +    n_recycle = 0
     end subroutine hecmw_precond_ML_33_setup
   
     subroutine hecmw_precond_ML_33_apply(WW)
  
positive.code: 
    logical, save :: INITIALIZED = .false.
  
  contains
  
    subroutine hecmw_precond_ML_33_setup(hecMAT, hecMESH, sym)
  
negative.code:     type(hecmwST_local_mesh), intent(in) :: hecMESH
      integer(kind=kint), intent(in) :: sym
      integer(kind=kint) :: ierr
      integer(kind=kint), save :: n_recycle = 0
      if (INITIALIZED) then
        if (hecMAT%Iarray(98) == 1) then ! need symbolic and numerical setup
          call hecmw_precond_ML_33_clear()
        else if (hecMAT%Iarray(97) == 1) then ! need numerical setup only
          if (n_recycle < MAX_RECYCLE_SETUP) then
            n_recycle = n_recycle + 1
            return
          else
            call hecmw_precond_ML_33_clear()
          endif
        else
          return
        endif
  