anchor.diff:    use hecmw_precond_66
     use hecmw_precond_nn
     use hecmw_matrix_misc
  -
     implicit none
   
     private
  -
     public :: hecmw_precond_setup
     public :: hecmw_precond_clear
     public :: hecmw_precond_apply
  
positive.code:     real(kind=kreal), intent(inout) :: Z(:), ZP(:)
      real(kind=kreal), intent(inout) :: COMMtime
      integer(kind=kint ) :: N, NP, NNDOF, NPNDOF
      integer(kind=kint ) :: PRECOND, iterPREmax
      integer(kind=kint ) :: i, iterPRE
      real(kind=kreal) :: START_TIME, END_TIME
      N = hecMAT%N
      NP = hecMAT%NP
      NNDOF = N * hecMAT%NDOF
      NPNDOF = NP * hecMAT%NDOF
      PRECOND = hecmw_mat_get_precond( hecMAT )
      iterPREmax = hecmw_mat_get_iterpremax( hecMAT )
      
      if (iterPREmax.le.0) then
        do i= 1, NNDOF
          Z(i)= R(i)
        enddo
  
negative.code:     type (hecmwST_matrix), intent(inout) :: hecMAT
      type (hecmwST_local_mesh), intent(inout) :: hecMESH
      integer(kind=kint) :: sym
  
      if (hecmw_mat_get_iterpremax( hecMAT ).le.0) return
      
      SELECT CASE(hecMAT%NDOF)
        CASE(3)
  