Index: /issm/trunk/src/m/classes/public/display/displaybc.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displaybc.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displaybc.m	(revision 1251)
@@ -9,29 +9,29 @@
 %      displaybc(md)
 
-fprintf('   Boundary conditions:\n');
+disp(sprintf('   Boundary conditions:'));
 
-fprintf('\n      geography:\n');
-fprintf('         gridonboundary: (%i)\n',length(md.gridonboundary));
-fprintf('         elementoniceshelf: (%i)\n',length(md.elementoniceshelf));
-fprintf('         gridoniceshelf: (%i)\n',length(md.gridoniceshelf));
-fprintf('         elementonicesheet: (%i)\n',length(md.elementonicesheet));
-fprintf('         gridonicesheet: (%i)\n',length(md.gridonicesheet));
+disp(sprintf('\n      geography:'));
+disp(sprintf('         gridonboundary: (%i)',length(md.gridonboundary)));
+disp(sprintf('         elementoniceshelf: (%i)',length(md.elementoniceshelf)));
+disp(sprintf('         gridoniceshelf: (%i)',length(md.gridoniceshelf)));
+disp(sprintf('         elementonicesheet: (%i)',length(md.elementonicesheet)));
+disp(sprintf('         gridonicesheet: (%i)',length(md.gridonicesheet)));
 
-fprintf('\n      diagnostic:\n');
-fprintf('         gridondirichlet_diag: (%i)\n',length(md.gridondirichlet_diag));
-fprintf('         dirichletvalues_diag [m/a]: (%i,%i)\n',length(md.dirichletvalues_diag),2);
-fprintf('         segmentonneumann_diag: (%i)\n',length(md.segmentonneumann_diag));
-fprintf('         neumannvalues_diag [N]: (%i)\n',length(md.neumannvalues_diag));
+disp(sprintf('\n      diagnostic:'));
+disp(sprintf('         gridondirichlet_diag: (%i)',length(md.gridondirichlet_diag)));
+disp(sprintf('         dirichletvalues_diag [m/a]: (%i,%i)',length(md.dirichletvalues_diag),2));
+disp(sprintf('         segmentonneumann_diag: (%i)',length(md.segmentonneumann_diag)));
+disp(sprintf('         neumannvalues_diag [N]: (%i)',length(md.neumannvalues_diag)));
 
-fprintf('\n      prognostic:\n');
-fprintf('         gridondirichlet_prog: (%i)\n',length(md.gridondirichlet_prog));
-fprintf('         dirichletvalues_prog [m/a]: (%i)\n',length(md.dirichletvalues_prog));
-fprintf('         segmentonneumann_prog (flux): (%i)\n',length(md.segmentonneumann_prog));
-fprintf('         neumannvalues_prog [N]: (%i)\n',length(md.neumannvalues_prog));
-fprintf('         segmentonneumann_prog2 (thickness gradient): (%i)\n',length(md.segmentonneumann_prog2));
-fprintf('         neumannvalues_prog2 [N]: (%i)\n',length(md.neumannvalues_prog2));
+disp(sprintf('\n      prognostic:'));
+disp(sprintf('         gridondirichlet_prog: (%i)',length(md.gridondirichlet_prog)));
+disp(sprintf('         dirichletvalues_prog [m/a]: (%i)',length(md.dirichletvalues_prog)));
+disp(sprintf('         segmentonneumann_prog (flux): (%i)',length(md.segmentonneumann_prog)));
+disp(sprintf('         neumannvalues_prog [N]: (%i)',length(md.neumannvalues_prog)));
+disp(sprintf('         segmentonneumann_prog2 (thickness gradient): (%i)',length(md.segmentonneumann_prog2)));
+disp(sprintf('         neumannvalues_prog2 [N]: (%i)',length(md.neumannvalues_prog2)));
 
-fprintf('\n      thermal:\n');
-fprintf('         gridondirichlet_thermal: (%i)\n',length(md.gridondirichlet_thermal));
-fprintf('         dirichletvalues_thermal [K]: (%i)\n',length(md.dirichletvalues_thermal));
-fprintf('         melting [m/a]: (%i)\n',length(md.melting));
+disp(sprintf('\n      thermal:'));
+disp(sprintf('         gridondirichlet_thermal: (%i)',length(md.gridondirichlet_thermal)));
+disp(sprintf('         dirichletvalues_thermal [K]: (%i)',length(md.dirichletvalues_thermal)));
+disp(sprintf('         melting [m/a]: (%i)',length(md.melting)));
Index: /issm/trunk/src/m/classes/public/display/displaycontrol.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displaycontrol.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displaycontrol.m	(revision 1251)
@@ -9,25 +9,15 @@
 %      displaycontrol(md)
 
