anchor.diff:        integer(C_INT)::kinsetmaa !< error code
       end function
       
  +    !> KINSOL set whether to skip initial preconditioner setup
  +    function kinsetnoinitsetup(mem,noInitSetup) bind(c,name='KINSetNoInitSetup')
  +      use iso_c_binding
  +      type(C_PTR),value::mem !< memory pointer
  +      logical(C_BOOL),value::noInitSetup !< whether to skip
  +      integer(C_INT)::kinsetnoinitsetup !< error code
  +    end function
  +    
  +    !> KINSOL set maximum nonlinear iterations between preconditioner setups
  +    function kinsetmaxsetupcalls(mem,m) bind(c,name='KINSetMaxSetupCalls')
  +      use iso_c_binding
  +      type(C_PTR),value::mem !< memory pointer
  +      integer(C_INT),value::m !< maximum number of nonlinear iterations
  +      integer(C_INT)::kinsetmaxsetupcalls !< error code
  +    end function
  +    
       !> KINSOL get number of iterations performed for the non-linear system
       function kingetnumnonlinsolviters(mem,nit) bind(c,name='KINGetNumNonlinSolvIters')
         use iso_c_binding
  
positive.code:         stop
        end if
        this%ls=C_NULL_PTR
      end if
    end subroutine
    
  
negative.code:     procedure,public::init=>initNewtonKrylov
      procedure,public::solve=>solveNewtonKrylov
      procedure,public::clear=>clearNewtonKrylov
      procedure,public::setLazyPset=>setLazyPsetNewtonKrylov
      final::purgeNewtonKrylov
    end type
    
  