<p><b>mpetersen@lanl.gov</b> 2011-07-12 10:24:08 -0600 (Tue, 12 Jul 2011)</p><p>Update basin code so to remove defunct nTracers dimension and tracer array.  Now only temperature, salinity, and tracer1 arrays are written to the initial condition file.  I added notes on the two lines to comment out, in case the user does not want tracer1 saved.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/basin/src/basin.F
===================================================================
--- branches/ocean_projects/basin/src/basin.F        2011-07-12 05:46:28 UTC (rev 916)
+++ branches/ocean_projects/basin/src/basin.F        2011-07-12 16:24:08 UTC (rev 917)
@@ -16,7 +16,7 @@
 ! Change a spherical grid into a Limited area spherical grid.
 !
 ! How to use:
-! Step 1: Set the number of Vertical levels, and Tracers
+! Step 1: Set the number of Vertical levels
 ! Step 2: Set if the grid is on a sphere or not, and it's radius
 ! Step 3: Specify some Parameters
 ! Step 4: Check the Initial conditions routine get_init_conditions
@@ -31,7 +31,7 @@
 
 ! original grid variables
 integer :: time, nCells, nEdges, nVertices
-integer :: maxEdges, maxEdges2, TWO, vertexDegree, nVertLevels, nTracers
+integer :: maxEdges, maxEdges2, TWO, vertexDegree, nVertLevels
 integer, allocatable, dimension(:) :: indexToCellID, indexToEdgeID, indexToVertexID
 real, allocatable, dimension(:) :: xCell, yCell, zCell, latCell, lonCell
 real, allocatable, dimension(:) :: xEdge, yEdge, zEdge, latEdge, lonEdge
@@ -47,7 +47,6 @@
 real, allocatable, dimension(:,:) :: u_src
 real, allocatable, dimension(:,:,:) :: u, v, h
 real, allocatable, dimension(:,:,:) :: rho
-real, allocatable, dimension(:,:,:,:) :: tracers
 
 integer nlon, nlat, ndepth
 real(kind=4), allocatable, dimension(:) :: t_lon, t_lat, depth_t
@@ -57,9 +56,8 @@
 
 real, dimension(40) :: dz
 
-! Step 1: Set the number of Vertical levels, and Tracers
+! Step 1: Set the number of Vertical levels
 integer, parameter :: nVertLevelsMOD = 40
-integer, parameter :: nTracersMod = 2
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 ! basin-mod
@@ -100,7 +98,7 @@
 
 ! new grid variables
 integer :: nCellsNew, nEdgesNew, nVerticesNew
-integer :: maxEdgesNew, maxEdges2New, TWONew, vertexDegreeNew, nVertLevelsNew, nTracersNew
+integer :: maxEdgesNew, maxEdges2New, TWONew, vertexDegreeNew, nVertLevelsNew
 integer, allocatable, dimension(:) :: indexToCellIDNew, indexToEdgeIDNew, indexToVertexIDNew
 real, allocatable, dimension(:) :: xCellNew, yCellNew, zCellNew, latCellNew, lonCellNew
 real, allocatable, dimension(:) :: xEdgeNew, yEdgeNew, zEdgeNew, latEdgeNew, lonEdgeNew
@@ -116,9 +114,8 @@
 real, allocatable, dimension(:) :: fEdgeNew, fVertexNew, h_sNew
 real, allocatable, dimension(:,:) :: u_srcNew
 real, allocatable, dimension(:,:,:) :: uNew, vNew, hNew
-real, allocatable, dimension(:,:,:) :: rhoNew, temperatureNew, salinityNew
+real, allocatable, dimension(:,:,:) :: rhoNew, temperatureNew, salinityNew, tracer1New
 real, allocatable, dimension(:) :: temperatureRestoreNew, salinityRestoreNew
-real, allocatable, dimension(:,:,:,:) :: tracersNew
 
 ! mapping variables
 integer, allocatable, dimension(:) :: kmt, maxLevelCellNew
@@ -293,9 +290,9 @@
 dtr = pi/180.0
 
 hNew = 100.0
