source: issm/trunk-jpl/src/m/model/marshall.m@ 11224

Last change on this file since 11224 was 11224, checked in by Mathieu Morlighem, 13 years ago

Some updates required to support matlab versions older than 7.6

File size: 1.3 KB
Line 
1function marshall(md)
2%MARSHALL - outputs a compatible binary file from @model md, for certain solution type.
3%
4% The routine creates a compatible binary file from @model md
5% This binary file will be used for parallel runs in JPL-package
6%
7% Usage:
8% marshall(md)
9
10disp(['marshalling file ' md.miscellaneous.name '.bin']);
11
12%open file for binary writing
13fid=fopen([ md.miscellaneous.name '.bin'],'wb');
14if fid==-1,
15 error(['marshall error message: could not open ' [md.miscellaneous.name '.bin'],' file for binary writing']);
16end
17
18%Go through all model fields: check that it is a class and call checkconsistency
19fields=properties('model');
20for i=1:length(fields),
21 field=fields{i};
22
23 %Some properties do not need to be marshalled
24 if ismember(field,{'results' 'debug' 'radaroverlay' 'solver' 'cluster' 'flaim' 'private'}),
25 continue;
26 end
27
28 %Check that current field is an object
29 if ~isobject(md.(field))
30 checkmessage(['field ''' char(field) ''' is not an object']);
31 end
32
33 %Marshall current object
34 %disp(['marshalling ' field '...']);
35 if verLessThan('matlab', '7.6')
36 marshall(md.(field),fid);
37 else
38 md.(field).marshall(fid);
39 end
40end
41
42%close file
43st=fclose(fid);
44if st==-1,
45 error(['marshall error message: could not close file ' [md.miscellaneous.name '.bin']]);
46end
Note: See TracBrowser for help on using the repository browser.