<p><b>dwj07@fsu.edu</b> 2011-11-04 09:18:54 -0600 (Fri, 04 Nov 2011)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Merging current trunk to performance branch.<br>
</p><hr noshade><pre><font color="gray">
Property changes on: branches/ocean_projects/performance
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ocean_projects/imp_vert_mix_mrp:754-986
/branches/ocean_projects/split_explicit_timestepping:1044-1097
/branches/ocean_projects/vert_adv_mrp:704-745
/branches/source_renaming:1082-1113
/branches/time_manager:924-962
+ /branches/ocean_projects/imp_vert_mix_mrp:754-986
/branches/ocean_projects/split_explicit_mrp:1134-1138
/branches/ocean_projects/split_explicit_timestepping:1044-1097
/branches/ocean_projects/vert_adv_mrp:704-745
/branches/source_renaming:1082-1113
/branches/time_manager:924-962
/trunk/mpas:1115-1168
Modified: branches/ocean_projects/performance/Makefile
===================================================================
--- branches/ocean_projects/performance/Makefile        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/Makefile        2011-11-04 15:18:54 UTC (rev 1169)
@@ -1,6 +1,7 @@
#MODEL_FORMULATION = -DNCAR_FORMULATION
MODEL_FORMULATION = -DLANL_FORMULATION
+# This flag must be off for nersc hopper:
FILE_OFFSET = -DOFFSET64BIT
#########################
@@ -56,6 +57,18 @@
        "CORE = $(CORE)" \
        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+pgi-nersc:
+        ( make all \
+        "FC = ftn" \
+        "CC = cc" \
+        "SFC = ftn" \
+        "SCC = cc" \
+        "FFLAGS = -r8 -O3 -byteswapio -Mfree" \
+        "CFLAGS = -O3" \
+        "LDFLAGS = -O3" \
+        "CORE = $(CORE)" \
+        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+
pgi-llnl:
        ( make all \
        "FC = mpipgf90" \
@@ -178,7 +191,42 @@
        "CORE = $(CORE)" \
        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+pathscale-nersc:
+        ( make all \
+        "FC = ftn" \
+        "CC = cc" \
+        "SFC = ftn" \
+        "SCC = cc" \
+        "FFLAGS = -r8 -O3 -freeform -extend-source" \
+        "CFLAGS = -O3" \
+        "LDFLAGS = -O3" \
+        "CORE = $(CORE)" \
+        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+cray-nersc:
+        ( make all \
+        "FC = ftn" \
+        "CC = cc" \
+        "SFC = ftn" \
+        "SCC = cc" \
+        "FFLAGS = -default64 -O3 -f free" \
+        "CFLAGS = -O3" \
+        "LDFLAGS = -O3" \
+        "CORE = $(CORE)" \
+        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+
+intel-nersc:
+        ( make all \
+        "FC = ftn" \
+        "CC = cc" \
+        "SFC = ftn" \
+        "SCC = cc" \
+        "FFLAGS = -real-size 64 -O3 -FR" \
+        "CFLAGS = -O3" \
+        "LDFLAGS = -O3" \
+        "CORE = $(CORE)" \
+        "CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE $(FILE_OFFSET) $(ZOLTAN_DEFINE)" )
+
CPPINCLUDES = -I../inc -I$(NETCDF)/include -I$(PAPI)/include
FCINCLUDES = -I../inc -I$(NETCDF)/include -I$(PAPI)/include
LIBS = -L$(NETCDF)/lib -lnetcdf $(PAPILIBS)
Modified: branches/ocean_projects/performance/namelist.input.ocean
===================================================================
--- branches/ocean_projects/performance/namelist.input.ocean        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/namelist.input.ocean        2011-11-04 15:18:54 UTC (rev 1169)
@@ -1,10 +1,10 @@
&sw_model
- config_test_case = 5
- config_time_integration = 'RK4'
+ config_test_case = 0
+ config_time_integration = 'split_explicit'
config_rk_filter_btr_mode = .false.
config_dt = 10.0
config_start_time = '0000-01-01_00:00:00'
- config_run_duration = '-000_00:30:00'
+ config_run_duration = '2000_00:00:00'
config_stats_interval = 1920
/
&io
@@ -19,7 +19,7 @@
config_restart_interval = '120_00:00:00'
/
&grid
- config_vert_grid_type = 'isopycnal'
+ config_vert_grid_type = 'zlevel'
config_rho0 = 1000
/
&split_explicit_ts
Modified: branches/ocean_projects/performance/namelist.input.sw
===================================================================
--- branches/ocean_projects/performance/namelist.input.sw        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/namelist.input.sw        2011-11-04 15:18:54 UTC (rev 1169)
@@ -1,9 +1,9 @@
&sw_model
config_test_case = 5
config_time_integration = 'RK4'
- config_dt = 200.0
+ config_dt = 172.8
config_start_time = '0000-01-01_00:00:00'
- config_run_duration = '00_05:00:00'
+ config_run_duration = '15_00:00:00'
config_stats_interval = 0
config_h_ScaleWithMesh = .false.
config_h_mom_eddy_visc2 = 0.0
@@ -23,7 +23,7 @@
config_input_name = 'grid.nc'
config_output_name = 'output.nc'
config_restart_name = 'restart.nc'
- config_output_interval = '0_01:00:00'
+ config_output_interval = '1_00:00:00'
config_frames_per_outfile = 0
/
Property changes on: branches/ocean_projects/performance/src
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ocean_projects/imp_vert_mix_mrp/src:754-986
/branches/ocean_projects/split_explicit_timestepping/src:1044-1097
/branches/ocean_projects/vert_adv_mrp/src:704-745
/branches/source_renaming/src:1082-1113
/branches/time_manager/src:924-962
/trunk/mpas/src:1109-1139
+ /branches/ocean_projects/imp_vert_mix_mrp/src:754-986
/branches/ocean_projects/split_explicit_timestepping/src:1044-1097
/branches/ocean_projects/vert_adv_mrp/src:704-745
/branches/source_renaming/src:1082-1113
/branches/time_manager/src:924-962
/trunk/mpas/src:1109-1168
Modified: branches/ocean_projects/performance/src/core_hyd_atmos/mpas_atmh_mpas_core.F
===================================================================
--- branches/ocean_projects/performance/src/core_hyd_atmos/mpas_atmh_mpas_core.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_hyd_atmos/mpas_atmh_mpas_core.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -4,7 +4,6 @@
use mpas_timekeeping
type (io_output_object) :: restart_obj
- integer :: restart_frame
integer :: current_outfile_frames
@@ -48,7 +47,6 @@
block => block % next
end do
- restart_frame = 1
current_outfile_frames = 0
end subroutine mpas_core_init
@@ -108,9 +106,11 @@
if (mpas_is_alarm_ringing(clock, restartAlarmID, ierr=ierr)) then
call mpas_reset_clock_alarm(clock, restartAlarmID, ierr=ierr)
- if (restart_frame == 1) call mpas_output_state_init(restart_obj, domain, "RESTART")
- call mpas_output_state_for_domain(restart_obj, domain, restart_frame)
- restart_frame = restart_frame + 1
+
+ ! Write one restart time per file
+ call mpas_output_state_init(restart_obj, domain, "RESTART", trim(timeStamp))
+ call mpas_output_state_for_domain(restart_obj, domain, 1)
+ call mpas_output_state_finalize(restart_obj, domain % dminfo)
end if
end do
@@ -124,12 +124,9 @@
implicit none
+ type (domain_type), intent(inout) :: domain
integer :: ierr
- type (domain_type), intent(inout) :: domain
-
- if (restart_frame > 1) call mpas_output_state_finalize(restart_obj, domain % dminfo)
-
call mpas_destroy_clock(clock, ierr)
end subroutine mpas_core_finalize
Modified: branches/ocean_projects/performance/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/Registry        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_ocean/Registry        2011-11-04 15:18:54 UTC (rev 1169)
@@ -43,6 +43,9 @@
namelist real hmix config_h_mom_eddy_visc2 0.0
namelist real hmix config_h_mom_eddy_visc4 0.0
namelist logical hmix config_visc_vorticity_term true
+namelist real hmix config_visc_vorticity_visc2_scale 1.0
+namelist real hmix config_visc_vorticity_visc4_scale 1.0
+namelist logical hmix config_include_KE_vertex false
namelist real hmix config_h_tracer_eddy_diff2 0.0
namelist real hmix config_h_tracer_eddy_diff4 0.0
namelist real hmix config_apvm_upwinding 0.5
@@ -226,6 +229,8 @@
var persistent real h_edge ( nVertLevels nEdges Time ) 2 - h_edge state - -
var persistent real h_vertex ( nVertLevels nVertices Time ) 2 - h_vertex state - -
var persistent real ke ( nVertLevels nCells Time ) 2 o ke state - -
+var persistent real kev ( nVertLevels nVertices Time ) 2 o kev state - -
+var persistent real kevc ( nVertLevels nCells Time ) 2 o kevc state - -
var persistent real ke_edge ( nVertLevels nEdges Time ) 2 - ke_edge state - -
var persistent real pv_vertex ( nVertLevels nVertices Time ) 2 - pv_vertex state - -
var persistent real pv_cell ( nVertLevels nCells Time ) 2 - pv_cell state - -
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_mpas_core.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_mpas_core.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -26,7 +26,6 @@
use ocn_vmix
type (io_output_object) :: restart_obj
- integer :: restart_frame
integer :: current_outfile_frames
@@ -84,7 +83,7 @@
call ocn_equation_of_state_init(err_tmp)
err = err .or. err_tmp
- if(err) then
+ if(err.eq.1) then
call mpas_dmpar_abort(dminfo)
endif
@@ -136,7 +135,6 @@
! call ocn_write_output_frame(output_obj, output_frame, domain)
endif
- restart_frame = 1
current_outfile_frames = 0
end subroutine mpas_core_init!}}}
@@ -334,9 +332,11 @@
if (mpas_is_alarm_ringing(clock, restartAlarmID, ierr=ierr)) then
call mpas_reset_clock_alarm(clock, restartAlarmID, ierr=ierr)
- if (restart_frame == 1) call mpas_output_state_init(restart_obj, domain, "RESTART")
- call mpas_output_state_for_domain(restart_obj, domain, restart_frame)
- restart_frame = restart_frame + 1
+
+ ! Write one restart time per file
+ call mpas_output_state_init(restart_obj, domain, "RESTART", trim(timeStamp))
+ call mpas_output_state_for_domain(restart_obj, domain, 1)
+ call mpas_output_state_finalize(restart_obj, domain % dminfo)
end if
end do
@@ -755,12 +755,9 @@
implicit none
+ type (domain_type), intent(inout) :: domain
integer :: ierr
- type (domain_type), intent(inout) :: domain
-
- if (restart_frame > 1) call mpas_output_state_finalize(restart_obj, domain % dminfo)
-
call mpas_destroy_clock(clock, ierr)
end subroutine mpas_core_finalize!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tendency.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tendency.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -434,8 +434,12 @@
real (kind=RKIND), dimension(:,:), pointer :: &
weightsOnEdge, kiteAreasOnVertex, h_edge, h, u, v, pressure,&
circulation, vorticity, ke, ke_edge, MontPot, &
- pv_edge, pv_vertex, pv_cell, gradPVn, gradPVt, divergence, rho
+ pv_edge, pv_vertex, pv_cell, gradPVn, gradPVt, divergence, &
+                rho, temperature, salinity, kev, kevc
real (kind=RKIND), dimension(:,:,:), pointer :: tracers, deriv_two
+ real (kind=RKIND), dimension(:), allocatable:: pTop
+ real (kind=RKIND), dimension(:,:), allocatable:: div_u
+ character :: c1*6
h => s % h % array
u => s % u % array
@@ -445,6 +449,8 @@
vorticity => s % vorticity % array
divergence => s % divergence % array
ke => s % ke % array
+ kev => s % kev % array
+ kevc => s % kevc % array
ke_edge => s % ke_edge % array
pv_edge => s % pv_edge % array
pv_vertex => s % pv_vertex % array
@@ -642,6 +648,41 @@
end do
!
+ ! Compute kinetic energy in each vertex
+ !
+ kev(:,:) = 0.0; kevc(:,:) = 0.0
+ do iEdge=1,nEdges
+ do k=1,nVertLevels
+ kev(k,verticesOnEdge(1,iEdge)) = kev(k,verticesOnEdge(1,iEdge)) + dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2
+ kev(k,verticesOnEdge(2,iEdge)) = kev(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2
+ end do
+ end do
+ do iVertex = 1,nVertices
+ do k=1,nVertLevels
+ kev(k,iVertex) = kev(k,iVertex) / areaTriangle(iVertex) / 4.0
+ enddo
+ enddo
+ do iVertex = 1, nVertices
+ do i=1,grid % vertexDegree
+ iCell = cellsOnVertex(i,iVertex)
+ do k=1,nVertLevels
+ kevc(k,iCell) = kevc(k,iCell) + kiteAreasOnVertex(i, iVertex) * kev(k, iVertex) / areaCell(iCell)
+ enddo
+ enddo
+ enddo
+
+ !
+ ! Compute kinetic energy in each cell by blending ke and kevc
+ !
+ if(config_include_KE_vertex) then
+ do iCell=1,nCells
+ do k=1,nVertLevels
+ ke(k,iCell) = 5.0/8.0*ke(k,iCell) + 3.0/8.0*kevc(k,iCell)
+ end do
+ end do
+ endif
+
+ !
! Compute ke on cell edges at velocity locations for quadratic bottom drag.
!
! mrp 101025 efficiency note: we could get rid of ke_edge completely by
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_test_cases.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_test_cases.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_test_cases.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -483,7 +483,7 @@
real (kind=RKIND), intent(in) :: theta
aa = 0.5 * w * (2.0 * omega + w) * cos(theta)**2.0 + &
- 0.25 * K**2.0 * cos(theta)**(2.0*R) * ((R+1.0)*cos(theta)**2.0 + 2.0*R**2.0 - R - 2.0 - 2.0*R**2*cos(theta)**-2.0)
+ 0.25 * K**2.0 * cos(theta)**(2.0*R) * ((R+1.0)*cos(theta)**2.0 + 2.0*R**2.0 - R - 2.0 - 2.0*R**2*cos(theta)**(-2.0))
end function aa
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -204,7 +204,7 @@
if (config_visc_vorticity_term) then
- viscVortCoef = 1.0
+ viscVortCoef = config_visc_vorticity_visc2_scale
else
viscVortCoef = 0.0
endif
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -277,7 +277,7 @@
hmixDel4On = .true.
eddyVisc4 = config_h_mom_eddy_visc4
if (config_visc_vorticity_term) then
- viscVortCoef = 1.0
+ viscVortCoef = config_visc_vorticity_visc4_scale
else
viscVortCoef = 0.0
endif
Modified: branches/ocean_projects/performance/src/core_sw/mpas_sw_mpas_core.F
===================================================================
--- branches/ocean_projects/performance/src/core_sw/mpas_sw_mpas_core.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/core_sw/mpas_sw_mpas_core.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -4,7 +4,6 @@
use mpas_timekeeping
type (io_output_object) :: restart_obj
- integer :: restart_frame
integer :: current_outfile_frames
type (MPAS_Clock_type) :: clock
@@ -46,7 +45,6 @@
block => block % next
end do
- restart_frame = 1
current_outfile_frames = 0
end subroutine mpas_core_init
@@ -200,9 +198,11 @@
if (mpas_is_alarm_ringing(clock, restartAlarmID, ierr=ierr)) then
call mpas_reset_clock_alarm(clock, restartAlarmID, ierr=ierr)
- if (restart_frame == 1) call mpas_output_state_init(restart_obj, domain, "RESTART")
- call mpas_output_state_for_domain(restart_obj, domain, restart_frame)
- restart_frame = restart_frame + 1
+
+ ! Write one restart time per file
+ call mpas_output_state_init(restart_obj, domain, "RESTART", trim(timeStamp))
+ call mpas_output_state_for_domain(restart_obj, domain, 1)
+ call mpas_output_state_finalize(restart_obj, domain % dminfo)
end if
end do
@@ -337,14 +337,11 @@
implicit none
+ type (domain_type), intent(inout) :: domain
integer :: ierr
+
+ call mpas_destroy_clock(clock, ierr)
- type (domain_type), intent(inout) :: domain
-
- if (restart_frame > 1) call mpas_output_state_finalize(restart_obj, domain % dminfo)
-
- call mpas_destroy_clock(clock, ierr)
-
end subroutine mpas_core_finalize
Modified: branches/ocean_projects/performance/src/framework/mpas_io_input.F
===================================================================
--- branches/ocean_projects/performance/src/framework/mpas_io_input.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/framework/mpas_io_input.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -128,9 +128,17 @@
type (MPAS_TimeInterval_type) :: timeDiff
type (MPAS_TimeInterval_type) :: minTimeDiff
character(len=32) :: timeStamp
+ character(len=1024) :: filename
if (config_do_restart) then
- input_obj % filename = trim(config_restart_name)
+
+ ! this get followed by set is to ensure that the time is in standard format
+ call mpas_set_time(curr_time=startTime, dateTimeString=config_start_time)
+ call mpas_get_time(curr_time=startTime, dateTimeString=timeStamp)
+
+ call mpas_insert_string_suffix(trim(config_restart_name), timeStamp, filename)
+
+ input_obj % filename = trim(filename)
input_obj % stream = STREAM_RESTART
else
input_obj % filename = trim(config_input_name)
@@ -772,6 +780,12 @@
end if
end do
+ ! require restart time to exactly match start time (this error should never be reached as we have by this point opened the restart file with a name containing the startTime)
+ if(sliceTime /= startTime) then
+ write(0,*) "Error: restart file ", filename, " did not contain time ", config_start_time
+ call mpas_dmpar_abort(domain % dminfo)
+ end if
+
timeStamp = xtime % array(input_obj % time)
deallocate(xtime % ioinfo)
@@ -1004,6 +1018,29 @@
end subroutine mpas_input_state_for_domain
+ !CR:TODO: an identical subroutine is found in module_io_output - merge
+ subroutine mpas_insert_string_suffix(stream, suffix, filename)
+
+ implicit none
+
+ character (len=*), intent(in) :: stream
+ character (len=*), intent(in) :: suffix
+ character (len=*), intent(out) :: filename
+ integer :: length, i
+
+ filename = trim(stream) // '.' // trim(suffix)
+
+ length = len_trim(stream)
+ do i=length-1,1,-1
+ if(stream(i:i) == '.') then
+ filename = trim(stream(:i)) // trim(suffix) // trim(stream(i:))
+ exit
+ end if
+ end do
+
+ end subroutine mpas_insert_string_suffix
+
+
subroutine mpas_read_and_distribute_fields(dminfo, input_obj, block, &
readCellsStart, readCellsCount, &
readEdgesStart, readEdgesCount, &
Modified: branches/ocean_projects/performance/src/framework/mpas_io_output.F
===================================================================
--- branches/ocean_projects/performance/src/framework/mpas_io_output.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/framework/mpas_io_output.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -94,7 +94,12 @@
output_obj % filename = trim(tempfilename)
output_obj % stream = OUTPUT
else if (trim(stream) == 'RESTART') then
- output_obj % filename = trim(config_restart_name)
+ if(present(outputSuffix)) then
+ call mpas_insert_string_suffix(config_restart_name, outputSuffix, tempfilename)
+ else
+ tempfilename = config_restart_name
+ end if
+ output_obj % filename = trim(tempfilename)
output_obj % stream = RESTART
else if (trim(stream) == 'SFC') then
! Keep filename as whatever was set by the user
Modified: branches/ocean_projects/performance/src/framework/mpas_timekeeping.F
===================================================================
--- branches/ocean_projects/performance/src/framework/mpas_timekeeping.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/framework/mpas_timekeeping.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -615,7 +615,7 @@
implicit none
type (MPAS_Clock_type), intent(in) :: clock
- type (MPAS_Alarm_type), pointer, intent(in) :: alarmPtr
+ type (MPAS_Alarm_type), pointer :: alarmPtr
type (MPAS_TimeInterval_type), intent(in), optional :: interval
integer, intent(out), optional :: ierr
Modified: branches/ocean_projects/performance/src/framework/mpas_timer.F
===================================================================
--- branches/ocean_projects/performance/src/framework/mpas_timer.F        2011-11-04 14:29:54 UTC (rev 1168)
+++ branches/ocean_projects/performance/src/framework/mpas_timer.F        2011-11-04 15:18:54 UTC (rev 1169)
@@ -33,7 +33,7 @@
subroutine mpas_timer_start(timer_name, clear_timer, timer_ptr)!{{{
character (len=*), intent (in) :: timer_name !< Input: name of timer, stored as name of timer
logical, optional, intent(in) :: clear_timer !< Input: flag to clear timer
- type (timer_node), optional, pointer, intent(out) :: timer_ptr !< Output: pointer to store timer in module
+ type (timer_node), optional, pointer :: timer_ptr !< Output: pointer to store timer in module
logical :: timer_added, timer_found, string_equal, check_flag
type (timer_node), pointer :: current, temp
@@ -151,7 +151,7 @@
subroutine mpas_timer_stop(timer_name, timer_ptr)!{{{
character (len=*), intent(in) :: timer_name !< Input: name of timer to stop
- type (timer_node), pointer, intent(in), optional :: timer_ptr !< Input: pointer to timer, for stopping
+ type (timer_node), pointer, optional :: timer_ptr !< Input: pointer to timer, for stopping
type (timer_node), pointer :: current
@@ -219,8 +219,8 @@
end subroutine mpas_timer_stop!}}}
recursive subroutine mpas_timer_write(timer_ptr, total_ptr)!{{{
- type (timer_node), pointer, intent(inout), optional :: timer_ptr
- type (timer_node), pointer, intent(in), optional :: total_ptr
+ type (timer_node), pointer, optional :: timer_ptr
+ type (timer_node), pointer, optional :: total_ptr
character (len=10) :: tname
logical :: total_found, string_equals
</font>
</pre>