<p><b>mpetersen@lanl.gov</b> 2010-05-11 10:27:17 -0600 (Tue, 11 May 2010)</p><p>Changed lines with stop and MPI_Abort to dmpar_abort(dminfo)<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-11 00:31:59 UTC (rev 263)
+++ branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_test_cases.F        2010-05-11 16:27:17 UTC (rev 264)
@@ -23,6 +23,7 @@
integer :: i, iCell, iEdge, iVtx, iLevel
type (block_type), pointer :: block_ptr
+ type (dm_info) :: dminfo
! mrp 100507: for diagnostic output
integer :: iTracer
@@ -78,9 +79,10 @@
end do
else
- write(0,*) &
- 'Only test case 1, 2, 5, and 6 are currently supported.'
- stop
+ write(0,*) 'Abort: config_test_case=',config_test_case
+ write(0,*) 'Only test case 1, 2, 5, and 6 ', &
+ 'are currently supported. '
+ call dmpar_abort(dminfo)
end if
block_ptr => domain % blocklist
@@ -134,7 +136,7 @@
else
print *, ' Incorrect choice of config_vert_grid_type:',&
config_vert_grid_type
- stop
+ call dmpar_abort(dminfo)
endif
tracers = 0.0
Modified: branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_time_integration.F
===================================================================
--- branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_time_integration.F        2010-05-11 00:31:59 UTC (rev 263)
+++ branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_time_integration.F        2010-05-11 16:27:17 UTC (rev 264)
@@ -26,27 +26,28 @@
type (domain_type), intent(inout) :: domain
real (kind=RKIND), intent(in) :: dt
- integer errorcode,ierr
+ type (dm_info) :: dminfo
type (block_type), pointer :: block
if (trim(config_time_integration) == 'RK4') then
call rk4(domain, dt)
else
- write(0,*) 'Unknown time integration option '//trim(config_time_integration)
+ write(0,*) 'Abort: Unknown time integration option '&
+ //trim(config_time_integration)
write(0,*) 'Currently, only ''RK4'' is supported.'
- stop
+ call dmpar_abort(dminfo)
end if
block => domain % blocklist
do while (associated(block))
- block % time_levs(2) % state % xtime % scalar = block % time_levs(1) % state % xtime % scalar + dt
- ! mrp 100310 I added this to avoid running with NaNs
+ block % time_levs(2) % state % xtime % scalar &
+ = block % time_levs(1) % state % xtime % scalar + dt
+
if (isNaN(sum(block % time_levs(2) % state % u % array))) then
- print *, 'Stopping: NaN detected'
- call MPI_abort(MPI_COMM_WORLD,errorcode,ierr)
+ write(0,*) 'Abort: NaN detected'
+ call dmpar_abort(dminfo)
endif
- ! mrp 100310 end
block => block % next
end do
@@ -460,17 +461,20 @@
w_dudz(nVertLevels) = 0.0
! Average w*du/dz from vertical edges to vertical middle of cell
- tend_u(1,iEdge) = - 0.5 * w_dudz(1)
+!mrp 100510 remove zlevel additions
+! tend_u(1,iEdge) = - 0.5 * w_dudz(1)
do k=2,nVertLevels
- tend_u(k,iEdge) = - 0.5 * (w_dudz(k-1) + w_dudz(k))
+!mrp 100510 remove zlevel additions
+! tend_u(k,iEdge) = - 0.5 * (w_dudz(k-1) + w_dudz(k))
enddo
! mrp 100422 end: add -w*dudz term to tendancy
! mrp 100426: add pressure gradient
if (config_vert_grid_type.eq.'isopycnal') then
do k=1,nVertLevels
- tend_u(k,iEdge) = tend_u(k,iEdge) &
- - (MontPot(k,cell2) - MontPot(k,cell1))/dcEdge(iEdge)
+!mrp 100510 remove zlevel additions
+! tend_u(k,iEdge) = tend_u(k,iEdge) &
+! - (MontPot(k,cell2) - MontPot(k,cell1))/dcEdge(iEdge)
end do
elseif (config_vert_grid_type.eq.'zlevel') then
do k=1,nVertLevels
@@ -497,10 +501,19 @@
workpv = 0.5 * (pv_edge(k,iEdge) + pv_edge(k,eoe))
q = q + weightsOnEdge(j,iEdge) * u(k,eoe) * workpv * h_edge(k,eoe)
end do
- tend_u(k,iEdge) = tend_u(k,iEdge) &
- + q &
+!mrp 100510 remove zlevel additions
+ ! tend_u(k,iEdge) = tend_u(k,iEdge) &
+ ! + q &
+ ! + u_diffusion &
+ ! - ( ke(k,cell2) - ke(k,cell1) ) / dcEdge(iEdge)
+!mrp 100510 remove zlevel additions replace with
+ tend_u(k,iEdge) = &
+ q &
+ u_diffusion &
- - ( ke(k,cell2) - ke(k,cell1) ) / dcEdge(iEdge)
+ - ( ke(k,cell2) - ke(k,cell1) &
+ + MontPot(k,cell2) - MontPot(k,cell1) &
+ ) / dcEdge(iEdge)
+!mrp 100510 remove zlevel additions end
end do
end do
@@ -535,6 +548,7 @@
dist = zBotEdge(k-1,iEdge) - zBotEdge(k,iEdge)
endif
+!mrp 100510 remove zlevel additions
tend_u(k,iEdge) = tend_u(k,iEdge) + (fluxVert(k-1) - fluxVert(k))/dist
enddo
@@ -543,6 +557,13 @@
#endif
+! print '(a,i5,f10.5)', &
+! 'k, min(tend_u(k,:)),max(tend_u(k,:))'
+! do k=1,nVertLevels
+! print '(i5,10es22.12)', &
+! k,minval(tend_u(k,1:grid % nedgessolve)),maxval(tend_u(k,1:grid % nedgessolve))
+! enddo
+
#ifdef NCAR_FORMULATION
!
! Compute u (normal) velocity tendency for each edge (cell face)
Modified: branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/mpas_interface.F
===================================================================
--- branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/mpas_interface.F        2010-05-11 00:31:59 UTC (rev 263)
+++ branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/mpas_interface.F        2010-05-11 16:27:17 UTC (rev 264)
@@ -27,7 +27,7 @@
! xsad 10-02-09:
! commenting this out until we incorporate the necessary lapack routines into mpas
- ! call init_reconstruct(block_ptr % mesh)
+ ! call init_reconstruct(mesh)
! xsad 10-02-09 end
! mrp 100316 In order for this to work, we need to pass domain % dminfo as an
</font>
</pre>