Index: /issm/trunk/src/m/classes/flaim.m
===================================================================
--- /issm/trunk/src/m/classes/flaim.m	(revision 9605)
+++ /issm/trunk/src/m/classes/flaim.m	(revision 9605)
@@ -0,0 +1,62 @@
+%FLAIM class definition
+%
+%   Usage:
+%      flaim=flaim();
+
+classdef flaim
+	properties (SetAccess=public) 
+		tracks             = modelfield('default','','marshall',false);
+		flightreqs         = modelfield('default',struct(),'marshall',false);
+		criterion          = modelfield('default',NaN,'marshall',false);
+		gridsatequator     = modelfield('default',200000,'marshall',false);
+		usevalueordering   = modelfield('default',true,'marshall',false);
+		split_antimeridian = modelfield('default',true,'marshall',false);
+		solution           = modelfield('default','','marshall',false);
+		quality            = modelfield('default',0,'marshall',false);
+	end
+	methods
+		function obj = flaim(varargin) % {{{
+			switch nargin
+				case 0
+					obj=setdefaultparameters(obj);
+				case 1
+					in=varargin{1};
+					if (isa(in,'numeric') & in==0),
+						% requesting templates do nothing
+					else
+						error('constructor not supported');
+					end 
+				otherwise
+					error('constructor not supported');
+			end
+		end % }}}
+		function obj = setdefaultparameters(obj) % {{{
+
+			%first, use the defaults provided by the properties definition above. 
+			fieldnames=fields(obj);
+			for i=1:length(fieldnames),
+				fieldname=fieldnames{i};
+				obj.(fieldname)=obj.(fieldname).default;
+			end
+
+		end % }}}
+		function disp(obj) % {{{
+
+			disp(sprintf('   FLAIM - Flight Line Adaptation using Ice sheet Modeling:')); 
+
+			disp(sprintf('\n      Input:'));
+			fielddisplay(md,'tracks'             ,'name of kml tracks file');
+			fielddisplay(md,'flightreqs'         ,'structure of kml flight requirements');
+			fielddisplay(md,'criterion'          ,'element or nodal criterion for flight path evaluation');
+
+			disp(sprintf('\n      Arguments:'));
+			fielddisplay(md,'gridsatequator'     ,'number of grids at equator (determines resolution)');
+			fielddisplay(md,'usevalueordering'   ,'flag to consider target values for flight path evaluation');
+			fielddisplay(md,'split_antimeridian' ,'flag to split polygons on the antimeridian');
+
+			disp(sprintf('\n      Output:'));
+			fielddisplay(md,'solution'           ,'name of kml solution file');
+			fielddisplay(md,'quality'            ,'quality of kml solution');
+		end % }}}
+	end
+end
Index: /issm/trunk/src/m/classes/model/model.m
===================================================================
--- /issm/trunk/src/m/classes/model/model.m	(revision 9604)
+++ /issm/trunk/src/m/classes/model/model.m	(revision 9605)
@@ -14,4 +14,5 @@
 		 debug     = modelfield('default',0,'marshall',false);
 		 constants = modelfield('default',0,'marshall',true);
+		 flaim     = modelfield('default',0,'marshall',false);
 
 		 %FIXME: all other fields should belong to other classes
@@ -255,14 +256,4 @@
 		 qmu_mass_flux_segments          = modelfield('default',{},'marshall',true,'format','MatArray');
 
-		 %flaim
-		 fm_tracks             = modelfield('default','','marshall',false);
-		 fm_flightreqs         = modelfield('default',struct(),'marshall',false);
-		 fm_criterion          = modelfield('default',NaN,'marshall',false);
-		 fm_gridsatequator     = modelfield('default',200000,'marshall',false);
-		 fm_usevalueordering   = modelfield('default',true,'marshall',false);
-		 fm_split_antimeridian = modelfield('default',true,'marshall',false);
-		 fm_solution           = modelfield('default','','marshall',false);
-		 fm_quality            = modelfield('default',0,'marshall',false);
-		 
 		 %ad: automatic differentiation
 		 ad_analysis = modelfield('default',false,'marshall',true,'format','Boolean');