-tracersNew = 1.0
 temperatureNew = 1.0
 salinityNew = 1.0
+tracer1New = 1.0
 uNew = 0
 vNew = 0
 
@@ -308,7 +305,6 @@
    h_sNew(:) = 0.0
    uNew(:,:,:) = 0.0
    vNew(:,:,:) = 0.0
-   tracersNew(:,:,:,:) = 0.0
 
  ! basin-mod
  ! setting for three levels - Set h values for isopycnal system
@@ -528,7 +524,6 @@
 
  
 !set tracers at a first guess
-tracersNew = 0.0
 temperatureNew = -99.0
 salinityNew = -99.0
 do iCell=1,nCellsNew
@@ -780,7 +775,6 @@
 TWONew = TWO
 vertexDegreeNew = vertexDegree
 nVertLevelsNew = nVertLevelsMod
-nTracersNew = nTracersMod
 
 write(6,*)
 write(6,*) ' new dimensions '
@@ -789,7 +783,6 @@
 write(6,*) ' TWONew          : ', TWONew
 write(6,*) ' vertexDegreeNew : ', vertexDegreeNew
 write(6,*) ' nVertLevelsNew  : ', nVertLevelsNew
-write(6,*) ' nTracersNew     : ', nTracersNew
 
 end subroutine copy_dimensions
 
@@ -799,7 +792,7 @@
 implicit none
 
 call read_netcdf_init(nCells, nEdges, nVertices, maxEdges,maxEdges2,&amp;
-                       nVertLevels,TWO,vertexDegree,nTracers)
+                       nVertLevels,TWO,vertexDegree)
 
 write(6,*) ' init from grid '
 write(6,*) 'nCells        :', nCells
@@ -809,7 +802,6 @@
 write(6,*) 'maxEdges2     :', maxEdges2
 write(6,*) 'nVertLevels   :', nVertLevels
 write(6,*) 'vertexDegree  :', vertexDegree
-write(6,*) 'nTracers      :', nTracers
 write(6,*) 'TWO           :', TWO
 
 allocate(xCell(nCells))
@@ -860,7 +852,6 @@
 allocate(v(1,nVertLevels,nEdges))
 allocate(h(1,nVertLevels,nCells))
 allocate(rho(1,nVertLevels,nCells))
-allocate(tracers(1,nTracers,nVertLevels,nCells))
 
 xCell=0; yCell=0; zCell=0; latCell=0; lonCell=0
 xEdge=0; yEdge=0; zEdge=0; latEdge=0; lonEdge=0
@@ -875,7 +866,6 @@
 
 fEdge=0; fVertex=0; h_s=0; u_src=0; work1=0
 u=0; v=0; h=0; rho=0
-tracers=0
 
 
 call  read_netcdf_fields( &amp;
@@ -920,8 +910,7 @@
                     h_s, &amp;
                     u, &amp;
                     v, &amp;
-                    h, &amp;
-                    tracers &amp;
+                    h &amp;
                    )
 
 write(6,*) ' values from read grid, min/max'
@@ -966,7 +955,6 @@
 write(6,*) ' u : ', minval(u), maxval(u)
 write(6,*) ' v : ', minval(v), maxval(v)
 write(6,*) ' h : ', minval(h), maxval(h)
-write(6,*) ' tracers : ', minval(tracers), maxval(tracers)
 
 end subroutine read_grid
 
@@ -997,7 +985,6 @@
                 nVerticesNew, &amp;
                 maxEdgesNew, &amp;
                 nVertLevelsNew, &amp;
-                nTracersNew, &amp;
                 vertexDegreeNew, &amp;
                 sphere_radius, &amp;
                 on_a_sphere &amp;
@@ -1051,9 +1038,9 @@
                     vNew, &amp;
                     hNew, &amp;
                     rhoNew, &amp;
-                    tracersNew, &amp;
                     temperatureNew, &amp;
                     salinityNew, &amp;
+                    tracer1New, &amp;
                     temperatureRestoreNew, &amp;
                     salinityRestoreNew &amp;
                    )
