Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/core_ocean/mode_init/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ mpas_ocn_init_hurricane.o: $(UTILS)

mpas_ocn_init_tidal_boundary.o: $(UTILS)

mpas_ocn_init_dam_break.o: $(UTILS)

#mpas_ocn_init_TEMPLATE.o: $(UTILS)

clean:
Expand Down
8 changes: 5 additions & 3 deletions src/core_ocean/shared/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ mpas_ocn_mesh.o:

mpas_ocn_thick_ale.o: mpas_ocn_constants.o mpas_ocn_config.o

mpas_ocn_time_average_coupled.o: mpas_ocn_constants.o mpas_ocn_config.o mpas_ocn_tracer_ecosys.o
mpas_ocn_time_average_coupled.o: mpas_ocn_constants.o mpas_ocn_config.o mpas_ocn_tracer_ecosys.o mpas_ocn_tracer_MacroMolecules.o

mpas_ocn_thick_hadv.o: mpas_ocn_constants.o mpas_ocn_config.o

Expand Down Expand Up @@ -120,9 +120,9 @@ mpas_ocn_tracer_hmix_del4.o: mpas_ocn_constants.o mpas_ocn_config.o

mpas_ocn_tracer_advection.o: mpas_ocn_constants.o mpas_ocn_config.o mpas_ocn_tracer_advection_mono.o mpas_ocn_tracer_advection_std.o

mpas_ocn_tracer_advection_mono.o: mpas_ocn_constants.o mpas_ocn_config.o
mpas_ocn_tracer_advection_mono.o: mpas_ocn_constants.o mpas_ocn_config.o mpas_ocn_mesh.o

mpas_ocn_tracer_advection_std.o: mpas_ocn_constants.o mpas_ocn_config.o
mpas_ocn_tracer_advection_std.o: mpas_ocn_constants.o mpas_ocn_config.o mpas_ocn_mesh.o

mpas_ocn_tracer_hmix_redi.o: mpas_ocn_constants.o mpas_ocn_config.o

Expand Down Expand Up @@ -198,6 +198,8 @@ mpas_ocn_wetting_drying.o: mpas_ocn_diagnostics.o mpas_ocn_gm.o

mpas_ocn_tidal_potential_forcing.o: mpas_ocn_constants.o mpas_ocn_config.o

mpas_ocn_vel_tidal_potential.o: mpas_ocn_constants.o

mpas_ocn_vel_pressure_grad.o: mpas_ocn_constants.o

clean:
Expand Down
2 changes: 1 addition & 1 deletion src/core_ocean/shared/mpas_ocn_tendency.F
Original file line number Diff line number Diff line change
Expand Up @@ -814,7 +814,7 @@ subroutine ocn_tend_tracer(tendPool, statePool, forcingPool, diagnosticsPool, me
! Tendency for tracer budget is stored within the tracer adv
! routine
call ocn_tracer_advection_tend(tracerGroup, normalThicknessFlux, vertAleTransportTop, layerThickness, &
dt, meshPool, scratchPool, diagnosticsPool, tracerGroupTend, &
dt, diagnosticsPool, tracerGroupTend, &
trim(groupItr % memberName))

!
Expand Down
44 changes: 5 additions & 39 deletions src/core_ocean/shared/mpas_ocn_tracer_advection.F
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ module ocn_tracer_advection

use ocn_constants
use ocn_config
use ocn_mesh

implicit none
private
Expand Down Expand Up @@ -67,9 +68,8 @@ module ocn_tracer_advection
!-------------------------------------------------------------------------------

subroutine ocn_tracer_advection_tend(tracers, normalThicknessFlux, w, &
layerThickness, dt, meshPool, &
scratchPool, diagnosticsPool, tend, &
tracerGroupName)!{{{
layerThickness, dt, diagnosticsPool, &
tend, tracerGroupName)!{{{

!*** Input/Output parameters

Expand All @@ -88,10 +88,6 @@ subroutine ocn_tracer_advection_tend(tracers, normalThicknessFlux, w, &
layerThickness !< [in] Thickness field
real (kind=RKIND), intent(in) :: &
dt !< [in] Time step
type (mpas_pool_type), intent(in) :: &
meshPool !< [in] Mesh information
type (mpas_pool_type), intent(in) :: &
scratchPool !< [in] Scratch fields
type (mpas_pool_type), intent(in) :: &
diagnosticsPool !< [in] Diagnostic fields
character (len=*), intent(in) :: &
Expand All @@ -102,18 +98,6 @@ subroutine ocn_tracer_advection_tend(tracers, normalThicknessFlux, w, &
logical :: &
computeBudgets ! flag to compute active tracer budget

real (kind=RKIND), dimension(:,:), pointer, contiguous :: &
advCoefs, advCoefs3rd ! advection coefficients

integer, dimension(:), pointer, contiguous :: &
maxLevelCell, &! index of max level at each cell
maxLevelEdgeTop, &! max level at edge with both cells active
nAdvCellsForEdge ! number of advective cells for each edge
integer, dimension(:,:), pointer, contiguous :: &!
highOrderAdvectionMask, &! mask for higher order contributions
edgeSignOnCell, &! sign at cell edge for fluxes
advCellsForEdge ! index of advective cells for each edge

! end of preamble
!----------------
! begin code
Expand All @@ -123,36 +107,18 @@ subroutine ocn_tracer_advection_tend(tracers, normalThicknessFlux, w, &

call mpas_timer_start("tracer adv")

! extract pool variables
call mpas_pool_get_array(meshPool, 'advCoefs', advCoefs)
call mpas_pool_get_array(meshPool, 'advCoefs3rd', advCoefs3rd)
call mpas_pool_get_array(meshPool, 'maxLevelCell', maxLevelCell)
call mpas_pool_get_array(meshPool, 'maxLevelEdgeTop', maxLevelEdgeTop)
call mpas_pool_get_array(meshPool, 'highOrderAdvectionMask', &
highOrderAdvectionMask)
call mpas_pool_get_array(meshPool, 'edgeSignOnCell', edgeSignOnCell)
call mpas_pool_get_array(meshPool, 'nAdvCellsForEdge', nAdvCellsForEdge)
call mpas_pool_get_array(meshPool, 'advCellsForEdge', advCellsForEdge)

! determine whether active tracer budgets should be computed
computeBudgets = (budgetDiagsOn .and. tracerGroupName == 'activeTracers')

! call specific advection routine based on choice of monotonicity
if (monotonicOn) then
call ocn_tracer_advection_mono_tend(tend, tracers, layerThickness, &
normalThicknessFlux, w, dt, &
advCoefs, advCoefs3rd, &
nAdvCellsForEdge, advCellsForEdge,&
maxLevelCell, maxLevelEdgeTop, &
highOrderAdvectionMask, &
edgeSignOnCell, meshPool, &
diagnosticsPool, computeBudgets)

else
call ocn_tracer_advection_std_tend(tracers, advCoefs, advCoefs3rd, &
nAdvCellsForEdge, advCellsForEdge, normalThicknessFlux, w, layerThickness, &
layerThickness, dt, meshPool, tend, maxLevelCell, maxLevelEdgeTop, &
highOrderAdvectionMask, edgeSignOnCell)
call ocn_tracer_advection_std_tend(tracers, normalThicknessFlux, w, layerThickness, &
layerThickness, dt, tend)
endif

call mpas_timer_stop("tracer adv")
Expand Down
Loading