<p><b>mpetersen@lanl.gov</b> 2012-10-18 12:13:23 -0600 (Thu, 18 Oct 2012)</p><p>branch commit: partial_bottom_cells Changed a few names of variables and flags due to Doug's suggestions. Added config_write_output_on_startup flag.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/partial_bottom_cells/namelist.input.ocean
===================================================================
--- branches/ocean_projects/partial_bottom_cells/namelist.input.ocean        2012-10-17 20:12:09 UTC (rev 2220)
+++ branches/ocean_projects/partial_bottom_cells/namelist.input.ocean        2012-10-18 18:13:23 UTC (rev 2221)
@@ -9,12 +9,13 @@
/
&io
config_input_name = 'grid.nc'
- config_output_name = 'output..nc'
+ config_output_name = 'output.nc'
config_restart_name = 'restart.nc'
config_output_interval = '1_00:00:00'
config_frames_per_outfile = 1000000
config_pio_num_iotasks = 0
config_pio_stride = 1
+ config_write_output_on_startup = .true.
/
&decomposition
config_number_of_blocks = 0
@@ -32,8 +33,9 @@
config_rho0 = 1014.65
/
&partial_bottom_cells
- config_alter_ICs_for_pbcs = 'no'
+ config_alter_ICs_for_pbcs = 'off'
config_min_pbc_fraction = 0.10
+ config_check_ssh_consistency = .true.
config_check_zlevel_consistency = .false.
/
&split_explicit_ts
Modified: branches/ocean_projects/partial_bottom_cells/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/partial_bottom_cells/src/core_ocean/Registry        2012-10-17 20:12:09 UTC (rev 2220)
+++ branches/ocean_projects/partial_bottom_cells/src/core_ocean/Registry        2012-10-18 18:13:23 UTC (rev 2221)
@@ -21,6 +21,7 @@
namelist integer io config_frames_per_outfile 0
namelist integer io config_pio_num_iotasks 0
namelist integer io config_pio_stride 1
+namelist integer io config_write_output_on_startup true
namelist character decomposition config_block_decomp_file_prefix graph.info.part.
namelist integer decomposition config_number_of_blocks 0
namelist logical decomposition config_explicit_proc_decomp .false.
@@ -33,7 +34,8 @@
namelist logical grid config_enforce_zstar_at_restart false
namelist character partial_bottom_cells config_alter_ICs_for_pbcs no
namelist real partial_bottom_cells config_min_pbc_fraction 0.10
-namelist logical partial_bottom_cells config_check_zlevel_consistency true
+namelist logical partial_bottom_cells config_check_ssh_consistency true
+namelist logical partial_bottom_cells config_check_zlevel_consistency false
namelist integer split_explicit_ts config_n_ts_iter 2
namelist integer split_explicit_ts config_n_bcl_iter_beg 2
namelist integer split_explicit_ts config_n_bcl_iter_mid 2
Modified: branches/ocean_projects/partial_bottom_cells/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/partial_bottom_cells/src/core_ocean/mpas_ocn_mpas_core.F        2012-10-17 20:12:09 UTC (rev 2220)
+++ branches/ocean_projects/partial_bottom_cells/src/core_ocean/mpas_ocn_mpas_core.F        2012-10-18 18:13:23 UTC (rev 2221)
@@ -106,7 +106,7 @@
if (.not. config_do_restart) call setup_sw_test_case(domain)
- if (config_vert_grid_type.ne.'isopycnal') call ocn_init_z_level(domain)
+ if (config_vert_grid_type.ne.'isopycnal') call ocn_init_vert_coord(domain)
call ocn_compute_max_level(domain)
@@ -351,7 +351,9 @@
call mpas_get_time(curr_time=currTime, dateTimeString=timeStamp, ierr=ierr)
write(0,*) 'Initial time ', trim(timeStamp)
- call ocn_write_output_frame(output_obj, output_frame, domain)
+ if (config_write_output_on_startup) then
+ call ocn_write_output_frame(output_obj, output_frame, domain)
+ endif
block_ptr => domain % blocklist
do while(associated(block_ptr))
@@ -390,8 +392,9 @@
if (mpas_is_alarm_ringing(clock, outputAlarmID, ierr=ierr)) then
call mpas_reset_clock_alarm(clock, outputAlarmID, ierr=ierr)
- ! output_frame will always be > 1 here unless it was reset after the maximum number of frames per outfile was reached
- if(output_frame == 1) then
+ ! output_frame will always be > 1 here unless it was reset after the
+ ! maximum number of frames per outfile was reached.
+ if(output_frame == 1.and.config_write_output_on_startup) then
call mpas_output_state_finalize(output_obj, domain % dminfo)
call mpas_output_state_init(output_obj, domain, "OUTPUT", trim(timeStamp))
end if
@@ -531,8 +534,9 @@
end subroutine mpas_timestep!}}}
- subroutine ocn_init_z_level(domain)!{{{
- ! Initialize zlevel-type variables
+ subroutine ocn_init_vert_coord(domain)!{{{
+ ! Initialize zlevel-type variables and adjust initial conditions for
+ ! partial bottom cells.
use mpas_grid_types
use mpas_configure
@@ -681,7 +685,7 @@
bottomDepth(iCell) = refBottomDepth(maxLevelCell(iCell))
enddo
- elseif (config_alter_ICs_for_pbcs.eq.'no') then
+ elseif (config_alter_ICs_for_pbcs.eq.'off') then
! No action taken. This is for isopycnal or sigma coordinates,
! or if ICs were already altered upon start-up.
@@ -693,9 +697,8 @@
endif
endif
- if (config_check_zlevel_consistency) then
+ if (config_check_ssh_consistency) then
do iCell = 1,nCells
-
! Check if abs(ssh)>2m. If so, print warning.
if (abs(sum(h(1:maxLevelCell(iCell),iCell))-bottomDepth(iCell))>2.0) then
write (0,*) ' Warning: abs(sum(h)-bottomDepth)>2m. Most likely, initial h does not match bottomDepth.'
@@ -703,7 +706,11 @@
iCell, maxLevelCell(iCell), bottomDepth(iCell),sum(h(1:maxLevelCell(iCell),iCell)),bottomDepth(iCell), &
hZLevel(maxLevelCell(iCell)), h(maxLevelCell(iCell),iCell)
endif
+ enddo
+ endif
+ if (config_check_zlevel_consistency) then
+ do iCell = 1,nCells
! Check that bottomDepth and maxLevelCell match. Some older grids do not have the bottomDepth variable.
if (bottomDepth(iCell) > refBottomDepth(maxLevelCell(iCell)).or. &
bottomDepth(iCell) < refBottomDepthTopOfCell(maxLevelCell(iCell))) then
@@ -721,7 +728,7 @@
block => block % next
end do
- end subroutine ocn_init_z_level!}}}
+ end subroutine ocn_init_vert_coord!}}}
subroutine ocn_init_split_timestep(domain)!{{{
! Initialize splitting variables
</font>
</pre>