@@ -1316,9 +1303,9 @@
 allocate(vNew(1,nVertLevelsNew,nEdgesNew))
 allocate(hNew(1,nVertLevelsNew,nCellsNew))
 allocate(rhoNew(1,nVertLevelsNew,nCellsNew))
-allocate(tracersNew(1,nTracersNew,nVertLevelsNew,nCellsNew))
 allocate(temperatureNew(1,nVertLevelsNew,nCellsNew))
 allocate(salinityNew(1,nVertLevelsNew,nCellsNew))
+allocate(tracer1New(1,nVertLevelsNew,nCellsNew))
 
 allocate(temperatureRestoreNew(nCellsNew))
 allocate(salinityRestoreNew(nCellsNew))
@@ -1329,7 +1316,7 @@
 
 fEdgeNew=0; fVertexNew=0; h_sNew=0; u_srcNew=0
 uNew=0; vNew=0; hNew=0; rhoNew=0
-tracersNew=0; temperatureNew=0; salinityNew=0
+temperatureNew=0; salinityNew=0; tracer1New=0;
 
 temperatureRestoreNew = 0.0
 salinityRestoreNew = 0.0

Modified: branches/ocean_projects/basin/src/module_read_netcdf.F
===================================================================
--- branches/ocean_projects/basin/src/module_read_netcdf.F        2011-07-12 05:46:28 UTC (rev 916)
+++ branches/ocean_projects/basin/src/module_read_netcdf.F        2011-07-12 16:24:08 UTC (rev 917)
@@ -8,7 +8,6 @@
    integer :: rdDimIDmaxEdges
    integer :: rdDimIDmaxEdges2
    integer :: rdDimIDnVertLevels
-   integer :: rdDimIDnTracers
    integer :: rdDimIDTWO
    integer :: rdDimIDvertexDegree
    integer :: rdVarIDlatCell
@@ -52,7 +51,6 @@
    integer :: rdVarIDu
    integer :: rdVarIDv
    integer :: rdVarIDh
-   integer :: rdVarIDtracers
  
    integer :: rdLocalnCells
    integer :: rdLocalnEdges
@@ -60,7 +58,6 @@
    integer :: rdLocalmaxEdges
    integer :: rdLocalmaxEdges2
    integer :: rdLocalnVertLevels
-   integer :: rdLocalnTracers
    integer :: rdLocalTWO
    integer :: rdLocalvertexDegree
  
@@ -74,8 +71,7 @@
                                maxEdges2, &amp;
                                nVertLevels, &amp;
                                TWO, &amp;
-                               vertexDegree, &amp;
-                               nTracers &amp;
+                               vertexDegree &amp;
                                )
  
       implicit none
@@ -89,7 +85,6 @@
       integer, intent(out) :: maxEdges2
       integer, intent(out) :: nVertLevels
       integer, intent(out) :: TWO
-      integer, intent(out) :: nTracers
       integer, intent(out) :: vertexDegree
  
       integer :: nferr
@@ -113,8 +108,6 @@
       nferr = nf_inq_dimlen(rd_ncid, rdDimIDmaxEdges2, rdLocalmaxEdges2)
       nferr = nf_inq_dimid(rd_ncid, 'nVertLevels', rdDimIDnVertLevels)
       nferr = nf_inq_dimlen(rd_ncid, rdDimIDnVertLevels, rdLocalnVertLevels)
-      nferr = nf_inq_dimid(rd_ncid, 'nTracers', rdDimIDnTracers)
-      nferr = nf_inq_dimlen(rd_ncid, rdDimIDnTracers, rdLocalnTracers)
       nferr = nf_inq_dimid(rd_ncid, 'vertexDegree', rdDimIDvertexDegree)
       nferr = nf_inq_dimlen(rd_ncid, rdDimIDvertexDegree, rdLocalvertexDegree)
       nferr = nf_inq_dimid(rd_ncid, 'TWO', rdDimIDTWO)
@@ -127,7 +120,6 @@
       maxEdges = rdLocalmaxEdges
       maxEdges2 = rdLocalmaxEdges2
       nVertLevels = rdLocalnVertLevels