Index: /issm/trunk/src/m/model/addnote.m
===================================================================
--- /issm/trunk/src/m/model/addnote.m	(revision 9604)
+++ /issm/trunk/src/m/model/addnote.m	(revision 9605)
@@ -9,6 +9,5 @@
 
 if (nargin~=2) & (nargout~=1),
-	addnoteusage;
-	error(' ');
+	help addnote
 end
 
@@ -31,6 +30,2 @@
 
 md.notes=newnotes;
-
-function addnoteusage()
-disp('addnote usage:');
-disp('   model=addnote(model,string)');
Index: /issm/trunk/src/m/model/effectivepressure.m
===================================================================
--- /issm/trunk/src/m/model/effectivepressure.m	(revision 9604)
+++ /issm/trunk/src/m/model/effectivepressure.m	(revision 9605)
@@ -7,10 +7,6 @@
 %   Example:
 %      Neff=effectivepressure(md)
-%
-
 
 Neff=md.rho_ice*md.constants.g*md.thickness+md.rho_ice*md.constants.g*md.bed;
-
-
 pos=find(Neff<0);
 Neff(pos)=0;
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9604)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 9605)
@@ -20,10 +20,10 @@
 %FLAIM {{{1
 if (md.solution_type == FlaimSolutionEnum),
-	if ~exist(md.fm_tracks,'file')
-		message(['model not consistent: fm_tracks file ''' md.fm_tracks ''' must exist.']);
-	end
-	%   probably going to need some checks on fm_flightreqs here
-	if (numel(md.fm_criterion) ~= md.numberofnodes) && (numel(md.fm_criterion) ~= md.numberofelements)
-		message(['model not consistent: fm_criterion vector must have number of nodes (' int2str(md.numberofnodes) ') or elements (' int2str(md.numberofelements) ') values, not ' int2str(numel(md.fm_criterion)) ' values.']);
+	if ~exist(md.flaim.tracks,'file')
+		message(['model not consistent: flaim.tracks file ''' md.flaim.tracks ''' must exist.']);
+	end
+	%   probably going to need some checks on flaim.flightreqs here
+	if (numel(md.flaim.criterion) ~= md.numberofnodes) && (numel(md.flaim.criterion) ~= md.numberofelements)
+		message(['model not consistent: flaim.criterion vector must have number of nodes (' int2str(md.numberofnodes) ') or elements (' int2str(md.numberofelements) ') values, not ' int2str(numel(md.flaim.criterion)) ' values.']);
 	end
 	return;
Index: /issm/trunk/src/m/model/modelsextractfromdomains.m
===================================================================
--- /issm/trunk/src/m/model/modelsextractfromdomains.m	(revision 9604)
+++ /issm/trunk/src/m/model/modelsextractfromdomains.m	(revision 9605)
@@ -9,6 +9,4 @@
 %
 %   See also: MODELSEXTRACTS, MODELEXTRACT
-
-
 
 %go into directory and get list of files.
@@ -25,3 +23,3 @@
 md_list=modellist(models);
 
-end %end of this function
+end 
Index: /issm/trunk/src/m/model/tres.m
===================================================================
--- /issm/trunk/src/m/model/tres.m	(revision 9604)
+++ /issm/trunk/src/m/model/tres.m	(revision 9605)
@@ -50,6 +50,6 @@
 
 elseif strcmpi(string,'flaim'),
-	md.fm_solution=md.results.FlaimSolution.solution;
-	md.fm_quality =md.results.FlaimSolution.quality;
+	md.flaim.solution=md.results.FlaimSolution.solution;
+	md.flaim.quality =md.results.FlaimSolution.quality;
 
 elseif strcmpi(string,'transient'),
Index: /issm/trunk/src/m/solutions/flaim.m
===================================================================
--- /issm/trunk/src/m/solutions/flaim.m	(revision 9604)
+++ /issm/trunk/src/m/solutions/flaim.m	(revision 9605)
@@ -23,14 +23,14 @@
 end
 mkdir(options.fmdir)
-system(['cp -p ' md.fm_tracks ' ' options.fmdir]);
+system(['cp -p ' md.flaim.tracks ' ' options.fmdir]);
 % for testing
 %system(['cp -p issm-split-geikie1-targets.kml ' options.fmdir]);
 %system(['cp -p solution_best.kml ' options.fmdir]);
-%system(['cp -p fm_targets.log ' options.fmdir]);
+%system(['cp -p flaim.targets.log ' options.fmdir]);
 cd(options.fmdir)
 
 %  process file names
 
-[pathstr,name,ext,versn] = fileparts(md.fm_tracks);
+[pathstr,name,ext,versn] = fileparts(md.flaim.tracks);
 fm_tracks=fullfile('',[name ext versn]);
 [pathstr,name,ext,versn] = fileparts(options.fmfile);
@@ -41,6 +41,6 @@
 ext='.log';
 filelog=fullfile(pathstr,[name ext versn]);
-if ~isempty(md.fm_solution)
-	[pathstr,name,ext,versn] = fileparts(md.fm_solution);
+if ~isempty(md.flaim.solution)
+	[pathstr,name,ext,versn] = fileparts(md.flaim.solution);
 	filesol=fullfile('',[name '' '']);
 else
@@ -65,5 +65,5 @@
 %  (could also directly call colormaps, e.g. jet(64), but risky)
 
-if ~isempty(md.fm_criterion)
+if ~isempty(md.flaim.criterion)
 	hfig=figure('Visible','off');
 	if isfield(options,'cmap') && ~isempty(options.cmap)
@@ -80,5 +80,5 @@
 
 display('Calling KMLMeshWrite.');
-KMLMeshWrite(md.name,md.notes,md.elements,md.nodeconnectivity,md.lat,md.long,md.part,md.fm_criterion,options.cmap,filekml);
+KMLMeshWrite(md.name,md.notes,md.elements,md.nodeconnectivity,md.lat,md.long,md.part,md.flaim.criterion,options.cmap,filekml);
 %  for testing
 %filekml='issm-split-geikie1-targets.kml';
@@ -89,9 +89,9 @@
 FLAIM_DIR=flaimdir();
 %system([FLAIM_DIR '/clasp/swathModule/models/issm/issm.exe -kml ' fm_tracks ' -kml ' filekml ' -gridsatequator 200000 -opt 1 -hst 2017-276T02:57:00 -hdur 4d -sparsepoints -usevalueordering -split-antimeridian >& ' filelog]);
-flaim_cmd=[FLAIM_DIR '/clasp/swathModule/models/issm/issm.exe -kml ' fm_tracks ' -kml ' filekml ' -gridsatequator ' int2str(md.fm_gridsatequator) ' -opt 1 -hst 2017-276T02:57:00 -hdur 4d -sparsepoints'];
-if (md.fm_usevalueordering)
+flaim_cmd=[FLAIM_DIR '/clasp/swathModule/models/issm/issm.exe -kml ' fm_tracks ' -kml ' filekml ' -gridsatequator ' int2str(md.flaim.gridsatequator) ' -opt 1 -hst 2017-276T02:57:00 -hdur 4d -sparsepoints'];
+if (md.flaim.usevalueordering)
 	flaim_cmd=[flaim_cmd ' -usevalueordering'];
 end
-if (md.fm_split_antimeridian)
+if (md.flaim.split_antimeridian)
 	flaim_cmd=[flaim_cmd ' -split-antimeridian'];
 end
