Changeset 14603
- Timestamp:
- 04/16/13 14:41:21 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/model/model.m
r14559 r14603 1141 1141 disp(sprintf('\nMemory imprint: ')); 1142 1142 1143 objects=fields(obj);1144 mem ory=0;1143 fields=properties('model'); 1144 mem=0; 1145 1145 1146 for i=1:length(objects), 1147 field=objects{i}; 1148 realobject=obj.(field); 1149 s=whos('realobject'); 1150 memory=memory+s.bytes/1e6; 1151 disp(sprintf('%19s: %g Mb',field,s.bytes/1e6)); 1146 for i=1:length(fields), 1147 field=obj.(fields{i}); 1148 s=whos('field'); 1149 mem=mem+s.bytes/1e6; 1150 disp(sprintf('%19s: %g Mb',fields{i},s.bytes/1e6)); 1152 1151 end 1153 disp(sprintf('Overall: %g Mb',memory)); 1152 disp(sprintf('%19s--%10s','--------------','--------------')); 1153 disp(sprintf('%19s: %g Mb','Total',mem)); 1154 end % }}} 1155 function netcdf(obj,filename) % {{{ 1156 %NETCDF - save model as netcdf 1157 % 1158 % Usage: 1159 % netcdf(md,filename) 1160 % 1161 % Example: 1162 % netcdf(md,'model.nc'); 1163 1164 disp('Saving model as NetCDF'); 1165 %1. Create NetCDF file 1166 ncid=netcdf.create(filename,'CLOBBER'); 1167 netcdf.putAtt(ncid,netcdf.getConstant('NC_GLOBAL'),'Conventions','CF-1.4'); 1168 netcdf.putAtt(ncid,netcdf.getConstant('NC_GLOBAL'),'Title',['ISSM model' obj.miscellaneous.name]); 1169 netcdf.putAtt(ncid,netcdf.getConstant('NC_GLOBAL'),'Author',getenv('USER')); 1170 netcdf.putAtt(ncid,netcdf.getConstant('NC_GLOBAL'),'Date',datestr(now)); 1171 netcdf.close(ncid) 1172 1173 %2. First round: define dimensions 1174 fields1=properties('model'); 1175 for i=1:length(fields1), 1176 subfields=fields(obj.(fields1{i})); 1177 for j=1:length(subfields) 1178 fieldname = [fields1{i} '.' subfields{j}]; 1179 field = obj.(fields1{i}).(subfields{j}); 1180 fieldname 1181 if isa(field,'double') & numel(field)==1, 1182 nccreate(filename,fieldname); 1183 ncwrite( filename,fieldname,field); 1184 elseif isa(field,'double') & size(field,2)==1, 1185 nccreate(filename,fieldname,'Dimensions',{[fieldname '_length'] size(field,1)}); 1186 ncwrite(filename ,fieldname,field); 1187 elseif isa(field,'double') & size(field,2)>1, 1188 nccreate(filename,fieldname,'Dimensions',{[fieldname '_size2'] size(field,2) [fieldname '_size1'] size(field,1)}); 1189 ncwrite(filename ,fieldname,transpose(field)); 1190 elseif isa(field,'char') & ~isempty(field), 1191 nccreate(filename,fieldname,'Dimensions',{[fieldname '_length'] numel(field)},'DataType','char'); 1192 ncwrite( filename,fieldname,field); 1193 elseif isa(field,'logical') & numel(field)==1, 1194 nccreate(filename,fieldname,'DataType','int8'); 1195 ncwrite( filename,fieldname,int8(field)); 1196 else 1197 disp(['skipping ' fieldname '...']); 1198 end 1199 end 1200 end 1154 1201 end % }}} 1155 1202 function xylim(obj) % {{{
Note:
See TracChangeset
for help on using the changeset viewer.