-      nTracers = rdLocalnTracers
       vertexDegree = rdLocalvertexDegree
       TWO = rdLocalTWO
  
@@ -175,7 +167,6 @@
       nferr = nf_inq_varid(rd_ncid, 'u', rdVarIDu)
       nferr = nf_inq_varid(rd_ncid, 'v', rdVarIDv)
       nferr = nf_inq_varid(rd_ncid, 'h', rdVarIDh)
-      nferr = nf_inq_varid(rd_ncid, 'tracers', rdVarIDtracers)
  
    end subroutine read_netcdf_init
  
@@ -222,8 +213,7 @@
                                   h_s, &amp;
                                   u, &amp;
                                   v, &amp;
-                                  h, &amp;
-                                  tracers &amp;
+                                  h &amp;
                                  )
  
       implicit none
@@ -272,7 +262,6 @@
       real (kind=8), dimension(:,:,:), intent(out) :: u
       real (kind=8), dimension(:,:,:), intent(out) :: v
       real (kind=8), dimension(:,:,:), intent(out) :: h
-      real (kind=8), dimension(:,:,:,:), intent(out) :: tracers
  
       integer :: nferr
       integer, dimension(1) :: start1, count1
@@ -497,14 +486,6 @@
       count3( 3) = 1
       nferr = nf_get_vara_double(rd_ncid, rdVarIDh, start3, count3, h)
  
-      start4(4) = time
-      count4( 1) = rdLocalnTracers
-      count4( 2) = rdLocalnVertLevels
-      count4( 3) = rdLocalnCells
-      count4( 4) = 1
-      nferr = nf_get_vara_double(rd_ncid, rdVarIDtracers, start4, count4, tracers)


    end subroutine read_netcdf_fields
  
  

Modified: branches/ocean_projects/basin/src/module_write_netcdf.F
===================================================================
--- branches/ocean_projects/basin/src/module_write_netcdf.F        2011-07-12 05:46:28 UTC (rev 916)
+++ branches/ocean_projects/basin/src/module_write_netcdf.F        2011-07-12 16:24:08 UTC (rev 917)
@@ -10,7 +10,6 @@
    integer :: wrDimIDTWO
    integer :: wrDimIDvertexDegree
    integer :: wrDimIDnVertLevels
-   integer :: wrDimIDnTracers
    integer :: wrVarIDlatCell
    integer :: wrVarIDlonCell
    integer :: wrVarIDxCell
@@ -57,9 +56,9 @@
    integer :: wrVarIDv
    integer :: wrVarIDh
    integer :: wrVarIDrho
-   integer :: wrVarIDtracers
    integer :: wrVarIDtemperature
    integer :: wrVarIDsalinity
+   integer :: wrVarIDtracer1
    integer :: wrVarIDtemperatureRestore
    integer :: wrVarIDsalinityRestore
  
@@ -68,7 +67,6 @@
    integer :: wrLocalnVertices
    integer :: wrLocalmaxEdges
    integer :: wrLocalnVertLevels
-   integer :: wrLocalnTracers
    integer :: wrLocalvertexDegree
  
    contains
@@ -79,7 +77,6 @@
                                nVertices, &amp;
                                maxEdges, &amp;
                                nVertLevels, &amp;
-                               nTracers, &amp;
                                vertexDegree, &amp;
                                sphere_radius, &amp; 
                                on_a_sphere &amp;
@@ -94,7 +91,6 @@
       integer, intent(in) :: nVertices
       integer, intent(in) :: maxEdges
       integer, intent(in) :: nVertLevels
-      integer, intent(in) :: nTracers
       integer, intent(in) :: vertexDegree
       character (len=16) :: on_a_sphere
       double precision :: sphere_radius
@@ -109,7 +105,6 @@
       wrLocalnVertices = nVertices
       wrLocalmaxEdges = maxEdges
       wrLocalnVertLevels = nVertLevels
-      wrLocalnTracers = nTracers
       wrLocalvertexDegree = vertexDegree
  
       nferr = nf_create('ocean.nc', IOR(NF_CLOBBER,NF_64BIT_OFFSET), wr_ncid)
