MOM6
|
Contains routines related to offline transport of tracers. These routines are likely to be called from the MOM_offline_main module.
Functions/Subroutines | |
subroutine, public | 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. More... | |
subroutine, public | 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. More... | |
subroutine, public | 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. More... | |
subroutine, public | 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. More... | |
subroutine, public | distribute_residual_vh_barotropic (G, GV, hvol, vh) |
Redistribute the v-flux as a barotropic equivalent. More... | |
subroutine, public | 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. More... | |
subroutine, public | 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. More... | |
subroutine, public | 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 More... | |
subroutine, public | update_offline_from_files (G, GV, 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. More... | |
subroutine, public | 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. More... | |
integer function, public | next_modulo_time (inidx, numtime) |
Calculates the next timelevel to read from the input fields. This allows the 'looping' of the fields. More... | |
subroutine, public mom_offline_aux::distribute_residual_uh_barotropic | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | hvol, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | 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.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in] | hvol | Mass of water in the cells at the end |
[in,out] | uh | Zonal mass transport within a timestep [kg] |
Definition at line 241 of file MOM_offline_aux.F90.
References mom_error_handler::mom_error().
subroutine, public mom_offline_aux::distribute_residual_uh_upwards | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | hvol, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | uh | ||
) |
In the case where offline advection has failed to converge, redistribute the u-flux into layers above.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in] | hvol | Mass of water in the cells at the end |
[in,out] | uh | Zonal mass transport within a timestep [kg] |
Definition at line 385 of file MOM_offline_aux.F90.
References mom_error_handler::mom_error().
Referenced by mom_offline_main::offline_redistribute_residual().
subroutine, public mom_offline_aux::distribute_residual_vh_barotropic | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | hvol, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | vh | ||
) |
Redistribute the v-flux as a barotropic equivalent.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in] | hvol | Mass of water in the cells at the end |
[in,out] | vh | Meridional mass transport within a timestep [kg] |
Definition at line 312 of file MOM_offline_aux.F90.
References mom_error_handler::mom_error().
subroutine, public mom_offline_aux::distribute_residual_vh_upwards | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(in) | hvol, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | vh | ||
) |
In the case where offline advection has failed to converge, redistribute the u-flux into layers above.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in] | hvol | Mass of water in the cells at the end |
[in,out] | vh | Meridional mass transport within a timestep [kg] |
Definition at line 481 of file MOM_offline_aux.F90.
References mom_error_handler::mom_error().
Referenced by mom_offline_main::offline_redistribute_residual().
subroutine, public mom_offline_aux::limit_mass_flux_3d | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(inout) | uh, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(inout) | vh, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | ea, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | eb, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_pre | ||
) |
This routine limits the mass fluxes so that the a layer cannot be completely depleted. NOTE: Only used in non-ALE mode.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in,out] | uh | Mass flux through zonal face [kg] |
[in,out] | vh | Mass flux through meridional face [kg] |
[in,out] | ea | Mass of fluid entrained from the layer |
[in,out] | eb | Mass of fluid entrained from the layer |
[in] | h_pre | Layer thicknesses at the end of the previous |
Definition at line 138 of file MOM_offline_aux.F90.
integer function, public mom_offline_aux::next_modulo_time | ( | integer | inidx, |
integer | numtime | ||
) |
Calculates the next timelevel to read from the input fields. This allows the 'looping' of the fields.
Definition at line 823 of file MOM_offline_aux.F90.
subroutine, public mom_offline_aux::offline_add_diurnal_sw | ( | type(forcing), intent(inout) | fluxes, |
type(ocean_grid_type), intent(in) | G, | ||
type(time_type), intent(in) | Time_start, | ||
type(time_type), intent(in) | Time_end | ||
) |
add_diurnal_SW adjusts the shortwave fluxes in an forcying_type variable to add a synthetic diurnal cycle. Adapted from SIS2
[in,out] | fluxes | The type with atmospheric fluxes to be adjusted. |
[in] | g | The ocean lateral grid type. |
[in] | time_start | The start time for this step. |
[in] | time_end | The ending time for this step. |
Definition at line 578 of file MOM_offline_aux.F90.
subroutine, public mom_offline_aux::update_h_horizontal_flux | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension( g %isdb: g %iedb, g %jsd: g %jed, g %ke), intent(in) | uhtr, | ||
real, dimension( g %isd: g %ied, g %jsdb: g %jedb, g %ke), intent(in) | vhtr, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_pre, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | h_new | ||
) |
This updates thickness based on the convergence of horizontal mass fluxes NOTE: Only used in non-ALE mode.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in] | uhtr | Accumulated mass flux through zonal face [kg] |
[in] | vhtr | Accumulated mass flux through meridional face [kg] |
[in] | h_pre | Previous layer thicknesses [kg m-2]. |
[in,out] | h_new | Updated layer thicknesses [kg m-2]. |
Definition at line 47 of file MOM_offline_aux.F90.
subroutine, public mom_offline_aux::update_h_vertical_flux | ( | type(ocean_grid_type), pointer | G, |
type(verticalgrid_type), pointer | GV, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | ea, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | eb, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_pre, | ||
real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(inout) | h_new | ||
) |
Updates layer thicknesses due to vertical mass transports NOTE: Only used in non-ALE configuration.
g | ocean grid structure | |
gv | ocean vertical grid structure | |
[in] | ea | Mass of fluid entrained from the layer |
[in] | eb | Mass of fluid entrained from the layer |
[in] | h_pre | Layer thicknesses at the end of the previous |
[in,out] | h_new | Updated layer thicknesses [kg m-2]. |
Definition at line 85 of file MOM_offline_aux.F90.
subroutine, public mom_offline_aux::update_offline_from_arrays | ( | type(ocean_grid_type), intent(inout) | G, |
type(verticalgrid_type), intent(in) | GV, | ||
integer, intent(in) | nk_input, | ||
integer, intent(in) | ridx_sum, | ||
character(len=200), intent(in) | mean_file, | ||
character(len=200), intent(in) | sum_file, | ||
character(len=200), intent(in) | snap_file, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | uhtr, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | vhtr, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | hend, | ||
real, dimension(:,:,:,:), intent(inout), allocatable | uhtr_all, | ||
real, dimension(:,:,:,:), intent(inout), allocatable | vhtr_all, | ||
real, dimension(:,:,:,:), intent(inout), allocatable | hend_all, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | temp, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | salt, | ||
real, dimension(:,:,:,:), intent(inout), allocatable | temp_all, | ||
real, dimension(:,:,:,:), intent(inout), allocatable | salt_all | ||
) |
Fields for offline transport are copied from the stored arrays read during initialization.
[in,out] | g | Horizontal grid type |
[in] | gv | Vertical grid type |
[in] | nk_input | Number of levels in input file |
[in] | ridx_sum | Index to read from |
[in] | mean_file | Name of file with averages fields |
[in] | sum_file | Name of file with summed fields |
[in] | snap_file | Name of file with snapshot fields |
[in,out] | uhtr | Zonal mass fluxes [kg] |
[in,out] | vhtr | Meridional mass fluxes [kg] |
[in,out] | hend | End of timestep layer thickness [kg m-2] |
[in,out] | uhtr_all | Zonal mass fluxes [kg] |
[in,out] | vhtr_all | Meridional mass fluxes [kg] |
[in,out] | hend_all | End of timestep layer thickness [kg m-2] |
[in,out] | temp | Temperature array |
[in,out] | salt | Salinity array |
[in,out] | temp_all | Temperature array |
[in,out] | salt_all | Salinity array |
Definition at line 766 of file MOM_offline_aux.F90.
References mom_error_handler::mom_error().
subroutine, public mom_offline_aux::update_offline_from_files | ( | type(ocean_grid_type), intent(inout) | G, |
type(verticalgrid_type), intent(in) | GV, | ||
integer, intent(in) | nk_input, | ||
character(len=*), intent(in) | mean_file, | ||
character(len=*), intent(in) | sum_file, | ||
character(len=*), intent(in) | snap_file, | ||
character(len=*), intent(in) | surf_file, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | h_end, | ||
real, dimension(szib_(g),szj_(g),szk_(g)), intent(inout) | uhtr, | ||
real, dimension(szi_(g),szjb_(g),szk_(g)), intent(inout) | vhtr, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | temp_mean, | ||
real, dimension(szi_(g),szj_(g),szk_(g)), intent(inout) | salt_mean, | ||
real, dimension(szi_(g),szj_(g)), intent(inout) | mld, | ||
real, dimension(szi_(g),szj_(g),szk_(g)+1), intent(inout) | Kd, | ||
type(forcing), intent(inout) | fluxes, | ||
integer, intent(in) | ridx_sum, | ||
integer, intent(in) | ridx_snap, | ||
logical, intent(in) | read_mld, | ||
logical, intent(in) | read_sw, | ||
logical, intent(in) | read_ts_uvh, | ||
logical, intent(in), optional | do_ale_in | ||
) |
Controls the reading in 3d mass fluxes, diffusive fluxes, and other fields stored in a previous integration of the online model.
[in,out] | g | Horizontal grid type |
[in] | gv | Vertical grid type |
[in] | nk_input | Number of levels in input file |
[in] | mean_file | Name of file with averages fields |
[in] | sum_file | Name of file with summed fields |
[in] | snap_file | Name of file with snapshot fields |
[in] | surf_file | Name of file with surface fields |
[in,out] | uhtr | Zonal mass fluxes [kg] |
[in,out] | vhtr | Meridional mass fluxes [kg] |
[in,out] | h_end | End of timestep layer thickness |
[in,out] | temp_mean | Averaged temperature |
[in,out] | salt_mean | Averaged salinity |
[in,out] | mld | Averaged mixed layer depth |
[in,out] | kd | Diapycnal diffusivities at interfaces |
[in,out] | fluxes | Fields with surface fluxes |
[in] | ridx_sum | Read index for sum, mean, and surf files |
[in] | ridx_snap | Read index for snapshot file |
[in] | read_mld | True if reading in MLD |
[in] | read_sw | True if reading in radiative fluxes |
[in] | read_ts_uvh | True if reading in uh, vh, and h |
[in] | do_ale_in | True if using ALE algorithms |
Definition at line 631 of file MOM_offline_aux.F90.