anchor.diff:      endif
   
     end subroutine hecmw_solve_iterative
  - 
  +
     subroutine hecmw_solve_check_zerodiag (hecMESH, hecMAT)
       use hecmw_util
       use hecmw_matrix_misc
  
positive.code:       call hecmw_matvec_clear_timer()
        call hecmw_precond_clear_timer()
        call hecmw_solve_iterative_printmsg(hecMESH,hecMAT)
        
        if (METHOD == 1) then 
          hecTKT%symmetric = .true.
        else 
          hecTKT%symmetric = .false.
        end if 
        
        SELECT CASE(METHOD)
          CASE (1)  !--CG
            call hecmw_solve_CG( hecMESH, hecTKT, ITER, RESID, ERROR, TIME_setup, TIME_sol, TIME_comm )
  
negative.code:     NREST     = hecmw_mat_get_nrest(hecMAT)
      ITERlog= hecmw_mat_get_iterlog(hecMAT)
      TIMElog= hecmw_mat_get_timelog(hecMAT)
  
      SELECT CASE(METHOD)
        CASE (1)  !--CG
          msg_method="CG"
        CASE (2)  !--BiCGSTAB
          msg_method="BiCGSTAB"
        CASE (3)  !--GMRES
          msg_method="GMRES"
        CASE (4)  !--GPBiCG
          msg_method="GPBiCG"
        CASE DEFAULT
          msg_method="Unlabeled"
      END SELECT
  
      SELECT CASE(PRECOND)
        CASE(1,2)
          msg_precond="SSOR"
        CASE(3)
          msg_precond="DIAG"
        CASE(5)
          msg_precond="ML"
        CASE(7)
          msg_precond="Direct MUMPS"
        CASE(10,11,12)
          write(msg_precond,"(a,i0,a)") "ILU(",PRECOND-10,")"
        CASE(20)
  