<p><b>ringler@lanl.gov</b> 2009-08-10 09:15:00 -0600 (Mon, 10 Aug 2009)</p><p><br>
mapping now includes both Voronoi diagram and Delaunay triangulation<br>
</p><hr noshade><pre><font color="gray">Added: trunk/swmodel/matlab/MapDataToDx.m
===================================================================
--- trunk/swmodel/matlab/MapDataToDx.m                                (rev 0)
+++ trunk/swmodel/matlab/MapDataToDx.m        2009-08-10 15:15:00 UTC (rev 17)
@@ -0,0 +1,89 @@
+
+% This script open a output.nc file and writes out the output
+% in ascii format to be read in by OpenDX
+
+clear all
+
+eps = 1.0e-12
+
+ncid = netcdf.open('output.nc','nc_nowrite')
+
+doThickness = 1;
+doKE = 1;
+doVorticity = 1;
+
+[nCellsName, nCellsLength] = netcdf.inqDim(ncid,0);
+[nEdgesName, nEdgesLength] = netcdf.inqDim(ncid,1);
+[nVerticesName, nVerticesLength] = netcdf.inqDim(ncid,2);
+[nVertLevelsName, nVertLevelsLength] = netcdf.inqDim(ncid,7);
+[nTracersName, nTracersLength] = netcdf.inqDim(ncid,8);
+[TimeName, TimeLength] = netcdf.inqDim(ncid,9);
+
+thicknessID = netcdf.inqVarID(ncid,'h');
+work =  netcdf.getVar(ncid,thicknessID);
+[thicknessName,xtype,dimids,natts] = netcdf.inqVar(ncid,thicknessID);
+thickness=work;
+
+keID = netcdf.inqVarID(ncid,'ke');
+work =  netcdf.getVar(ncid,keID);
+[keName,xtype,dimids,natts] = netcdf.inqVar(ncid,keID);
+ke=work;
+
+vorticityID = netcdf.inqVarID(ncid,'vorticity');
+work =  netcdf.getVar(ncid,vorticityID);
+[vorticityName,xtype,dimids,natts] = netcdf.inqVar(ncid,vorticityID);
+vorticity=work;
+
+if (doThickness == 1)
+system('rm -f ../dx/h.*.*.data')
+for iLevel=1:nVertLevelsLength
+for iTime=0:TimeLength-1
+    stringTime = int2str(iTime)
+    stringVert = int2str(iLevel)
+    FileName = strcat('../dx/', thicknessName, '.', ...
+        stringVert, '.', stringTime, '.', 'data')
+    for iCell=1:nCellsLength
+      data = thickness(iLevel,iCell,iTime+1);
+      if abs(data) &lt; eps, data=0, end
+      dlmwrite(FileName, data, ...
+         'precision', '%18.10e', '-append')
+    end
+end
+end
+end
+
+if (doKE == 1)
+system('rm -f ../dx/ke.*.*.data')
+for iLevel=1:nVertLevelsLength
+for iTime=0:TimeLength-1
+    stringTime = int2str(iTime)
+    stringVert = int2str(iLevel)
+    FileName = strcat('../dx/', keName, '.', ...
+        stringVert, '.', stringTime, '.', 'data')
+    for iCell=1:nCellsLength
+      data = ke(iLevel,iCell,iTime+1);
+      if abs(data) &lt; eps, data=0;, end
+      dlmwrite(FileName, data, ...
+         'precision', '%18.10e', '-append')
+    end
+end
+end
+end
+
+if (doVorticity == 1)
+system('rm -f ../dx/vorticity.*.*.data')
+for iLevel=1:nVertLevelsLength
+for iTime=0:TimeLength-1
+    stringTime = int2str(iTime)
+    stringVert = int2str(iLevel)
+    FileName = strcat('../dx/', vorticityName, '.', ...
+        stringVert, '.', stringTime, '.', 'data')
+    for iLevelex=1:nVerticesLength
+      data = vorticity(iLevel,iLevelex,iTime+1);
+      if abs(data) &lt; eps, data=0;, end
+      dlmwrite(FileName, data, ...
+         'precision', '%18.10e', '-append')
+    end
+end
+end
+end

