mom_offline_aux module reference

Contains routines related to offline transport of tracers. These routines are likely to be called from the MOM_offline_main module.

More…

Functions/Subroutines

update_h_horizontal_flux()

This updates thickness based on the convergence of horizontal mass fluxes NOTE: Only used in non-ALE mode.

update_h_vertical_flux()

Updates layer thicknesses due to vertical mass transports NOTE: Only used in non-ALE configuration.

limit_mass_flux_3d()

This routine limits the mass fluxes so that the a layer cannot be completely depleted.

distribute_residual_uh_barotropic()

In the case where offline advection has failed to converge, redistribute the u-flux into remainder of the water column as a barotropic equivalent.

distribute_residual_vh_barotropic()

Redistribute the v-flux as a barotropic equivalent.

distribute_residual_uh_upwards()

In the case where offline advection has failed to converge, redistribute the u-flux into layers above.

distribute_residual_vh_upwards()

In the case where offline advection has failed to converge, redistribute the u-flux into layers above.

offline_add_diurnal_sw()

add_diurnal_SW adjusts the shortwave fluxes in an forcying_type variable to add a synthetic diurnal cycle. Adapted from SIS2

update_offline_from_files()

Controls the reading in 3d mass fluxes, diffusive fluxes, and other fields stored in a previous integration of the online model.

update_offline_from_arrays()

Fields for offline transport are copied from the stored arrays read during initialization.

next_modulo_time()

Calculates the next timelevel to read from the input fields.

Detailed Description

Contains routines related to offline transport of tracers. These routines are likely to be called from the MOM_offline_main module.

Function/Subroutine Documentation

subroutine mom_offline_aux/update_h_horizontal_flux(G, GV, uhtr, vhtr, h_pre, h_new)

This updates thickness based on the convergence of horizontal mass fluxes NOTE: Only used in non-ALE mode.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • uhtr :: uhtr [in] Accumulated mass flux through zonal face [H L2 ~> m3 or kg]

  • vhtr :: vhtr [in] Accumulated mass flux through meridional face [H L2 ~> m3 or kg]

  • h_pre :: h_pre [in] Previous layer thicknesses [H ~> m or kg m-2]

  • h_new :: h_new [inout] Updated layer thicknesses [H ~> m or kg m-2]

[source]

subroutine mom_offline_aux/update_h_vertical_flux(G, GV, ea, eb, h_pre, h_new)

Updates layer thicknesses due to vertical mass transports NOTE: Only used in non-ALE configuration.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • ea :: ea [in] Mass of fluid entrained from the layer

  • eb :: eb [in] Mass of fluid entrained from the layer

  • h_pre :: h_pre [in] Layer thicknesses at the end of the previous

  • h_new :: h_new [inout] Updated layer thicknesses [H ~> m or kg m-2]

[source]

subroutine mom_offline_aux/limit_mass_flux_3d(G, GV, uh, vh, ea, eb, h_pre)

This routine limits the mass fluxes so that the a layer cannot be completely depleted. NOTE: Only used in non-ALE mode.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • uh :: uh [inout] Mass flux through zonal face [H L2 ~> m3 or kg]

  • vh :: vh [inout] Mass flux through meridional face [H L2 ~> m3 or kg]

  • ea :: ea [inout] Mass of fluid entrained from the layer

  • eb :: eb [inout] Mass of fluid entrained from the layer

  • h_pre :: h_pre [in] Layer thicknesses at the end of the previous

[source]

subroutine mom_offline_aux/distribute_residual_uh_barotropic(G, GV, hvol, uh)

In the case where offline advection has failed to converge, redistribute the u-flux into remainder of the water column as a barotropic equivalent.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • hvol :: hvol [in] Mass of water in the cells at the end

  • uh :: uh [inout] Zonal mass transport within a timestep [H L2 ~> m3 or kg]

Call to:

mom_error_handler::mom_error

[source]

subroutine mom_offline_aux/distribute_residual_vh_barotropic(G, GV, hvol, vh)

Redistribute the v-flux as a barotropic equivalent.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • hvol :: hvol [in] Mass of water in the cells at the end

  • vh :: vh [inout] Meridional mass transport within a timestep [H L2 ~> m3 or kg]

Call to:

mom_error_handler::mom_error

[source]

subroutine mom_offline_aux/distribute_residual_uh_upwards(G, GV, hvol, uh)

In the case where offline advection has failed to converge, redistribute the u-flux into layers above.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • hvol :: hvol [in] Mass of water in the cells at the end

  • uh :: uh [inout] Zonal mass transport within a timestep [H L2 ~> m3 or kg]

Call to:

mom_error_handler::mom_error

Called from:

mom_offline_main::offline_redistribute_residual

[source]

subroutine mom_offline_aux/distribute_residual_vh_upwards(G, GV, hvol, vh)