-disp(sprintf('      ''%s''','control'));
-%control type
-control_string='';
-for i=1:length(md.control_type),
-	parameter=md.control_type{i};
-	%check this parameter is a field from model! 
-	if ~isfield(struct(md),parameter),
-		error('displaysolutionparameters error message: one of the control type parameters does not exist!');
-	end
-	control_string=[control_string parameter ' and '];
-end
-control_string=control_string(1:length(control_string)-5);
-disp(sprintf('         control_type: %s %s',control_string,'(parameter where inverse control is carried out; ex: ''drag'', or ''B'')'));
-disp(sprintf('         fit: (%i)      (''absolute: 0'', ''relative: 1'', or ''logarithmic: 2''. default is ''absolute: 0'', for each optimization steps)',length(md.fit)));
-disp(sprintf('         meanvel: %g      (velocity scaling factor when evaluating relative or logarithmic misfit)',md.meanvel));
-disp(sprintf('         epsvel: %g      ( for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity)',md.epsvel));
-disp(sprintf('         nsteps: %i      (number of optimization searches)',md.nsteps));
-disp(sprintf('         optscal: (%i %i)      (scaling factor on gradient direction during optimization, for each optimization step)',size(md.optscal,1),size(md.optscal,2)));
-disp(sprintf('         mincontrolconstraint: %g      (minimum contraint for the controlled parameters)',md.mincontrolconstraint));
-disp(sprintf('         maxcontrolconstraint: %g      (maximum contraint for the controlled parameters)',md.maxcontrolconstraint));
-disp(sprintf('         maxiter: (%i)      (maximum iterations during each optimization step)',length(md.maxiter)));
-disp(sprintf('         tolx: %f      (minimum tolerance which will stop one optimization search)',md.tolx));
-disp(sprintf('         plot: %i      (visualization of the results of each iteration yes -> 1 no -> 0. Default is 1)',md.plot));
+disp(sprintf('   Control:\n'));
+
+disp(sprintf('      control_type: %s %s',md.control_type,'(parameter where inverse control is carried out; ex: ''drag'', or ''B'')'));
+disp(sprintf('      fit: (%i)      (''absolute: 0'', ''relative: 1'', or ''logarithmic: 2''. default is ''absolute: 0'', for each optimization steps)',length(md.fit)));
+disp(sprintf('      meanvel: %g      (velocity scaling factor when evaluating relative or logarithmic misfit)',md.meanvel));
+disp(sprintf('      epsvel: %g      ( for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity)',md.epsvel));
+disp(sprintf('      nsteps: %i      (number of optimization searches)',md.nsteps));
+disp(sprintf('      optscal: (%i %i)      (scaling factor on gradient direction during optimization, for each optimization step)',size(md.optscal,1),size(md.optscal,2)));
+disp(sprintf('      mincontrolconstraint: %g      (minimum contraint for the controlled parameters)',md.mincontrolconstraint));
+disp(sprintf('      maxcontrolconstraint: %g      (maximum contraint for the controlled parameters)',md.maxcontrolconstraint));
+disp(sprintf('      maxiter: (%i)      (maximum iterations during each optimization step)',length(md.maxiter)));
+disp(sprintf('      tolx: %f      (minimum tolerance which will stop one optimization search)',md.tolx));
+disp(sprintf('      plot: %i      (visualization of the results of each iteration yes -> 1 no -> 0. Default is 1)',md.plot));
Index: /issm/trunk/src/m/classes/public/display/displayexppar.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displayexppar.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displayexppar.m	(revision 1251)
@@ -9,9 +9,30 @@
 %      displayoutline(md)
 
-fprintf('\n   Outlines:\n');
-if isnan(md.domainoutline), fprintf('      domainoutline: N/A\n'); else fprintf('      domainoutline: not displayed (can be accessed by typing md.domainoutline)\n');end
-if isnan(md.riftoutline), fprintf('      riftoutline: N/A\n'); else fprintf('      riftoutline: not displayed (can be accessed by typing md.riftoutline)\n');end
-if isnan(md.iceshelfoutline), fprintf('      iceshelfoutline: N/A\n'); else fprintf('      iceshelfoutline: not displayed (can be accessed by typing md.iceshelfoutline)\n');end
-if isnan(md.icesheetoutline), fprintf('      icesheetoutline: N/A\n'); else fprintf('      icesheetoutline: not displayed (can be accessed by typing md.icesheetoutline)\n');end
-fprintf('\n   Model files:\n');
-if isnan(md.parameterfile), fprintf('      parameterfile: N/A\n'); else fprintf('      parameterfile: not displayed (can be accessed by typing md.parameterfile)\n');end
+disp(sprintf('\n   Outlines:'));
+if isnan(md.domainoutline), 
+	disp(sprintf('      domainoutline: N/A'));
+else 
+	disp(sprintf('      domainoutline: not displayed (can be accessed by typing md.domainoutline)'));
+end
+if isnan(md.riftoutline), 
+	disp(sprintf('      riftoutline: N/A')); 
+else 
+	disp(sprintf('      riftoutline: not displayed (can be accessed by typing md.riftoutline)'));
+end
+if isnan(md.iceshelfoutline), 
+	disp(sprintf('      iceshelfoutline: N/A')); 
+else 
+	disp(sprintf('      iceshelfoutline: not displayed (can be accessed by typing md.iceshelfoutline)'));
+end
+if isnan(md.icesheetoutline), 
+	disp(sprintf('      icesheetoutline: N/A')); 
+else 
+	disp(sprintf('      icesheetoutline: not displayed (can be accessed by typing md.icesheetoutline)'));
+end
+
+disp(sprintf('\n   Model files:'));
+if isnan(md.parameterfile), 
+	disp(sprintf('      parameterfile: N/A')); 
+else 
+	disp(sprintf('      parameterfile: not displayed (can be accessed by typing md.parameterfile)'));
+end
Index: /issm/trunk/src/m/classes/public/display/displaymaterials.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displaymaterials.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displaymaterials.m	(revision 1251)
@@ -9,14 +9,15 @@
 %      displaymaterials(md)
 