Modified: trunk/swmodel/matlab/MapGridToDx.m
===================================================================
--- trunk/swmodel/matlab/MapGridToDx.m        2009-08-08 00:30:27 UTC (rev 16)
+++ trunk/swmodel/matlab/MapGridToDx.m        2009-08-10 15:15:00 UTC (rev 17)
@@ -1,51 +1,120 @@
+
+
+% This script open a grid.nc file and writes out the grid description
+% in ascii format to be read in by OpenDX
+
 clear all
 
+doWrite = 0
+doVor = 1
+doTri = 1
+
 ncid = netcdf.open('../grid.nc','nc_nowrite')
 
-xV_id = netcdf.inqVarID(ncid,'xVertex')
-yV_id = netcdf.inqVarID(ncid,'yVertex')
-zV_id = netcdf.inqVarID(ncid,'zVertex')
-nEdgesOnCell_id = netcdf.inqVarID(ncid,'nEdgesOnCell')
-verticesOnCell_id = netcdf.inqVarID(ncid,'verticesOnCell')
-areaCell_id = netcdf.inqVarID(ncid,'areaCell')
+if (doVor == 1)
+    
+    xV_id = netcdf.inqVarID(ncid,'xVertex')
+    yV_id = netcdf.inqVarID(ncid,'yVertex')
+    zV_id = netcdf.inqVarID(ncid,'zVertex')
+    nEdgesOnCell_id = netcdf.inqVarID(ncid,'nEdgesOnCell')
+    verticesOnCell_id = netcdf.inqVarID(ncid,'verticesOnCell')
+    areaCell_id = netcdf.inqVarID(ncid,'areaCell')
 
-xV=netcdf.getVar(ncid, xV_id);
-yV=netcdf.getVar(ncid, yV_id);
-zV=netcdf.getVar(ncid, zV_id);
-nEdgesOnCell=netcdf.getVar(ncid, nEdgesOnCell_id);
-verticesOnCell=netcdf.getVar(ncid, verticesOnCell_id);
-areaCell = netcdf.getVar(ncid, areaCell_id);
+    xV=netcdf.getVar(ncid, xV_id);
+    yV=netcdf.getVar(ncid, yV_id);
+    zV=netcdf.getVar(ncid, zV_id);
+    nEdgesOnCell=netcdf.getVar(ncid, nEdgesOnCell_id);
+    verticesOnCell=netcdf.getVar(ncid, verticesOnCell_id);
+    areaCell = netcdf.getVar(ncid, areaCell_id);
 
-work=size(nEdgesOnCell(:,1))
-nCells=work(1)
+    work=size(nEdgesOnCell(:,1))
+    nCells=work(1)
 
-system('rm -f ../dx/vor.position.data')
-system('rm -f ../dx/vor.edge.data')
-system('rm -f ../dx/vor.loop.data')
-system('rm -f ../dx/vor.face.data')
-system('rm -f ../dx/vor.area.data')
+    if (doWrite == 1)
+    system('rm -f ../dx/vor.position.data')
+    system('rm -f ../dx/vor.edge.data')
+    system('rm -f ../dx/vor.loop.data')
+    system('rm -f ../dx/vor.face.data')
+    system('rm -f ../dx/vor.area.data')
 
