<p><b>mpetersen@lanl.gov</b> 2010-05-07 14:11:46 -0600 (Fri, 07 May 2010)</p><p>Added some temporary code to initialize zlevel variables.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_test_cases.F
===================================================================
--- branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_test_cases.F        2010-05-07 19:17:39 UTC (rev 260)
+++ branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_test_cases.F        2010-05-07 20:11:46 UTC (rev 261)
@@ -94,6 +94,98 @@
block_ptr => block_ptr % next
end do
+ ! mrp 100507: This whole section is just temporary
+ ! print some diagnostics
+ block_ptr => domain % blocklist
+ do while (associated(block_ptr))
+ h => block_ptr % time_levs(1) % state % h % array
+ u => block_ptr % time_levs(1) % state % u % array
+ rho => block_ptr % time_levs(1) % state % rho % array
+ tracers => block_ptr % time_levs(1) % state % tracers % array
+
+ u_src => block_ptr % mesh % u_src % array
+ xCell => block_ptr % mesh % xCell % array
+ yCell => block_ptr % mesh % yCell % array
+
+ hZLevel => block_ptr % mesh % hZLevel % array
+ zmidZLevel => block_ptr % mesh % zmidZLevel % array
+ zbotZLevel => block_ptr % mesh % zbotZLevel % array
+
+ nCells = block_ptr % mesh % nCells
+ nEdges = block_ptr % mesh % nEdges
+ nVertices = block_ptr % mesh % nVertices
+ nVertLevels = block_ptr % mesh % nVertLevels
+
+ ! mrp 100426: initialize z-level variables.
+ if (config_vert_grid_type.eq.'zlevel') then
+ ! These should eventually be in an input file. For now
+ ! I just read them in from h(:,1).
+ hZLevel = h(:,1)
+ zmidZLevel(1) = -0.5*hZLevel(1)
+ zbotZLevel(1) = -hZLevel(1)
+ do iLevel = 2,nVertLevels
+ zmidZLevel(iLevel) = zbotZLevel(iLevel-1)-0.5*hZLevel(iLevel)
+ zbotZLevel(iLevel) = zbotZLevel(iLevel-1)- hZLevel(iLevel)
+ enddo
+ if (config_vert_grid_type.eq.'isopycnal') then
+ print *, ' Using isopycnal coordinates'
+ elseif (config_vert_grid_type.eq.'zlevel') then
+ print *, ' Using z-level coordinates'
+ else
+ print *, ' Incorrect choice of config_vert_grid_type:',&
+ config_vert_grid_type
+ stop
+ endif
+
+ tracers = 0.0
+ do iCell = 1,nCells
+ do iLevel = 1,nVertLevels
+ ! for 20 layer test
+ tracers(index_salinity,iLevel,iCell) = 1.4 + iLevel*0.6 ! salinity
+ tracers(index_temperature,iLevel,iCell) = 5.0 ! temperature
+
+ tracers(index_tracer1,iLevel,iCell) = 1.0
+ tracers(index_tracer2,iLevel,iCell) = &
+ (yCell(iCell)/4000.e3 + xCell(iCell)/2500.e3 )/2.0
+
+ rho(iLevel,iCell) = 1000.0*( 1.0 &
+ - 2.5e-4*tracers(index_temperature,iLevel,iCell) &
+ + 7.6e-4*tracers(index_salinity,iLevel,iCell))
+ enddo
+ enddo
+
+ endif
+ ! mrp 100426 end: initialize z-level variables.
+
+ print '(10a)', 'ilevel',&
+ ' rho ',&
+ ' min u max u ',&
+ ' min u_src max u_src ', &
+ ' min h max h ',&
+ ' hZLevel zmidZlevel', &
+ ' zbotZlevel'
+ do iLevel = 1,nVertLevels
+ print '(i5,20es12.4)', ilevel, rho(ilevel,1), &
+ minval(u(iLevel,1:nEdges)), maxval(u(iLevel,1:nEdges)), &
+ minval(u_src(iLevel,1:nEdges)), maxval(u_src(iLevel,1:nEdges)), &
+ minval(h(iLevel,1:nCells)), maxval(h(iLevel,1:nCells)), &
+ hZLevel(iLevel),zmidZlevel(iLevel),zbotZlevel(iLevel)
+ enddo
+
+ ! print some diagnostics
+ print '(10a)', 'itracer ilevel min tracer max tracer'
+ do iTracer=1,num_tracers
+ do iLevel = 1,nVertLevels
+ print '(2i5,20es12.4)', iTracer,ilevel, &
+ minval(tracers(itracer,iLevel,1:nCells)), maxval(tracers(itracer,iLevel,1:nCells))
+ enddo
+ enddo
+
+ block_ptr => block_ptr % next
+ end do
+ ! mrp 100507 end: This whole section is just temporary
+
+
end subroutine setup_sw_test_case
</font>
</pre>