-fprintf('   Materials:\n');
-fprintf('      rho_ice: %g [kg/m^3]\n',md.rho_ice);
-fprintf('      rho_water: %g [kg/m^3]\n',md.rho_water);
-if isempty(md.B), fprintf('      B: N/A (flow law parameter)'); else fprintf('      B: (%i) (flow law parameter [Pa/s^(1/n)])\n',length(md.B)); end
-if isempty(md.n), fprintf('      n: N/A (flow law coefficient)'); else fprintf('      n: (%i) (flow law coefficient)\n',length(md.n)); end
-fprintf('      heatcapacity: %g [J/kg/K]\n',md.heatcapacity);
-fprintf('      thermalconductivity: %g [W/m/K]\n',md.thermalconductivity);
-fprintf('      meltingpoint: %g [K] (melting point of ice at 1atm in K)\n',md.meltingpoint);
-fprintf('      latentheat: %g [J/kg] (latent heat of fusion)\n',md.latentheat);
-fprintf('      beta: %g [K/Pa]\n',md.beta);
-fprintf('      mixed_layer_capacity: %g [W/kg/K]\n',md.mixed_layer_capacity);
-fprintf('      thermal_exchange_velocity: %g [m/s]\n',md.thermal_exchange_velocity);
+disp(sprintf('   Materials:\n'));
+
+disp(sprintf('      rho_ice: %g [kg/m^3]',md.rho_ice));
+disp(sprintf('      rho_water: %g [kg/m^3]',md.rho_water));
+if isempty(md.B), disp(sprintf('      B: N/A (flow law parameter)')); else disp(sprintf('      B: (%i) (flow law parameter [Pa/s^(1/n)])',length(md.B))); end
+if isempty(md.n), disp(sprintf('      n: N/A (flow law coefficient)')); else disp(sprintf('      n: (%i) (flow law coefficient)',length(md.n))); end
+disp(sprintf('      heatcapacity: %g [J/kg/K]',md.heatcapacity));
+disp(sprintf('      thermalconductivity: %g [W/m/K]',md.thermalconductivity));
+disp(sprintf('      meltingpoint: %g [K] (melting point of ice at 1atm in K)',md.meltingpoint));
+disp(sprintf('      latentheat: %g [J/kg] (latent heat of fusion)',md.latentheat));
+disp(sprintf('      beta: %g [K/Pa]',md.beta));
+disp(sprintf('      mixed_layer_capacity: %g [W/kg/K]',md.mixed_layer_capacity));
+disp(sprintf('      thermal_exchange_velocity: %g [m/s]',md.thermal_exchange_velocity));
Index: /issm/trunk/src/m/classes/public/display/displaymesh.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displaymesh.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displaymesh.m	(revision 1251)
@@ -9,38 +9,38 @@
 %      displaymesh(md)
 
-fprintf('   Mesh:\n'); 
+disp(sprintf('   Mesh:')); 
 
 if strcmpi(md.type,'3d'),
 
-	fprintf('\n      Elements and nodes of the original 2d mesh:\n');
-	fprintf('         numberofelements2d: %i (number of elements)\n',md.numberofelements2d);
-	fprintf('         numberofgrids2d: %i (number of nodes)\n',md.numberofgrids2d); 
-	fprintf('         elements2d: (%i-%i) (index into (x,y,z), coordinates of the grids)\n',md.numberofelements2d,size(md.elements2d,2)); 
-	fprintf('         elements_type2d: (%i) (element types, according to number of grids)\n',md.numberofelements2d);
-	fprintf('         x2d: (%i) (node x coordinates)\n',length(md.x2d));
-	fprintf('         y2d: (%i) (node y coordinates)\n',length(md.y2d));
-	fprintf('         z2d: (%i) (node z coordinates)\n',length(md.z2d));
+	disp(sprintf('\n      Elements and nodes of the original 2d mesh:'));
+	disp(sprintf('         numberofelements2d: %i (number of elements)',md.numberofelements2d));
+	disp(sprintf('         numberofgrids2d: %i (number of nodes)',md.numberofgrids2d)); 
+	disp(sprintf('         elements2d: (%i-%i) (index into (x,y,z), coordinates of the grids)',md.numberofelements2d,size(md.elements2d,2))); 
+	disp(sprintf('         elements_type2d: (%i) (element types, according to number of grids)',md.numberofelements2d));
+	disp(sprintf('         x2d: (%i) (node x coordinates)',length(md.x2d)));
+	disp(sprintf('         y2d: (%i) (node y coordinates)',length(md.y2d)));
+	disp(sprintf('         z2d: (%i) (node z coordinates)',length(md.z2d)));
 
-	fprintf('\n      Elements and nodes of the extruded 3d mesh:\n');
+	disp(sprintf('\n      Elements and nodes of the extruded 3d mesh:'));
 else
 
-	fprintf('\n      Elements and nodes:\n');
+	disp(sprintf('\n      Elements and nodes:'));
 end
 
