Index: /issm/branches/trunk-jpl-ad2/src/m/plot/export_gl.m
===================================================================
--- /issm/branches/trunk-jpl-ad2/src/m/plot/export_gl.m	(revision 19305)
+++ /issm/branches/trunk-jpl-ad2/src/m/plot/export_gl.m	(revision 19305)
@@ -0,0 +1,104 @@
+function export_gl(md,varargin)
+
+	templist=plotoptions(varargin{:}); 
+	optionslist=templist.list;
+	options=optionslist{1};
+	options=checkplotoptions(md,options);
+
+	%Setup unique directory in present dir: 
+	directory=getfieldvalue(options,'directory','./');
+	databasename=getfieldvalue(options,'database','webgl');
+
+	%scaling factor: 
+	scaling_factor=getfieldvalue(options,'scaling_factor',50);
+
+	%Deal with title: 
+	if exist(options,'title')
+		title=getfieldvalue(options,'title');
+	else
+		title='';
+	end
+
+	%initialize model: 
+	model.title=title;
+	model.initialZoomFactor=getfieldvalue(options,'zoom',-.25);
+
+	%Deal with contour {{{
+
+	contour_lat=md.mesh.lat(md.mesh.segments(:,1));
+	contour_long=md.mesh.long(md.mesh.segments(:,1));
+	contour_surface=md.geometry.surface(md.mesh.segments(:,1));
+
+	R=6371000*ones(length(contour_surface),1)+scaling_factor*contour_surface;
+
+	contourx = R .* cosd(contour_lat) .* cosd(contour_long);
+	contoury = R .* cosd(contour_lat) .* sind(contour_long);
+	contourz = R .* sind(contour_lat);
+
+	model.contourx=contourx;
+	model.contoury=contoury;
+	model.contourz=contourz;
+
+	%}}}
+%Deal with mesh and results {{{
+	
+	
+	lat=md.mesh.lat;
+	long=md.mesh.long;
+	surface=md.geometry.surface;
+	numberofelements=md.mesh.numberofelements;
+	numberofvertices=md.mesh.numberofvertices;
+
+	R=6371000*ones(numberofvertices,1)+scaling_factor*surface;
+
+	x = R .* cosd(lat) .* cosd(long);
+	y = R .* cosd(lat) .* sind(long);
+	z = R .* sind(lat);
+
+
+	%Deal with triangulation: 
+	model.index=md.mesh.elements;
+	model.x=x;
+	model.y=y;
+	model.z=z;
+	model.surface=surface;
+	
+	%Deal with data: 
+	results=struct([]);
+	for i=1:length(optionslist),
+		options=optionslist{i}; options=checkplotoptions(md,options);
+		data=getfieldvalue(options,'data');
+		results(i).data=data;
+		results(i).caxis=getfieldvalue(options,'caxis',[min(data(:)) max(data(:))]);
+
+		label=getfieldvalue(options,'label','');
+		if strcmpi(label,''),
+			%create generic label: 
+			label=['data' num2str(i)];
+		end
+		results(i).label=label;
+
+		shortlabel=getfieldvalue(options,'shortlabel','');
+		if strcmpi(shortlabel,''),
+			%create generic short label: 
+			shortlabel=['data' num2str(i)];
+		end
+		results(i).shortlabel=shortlabel;
+		
+		if size(data,2)>1,
+			time_range=getfieldvalue(options,'time_range',[0 100]);
+			results(i).time_range=time_range;
+		end
+
+		unit=getfieldvalue(options,'unit','');
+		if strcmpi(unit,''),
+			%create generic unit: 
+			unit='SI';
+		end
+		results(i).unit=unit;
+	end
+	model.results=results;
+	
+	%Write model to javascript database file: 
+	writejsfile([directory databasename '.js'],model,databasename);
+%}}}
Index: /issm/branches/trunk-jpl-ad2/src/m/plot/prepare_gl.m
===================================================================
--- /issm/branches/trunk-jpl-ad2/src/m/plot/prepare_gl.m	(revision 19304)
+++ /issm/branches/trunk-jpl-ad2/src/m/plot/prepare_gl.m	(revision 19305)
@@ -244,49 +244,4 @@
 
 %}}}
