<p><b>duda</b> 2010-05-18 11:34:31 -0600 (Tue, 18 May 2010)</p><p>Add code to grid generation programs (global_scvt, periodic_hex, and periodic_quad)<br>
to write two new global attributes to grid.nc files:<br>
<br>
   on_a_sphere -- &quot;YES&quot; if the mesh is on a sphere, &quot;NO&quot; if not (e.g., on a plane)<br>
   sphere_radius -- the radius of the sphere, 0.0 if not on a sphere<br>
<br>
NB: Our global_scvt program generates grids on the unit sphere, though grids from<br>
other sources may choose an arbitrary radius.<br>
<br>
<br>
M    global_scvt/src/module_write_netcdf.F<br>
M    periodic_hex/module_write_netcdf.F<br>
M    periodic_quad/module_write_netcdf.F<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/grid_gen/global_scvt/src/module_write_netcdf.F
===================================================================
--- trunk/grid_gen/global_scvt/src/module_write_netcdf.F        2010-05-18 16:49:33 UTC (rev 278)
+++ trunk/grid_gen/global_scvt/src/module_write_netcdf.F        2010-05-18 17:34:31 UTC (rev 279)
@@ -93,6 +93,8 @@
  
       integer :: nferr
       integer, dimension(10) :: dimlist
+      real (kind=8) :: sphere_radius
+      character (len=16) :: on_a_sphere
  
  
       wrLocalnCells = nCells
@@ -102,12 +104,17 @@
       wrLocalnVertLevels = nVertLevels
       wrLocalnTracers = nTracers
  
+      on_a_sphere = 'YES             '
+      sphere_radius = 1.0
+
       nferr = nf_create('grid.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), wr_ncid)
  
       !
       ! Write Namlist information
       !
 
+      nferr = nf_put_att_text(wr_ncid, NF_GLOBAL, 'on_a_sphere', 16, on_a_sphere)
+      nferr = nf_put_att_double(wr_ncid, NF_GLOBAL, 'sphere_radius', NF_DOUBLE, 1, sphere_radius)
       nferr = nf_put_att_int(wr_ncid, NF_GLOBAL, 'np', NF_INT, 1, np)
       nferr = nf_put_att_int(wr_ncid, NF_GLOBAL, 'n_scvt_iterations', NF_INT, 1, n_scvt_iterations)
       nferr = nf_put_att_double(wr_ncid, NF_GLOBAL, 'eps', NF_DOUBLE, 1, eps)

Modified: trunk/grid_gen/periodic_hex/module_write_netcdf.F
===================================================================
--- trunk/grid_gen/periodic_hex/module_write_netcdf.F        2010-05-18 16:49:33 UTC (rev 278)
+++ trunk/grid_gen/periodic_hex/module_write_netcdf.F        2010-05-18 17:34:31 UTC (rev 279)
@@ -92,6 +92,8 @@
  
       integer :: nferr
       integer, dimension(10) :: dimlist
+      character (len=16) :: on_a_sphere
+      real (kind=8) :: sphere_radius
  
  
       wrLocalnCells = nCells
@@ -100,6 +102,9 @@
       wrLocalmaxEdges = maxEdges
       wrLocalnVertLevels = nVertLevels
       wrLocalnTracers = nTracers
+
+      on_a_sphere = 'NO              '
+      sphere_radius = 0.0
  
       nferr = nf_create('grid.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), wr_ncid)
  
@@ -116,6 +121,14 @@
       nferr = nf_def_dim(wr_ncid, 'nVertLevels', nVertLevels, wrDimIDnVertLevels)
       nferr = nf_def_dim(wr_ncid, 'nTracers', nTracers, wrDimIDnTracers)
       nferr = nf_def_dim(wr_ncid, 'Time', NF_UNLIMITED, wrDimIDTime)
+
+
+      !
+      ! Define attributes
+      !
+      nferr = nf_put_att_text(wr_ncid, NF_GLOBAL, 'on_a_sphere', 16, on_a_sphere)
+      nferr = nf_put_att_double(wr_ncid, NF_GLOBAL, 'sphere_radius', NF_DOUBLE, 1, sphere_radius)
+
  
       !
       ! Define variables

Modified: trunk/grid_gen/periodic_quad/module_write_netcdf.F
===================================================================
--- trunk/grid_gen/periodic_quad/module_write_netcdf.F        2010-05-18 16:49:33 UTC (rev 278)
+++ trunk/grid_gen/periodic_quad/module_write_netcdf.F        2010-05-18 17:34:31 UTC (rev 279)
@@ -93,6 +93,8 @@
  
       integer :: nferr
       integer, dimension(10) :: dimlist
+      character (len=16) :: on_a_sphere
+      real (kind=8) :: sphere_radius
  
  
       wrLocalnCells = nCells
@@ -102,6 +104,9 @@
       wrLocalnVertLevels = nVertLevels
       wrLocalnTracers = nTracers
       wrLocalnVertexDegree = nVertexDegree
+
+      on_a_sphere = 'NO              '
+      sphere_radius = 0.0
  
       nferr = nf_create('grid.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), wr_ncid)
  
@@ -119,6 +124,14 @@
       nferr = nf_def_dim(wr_ncid, 'nVertLevels', nVertLevels, wrDimIDnVertLevels)
       nferr = nf_def_dim(wr_ncid, 'nTracers', nTracers, wrDimIDnTracers)
       nferr = nf_def_dim(wr_ncid, 'Time', NF_UNLIMITED, wrDimIDTime)
+
+
+      !
+      ! Define attributes
+      !
+      nferr = nf_put_att_text(wr_ncid, NF_GLOBAL, 'on_a_sphere', 16, on_a_sphere)
+      nferr = nf_put_att_double(wr_ncid, NF_GLOBAL, 'sphere_radius', NF_DOUBLE, 1, sphere_radius)
+
  
       !
       ! Define variables

</font>
</pre>