-iloop=0;
-iedge=0;
-for i=1:nCells
-    dlmwrite('../dx/vor.face.data', i-1, '-append')
-    dlmwrite('../dx/vor.area.data', areaCell(i), ...
-       'precision', '%18.10e', '-append')
-    dlmwrite('../dx/vor.loop.data', iloop, ...
-       'precision', '%10i', '-append')
-    edge(1:nEdgesOnCell(i)) = iedge;
-    for j=1:nEdgesOnCell(i)
-        x(1) = xV(verticesOnCell(j,i));
-        x(2) = yV(verticesOnCell(j,i));
-        x(3) = zV(verticesOnCell(j,i));
-        dlmwrite('../dx/vor.position.data', x, 'delimiter', '\t', ...
-            'precision', '%18.10e', '-append')
-        edge(j) = iedge + j - 1;
+    iloop=0;
+    iedge=0;
+    for i=1:nCells
+     dlmwrite('../dx/vor.face.data', i-1, '-append')
+     dlmwrite('../dx/vor.area.data', areaCell(i), ...
+        'precision', '%18.10e', '-append')
+       dlmwrite('../dx/vor.loop.data', iloop, ...
+        'precision', '%10i', '-append')
+       edge(1:nEdgesOnCell(i)) = iedge;
+     for j=1:nEdgesOnCell(i)
+         x(1) = xV(verticesOnCell(j,i));
+         x(2) = yV(verticesOnCell(j,i));
+         x(3) = zV(verticesOnCell(j,i));
+         dlmwrite('../dx/vor.position.data', x, 'delimiter', '\t', ...
+             'precision', '%18.10e', '-append')
+         edge(j) = iedge + j - 1;
+       end;
+       dlmwrite('../dx/vor.edge.data', edge(1:nEdgesOnCell(i)), ...
+        'delimiter', '\t', 'precision', '%10i', '-append')
+       iloop = iloop + nEdgesOnCell(i);
+      iedge = iedge + nEdgesOnCell(i);
     end;
-    dlmwrite('../dx/vor.edge.data', edge(1:nEdgesOnCell(i)), ...
-        'delimiter', '\t', 'precision', '%10i', '-append')
-    iloop = iloop + nEdgesOnCell(i);
-    iedge = iedge + nEdgesOnCell(i);
+    
+    end;
+
 end;
 
+if (doTri == 1)
+
+    xC_id = netcdf.inqVarID(ncid,'xCell')
+    yC_id = netcdf.inqVarID(ncid,'yCell')
+    zC_id = netcdf.inqVarID(ncid,'zCell')
+    nCellsOnVertex = 3;
+    cellsOnVertex_id = netcdf.inqVarID(ncid, 'cellsOnVertex')
+    areaTriangle_id = netcdf.inqVarID(ncid,'areaTriangle')
+
+    xC=netcdf.getVar(ncid, xC_id);
+    yC=netcdf.getVar(ncid, yC_id);
+    zC=netcdf.getVar(ncid, zC_id);
+    cellsOnVertex=netcdf.getVar(ncid, cellsOnVertex_id);
+    areaTriangle = netcdf.getVar(ncid, areaTriangle_id);
+
+    work=size(cellsOnVertex)
+    nVertices = work(:,2)
+
+    if (doWrite == 1)
+    system('rm -f ../dx/tri.position.data')
+    system('rm -f ../dx/tri.edge.data')
+    system('rm -f ../dx/tri.loop.data')
+    system('rm -f ../dx/tri.face.data')
+    system('rm -f ../dx/tri.area.data')
+    
+    iloop=0;
+    iedge=0;
+    for i=1:nVertices
+     dlmwrite('../dx/tri.face.data', i-1, '-append')
+     dlmwrite('../dx/tri.area.data', areaTriangle(i), ...
+        'precision', '%18.10e', '-append')
+     dlmwrite('../dx/tri.loop.data', iloop, ...
+        'precision', '%10i', '-append')
+     edge(1:3) = iedge;
+     for j=1:nCellsOnVertex
+         x(1) = xC(cellsOnVertex(j,i));
+         x(2) = yC(cellsOnVertex(j,i));
+         x(3) = zC(cellsOnVertex(j,i));
+         dlmwrite('../dx/tri.position.data', x, 'delimiter', '\t', ...
+             'precision', '%18.10e', '-append')
+         edge(j) = iedge + j - 1;
+     end;
+     dlmwrite('../dx/tri.edge.data', edge(1:3), ...
+         'delimiter', '\t', 'precision', '%10i', '-append')
+     iloop = iloop + 3;
+     iedge = iedge + 3;
+    end;
+    
+    end;
+
+end;
+
+
 netcdf.close(ncid)
\ No newline at end of file

</font>
</pre>