diff --git a/components/mpas-ocean/bld/build-namelist b/components/mpas-ocean/bld/build-namelist
index bfc4a0050b25..0b8d3c782fa7 100755
--- a/components/mpas-ocean/bld/build-namelist
+++ b/components/mpas-ocean/bld/build-namelist
@@ -698,7 +698,6 @@ add_default($nl, 'config_flux_attenuation_coefficient_runoff');
# Namelist group: coupling #
############################
-add_default($nl, 'config_ssh_grad_relax_timescale');
if (($OCN_ICEBERG eq 'true') && ($OCN_FORCING eq 'active_atm')) {
add_default($nl, 'config_remove_AIS_coupler_runoff', 'val'=>".true.");
} else {
diff --git a/components/mpas-ocean/bld/build-namelist-section b/components/mpas-ocean/bld/build-namelist-section
index 7918ce14141b..28030392442d 100644
--- a/components/mpas-ocean/bld/build-namelist-section
+++ b/components/mpas-ocean/bld/build-namelist-section
@@ -227,7 +227,6 @@ add_default($nl, 'config_flux_attenuation_coefficient_runoff');
# Namelist group: coupling #
############################
-add_default($nl, 'config_ssh_grad_relax_timescale');
add_default($nl, 'config_remove_AIS_coupler_runoff');
######################################
diff --git a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml
index 7f9fb21b1ea6..4069eb144cff 100644
--- a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml
+++ b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml
@@ -289,7 +289,6 @@
10.0
-0.0
.false.
diff --git a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml
index 431348b105d5..01456cd6583a 100644
--- a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml
+++ b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml
@@ -1175,14 +1175,6 @@ Default: Defined in namelist_defaults.xml
-
-Timescale for relaxation of the ssh gradient for coupling. A value of 0.0 (default) removes any relaxation and gives instantaneous response.
-
-Valid values: Any positive real number.
-Default: Defined in namelist_defaults.xml
-
-
If true, solid and liquid runoff from the Antarctic Ice Sheet (below 60S latitude) coming from the coupled is zeroed in the coupler import routines. To be used with data iceberg fluxes coming from the sea ice model.
diff --git a/components/mpas-ocean/driver/ocn_comp_mct.F b/components/mpas-ocean/driver/ocn_comp_mct.F
index a1dbbb6b50ca..e7c995df990c 100644
--- a/components/mpas-ocean/driver/ocn_comp_mct.F
+++ b/components/mpas-ocean/driver/ocn_comp_mct.F
@@ -207,9 +207,8 @@ subroutine ocn_init_mct( EClock, cdata_o, x2o_o, o2x_o, NLFilename )!{{{
logical, pointer :: config_use_surface_salinity_monthly_restoring
character (len=StrKIND), pointer :: config_land_ice_flux_mode
- ! Added for coupling interval initialization
+ ! ssh coupling interval initialization
integer, pointer :: index_avgZonalSSHGradient, index_avgMeridionalSSHGradient
- real (kind=RKIND), dimension(:), pointer :: filteredSSHGradientZonal, filteredSSHGradientMeridional
real (kind=RKIND), dimension(:,:), pointer :: avgSSHGradient
interface
@@ -752,10 +751,6 @@ end subroutine xml_stream_get_attributes
call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientZonal', index_avgZonalSSHGradient)
call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientMeridional', index_avgMeridionalSSHGradient)
call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient)
- call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal)
- call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional)
- filteredSSHGradientZonal = avgSSHGradient(index_avgZonalSSHGradient, :)
- filteredSSHGradientMeridional = avgSSHGradient(index_avgMeridionalSSHGradient, :)
block_ptr => block_ptr % next
end do
endif
@@ -889,10 +884,7 @@ subroutine ocn_run_mct( EClock, cdata_o, x2o_o, o2x_o)!{{{
! Added for coupling interval initialization
integer, pointer :: index_avgZonalSSHGradient, index_avgMeridionalSSHGradient
- real (kind=RKIND), dimension(:), pointer :: filteredSSHGradientZonal, filteredSSHGradientMeridional
real (kind=RKIND), dimension(:,:), pointer :: avgSSHGradient
- real (kind=RKIND), pointer :: config_ssh_grad_relax_timescale
- real (kind=RKIND) :: timeFilterFactor
iam = domain % dminfo % my_proc_id
@@ -1104,29 +1096,13 @@ subroutine ocn_run_mct( EClock, cdata_o, x2o_o, o2x_o)!{{{
if (debugOn) call mpas_log_write('Completed timestep '//trim(timeStamp))
end do
- ! update coupled variables that get calculated on coupling intervals
- ! NOTE: could be moved to subroutine
- ! time filter ssh gradient
+ ! update coupled variables that are calculated on coupling intervals
block_ptr => domain_ptr % blocklist
do while(associated(block_ptr))
call mpas_pool_get_subpool(block_ptr % structs, 'forcing', forcingPool)
call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientZonal', index_avgZonalSSHGradient)
call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientMeridional', index_avgMeridionalSSHGradient)
call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient)
- call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal)
- call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional)
- call mpas_pool_get_config(domain % configs, 'config_ssh_grad_relax_timescale', &
- config_ssh_grad_relax_timescale)
- if (config_ssh_grad_relax_timescale < real(ocn_cpl_dt,RKIND)) then
- filteredSSHGradientZonal = avgSSHGradient(index_avgZonalSSHGradient, :)
- filteredSSHGradientMeridional = avgSSHGradient(index_avgMeridionalSSHGradient, :)
- else
- timeFilterFactor = real(ocn_cpl_dt,RKIND) / config_ssh_grad_relax_timescale
- filteredSSHGradientZonal = filteredSSHGradientZonal * (1.0_RKIND - timeFilterFactor) + &
- avgSSHGradient(index_avgZonalSSHGradient, :) * timeFilterFactor
- filteredSSHGradientMeridional = filteredSSHGradientMeridional * (1.0_RKIND - timeFilterFactor) + &
- avgSSHGradient(index_avgMeridionalSSHGradient, :) * timeFilterFactor
- endif
block_ptr => block_ptr % next
end do
@@ -2545,7 +2521,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{
integer :: i, n
integer, pointer :: nCellsSolve, index_temperatureSurfaceValue, index_salinitySurfaceValue, &
- index_avgZonalSurfaceVelocity, index_avgMeridionalSurfaceVelocity
+ index_avgZonalSurfaceVelocity, index_avgMeridionalSurfaceVelocity, &
+ index_avgZonalSSHGradient, index_avgMeridionalSSHGradient
type (block_type), pointer :: block_ptr
@@ -2561,7 +2538,6 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{
integer, dimension(:), pointer :: landIceMask
real (kind=RKIND), dimension(:), pointer :: seaIceEnergy, accumulatedFrazilIceMass, frazilSurfacePressure, &
- filteredSSHGradientZonal, filteredSSHGradientMeridional, &
avgTotalFreshWaterTemperatureFlux, &
avgCO2_gas_flux, DMSFlux, surfaceUpwardCO2Flux, &
avgOceanSurfaceDIC, &
@@ -2578,7 +2554,7 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{
ssh
real (kind=RKIND), dimension(:,:), pointer :: avgTracersSurfaceValue, avgSurfaceVelocity, &
- avgOceanSurfacePhytoC, &
+ avgSSHGradient, avgOceanSurfacePhytoC, &
avgOceanSurfaceDOC, layerThickness
real (kind=RKIND) :: surfaceFreezingTemp
@@ -2625,6 +2601,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{
call mpas_pool_get_dimension(forcingPool, 'index_avgSalinitySurfaceValue', index_salinitySurfaceValue)
call mpas_pool_get_dimension(forcingPool, 'index_avgSurfaceVelocityZonal', index_avgZonalSurfaceVelocity)
call mpas_pool_get_dimension(forcingPool, 'index_avgSurfaceVelocityMeridional', index_avgMeridionalSurfaceVelocity)
+ call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientZonal', index_avgZonalSSHGradient)
+ call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientMeridional', index_avgMeridionalSSHGradient)
call mpas_pool_get_array(statePool, 'ssh', ssh, 1)
call mpas_pool_get_array(statePool, 'layerThickness', layerThickness, 1)
@@ -2632,9 +2610,9 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{
call mpas_pool_get_array(forcingPool, 'landIceMask', landIceMask)
call mpas_pool_get_array(forcingPool, 'avgTracersSurfaceValue', avgTracersSurfaceValue)
call mpas_pool_get_array(forcingPool, 'avgSurfaceVelocity', avgSurfaceVelocity)
- call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal)
- call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional)
+ call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient)
call mpas_pool_get_array(forcingPool, 'avgTotalFreshWaterTemperatureFlux', avgTotalFreshWaterTemperatureFlux)
+
if ( frazilIceActive ) then
call mpas_pool_get_array(forcingPool, 'seaIceEnergy', seaIceEnergy)
call mpas_pool_get_array(forcingPool, 'frazilSurfacePressure', frazilSurfacePressure)
@@ -2687,15 +2665,11 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{
o2x_o % rAttr(index_o2x_So_v, n) = avgSurfaceVelocity(index_avgMeridionalSurfaceVelocity, i)
o2x_o % rAttr(index_o2x_So_ssh, n) = ssh(i)
- o2x_o % rAttr(index_o2x_So_dhdx, n) = filteredSSHGradientZonal(i)
- o2x_o % rAttr(index_o2x_So_dhdy, n) = filteredSSHGradientMeridional(i)
+ o2x_o % rAttr(index_o2x_So_dhdx, n) = avgSSHGradient(index_avgZonalSSHGradient, i)
+ o2x_o % rAttr(index_o2x_So_dhdy, n) = avgSSHGradient(index_avgMeridionalSSHGradient, i)
o2x_o % rAttr(index_o2x_Faoo_h2otemp, n) = avgTotalFreshWaterTemperatureFlux(i) * rho_sw * cp_sw
- if (ocn_rof_two_way) then
- o2x_o % rAttr(index_o2x_So_ssh, n) = ssh(i)
- end if
-
if ( frazilIceActive ) then
! negative when frazil ice can be melted
keepFrazil = .true.
diff --git a/components/mpas-ocean/src/Registry.xml b/components/mpas-ocean/src/Registry.xml
index d41063e9cbab..f382455cf678 100644
--- a/components/mpas-ocean/src/Registry.xml
+++ b/components/mpas-ocean/src/Registry.xml
@@ -755,10 +755,6 @@
/>
-
-
-
+
@@ -3679,14 +3674,6 @@
description="Time averaged meridional gradient of SSH"
/>
-
-