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.
Functions/Subroutines
This updates thickness based on the convergence of horizontal mass fluxes NOTE: Only used in non-ALE mode. |
|
Updates layer thicknesses due to vertical mass transports NOTE: Only used in non-ALE configuration. |
|
This routine limits the mass fluxes so that the a layer cannot be completely depleted. |
|
In the case where offline advection has failed to converge, redistribute the u-flux into remainder of the water column as a barotropic equivalent. |
|
Redistribute the v-flux as a barotropic equivalent. |
|
In the case where offline advection has failed to converge, redistribute the u-flux into layers above. |
|
In the case where offline advection has failed to converge, redistribute the u-flux into layers above. |
|
add_diurnal_SW adjusts the shortwave fluxes in an forcying_type variable to add a synthetic diurnal cycle. Adapted from SIS2 |
|
Controls the reading in 3d mass fluxes, diffusive fluxes, and other fields stored in a previous integration of the online model. |
|
Fields for offline transport are copied from the stored arrays read during initialization. |
|
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]
- 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 layereb ::
eb[in] Mass of fluid entrained from the layerh_pre ::
h_pre[in] Layer thicknesses at the end of the previoush_new ::
h_new[inout] Updated layer thicknesses [H ~> m or kg m-2]
- 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 layereb ::
eb[inout] Mass of fluid entrained from the layerh_pre ::
h_pre[in] Layer thicknesses at the end of the previous
- 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 enduh ::
uh[inout] Zonal mass transport within a timestep [H L2 ~> m3 or kg]
- Call to:
- 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 endvh ::
vh[inout] Meridional mass transport within a timestep [H L2 ~> m3 or kg]
- Call to:
- 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 enduh ::
uh[inout] Zonal mass transport within a timestep [H L2 ~> m3 or kg]
- Call to:
- Called from:
- 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 endvh ::
vh[inout] Meridional mass transport within a timestep [H L2 ~> m3 or kg]
- Call to:
- Called from:
- 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.
- 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 filemean_file ::
mean_file[in] Name of file with averages fieldssum_file ::
sum_file[in] Name of file with summed fieldssnap_file ::
snap_file[in] Name of file with snapshot fieldssurf_file ::
surf_file[in] Name of file with surface fieldsh_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 fluxesridx_sum ::
ridx_sum[in] Read index for sum, mean, and surf filesridx_snap ::
ridx_snap[in] Read index for snapshot fileread_mld ::
read_mld[in] True if reading in MLDread_sw ::
read_sw[in] True if reading in radiative fluxesread_ts_uvh ::
read_ts_uvh[in] True if reading in uh, vh, and hdo_ale_in ::
do_ale_in[in] True if using ALE algorithms
- 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 fileridx_sum ::
ridx_sum[in] Index to read frommean_file ::
mean_file[in] Name of file with averages fieldssum_file ::
sum_file[in] Name of file with summed fieldssnap_file ::
snap_file[in] Name of file with snapshot fieldsuhtr ::
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:
- 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.