-fprintf('         numberofelements: %i (number of elements)\n',md.numberofelements);
-fprintf('         numberofgrids: %i (number of nodes)\n',md.numberofgrids); 
-if ~isnan(md.dof), fprintf('      dof: %i (maximum number of dofs solved)\n',md.dof); end
-fprintf('         elements: (%i-%i) (index into (x,y,z), coordinates of the grids)\n',md.numberofelements,size(md.elements,2)); 
-fprintf('         elements_type: (%i) (element types, according to number of grids)\n',md.numberofelements);
-fprintf('         x: (%i) (node x coordinates)\n',length(md.x));
-fprintf('         y: (%i) (node y coordinates)\n',length(md.y));
-fprintf('         z: (%i) (node z coordinates)\n',length(md.z));
-fprintf('         numlayers: %i (number of extrusion layers)\n',md.numlayers);
+disp(sprintf('         numberofelements: %i (number of elements)',md.numberofelements));
+disp(sprintf('         numberofgrids: %i (number of nodes)',md.numberofgrids)); 
+if ~isnan(md.dof), disp(sprintf('      dof: %i (maximum number of dofs solved)',md.dof)); end
+disp(sprintf('         elements: (%i-%i) (index into (x,y,z), coordinates of the grids)',md.numberofelements,size(md.elements,2))); 
+disp(sprintf('         elements_type: (%i) (element types, according to number of grids)',md.numberofelements));
+disp(sprintf('         x: (%i) (node x coordinates)',length(md.x)));
+disp(sprintf('         y: (%i) (node y coordinates)',length(md.y)));
+disp(sprintf('         z: (%i) (node z coordinates)',length(md.z)));
+disp(sprintf('         numlayers: %i (number of extrusion layers)',md.numlayers));
 
-fprintf('\n      Properties:\n');
-fprintf('         type: %s\n',md.type);
-fprintf('         Penalties: (%i-%i))\n',size(md.penalties,1),size(md.penalties,2));
-fprintf('         gridonbed: (%i) (lower nodes flags list)\n',length(md.gridonbed));
-fprintf('         gridonsurface: (%i) (upper nodes flags list)\n',length(md.gridonsurface));
-fprintf('         elementonbed: (%i) (lower elements flags list)\n',length(md.elementonbed));
-fprintf('         elementonsurface: (%i) (upper elements flags list)\n',length(md.elementonsurface));
+disp(sprintf('\n      Properties:'));
+disp(sprintf('         type: %s',md.type));
+disp(sprintf('         Penalties: (%i-%i))',size(md.penalties,1),size(md.penalties,2)));
+disp(sprintf('         gridonbed: (%i) (lower nodes flags list)',length(md.gridonbed)));
+disp(sprintf('         gridonsurface: (%i) (upper nodes flags list)',length(md.gridonsurface)));
+disp(sprintf('         elementonbed: (%i) (lower elements flags list)',length(md.elementonbed)));
+disp(sprintf('         elementonsurface: (%i) (upper elements flags list)',length(md.elementonsurface)));
Index: /issm/trunk/src/m/classes/public/display/displayobservations.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displayobservations.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displayobservations.m	(revision 1251)
@@ -9,9 +9,10 @@
 %      displayobservations(md)
 
-fprintf('   Observations:\n');
-fprintf('      vx_obs [m/a]: (%i)\n',length(md.vx_obs));
-fprintf('      vy_obs [m/a]: (%i)\n',length(md.vy_obs));
-fprintf('      vel_obs [m/a]: (%i)\n',length(md.vel_obs));
-fprintf('      accumulation [m/a]: (%i)\n',length(md.accumulation));
-fprintf('      observed_temperature [K]: (%i)\n',length(md.observed_temperature));
-fprintf('      geothermalflux [W/m^2]: (%i)\n',length(md.geothermalflux));
+disp(sprintf('   Observations:\n'));
+
+disp(sprintf('      vx_obs [m/a]: (%i)',length(md.vx_obs)));
+disp(sprintf('      vy_obs [m/a]: (%i)',length(md.vy_obs)));
+disp(sprintf('      vel_obs [m/a]: (%i)',length(md.vel_obs)));
+disp(sprintf('      accumulation [m/a]: (%i)',length(md.accumulation)));
+disp(sprintf('      observed_temperature [K]: (%i)',length(md.observed_temperature)));
+disp(sprintf('      geothermalflux [W/m^2]: (%i)',length(md.geothermalflux)));
Index: /issm/trunk/src/m/classes/public/display/displayparallel.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displayparallel.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displayparallel.m	(revision 1251)
@@ -9,16 +9,18 @@
 %      displayparallel(md)
 
-fprintf('\n      parallelisation:\n');
-fprintf('         cluster: %s      (set to ''cluster_name'' to run in cluster, ''none'' to run serially)\n',md.cluster);
-fprintf('         np: %i      (number of CPUS requested on cluster)\n',md.np);
-fprintf('         exclusive: %i      (set to 1 if CPUS used are not to be shared with other users, 0 otherwise)\n',md.exclusive);
-fprintf('         time: %i      (amount of time requested on cluster)\n',md.time); 
-fprintf('         alloc_cleanup: %i      (allocation cleanup before starting a job, default 1)\n',md.alloc_cleanup); 
-fprintf('         waitonlock: %i      (wait for batch results 1, or return 0. default is to return )\n',md.waitonlock); 
-fprintf('         queue: %s      (special queue name on cluster? default is '''')\n',md.queue); fprintf('\n      solver options:\n');
+disp(sprintf('   parallel computation parameters:'));
 
-fprintf('\n      solver options:\n');
-fprintf('         ice\n');
-fprintf('            solver_type: %s  (solver type for Ice: ''lu'' or ''cholesky'')\n',md.solver_type);
-fprintf('         cielo\n');
-fprintf('            solverstring: %s \n            (solver string for Petsc. See solversetto... routines. Default is asm)\n',md.solverstring); 
+disp(sprintf('\n      parallelisation:'));
+disp(sprintf('         cluster: %s      (set to ''cluster_name'' to run in cluster, ''none'' to run serially)',md.cluster));
+disp(sprintf('         np: %i      (number of CPUS requested on cluster)',md.np));
+disp(sprintf('         exclusive: %i      (set to 1 if CPUS used are not to be shared with other users, 0 otherwise)',md.exclusive));
+disp(sprintf('         time: %i      (amount of time requested on cluster)',md.time)); 
+disp(sprintf('         alloc_cleanup: %i      (allocation cleanup before starting a job, default 1)',md.alloc_cleanup)); 
+disp(sprintf('         waitonlock: %i      (wait for batch results 1, or return 0. default is to return )',md.waitonlock)); 
+disp(sprintf('         queue: %s      (special queue name on cluster? default is '''')',md.queue)); disp(sprintf('\n      solver options:'));
+
+disp(sprintf('\n      solver options:'));
+disp(sprintf('         ice'));
+disp(sprintf('            solver_type: %s  (solver type for Ice: ''general'', ''lu'' or ''cholesky'')',md.solver_type));
+disp(sprintf('         cielo'));
+disp(sprintf('            solverstring: %s \n            (solver string for Petsc. See solversetto... routines. Default is asm)',md.solverstring)); 
Index: /issm/trunk/src/m/classes/public/display/displayparameters.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displayparameters.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displayparameters.m	(revision 1251)
@@ -9,23 +9,23 @@
 %      displayparameters(md)
 
