Index: /issm/trunk-jpl/src/m/solvers/bcgslnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/bcgslnoneoptions.m	(revision 20577)
@@ -0,0 +1,9 @@
+function solverOptions=bcgslmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
Index: /issm/trunk-jpl/src/m/solvers/bcgsnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/bcgsnoneoptions.m	(revision 20577)
@@ -0,0 +1,9 @@
+function solverOptions=bcgsmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
Index: /issm/trunk-jpl/src/m/solvers/bicgnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/bicgnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=bicgmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/cgnenoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnenoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/cgnenoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=cgnemgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/cgnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/cgnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=cgmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/cgsnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/cgsnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=cgsmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/crnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/crnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=crmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/dgmresnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/dgmresnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=dgmresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/fgmresnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/fgmresnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=fgmresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/gcrnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/gcrnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=gcrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/gltrnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/gltrnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=gltrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/gmresnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/gmresnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=gmresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/ibcgsnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=ibcgsmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/lcdnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/lcdnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=lcdmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/lsqrnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/lsqrnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=lsqrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/minresnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/minresnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=minresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/richardsonnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/richardsonnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=richardsonmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/solvers
===================================================================
--- /issm/trunk-jpl/src/m/solvers/solvers	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/solvers	(revision 20577)
@@ -0,0 +1,1 @@
+tfqmr symmlq stcg richardson minres lsqr lcd ibcgs gmres gltr gcr fgmres dgmres cr cgs cgne cg bigcg bcgsl bcgs
Index: /issm/trunk-jpl/src/m/solvers/stcgnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/stcgnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=stcgmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/symmlqnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/symmlqnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=symmlqmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
Index: /issm/trunk-jpl/src/m/solvers/tfqmrasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrasmoptions.m	(revision 20576)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrasmoptions.m	(revision 20577)
@@ -8,3 +8,2 @@
 solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
 solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
-
Index: /issm/trunk-jpl/src/m/solvers/tfqmrnoneoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrnoneoptions.m	(revision 20577)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrnoneoptions.m	(revision 20577)
@@ -0,0 +1,10 @@
+function solverOptions=tfqmrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'none');
+