@@ -125,7 +120,6 @@
       nferr = nf_def_dim(wr_ncid, 'TWO', 2, wrDimIDTWO)
       nferr = nf_def_dim(wr_ncid, 'vertexDegree', vertexDegree, wrDimIDvertexDegree)
       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)
  
       !
@@ -248,11 +242,6 @@
       dimlist( 2) = wrDimIDnCells
       dimlist( 3) = wrDimIDTime
       nferr = nf_def_var(wr_ncid, 'rho', NF_DOUBLE,  3, dimlist, wrVarIDrho)
-      dimlist( 1) = wrDimIDnTracers
-      dimlist( 2) = wrDimIDnVertLevels
-      dimlist( 3) = wrDimIDnCells
-      dimlist( 4) = wrDimIDTime
-      nferr = nf_def_var(wr_ncid, 'tracers', NF_DOUBLE,  4, dimlist, wrVarIDtracers)
       dimlist( 1) = wrDimIDnVertLevels
       dimlist( 2) = wrDimIDnCells
       dimlist( 3) = wrDimIDTime
@@ -261,6 +250,11 @@
       dimlist( 2) = wrDimIDnCells
       dimlist( 3) = wrDimIDTime
       nferr = nf_def_var(wr_ncid, 'salinity', NF_DOUBLE,  3, dimlist, wrVarIDsalinity)
+      dimlist( 1) = wrDimIDnVertLevels
+      dimlist( 2) = wrDimIDnCells
+      dimlist( 3) = wrDimIDTime
+      ! If you do not want tracer1 in your input file, simply comment out these two lines (one of two)
+      nferr = nf_def_var(wr_ncid, 'tracer1', NF_DOUBLE,  3, dimlist, wrVarIDtracer1)
 
  
       nferr = nf_put_att_text(wr_ncid, NF_GLOBAL, 'on_a_sphere', 16, on_a_sphere)
@@ -319,9 +313,9 @@
                                   v, &amp;
                                   h, &amp;
                                   rho, &amp;
-                                  tracers, &amp;
                                   temperature, &amp;
                                   salinity, &amp;
+                                  tracer1, &amp;
                                   temperatureRestore, &amp;
                                   salinityRestore &amp;
                                  )
@@ -377,9 +371,9 @@
       real (kind=8), dimension(:,:,:), intent(in) :: v
       real (kind=8), dimension(:,:,:), intent(in) :: h
       real (kind=8), dimension(:,:,:), intent(in) :: rho
-      real (kind=8), dimension(:,:,:,:), intent(in) :: tracers
       real (kind=8), dimension(:,:,:), intent(in) :: temperature
       real (kind=8), dimension(:,:,:), intent(in) :: salinity
+      real (kind=8), dimension(:,:,:), intent(in) :: tracer1
       real (kind=8), dimension(:), intent(in) :: temperatureRestore
       real (kind=8), dimension(:), intent(in) :: salinityRestore
 
@@ -617,13 +611,6 @@
       count3( 3) = 1
       nferr = nf_put_vara_double(wr_ncid, wrVarIDrho, start3, count3, rho)
  
-      start4(4) = time
-      count4( 1) = wrLocalnTracers
-      count4( 2) = wrLocalnVertLevels
-      count4( 3) = wrLocalnCells
-      count4( 4) = 1
-      nferr = nf_put_vara_double(wr_ncid, wrVarIDtracers, start4, count4, tracers)
-
       start3(3) = time
       count3( 1) = wrLocalnVertLevels
       count3( 2) = wrLocalnCells
@@ -636,6 +623,13 @@
       count3( 3) = 1
       nferr = nf_put_vara_double(wr_ncid, wrVarIDsalinity, start3, count3, salinity)
  
+      start3(3) = time
+      count3( 1) = wrLocalnVertLevels
+      count3( 2) = wrLocalnCells
+      count3( 3) = 1
+      ! If you do not want tracer1 in your input file, simply comment out these two lines (two of two)
+      nferr = nf_put_vara_double(wr_ncid, wrVarIDtracer1, start3, count3, tracer1)

    end subroutine write_netcdf_fields
  
  

</font>
</pre>