-fprintf('   Parameters:\n');
+disp(sprintf('   Parameters:'));
 
-fprintf('\n      geometry:\n');
-if isempty(md.surface), fprintf('         surface: N/A'); else fprintf('         surface [m]: (%i)\n',length(md.surface)); end
-if isempty(md.thickness), fprintf('         thickness: N/A'); else fprintf('         thickness [m]: (%i)\n',length(md.thickness)); end
-if isempty(md.bed), fprintf('         bed: N/A'); else fprintf('         bed [m]: (%i)\n',length(md.bed)); end
-if isempty(md.firn_layer), fprintf('         firn_layer: N/A'); else fprintf('         firn_layer [m]: (%i)\n',length(md.firn_layer)); end
-if strcmpi(md.type,'3d'), fprintf('         elementonbed: (%i)\n',length(md.elementonbed)); end
-if strcmpi(md.type,'3d'), fprintf('         elementonsurface: (%i)\n',length(md.elementonsurface)); end
-if strcmpi(md.type,'3d'), fprintf('         gridonbed: (%i)\n',length(md.gridonbed)); end
-if strcmpi(md.type,'3d'), fprintf('         gridonsurface: (%i)\n',length(md.gridonsurface)); end
+disp(sprintf('\n      geometry:'));
+if isempty(md.surface), disp(sprintf('         surface: N/A')); else disp(sprintf('         surface [m]: (%i)',length(md.surface))); end
+if isempty(md.thickness), disp(sprintf('         thickness: N/A')); else disp(sprintf('         thickness [m]: (%i)',length(md.thickness))); end
+if isempty(md.bed), disp(sprintf('         bed: N/A')); else disp(sprintf('         bed [m]: (%i)',length(md.bed))); end
+if isempty(md.firn_layer), disp(sprintf('         firn_layer: N/A')); else disp(sprintf('         firn_layer [m]: (%i)',length(md.firn_layer))); end
+if strcmpi(md.type,'3d'), disp(sprintf('         elementonbed: (%i)',length(md.elementonbed))); end
+if strcmpi(md.type,'3d'), disp(sprintf('         elementonsurface: (%i)',length(md.elementonsurface))); end
+if strcmpi(md.type,'3d'), disp(sprintf('         gridonbed: (%i)',length(md.gridonbed))); end
+if strcmpi(md.type,'3d'), disp(sprintf('         gridonsurface: (%i)',length(md.gridonsurface))); end
 
-fprintf('\n      physical parameters:\n');
-fprintf('         g: %g [m/s^2]\n',md.g);
+disp(sprintf('\n      physical parameters:'));
+disp(sprintf('         g: %g [m/s^2]',md.g));
 
-fprintf('\n      Friction parameters (Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_ice*g*bed, r=q/p and s=1/p)\n');
-fprintf('         drag_type: %i (0: none, 1:plastic, 2:viscous):\n',md.drag_type);
-if isempty(md.drag), fprintf('         drag: N/A'); else fprintf('         drag: (%i)\n',length(md.drag)); end
-fprintf('         drag_type: %i (0: none, 1:plastic, 2:viscous):\n',md.drag_type);
-if isempty(md.p), fprintf('         p: N/A'); else fprintf('         p: (%i)\n',length(md.p)); end
-if isempty(md.q), fprintf('         q: N/A'); else fprintf('         q: (%i)\n',length(md.q)); end
+disp(sprintf('\n      Friction parameters (Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_ice*g*bed, r=q/p and s=1/p)'));
+disp(sprintf('         drag_type: %i (0: none, 1:plastic, 2:viscous):',md.drag_type));
+if isempty(md.drag), disp(sprintf('         drag: N/A')); else disp(sprintf('         drag: (%i)',length(md.drag))); end
+disp(sprintf('         drag_type: %i (0: none, 1:plastic, 2:viscous):',md.drag_type));
+if isempty(md.p), disp(sprintf('         p: N/A')); else disp(sprintf('         p: (%i)',length(md.p))); end
+if isempty(md.q), disp(sprintf('         q: N/A')); else disp(sprintf('         q: (%i)',length(md.q))); end
Index: /issm/trunk/src/m/classes/public/display/displayresults.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displayresults.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displayresults.m	(revision 1251)
@@ -9,5 +9,5 @@
 %      displayresults(md)
 
