function displaydiagnostic(md)
%DISPLAYDIAGNOSTIC - display solution parameters of diagnostic
%
%   To avoid clobbering display.m with every field from model md, 
%   we create this routine that displays the solution parameters
%   from model md, only if requested.
%
%   Usage:
%      displaydiagnostic(md)

disp(sprintf('   Diagnostic solution parameters:'));

disp(sprintf('\n      %s','Newton convergence criteria:'));
fielddisplay(md,'eps_res','mechanical equilibrium residue convergence criterion');
fielddisplay(md,'eps_rel','velocity relative convergence criterion, NaN -> not applied');
fielddisplay(md,'eps_abs','velocity absolute convergence criterion, NaN -> not applied');
fielddisplay(md,'max_nonlinear_iterations','maximum number of nonlinear iterations');
fielddisplay(md,'viscosity_overshoot','over-shooting constant new=new+C*(new-old)');

disp(sprintf('\n      boundary conditions:'));
fielddisplay(md,'spcvx','x-axis velocity constraint (NaN means no constraint)');
fielddisplay(md,'spcvy','y-axis velocity constraint (NaN means no constraint)');
fielddisplay(md,'spcvz','z-axis velocity constraint (NaN means no constraint)');
fielddisplay(md,'pressureload','segments on ice front list');

disp(sprintf('\n      %s','Penalties:'));
fielddisplay(md,'penalty_offset','offset used by penalties: penalty = Kmax*10^offset');
fielddisplay(md,'min_mechanical_constraints','threshold for instability of mechanical constraints');

disp(sprintf('\n      %s','Memory management:'));
fielddisplay(md,'lowmem','Set to 1 if you are running low on cluster memory');
fielddisplay(md,'connectivity','element connectivity');

disp(sprintf('\n      %s','Debugging:'));
fielddisplay(md,'verbose','level of output statements: none -> 0, yes->1,2. Default is 0');
fielddisplay(md,'element_debug','output debug statements for elementswhen possible yes-> 1, no -> 0. Default is 0');
fielddisplay(md,'element_debugid','if element_debug on, id of element for which to output messages');
