Index: ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m =================================================================== --- ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m (revision 21647) +++ ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m (revision 21648) @@ -72,7 +72,7 @@ else listsize=length(Var); subgroupID=netcdf.defGrp(groupID,groupfields{j}); - netcdf.putAtt(subgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(md.(groups{i}).(groupfields{j}))); + netcdf.putAtt(subgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(Var)); for l=1:listsize if isprop(Var{l},'name') lname=Var{l}.name; @@ -91,6 +91,53 @@ end end end + elseif isa(Var,'struct') && ~strcmp(groupfields{j},'bamg') + classtype=class(md.(groups{i})); + if strcmp(classtype,'struct') + classtype=groups{i}; + end + netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),'classtype',classtype); + if length(Var)>1 + listsize=length(Var); + subgroupID=netcdf.defGrp(groupID,groupfields{j}); + classtype=class(Var); + if strcmp(classtype,'struct') + classtype=groups{i}; + end + netcdf.putAtt(subgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',classtype); + for l=1:listsize + if isfield(Var(l),'step') + lname=[int2str(Var(l).step)]; + else + lname=[class(Var(l)) int2str(l)]; + end + classtype=class(Var(l)); + if strcmp(classtype,'struct') + classtype=groups{i}; + end + listgroupID=netcdf.defGrp(subgroupID,lname); + netcdf.putAtt(listgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',classtype); + subfields=fields(Var(l)); + for m=1:length(subfields) + if ~strcmp(subfields{m},'outlog') + [DimSize,DimValue]=DefCreateVar(ncid,Var(l).(subfields{m}),listgroupID,subfields{m},DimSize,DimValue); + end + end + end + else + subgroupID=netcdf.defGrp(groupID,groupfields{j}); + classtype=class(Var); + if strcmp(classtype,'struct') + classtype=groups{i}; + end + netcdf.putAtt(subgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',classtype); + subfields=fields(Var); + for m=1:length(subfields) + if ~strcmp(subfields{m},'outlog') + [DimSize,DimValue]=DefCreateVar(ncid,Var.(subfields{m}),subgroupID,subfields{m},DimSize,DimValue); + end + end + end else netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(md.(groups{i}))); [DimSize,DimValue]=DefCreateVar(ncid,Var,groupID,groupfields{j},DimSize,DimValue);