error handling
Using the macro __FUNCT__ to define routine names;
Solves a linear system in parallel with KSP. Also
illustrates setting a user-defined shell preconditioner and using the
macro __FUNCT__ to define routine names for use in error handling.
Input parameters include:
-user_defined_pc : Activate a user-defined preconditioner