MOM6
|
Top-level module for the MOM6 ocean model in coupled mode.
Data Types | |
type | ocean_public_type |
This type is used for communication with other components via the FMS coupler. The element names and types can be changed only with great deliberation, hence the persistnce of things like the cutsy element name "avg_kount". More... | |
type | ocean_state_type |
The ocean_state_type contains all information about the state of the ocean, with a format that is private so it can be readily changed without disrupting other coupled components. More... | |
Functions/Subroutines | |
subroutine, public | ocean_model_init (Ocean_sfc, OS, Time_init, Time_in, gas_fields_ocn, input_restart_file) |
ocean_model_init initializes the ocean model, including registering fields for restarts and reading restart files if appropriate. More... | |
subroutine, public | update_ocean_model (Ice_ocean_boundary, OS, Ocean_sfc, time_start_update, Ocean_coupling_time_step, update_dyn, update_thermo, Ocn_fluxes_used) |
update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model's state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state. More... | |
subroutine, public | ocean_model_restart (OS, timestamp, restartname) |
This subroutine writes out the ocean model restart file. More... | |
subroutine, public | ocean_model_end (Ocean_sfc, Ocean_state, Time) |
ocean_model_end terminates the model run, saving the ocean state in a restart and deallocating any data associated with the ocean. More... | |
subroutine, public | ocean_model_save_restart (OS, Time, directory, filename_suffix) |
ocean_model_save_restart causes restart files associated with the ocean to be written out. More... | |
subroutine | initialize_ocean_public_type (input_domain, Ocean_sfc, diag, maskmap, gas_fields_ocn) |
Initialize the public ocean type. More... | |
subroutine | convert_state_to_ocean_type (sfc_state, Ocean_sfc, G, US, patm, press_to_z) |
This subroutine translates the coupler's ocean_data_type into MOM's surface state variable. This may eventually be folded into the MOM code that calculates the surface state in the first place. Note the offset in the arrays because the ocean_data_type has no halo points in its arrays and always uses absolute indicies. More... | |
subroutine, public | ocean_model_init_sfc (OS, Ocean_sfc) |
This subroutine extracts the surface properties from the ocean's internal state and stores them in the ocean type returned to the calling ice model. It has to be separate from the ocean_initialization call because the coupler module allocates the space for some of these variables. More... | |
subroutine, public | ocean_model_flux_init (OS, verbosity) |
ocean_model_flux_init is used to initialize properties of the air-sea fluxes as determined by various run-time parameters. It can be called from non-ocean PEs, or PEs that have not yet been initialzed, and it can safely be called multiple times. More... | |
subroutine, public | ocean_stock_pe (OS, index, value, time_index) |
Ocean_stock_pe - returns the integrated stocks of heat, water, etc. for conservation checks. Because of the way FMS is coded, only the root PE has the integrated amount, while all other PEs get 0. More... | |
subroutine, public | ocean_public_type_chksum (id, timestep, ocn) |
Write out FMS-format checsums on fields from the ocean surface state. More... | |
subroutine, public | get_ocean_grid (OS, Gridp) |
subroutine mom_ocean_model_mct::convert_state_to_ocean_type | ( | type(surface), intent(inout) | sfc_state, |
type(ocean_public_type), intent(inout), target | Ocean_sfc, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
real, dimension(:,:), intent(in), optional | patm, | ||
real, intent(in), optional | press_to_z | ||
) |
This subroutine translates the coupler's ocean_data_type into MOM's surface state variable. This may eventually be folded into the MOM code that calculates the surface state in the first place. Note the offset in the arrays because the ocean_data_type has no halo points in its arrays and always uses absolute indicies.
[in,out] | sfc_state | A structure containing fields that describe the surface state of the ocean. |
[in,out] | ocean_sfc | A structure containing various publicly |
[in,out] | g | The ocean's grid structure |
[in] | us | A dimensional unit scaling type |
[in] | patm | The pressure at the ocean surface, in Pa. |
[in] | press_to_z | A conversion factor between pressure and ocean depth in m, usually 1/(rho_0*g), in m Pa-1. |
Definition at line 844 of file mom_ocean_model_mct.F90.
References mom_constants::celsius_kelvin_offset.
Referenced by ocean_model_init(), ocn_comp_mct::ocean_model_init_sfc(), ocean_model_init_sfc(), and update_ocean_model().
subroutine, public mom_ocean_model_mct::get_ocean_grid | ( | type(ocean_state_type) | OS, |
type(ocean_grid_type), pointer | Gridp | ||
) |
Definition at line 1073 of file mom_ocean_model_mct.F90.
subroutine mom_ocean_model_mct::initialize_ocean_public_type | ( | type(domain2d), intent(in) | input_domain, |
type(ocean_public_type), intent(inout) | Ocean_sfc, | ||
type(diag_ctrl), intent(in) | diag, | ||
logical, dimension(:,:), intent(in), optional | maskmap, | ||
type(coupler_1d_bc_type), intent(in), optional | gas_fields_ocn | ||
) |
Initialize the public ocean type.
[in] | input_domain | The ocean model domain description |
[in,out] | ocean_sfc | A structure containing various publicly visible ocean surface properties after initialization, whose elements are allocated here. |
[in] | diag | A structure that regulates diagnsotic output |
[in] | maskmap | A mask indicating which virtual processors |
[in] | gas_fields_ocn | If present, this type describes the |
Definition at line 783 of file mom_ocean_model_mct.F90.
Referenced by ocean_model_init().
subroutine, public mom_ocean_model_mct::ocean_model_end | ( | type(ocean_public_type), intent(inout) | Ocean_sfc, |
type(ocean_state_type), pointer | Ocean_state, | ||
type(time_type), intent(in) | Time | ||
) |
ocean_model_end terminates the model run, saving the ocean state in a restart and deallocating any data associated with the ocean.
[in,out] | ocean_sfc | An ocean_public_type structure that is to be deallocated upon termination. |
ocean_state | A pointer to the structure containing the internal ocean state to be deallocated upon termination. | |
[in] | time | The model time, used for writing restarts. |
Definition at line 729 of file mom_ocean_model_mct.F90.
References mom_diag_mediator::diag_mediator_end(), mom_ice_shelf::ice_shelf_end(), and ocean_model_save_restart().
subroutine, public mom_ocean_model_mct::ocean_model_flux_init | ( | type(ocean_state_type), optional, pointer | OS, |
integer, intent(in), optional | verbosity | ||
) |
ocean_model_flux_init is used to initialize properties of the air-sea fluxes as determined by various run-time parameters. It can be called from non-ocean PEs, or PEs that have not yet been initialzed, and it can safely be called multiple times.
os | An optional pointer to the ocean state, used to figure out if this is an ocean PE that has already been initialized. | |
[in] | verbosity | A 0-9 integer indicating a level of verbosity. |
Definition at line 987 of file mom_ocean_model_mct.F90.
References mom_tracer_flow_control::call_tracer_flux_init().
subroutine, public mom_ocean_model_mct::ocean_model_init | ( | type(ocean_public_type), intent(inout), target | Ocean_sfc, |
type(ocean_state_type), pointer | OS, | ||
type(time_type), intent(in) | Time_init, | ||
type(time_type), intent(in) | Time_in, | ||
type(coupler_1d_bc_type), intent(in), optional | gas_fields_ocn, | ||
character(len=*), intent(in), optional | input_restart_file | ||
) |
ocean_model_init initializes the ocean model, including registering fields for restarts and reading restart files if appropriate.
This subroutine initializes both the ocean state and the ocean surface type. Because of the way that indicies and domains are handled, Ocean_sfc must have been used in a previous call to initialize_ocean_type.
[in,out] | ocean_sfc | A structure containing various publicly |
os | A structure whose internal contents are private to ocean_model_mod that may be used to contain all information about the ocean's interior state. | |
[in] | time_init | The start time for the coupled model's calendar |
[in] | time_in | The time at which to initialize the ocean model. |
[in] | gas_fields_ocn | If present, this type describes the |
[in] | input_restart_file | If present, name of restart file to read |
Definition at line 224 of file mom_ocean_model_mct.F90.
References mom_error_handler::calltree_enter(), mom_error_handler::calltree_leave(), mom_file_parser::close_param_file(), convert_state_to_ocean_type(), mom_diag_mediator::diag_mediator_close_registration(), initialize_ocean_public_type(), mom_marine_ice::marine_ice_init(), mom_wave_interface::mom_wave_interface_init_lite(), and mom_string_functions::uppercase().
subroutine, public mom_ocean_model_mct::ocean_model_init_sfc | ( | type(ocean_state_type), pointer | OS, |
type(ocean_public_type), intent(inout) | Ocean_sfc | ||
) |
This subroutine extracts the surface properties from the ocean's internal state and stores them in the ocean type returned to the calling ice model. It has to be separate from the ocean_initialization call because the coupler module allocates the space for some of these variables.
os | The structure with the complete ocean state | |
[in,out] | ocean_sfc | A structure containing various publicly visible ocean surface properties after initialization, whose elements have their data set here. |
Definition at line 966 of file mom_ocean_model_mct.F90.
References convert_state_to_ocean_type().
subroutine, public mom_ocean_model_mct::ocean_model_restart | ( | type(ocean_state_type), pointer | OS, |
character(len=*), intent(in), optional | timestamp, | ||
character(len=*), intent(in), optional | restartname | ||
) |
This subroutine writes out the ocean model restart file.
os | A pointer to the structure containing the internal ocean state being saved to a restart file | |
[in] | timestamp | An optional timestamp string that should be prepended to the file name. (Currently this is unused.) |
[in] | restartname | Name of restart file to use This option distinguishes the cesm interface from the non-cesm interface |
Definition at line 677 of file mom_ocean_model_mct.F90.
References mom_surface_forcing_mct::forcing_save_restart(), mom_ice_shelf::ice_shelf_save_restart(), and mom_restart::save_restart().
subroutine, public mom_ocean_model_mct::ocean_model_save_restart | ( | type(ocean_state_type), pointer | OS, |
type(time_type), intent(in) | Time, | ||
character(len=*), intent(in), optional | directory, | ||
character(len=*), intent(in), optional | filename_suffix | ||
) |
ocean_model_save_restart causes restart files associated with the ocean to be written out.
os | A pointer to the structure containing the internal ocean state (in). | |
[in] | time | The model time at this call, needed for mpp_write calls. |
[in] | directory | An optional directory into which to write these restart files. |
[in] | filename_suffix | An optional suffix (e.g., a time-stamp) to append to the restart file names. |
Definition at line 747 of file mom_ocean_model_mct.F90.
References mom_surface_forcing_mct::forcing_save_restart(), mom_ice_shelf::ice_shelf_save_restart(), and mom_restart::save_restart().
Referenced by ocean_model_end().
subroutine, public mom_ocean_model_mct::ocean_public_type_chksum | ( | character(len=*), intent(in) | id, |
integer, intent(in) | timestep, | ||
type(ocean_public_type), intent(in) | ocn | ||
) |
Write out FMS-format checsums on fields from the ocean surface state.
[in] | id | An identifying string for this call |
[in] | timestep | The number of elapsed timesteps |
[in] | ocn | A structure containing various publicly visible ocean surface fields. |
Definition at line 1049 of file mom_ocean_model_mct.F90.
subroutine, public mom_ocean_model_mct::ocean_stock_pe | ( | type(ocean_state_type), pointer | OS, |
integer, intent(in) | index, | ||
real, intent(out) | value, | ||
integer, intent(in), optional | time_index | ||
) |
Ocean_stock_pe - returns the integrated stocks of heat, water, etc. for conservation checks. Because of the way FMS is coded, only the root PE has the integrated amount, while all other PEs get 0.
os | A structure containing the internal ocean state. The data in OS is intent in. | |
[in] | index | The stock index for the quantity of interest. |
[out] | value | Sum returned for the conservation quantity of interest. |
[in] | time_index | An unused optional argument, present only for interfacial compatibility with other models. |
Definition at line 1009 of file mom_ocean_model_mct.F90.
References mom::get_ocean_stocks().
subroutine, public mom_ocean_model_mct::update_ocean_model | ( | type(ice_ocean_boundary_type), intent(in) | Ice_ocean_boundary, |
type(ocean_state_type), pointer | OS, | ||
type(ocean_public_type), intent(inout) | Ocean_sfc, | ||
type(time_type), intent(in) | time_start_update, | ||
type(time_type), intent(in) | Ocean_coupling_time_step, | ||
logical, intent(in), optional | update_dyn, | ||
logical, intent(in), optional | update_thermo, | ||
logical, intent(in), optional | Ocn_fluxes_used | ||
) |
update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model's state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state.
[in] | ice_ocean_boundary | A structure containing the |
os | A pointer to a private structure containing | |
[in,out] | ocean_sfc | A structure containing all the |
[in] | time_start_update | The time at the beginning of the update step. |
[in] | ocean_coupling_time_step | The amount of time over which to advance the ocean. |
[in] | update_dyn | If present and false, do not do updates due to the ocean dynamics. |
[in] | update_thermo | If present and false, do not do updates due to the ocean thermodynamics or remapping. |
[in] | ocn_fluxes_used | If present, this indicates whether the cumulative thermodynamic fluxes from the ocean, like frazil, have been used and should be reset. |
Definition at line 425 of file mom_ocean_model_mct.F90.
References mom_ice_shelf::add_shelf_forces(), mom_error_handler::calltree_enter(), mom_error_handler::calltree_leave(), convert_state_to_ocean_type(), mom_forcing_type::forcing_diagnostics(), mom_marine_ice::iceberg_fluxes(), mom_marine_ice::iceberg_forces(), mom_forcing_type::mech_forcing_diags(), mom::step_offline(), and mom_wave_interface::update_surface_waves().