Index: /issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m	(revision 21644)
+++ /issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m	(revision 21645)
@@ -43,5 +43,5 @@
 	end
 
-	%Needs a first turn arround for var def
+	typelist=[{'numeric'} {'logical'} {'string'} {'char'} {'cell'}];
  
 	%get all model classes and create respective groups
@@ -85,14 +85,53 @@
 		    end
 	    end
-		else
-			for j=1:length(groupfields),
-				disp(sprintf('=====Field name in tree %s ',groupfields{j}));
+	 else
+		 for j=1:length(groupfields),
+			 Var=md.(groups{i}).(groupfields{j});
+			 if isa(Var,'cell')
+				 Stdlist=false;
+				 if length(Var) == 0
+					 Stdlist=true;
+				 else
+					 for k=1:length(typelist)
+						if isa(Var{1},typelist{k})
+							Stdlist=true;
+						end
+					end
+				end
+
 				netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(md.(groups{i})));
-				Var=md.(groups{i}).(groupfields{j});
+				if(Stdlist)
+					disp(sprintf('=====Field name in tree %s ',groupfields{j}));
+					[DimSize,DimValue]=DefCreateVar(ncid,Var,groupID,groupfields{j},DimSize,DimValue,false);
+				else
+					listsize=length(Var);
+					subgroupID=netcdf.defGrp(groupID,groupfields{j});
+					netcdf.putAtt(subgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(md.(groups{i}).(groupfields{j})));
+					for l=1:listsize
+						if isprop(Var{l},'name')
+							lname=Var{l}.name;
+						elseif isprop(Var{l},'step')
+							lname=Var{l}.step
+						else 
+							lname=[class(Var{l}) int2str(l)];
+						end
+						listgroupID=netcdf.defGrp(subgroupID,lname);
+						netcdf.putAtt(listgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(Var{l}));
+						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,false);
+							end
+						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,false);
-	    end
-	  end	
-  end
-	netcdf.close(ncid);
+			end
+		 end
+	 end	
+ end
+ netcdf.close(ncid);
 end
 
@@ -141,13 +180,13 @@
 					endpoint=min(length(Var{i}),40);
 					startpoint=0;
-		    end
+				end
 				if length(Var{i})>40,
 					netcdf.putVar(groupID,varid,startpoint,endpoint,Var{i}(1:40))
 					disp(sprintf('some variable have been truncated'));
-			  else
+				else
 					netcdf.putVar(groupID,varid,startpoint,endpoint,Var{i})
-	      end
-	    end
-	  end
+				end
+			end
+		end
 	elseif isa(Var,'struct'),
 		%Start by getting the structure fields and size