-fprintf('   Results:\n');
+disp(sprintf('   Results:'));
 
 %call struct_display recursively on md.results
@@ -15,19 +15,19 @@
 
 %display output parameters
-fprintf('\n      output parameters:\n');
-if ~isstruct(md.stress), fprintf('         stress: N/A\n'); 
+disp(sprintf('\n      output parameters:'));
+if ~isstruct(md.stress), disp(sprintf('         stress: N/A')); 
 else 
-	fprintf('         stress [Pa]:');
+	disp(sprintf('         stress [Pa]:'));
 	struct_display(md.stress,'         ');
 end
-if ~isstruct(md.deviatoricstress), fprintf('         deviatoricstress: N/A\n'); 
+if ~isstruct(md.deviatoricstress), disp(sprintf('         deviatoricstress: N/A')); 
 else 
-	fprintf('         deviatoricstress [Pa]:');
+	disp(sprintf('         deviatoricstress [Pa]:'));
 	struct_display(md.deviatoricstress,'         ');
 end
-if ~isstruct(md.strainrate), fprintf('         strainrate: N/A\n'); 
+if ~isstruct(md.strainrate), disp(sprintf('         strainrate: N/A')); 
 else 
-           fprintf('         strainrate [1/a]:');
-		  struct_display(md.strainrate,'         ');
+	disp(sprintf('         strainrate [1/a]:'));
+	struct_display(md.strainrate,'         ');
 end
 end
@@ -39,8 +39,8 @@
 		field=eval(['structure.' structure_fields{i}]);
 		if isstruct(field),
-			fprintf('\n%s\n',[offset structure_fields{i} ':']);
+			disp(sprintf('\n%s',[offset structure_fields{i} ':']));
 			struct_display(field,[offset '   ']);
 		else
-			fprintf('%s\n',[offset structure_fields{i} ': (' num2str(size(field,1))  ')' ]);
+			disp(sprintf('%s',[offset structure_fields{i} ': (' num2str(size(field,1))  ')' ]));
 		end
 	end
Index: /issm/trunk/src/m/classes/public/display/displaysolutionparameters.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displaysolutionparameters.m	(revision 1250)
+++ /issm/trunk/src/m/classes/public/display/displaysolutionparameters.m	(revision 1251)
@@ -9,53 +9,55 @@
 %      displaysolutionparameters(md)
 
-fprintf('   Solution parameters:\n');
-fprintf('\n      statics:\n');
-fprintf('         %s\n','Newton convergence criteria');
-fprintf('            eps_rel: %g      (velocity relative convergence criterion)\n',md.eps_rel);
-fprintf('            eps_abs: %g      (velocity absolute convergence criterion [m/yr], NaN -> no absolute criterion)\n',md.eps_abs);
-fprintf('            viscosity_overshoot: %g      (over-shooting constant new=new+C*(new-old))\n',md.viscosity_overshoot);
-fprintf('         penalty_offset: %g      (offset used by penalties: penalty = Kmax*10^offset)\n',md.penalty_offset);
-fprintf('         penalty_melting: %g      (penalty used to keep T<Tpmp)\n',md.penalty_melting);
-fprintf('         penalty_lock: %g      (counter used to lock penalties that zig zag)\n',md.penalty_lock);
-fprintf('         lowmem: %i      (Set to 1 if you are running low on cluster memory)\n',md.lowmem);
-fprintf('         sparsity: %g      (matrix sparsity. Set to .001 for < 1M dof, .0001 for 5M dof, and .00001 for > 10M dof\n',md.sparsity);
-fprintf('         connectivity: %i      (element connectivity)\n',md.connectivity); 
-fprintf('         debug: %i      (output debug statements when possible yes-> 1, no -> 0. Default is 1\n',md.debug);
-fprintf('         element_debug: %i      (output debug statements for elementswhen possible yes-> 1, no -> 0. Default is 0\n',md.element_debug);
-fprintf('         element_debugid: %i      (if element_debug on, id of element for which to output messages\n',md.element_debugid);
-fprintf('         debug: %i      (output debug statements when possible yes-> 1, no -> 0. Default is 1');
-fprintf('      ''%s''\n','transient');
-fprintf('         dt: %g ( time step in years)\n',md.dt/md.yts);
-fprintf('         ndt: %g ( time span in years)\n',md.ndt/md.yts);
-fprintf('         artificial_diffusivity: %i (yes->1, no->0)\n',md.artificial_diffusivity);
-fprintf('         minh: %g (minimum thickness to avoid stiffness singularity)\n',md.minh);
-fprintf('         timestepping: %i ( adptative time stepping implemented - default to 0)\n',md.timestepping);
-fprintf('         deltaH: %g ( minimum thickness difference between two time steps)\n',md.deltaH);
-fprintf('         DeltaH: %g ( maximum thickness difference between two time steps)\n',md.DeltaH);
-fprintf('         deltaT: %g ( minimum temperature difference between two time steps)\n',md.deltaT);
-fprintf('         DeltaT: %g ( maximum temperature difference between two time steps)\n',md.DeltaT);
-fprintf('         timeacc: %g ( multiplier to time step when time stepping increases time step)\n',md.timeacc);
-fprintf('         timedec: %g ( multiplier to time step when time stepping decresaes time step)\n',md.timedec);
+disp(sprintf('   Solution parameters:'));
 
