<p><b>mpetersen@lanl.gov</b> 2010-08-31 16:06:15 -0600 (Tue, 31 Aug 2010)</p><p>Initial conditions for the spreading blob of tracer in dissipation branch. This should eventually be in an IC file, but here now for convenience.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/dissipation/src/core_ocean/module_test_cases.F
===================================================================
--- branches/dissipation/src/core_ocean/module_test_cases.F        2010-08-31 22:04:18 UTC (rev 485)
+++ branches/dissipation/src/core_ocean/module_test_cases.F        2010-08-31 22:06:15 UTC (rev 486)
@@ -28,10 +28,10 @@
! mrp 100507: for diagnostic output
integer :: iTracer
real (kind=RKIND), dimension(:), pointer :: xCell,yCell, &
- hZLevel, zMidZLevel, zTopZLevel
+ hZLevel, zMidZLevel, zTopZLevel, latCell,LonCell
real (kind=RKIND), dimension(:,:), pointer :: h, u, u_src, rho
real (kind=RKIND), dimension(:,:,:), pointer :: tracers
- real (kind=RKIND) :: delta_rho
+ real (kind=RKIND) :: delta_rho, pi, latCenter, lonCenter, dist
integer :: nCells, nEdges, nVertices, nVertLevels
! mrp 100507 end: for diagnostic output
@@ -106,6 +106,8 @@
u_src => block_ptr % mesh % u_src % array
xCell => block_ptr % mesh % xCell % array
yCell => block_ptr % mesh % yCell % array
+ latCell => block_ptr % mesh % latCell % array
+ lonCell => block_ptr % mesh % lonCell % array
hZLevel => block_ptr % mesh % hZLevel % array
zMidZLevel => block_ptr % mesh % zMidZLevel % array
@@ -116,6 +118,15 @@
nVertices = block_ptr % mesh % nVertices
nVertLevels = block_ptr % mesh % nVertLevels
+ !!!! setting velocity to zero
+ !u_src = 0
+ pi=3.1415
+ ! Central Pacific, away from boundaries:
+ !latCenter=pi/16; lonCenter=9./8.*pi
+
+ ! Central Pacific, near boundaries:
+ latCenter=pi*2./16; lonCenter=13./16.*pi
+
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).
@@ -138,6 +149,7 @@
! Set tracers, if not done in grid.nc file
!tracers = 0.0
do iCell = 1,nCells
+ dist = sqrt( (latCell(iCell)-latCenter)**2 + (lonCell(iCell)-lonCenter)**2)
do iLevel = 1,nVertLevels
! for 20 layer test
! tracers(index_temperature,iLevel,iCell) = 5.0 ! temperature
@@ -145,12 +157,21 @@
! for x3, 25 layer test
tracers(index_temperature,iLevel,iCell) = 10.0 ! temperature
- tracers(index_salinity,iLevel,iCell) = 1.4 + iLevel*0.6 ! salinity
+ tracers(index_salinity,iLevel,iCell) = 1.4 !+ iLevel*0.6 ! salinity
- tracers(index_tracer1,iLevel,iCell) = 1.0
- tracers(index_tracer2,iLevel,iCell) = &
- (yCell(iCell)/4000.e3 + xCell(iCell)/2500.e3 )/2.0
+ ! tracers(index_tracer1,iLevel,iCell) = 1.0
+ tracers(index_tracer2,iLevel,iCell) = dist
+ ! (yCell(iCell)/4000.e3 + xCell(iCell)/2500.e3 )/2.0
+ !tracers(index_tracer1,iLevel,iCell) = latCell(iCell)
+ !tracers(index_tracer2,iLevel,iCell) = lonCell(iCell)
+
+ if (dist.lt.pi/16) then
+ tracers(index_tracer1,iLevel,iCell) = 1.0
+ else
+ tracers(index_tracer1,iLevel,iCell) = 0.0
+ endif
+
rho(iLevel,iCell) = 1000.0*( 1.0 &
- 2.5e-4*tracers(index_temperature,iLevel,iCell) &
+ 7.6e-4*tracers(index_salinity,iLevel,iCell))
@@ -160,6 +181,15 @@
endif
+! mrp for isopycnal test
+ if (config_vert_grid_type.eq.'isopycnal') then
+ rho(1,:)=1000.0
+ rho(2,:)=1003.0
+ rho(3,:)=1008.0
+ endif
+! mrp for isopycnal test
+
+
! print some diagnostics
print '(10a)', 'ilevel',&
' rho ',&
</font>
</pre>