-%handle rendering of contour {{{
-
-
-fid=fopen([database '/contour_coords.js'],'w');
-
-contour_lat=md.mesh.lat(md.mesh.segments(:,1));
-contour_long=md.mesh.long(md.mesh.segments(:,1));
-contour_surface=md.geometry.surface(md.mesh.segments(:,1));
-
-R=6371000*ones(length(contour_surface),1)+scaling_factor*contour_surface;
-
-contour_x = R .* cosd(contour_lat) .* cosd(contour_long);
-contour_y = R .* cosd(contour_lat) .* sind(contour_long);
-contour_z = R .* sind(contour_lat);
-
-%write contour_x:
-fprintf(fid,'<!-- contour_x{{{-->\n');
-fprintf(fid,'var contour_x=[');
-for i=1:length(contour_x)-1,
-	fprintf(fid,'%g,',contour_x(i));
-end
-fprintf(fid,'%g];\n',contour_x(end));
-fprintf(fid,'<!--}}}-->\n');
-
-%write contour_y:
-fprintf(fid,'<!-- contour_y{{{-->\n');
-fprintf(fid,'var contour_y=[');
-for i=1:length(contour_y)-1,
-	fprintf(fid,'%g,',contour_y(i));
-end
-fprintf(fid,'%g];\n',contour_y(end));
-fprintf(fid,'<!--}}}-->\n');
-
-%write contour_surface:
-fprintf(fid,'<!-- contour_z{{{-->\n');
-fprintf(fid,'var contour_z=[');
-for i=1:length(contour_z)-1,
-	fprintf(fid,'%g,',contour_z(i));
-end
-fprintf(fid,'%g];\n',contour_z(end));
-fprintf(fid,'<!--}}}-->\n');
-
-fclose(fid);
-
-%}}}
 
 %Come back to present directory: 
Index: /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfile.m
===================================================================
--- /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfile.m	(revision 19304)
+++ /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfile.m	(revision 19305)
@@ -8,9 +8,12 @@
 	nods=length(model.x);
 	nel=size(model.index,1);
+	nx=length(model.contourx);
 	
 	fid=fopen(filename,'w');
 
-	fprintf(fid,'model = []\n');
-
+	fprintf(fid,'model = {};\n');
+	fprintf(fid,'model["title"]="%s";\n',model.title);
+	fprintf(fid,'model["initialZoomFactor"]=%s;\n',model.initialZoomFactor);
+	
 	%write index:
 	fprintf(fid,'<!-- model["index"]{{{-->\n');
@@ -26,16 +29,22 @@
 	writejsfield(fid,'model["z"]',model.z,nods);
 	writejsfield(fid,'model["surface"]',model.surface,nods);
+	writejsfield(fid,'model["contourx"]',model.contourx,nx);
+	writejsfield(fid,'model["contoury"]',model.contoury,nx);
+	writejsfield(fid,'model["contourz"]',model.contourz,nx);
 
 	results=model.results;
-	fprintf(fid,'results=[]\n');
-	fprintf(fid,'result=[]\n');
+	fprintf(fid,'results={};\n');
 
 	for i=1:length(results),
+		fprintf(fid,'result={};\n');
 		writejsfield(fid,'result["data"]',results(i).data,nods);
 		fprintf(fid,'<!--{{{-->\n');
 		fprintf(fid,'result["caxis"]=[%g,%g];\n',results(i).caxis(1),results(i).caxis(2));
-		fprintf(fid,'result["label"]="%s"\n',results(i).label);
-		fprintf(fid,'result["shortlabel"]="%s"\n',results(i).shortlabel);
-		fprintf(fid,'result["unit"]="%s"\n',results(i).unit);
+		fprintf(fid,'result["label"]="%s";\n',results(i).label);
+		fprintf(fid,'result["shortlabel"]="%s";\n',results(i).shortlabel);
+		fprintf(fid,'result["unit"]="%s";\n',results(i).unit);
+		if size(results(i).data,2)>1,
+			fprintf(fid,'result["time_range"]=[%g,%g];\n',results(i).time_range(1),results(i).time_range(2));
+		end
 		fprintf(fid,'results["%i"]=result;\n',i);
 		fprintf(fid,'<!--}}}-->\n');