In the case where offline advection has failed to converge, redistribute the u-flux into layers above.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • hvol :: hvol [in] Mass of water in the cells at the end

  • vh :: vh [inout] Meridional mass transport within a timestep [H L2 ~> m3 or kg]

Call to:

mom_error_handler::mom_error

Called from:

mom_offline_main::offline_redistribute_residual

[source]

subroutine mom_offline_aux/offline_add_diurnal_sw(fluxes, G, Time_start, Time_end)

add_diurnal_SW adjusts the shortwave fluxes in an forcying_type variable to add a synthetic diurnal cycle. Adapted from SIS2

Parameters:
  • fluxes :: fluxes [inout] The type with atmospheric fluxes to be adjusted.

  • g :: [in] The ocean lateral grid type.

  • time_start :: [in] The start time for this step.

  • time_end :: [in] The ending time for this step.

[source]

subroutine mom_offline_aux/update_offline_from_files(G, GV, US, nk_input, mean_file, sum_file, snap_file, surf_file, h_end, uhtr, vhtr, temp_mean, salt_mean, mld, Kd, fluxes, ridx_sum, ridx_snap, read_mld, read_sw, read_ts_uvh, do_ale_in)

Controls the reading in 3d mass fluxes, diffusive fluxes, and other fields stored in a previous integration of the online model.

Parameters:
  • g :: [inout] Horizontal grid type

  • gv :: [in] Vertical grid type

  • us :: [in] A dimensional unit scaling type

  • nk_input :: nk_input [in] Number of levels in input file

  • mean_file :: mean_file [in] Name of file with averages fields

  • sum_file :: sum_file [in] Name of file with summed fields

  • snap_file :: snap_file [in] Name of file with snapshot fields

  • surf_file :: surf_file [in] Name of file with surface fields

  • h_end :: h_end [inout] End of timestep layer thickness [H ~> m or kg m-2]

  • uhtr :: uhtr [inout] Zonal mass fluxes [H L2 ~> m3 or kg]

  • vhtr :: vhtr [inout] Meridional mass fluxes [H L2 ~> m3 or kg]

  • temp_mean :: temp_mean [inout] Averaged temperature [C ~> degC]

  • salt_mean :: salt_mean [inout] Averaged salinity [S ~> ppt]

  • mld :: mld [inout] Averaged mixed layer depth [Z ~> m]

  • kd :: [inout] Diapycnal diffusivities at interfaces

  • fluxes :: fluxes [inout] Fields with surface fluxes

  • ridx_sum :: ridx_sum [in] Read index for sum, mean, and surf files

  • ridx_snap :: ridx_snap [in] Read index for snapshot file

  • read_mld :: read_mld [in] True if reading in MLD

  • read_sw :: read_sw [in] True if reading in radiative fluxes

  • read_ts_uvh :: read_ts_uvh [in] True if reading in uh, vh, and h

  • do_ale_in :: do_ale_in [in] True if using ALE algorithms

[source]

subroutine mom_offline_aux/update_offline_from_arrays(G, GV, nk_input, ridx_sum, mean_file, sum_file, snap_file, uhtr, vhtr, hend, uhtr_all, vhtr_all, hend_all, temp, salt, temp_all, salt_all)

Fields for offline transport are copied from the stored arrays read during initialization.

Parameters:
  • g :: [inout] Horizontal grid type

  • gv :: [in] Vertical grid type

  • nk_input :: nk_input [in] Number of levels in input file

  • ridx_sum :: ridx_sum [in] Index to read from

  • mean_file :: mean_file [in] Name of file with averages fields

  • sum_file :: sum_file [in] Name of file with summed fields

  • snap_file :: snap_file [in] Name of file with snapshot fields

  • uhtr :: uhtr [inout] Zonal mass fluxes [H L2 ~> m3 or kg]

  • vhtr :: vhtr [inout] Meridional mass fluxes [H L2 ~> m3 or kg]

  • hend :: hend [inout] End of timestep layer thickness [H ~> m or kg m-2]

  • uhtr_all :: uhtr_all [inout] Zonal mass fluxes [H L2 ~> m3 or kg]

  • vhtr_all :: vhtr_all [inout] Meridional mass fluxes [H L2 ~> m3 or kg]

  • hend_all :: hend_all [inout] End of timestep layer thickness [H ~> m or kg m-2]

  • temp :: temp [inout] Temperature array [C ~> degC]

  • salt :: salt [inout] Salinity array [S ~> ppt]

  • temp_all :: temp_all [inout] Temperature array [C ~> degC]

  • salt_all :: salt_all [inout] Salinity array [S ~> ppt]

Call to:

mom_error_handler::mom_error

[source]

function  mom_offline_aux/next_modulo_time(inidx, numtime)

Calculates the next timelevel to read from the input fields. This allows the ‘looping’ of the fields.

[source]

[source]