-fprintf('\n      control:\n');
-fprintf('         control_type: %s (control type, ex: ''drag'', or ''B'')\n',md.control_type);
-fprintf('         fit: (%g)      ( 0 -> absolute, 1 -> relative, 2 -> logarithmic. default is absolute)\n',length(md.fit));
-fprintf('         meanvel: %g      (velocity scaling factor when evaluating relative or logarithmic misfit)\n',md.meanvel);
-fprintf('         epsvel: %g      ( for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity)\n',md.epsvel);
-fprintf('         nsteps: %i      (number of optimization searches)\n',md.nsteps);
-fprintf('         optscal: (%i %i)      (scaling factor on gradient direction during optimization, for each optimization step)\n',size(md.optscal,1),size(md.optscal,2));
-fprintf('         mincontrolconstraint: %f      (minimum contraint for the controlled parameters, NaN -> no constraint)\n',md.mincontrolconstraint);
-fprintf('         maxcontrolconstraint: %f      (maximum contraint for the controlled parameters, NaN -> no constraint)\n',md.maxcontrolconstraint);
-fprintf('         maxiter: (%i)      (maximum iterations during each optimization step)\n',length(md.maxiter));
-fprintf('         tolx: %f      (minimum tolerance which will stop one optimization search)\n',md.tolx);
-fprintf('         plot: %i      (visualization of the results of each iteration yes -> 1 no -> 0. Default is 1)\n',md.plot);
+disp(sprintf('\n      statics:'));
+disp(sprintf('         %s','Newton convergence criteria'));
+disp(sprintf('            eps_rel: %g      (velocity relative convergence criterion)',md.eps_rel));
+disp(sprintf('            eps_abs: %g      (velocity absolute convergence criterion [m/yr], NaN -> no absolute criterion)',md.eps_abs));
+disp(sprintf('            viscosity_overshoot: %g      (over-shooting constant new=new+C*(new-old))',md.viscosity_overshoot));
+disp(sprintf('         penalty_offset: %g      (offset used by penalties: penalty = Kmax*10^offset)',md.penalty_offset));
+disp(sprintf('         penalty_melting: %g      (penalty used to keep T<Tpmp)',md.penalty_melting));
+disp(sprintf('         penalty_lock: %g      (counter used to lock penalties that zig zag)',md.penalty_lock));
+disp(sprintf('         lowmem: %i      (Set to 1 if you are running low on cluster memory)',md.lowmem));
+disp(sprintf('         sparsity: %g      (matrix sparsity. Set to .001 for < 1M dof, .0001 for 5M dof, and .00001 for > 10M dof',md.sparsity));
+disp(sprintf('         connectivity: %i      (element connectivity)',md.connectivity)); 
+disp(sprintf('         debug: %i      (output debug statements when possible yes-> 1, no -> 0. Default is 1',md.debug));
+disp(sprintf('         element_debug: %i      (output debug statements for elementswhen possible yes-> 1, no -> 0. Default is 0',md.element_debug));
+disp(sprintf('         element_debugid: %i      (if element_debug on, id of element for which to output messages',md.element_debugid));
+disp(sprintf('         debug: %i      (output debug statements when possible yes-> 1, no -> 0. Default is 1'));
 
-fprintf('\n      mesh:\n');
-fprintf('         mesh_domainoutline: %s      (domain outlines)\n',md.mesh_domainoutline);
-fprintf('         mesh_riftoutline: %s      (rift outlines)\n',md.mesh_riftoutline);
-fprintf('         mesh_resolution: (%g)      (mesh resolutoin)\n',md.mesh_resolution);
+disp(sprintf('\n      transient:'));
+disp(sprintf('         dt: %g ( time step in years)',md.dt/md.yts));
+disp(sprintf('         ndt: %g ( time span in years)',md.ndt/md.yts));
+disp(sprintf('         artificial_diffusivity: %i (yes->1, no->0)',md.artificial_diffusivity));
+disp(sprintf('         minh: %g (minimum thickness to avoid stiffness singularity)',md.minh));
+disp(sprintf('         timestepping: %i ( adptative time stepping implemented - default to 0)',md.timestepping));
+disp(sprintf('         deltaH: %g ( minimum thickness difference between two time steps)',md.deltaH));
+disp(sprintf('         DeltaH: %g ( maximum thickness difference between two time steps)',md.DeltaH));
+disp(sprintf('         deltaT: %g ( minimum temperature difference between two time steps)',md.deltaT));
+disp(sprintf('         DeltaT: %g ( maximum temperature difference between two time steps)',md.DeltaT));
+disp(sprintf('         timeacc: %g ( multiplier to time step when time stepping increases time step)',md.timeacc));
+disp(sprintf('         timedec: %g ( multiplier to time step when time stepping decresaes time step)',md.timedec));
+
+disp(sprintf('\n      control:'));
+disp(sprintf('         control_type: %s (control type, ex: ''drag'', or ''B'')',md.control_type));
+disp(sprintf('         fit: (%g)      ( 0 -> absolute, 1 -> relative, 2 -> logarithmic. default is absolute)',length(md.fit)));
+disp(sprintf('         meanvel: %g      (velocity scaling factor when evaluating relative or logarithmic misfit)',md.meanvel));
+disp(sprintf('         epsvel: %g      ( for relative fit, avoids misfit becoming infinity, for logarithmic fit, threshold for velocity)',md.epsvel));
+disp(sprintf('         nsteps: %i      (number of optimization searches)',md.nsteps));
+disp(sprintf('         optscal: (%i %i)      (scaling factor on gradient direction during optimization, for each optimization step)',size(md.optscal,1),size(md.optscal,2)));
+disp(sprintf('         mincontrolconstraint: %f      (minimum contraint for the controlled parameters, NaN -> no constraint)',md.mincontrolconstraint));
+disp(sprintf('         maxcontrolconstraint: %f      (maximum contraint for the controlled parameters, NaN -> no constraint)',md.maxcontrolconstraint));
+disp(sprintf('         maxiter: (%i)      (maximum iterations during each optimization step)',length(md.maxiter)));
+disp(sprintf('         tolx: %f      (minimum tolerance which will stop one optimization search)',md.tolx));
+disp(sprintf('         plot: %i      (visualization of the results of each iteration yes -> 1 no -> 0. Default is 1)',md.plot));
+
+disp(sprintf('\n      mesh:'));
+disp(sprintf('         mesh_domainoutline: %s      (domain outlines)',md.mesh_domainoutline));
+disp(sprintf('         mesh_riftoutline: %s      (rift outlines)',md.mesh_riftoutline));
+disp(sprintf('         mesh_resolution: (%g)      (mesh resolutoin)',md.mesh_resolution));
 
 %mesh2grid type
