anchor.diff:      do iterPRE= 1, iterPREmax
   
         START_TIME = hecmw_Wtime()
  -
  -      if (PRECOND.le.2) then
  -        call hecmw_precond_SSOR_33_apply(ZP)
  -      else if (PRECOND.eq.3) then
  -        call hecmw_precond_DIAG_33_apply(ZP)
  -      else if (PRECOND.eq.10.or.PRECOND.eq.11.or.PRECOND.eq.12) then
  -        call hecmw_precond_BILU_33_apply(ZP)
  -      else if (PRECOND.eq.5) then
  -        call hecmw_precond_ML_33_apply(ZP)
  -      else if (PRECOND.eq.20) then
  -        call hecmw_precond_33_SAINV_apply(R,ZP)
  -      else if (PRECOND.eq.21) then
  -        call hecmw_precond_RIF_33_apply(ZP)
  -      endif
  -
  +      SELECT CASE(PRECOND)
  +        CASE(1,2)
  +          call hecmw_precond_SSOR_33_apply(ZP)
  +        CASE(3)
  +          call hecmw_precond_DIAG_33_apply(ZP)
  +        CASE(5)
  +          call hecmw_precond_ML_33_apply(ZP)
  +        CASE(10:12)
  +          call hecmw_precond_BILU_33_apply(ZP)
  +        CASE(20)
  +          call hecmw_precond_33_SAINV_apply(R,ZP)
  +        CASE(21)
  +          call hecmw_precond_RIF_33_apply(ZP)
  +        CASE DEFAULT
  +
  +      END SELECT
         END_TIME = hecmw_Wtime()
         time_precond = time_precond + END_TIME - START_TIME
   
  
positive.code: 
      PRECOND = hecmw_mat_get_precond( hecMAT )
  
      if (PRECOND.le.2) then
        call hecmw_precond_SSOR_33_clear(hecMAT)
      else if (PRECOND.eq.3) then
        call hecmw_precond_DIAG_33_clear()
      else if (PRECOND.eq.10.or.PRECOND.eq.11.or.PRECOND.eq.12) then
        call hecmw_precond_BILU_33_clear()
      else if (PRECOND.eq.5) then
        call hecmw_precond_ML_33_clear()
      else if (PRECOND.eq.20) then
        call hecmw_precond_33_SAINV_clear()
      else if (PRECOND.eq.21) then
        call hecmw_precond_RIF_33_clear()
      endif
  
    end subroutine hecmw_precond_33_clear
  
  
negative.code: 
      PRECOND = hecmw_mat_get_precond( hecMAT )
  
      SELECT CASE(PRECOND)
        CASE(1,2)
          call hecmw_precond_SSOR_33_setup(hecMAT)
        CASE(3)
          call hecmw_precond_DIAG_33_setup(hecMAT)
        CASE(5)
          call hecmw_precond_ML_33_setup(hecMAT, hecMESH, sym)
        CASE(10,11,12)
          call hecmw_precond_BILU_33_setup(hecMAT)
        CASE(20)
          call hecmw_precond_33_SAINV_setup(hecMAT)
        CASE(21)
          call hecmw_precond_RIF_33_setup(hecMAT)
        CASE DEFAULT
          call hecmw_precond_nn_setup(hecMAT, hecMESH, sym)
      END SELECT
      
    end subroutine hecmw_precond_33_setup
  
    !C
  