Index: /issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m	(revision 21641)
+++ /issm/trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m	(revision 21642)
@@ -21,25 +21,26 @@
 	
 	%gather geometry and timestepping as dimensions
-	Duration=md.timestepping.final_time-md.timestepping.start_time;
-	if Duration>0 && md.timestepping.time_step*md.settings.output_frequency>0,
-		StepNum=Duration/(md.timestepping.time_step*md.settings.output_frequency);
+	resfields=fieldnames(md.results);
+	Duration=size(eval(['md.results. ' resfields{1} ]),2);
+	if Duration>0,
+		StepNum=Duration;
 	else
 		StepNum=1;
   end							
+
+   dimlist=[40,2,md.mesh.numberofelements,md.mesh.numberofvertices,size(md.mesh.elements,2)];
  
 	%define netcdf dimensions
-	DimSize(1).index=netcdf.defDim(ncid,'Dimension1',md.mesh.numberofelements);
-	DimSize(2).index=netcdf.defDim(ncid,'Dimension2',md.mesh.numberofvertices);
-	DimSize(3).index=netcdf.defDim(ncid,'Dimension3',size(md.mesh.elements,2));
-	DimSize(4).index=netcdf.defDim(ncid,'Dimension4',StepNum);
-	DimSize(5).index=netcdf.defDim(ncid,'Dimension5',40);
-	DimSize(6).index=netcdf.defDim(ncid,'Dimension6',2);
-	
-	for i=1:length(DimSize),
-		[DimSize(i).name,DimSize(i).value]=netcdf.inqDim(ncid,DimSize(i).index);
-		DimValue(i)=DimSize(i).value;% putting vallues in an array for
-                                 % further use
-  end
- 
+	DimSize(1).index=netcdf.defDim(ncid,'Dimension1',StepNum);
+	[DimSize(1).name,DimSize(1).value]=netcdf.inqDim(ncid,DimSize(1).index);
+	DimValue(1)=DimSize(1).value;
+	for i=1:5
+		if sum(dimlist(i) == DimValue) == 0
+			DimSize(i+1).index=netcdf.defDim(ncid,['Dimension' num2str(i+1)],dimlist(i));
+			[DimSize(i+1).name,DimSize(i+1).value]=netcdf.inqDim(ncid,DimSize(i+1).index);
+			DimValue(i+1)=DimSize(i+1).value;
+		end
+	end
+
 	%Needs a first turn arround for var def
  
@@ -231,4 +232,5 @@
 			else
 				dimindex=find(dimexist);
+				DimValue
 				if DimSize(dimindex).value~=currentdim,
 					error('Indexation problem with the dimension structure')
@@ -239,9 +241,13 @@
   end
 	if istime,
-		dims=[dims DimSize(4).index];%adding the time dimension if necessary
+		dims=[dims DimSize(1).index];%adding the time dimension if necessary
   end
 	%if we have a cell variable we need to add a stringlength dimension 
 	if isa(Var,'cell') || isa(Var,'struct'),
-		dims=[DimSize(5).index dims]
+		if DimValue(2)~=40
+			dims=[DimSize(1).index dims];
+		else
+			dims=[DimSize(2).index dims];
+		end
   end
 end