-fprintf('\n      mesh2grid:\n');
+disp(sprintf('\n      mesh2grid:'));
 mesh2grid_string='';
 for i=1:length(md.mesh2grid_parameters),
@@ -64,5 +66,5 @@
 end
 mesh2grid_string=mesh2grid_string(1:length(mesh2grid_string)-5);
-fprintf('         mesh2grid_parameters: %s %s\n',mesh2grid_string,'(list of parameters for which mesh 2 grid interpolation is carried out; ex: {''drag''}, or {''drag'',''B''})');
+disp(sprintf('         mesh2grid_parameters: %s %s',mesh2grid_string,'(list of parameters for which mesh 2 grid interpolation is carried out; ex: {''drag''}, or {''drag'',''B''})'));
 %mesh2grid interpolation
 mesh2grid_interpstring='';
@@ -72,5 +74,5 @@
 end
 mesh2grid_interpstring=mesh2grid_interpstring(1:length(mesh2grid_interpstring)-5);
-fprintf('         mesh2grid_interpolation: %s %s\n',mesh2grid_interpstring,'(list of interpolation (''node'' or ''element'') for each parameter ex: {''node''}, or {''node'',''element''})');
+disp(sprintf('         mesh2grid_interpolation: %s %s',mesh2grid_interpstring,'(list of interpolation (''node'' or ''element'') for each parameter ex: {''node''}, or {''node'',''element''})'));
 
 %mesh2grid filter
@@ -81,15 +83,12 @@
 end
 mesh2grid_filterstring=mesh2grid_filterstring(1:length(mesh2grid_filterstring)-5);
-fprintf('         mesh2grid_filter: %s %s\n',mesh2grid_filterstring,'(list of filter (''average'' or ''nearest'') for each parameter ex: {''average''}, or {''average'',''nearest''})');
-fprintf('         mesh2grid_cornereast: %g ( corner east of square grid)\n',md.mesh2grid_cornereast);
-fprintf('         mesh2grid_cornernorth: %g ( corner north of square grid)\n',md.mesh2grid_cornernorth);
-fprintf('         mesh2grid_xposting: %g (x  posting of grid (in m))\n',md.mesh2grid_xposting);
-fprintf('         mesh2grid_yposting: %g (y  posting of grid (in m))\n',md.mesh2grid_yposting);
-fprintf('         mesh2grid_nlines: %g ( number of grid lines)\n',md.mesh2grid_nlines);
-fprintf('         mesh2grid_ncolumns: %g ( number of grid columns)\n',md.mesh2grid_ncolumns);
-fprintf('         mesh2grid_windowsize: %g ( size of filter )\n',md.mesh2grid_windowsize);
-
-%parallelisation
-md.parallel
+disp(sprintf('         mesh2grid_filter: %s %s',mesh2grid_filterstring,'(list of filter (''average'' or ''nearest'') for each parameter ex: {''average''}, or {''average'',''nearest''})'));
+disp(sprintf('         mesh2grid_cornereast: %g ( corner east of square grid)',md.mesh2grid_cornereast));
+disp(sprintf('         mesh2grid_cornernorth: %g ( corner north of square grid)',md.mesh2grid_cornernorth));
+disp(sprintf('         mesh2grid_xposting: %g (x  posting of grid (in m))',md.mesh2grid_xposting));
+disp(sprintf('         mesh2grid_yposting: %g (y  posting of grid (in m))',md.mesh2grid_yposting));
+disp(sprintf('         mesh2grid_nlines: %g ( number of grid lines)',md.mesh2grid_nlines));
+disp(sprintf('         mesh2grid_ncolumns: %g ( number of grid columns)',md.mesh2grid_ncolumns));
+disp(sprintf('         mesh2grid_windowsize: %g ( size of filter )',md.mesh2grid_windowsize));
 
 %parameteroutput type
@@ -101,5 +100,5 @@
 parameteroutput_string=parameteroutput_string(1:length(parameteroutput_string)-5);
 
-fprintf('\n      output:\n');
-fprintf('         parameteroutput: %s %s\n',parameteroutput_string,...
-                       '(list of output parameters recovered in the solution sequences: ex: {''viscousheating'',''stress''})\n');
+disp(sprintf('\n      output:'));
+disp(sprintf('         parameteroutput: %s %s',parameteroutput_string,...
+	'(list of output parameters recovered in the solution sequences: ex: {''viscousheating'',''stress''})'));
