40  type, 
public, 
abstract :: 
pc_t 
   42     procedure(
pc_solve), pass(this), 
deferred :: solve
 
   43     procedure(
pc_update), pass(this), 
deferred :: update
 
 
   55       integer, 
intent(in) :: n
 
   56       class(
pc_t), 
intent(inout) :: this
 
   57       real(kind=
rp), 
dimension(n), 
intent(inout) :: z
 
   58       real(kind=
rp), 
dimension(n), 
intent(inout) :: r
 
 
   64       class(
pc_t), 
intent(inout) :: this
 
 
   70     module subroutine precon_factory(pc, type_name)
 
   71       class(pc_t),  
allocatable, 
intent(inout) :: pc
 
   72       character(len=*), 
intent(in) :: type_name
 
   73     end subroutine precon_factory
 
   76     module subroutine precon_destroy(pc)
 
   77       class(pc_t), 
allocatable, 
intent(inout) :: pc
 
   78     end subroutine precon_destroy
 
   81  public :: precon_factory, precon_destroy
 
Abstract interface for solving .
 
integer, parameter, public rp
Global precision used in computations.
 
Defines a canonical Krylov preconditioner.