MOM6
|
Converts the input ESMF data (import data) to a MOM-specific data type (surface_forcing_CS).
Data Types | |
type | ice_ocean_boundary_type |
Structure corresponding to forcing, but with the elements, units, and conventions that exactly conform to the use for MOM-based coupled models. More... | |
type | surface_forcing_cs |
Contains pointers to the forcing fields which may be used to drive MOM. All fluxes are positive downward. More... | |
Functions/Subroutines | |
subroutine, public | convert_iob_to_fluxes (IOB, fluxes, index_bounds, Time, valid_time, G, US, CS, sfc_state, restore_salt, restore_temp) |
This subroutine translates the Ice_ocean_boundary_type into a MOM thermodynamic forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos. More... | |
subroutine, public | convert_iob_to_forces (IOB, forces, index_bounds, Time, G, US, CS) |
This subroutine translates the Ice_ocean_boundary_type into a MOM mechanical forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos. More... | |
subroutine, private | apply_flux_adjustments (G, US, CS, Time, fluxes) |
Adds thermodynamic flux adjustments obtained via data_override Component name is 'OCN' Available adjustments are: More... | |
subroutine, private | apply_force_adjustments (G, US, CS, Time, forces) |
Adds mechanical forcing adjustments obtained via data_override Component name is 'OCN' Available adjustments are: More... | |
subroutine, public | forcing_save_restart (CS, G, Time, directory, time_stamped, filename_suffix) |
Save any restart files associated with the surface forcing. More... | |
subroutine, public | surface_forcing_init (Time, G, US, param_file, diag, CS, restore_salt, restore_temp) |
Initialize the surface forcing, including setting parameters and allocating permanent memory. More... | |
subroutine, private | surface_forcing_end (CS, fluxes) |
Clean up and deallocate any memory associated with this module and its children. More... | |
subroutine, public | ice_ocn_bnd_type_chksum (id, timestep, iobt) |
Write out a set of messages with checksums of the fields in an ice_ocen_boundary type. More... | |
Variables | |
integer | id_clock_forcing |
|
private |
Adds thermodynamic flux adjustments obtained via data_override Component name is 'OCN' Available adjustments are:
[in,out] | g | Ocean grid structure |
[in] | us | A dimensional unit scaling type |
cs | Surface forcing control structure | |
[in] | time | Model time structure |
[in,out] | fluxes | Surface fluxes structure |
Definition at line 881 of file mom_surface_forcing_nuopc.F90.
Referenced by convert_iob_to_fluxes().
|
private |
Adds mechanical forcing adjustments obtained via data_override Component name is 'OCN' Available adjustments are:
[in,out] | g | Ocean grid structure |
[in] | us | A dimensional unit scaling type |
cs | Surface forcing control structure | |
[in] | time | Model time structure |
[in,out] | forces | A structure with the driving mechanical forces |
Definition at line 927 of file mom_surface_forcing_nuopc.F90.
References mom_error_handler::mom_error().
Referenced by convert_iob_to_forces().
subroutine, public mom_surface_forcing_nuopc::convert_iob_to_fluxes | ( | type(ice_ocean_boundary_type), intent(in), target | IOB, |
type(forcing), intent(inout) | fluxes, | ||
integer, dimension(4), intent(in) | index_bounds, | ||
type(time_type), intent(in) | Time, | ||
real, intent(in) | valid_time, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
type(surface_forcing_cs), pointer | CS, | ||
type(surface), intent(in) | sfc_state, | ||
logical, intent(in), optional | restore_salt, | ||
logical, intent(in), optional | restore_temp | ||
) |
This subroutine translates the Ice_ocean_boundary_type into a MOM thermodynamic forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos.
[in] | iob | An ice-ocean boundary type with fluxes to drive |
[in,out] | fluxes | A structure containing pointers to all possible mass, heat or salt flux forcing fields. Unused fields have NULL ptrs. |
[in] | index_bounds | The i- and j- size of the arrays in IOB. |
[in] | time | The time of the fluxes, used for interpolating the salinity to the right time, when it is being restored. |
[in] | valid_time | The amount of time over which these fluxes should be applied [s]. |
[in,out] | g | The ocean's grid structure |
[in] | us | A dimensional unit scaling type |
cs | A pointer to the control structure returned by a previous call to surface_forcing_init. | |
[in] | sfc_state | A structure containing fields that describe the surface state of the ocean. |
[in] | restore_salt | If true, salinity is restored to a target value. |
[in] | restore_temp | If true, temperature is restored to a target value. |
Definition at line 203 of file mom_surface_forcing_nuopc.F90.
References mom_spatial_means::adjust_area_mean_to_zero(), apply_flux_adjustments(), id_clock_forcing, and mom_error_handler::mom_error().
subroutine, public mom_surface_forcing_nuopc::convert_iob_to_forces | ( | type(ice_ocean_boundary_type), intent(in), target | IOB, |
type(mech_forcing), intent(inout) | forces, | ||
integer, dimension(4), intent(in) | index_bounds, | ||
type(time_type), intent(in) | Time, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
type(surface_forcing_cs), pointer | CS | ||
) |
This subroutine translates the Ice_ocean_boundary_type into a MOM mechanical forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos.
[in] | iob | An ice-ocean boundary type with fluxes to drive |
[in,out] | forces | A structure with the driving mechanical forces |
[in] | index_bounds | The i- and j- size of the arrays in IOB. |
[in] | time | The time of the fluxes, used for interpolating the salinity to the right time, when it is being restored. |
[in,out] | g | The ocean's grid structure |
[in] | us | A dimensional unit scaling type |
cs | A pointer to the control structure returned by a previous call to surface_forcing_init. |
Definition at line 586 of file mom_surface_forcing_nuopc.F90.
References mom_forcing_type::allocate_mech_forcing(), apply_force_adjustments(), and id_clock_forcing.
subroutine, public mom_surface_forcing_nuopc::forcing_save_restart | ( | type(surface_forcing_cs), pointer | CS, |
type(ocean_grid_type), intent(inout) | G, | ||
type(time_type), intent(in) | Time, | ||
character(len=*), intent(in) | directory, | ||
logical, intent(in), optional | time_stamped, | ||
character(len=*), intent(in), optional | filename_suffix | ||
) |
Save any restart files associated with the surface forcing.
cs | A pointer to the control structure returned by a previous call to surface_forcing_init | |
[in,out] | g | The ocean's grid structure |
[in] | time | The current model time |
[in] | directory | The directory into which to write the restart files |
[in] | time_stamped | If true, the restart file names include a unique time stamp. The default is false. |
[in] | filename_suffix | An optional suffix (e.g., a time- stamp) to append to the restart file names. |
Definition at line 985 of file mom_surface_forcing_nuopc.F90.
References mom_restart::save_restart().
Referenced by mom_ocean_model_nuopc::ocean_model_restart(), and mom_ocean_model_nuopc::ocean_model_save_restart().
subroutine, public mom_surface_forcing_nuopc::ice_ocn_bnd_type_chksum | ( | character(len=*), intent(in) | id, |
integer, intent(in) | timestep, | ||
type(ice_ocean_boundary_type), intent(in) | iobt | ||
) |
Write out a set of messages with checksums of the fields in an ice_ocen_boundary type.
[in] | id | An identifying string for this call |
[in] | timestep | The number of elapsed timesteps |
[in] | iobt | An ice-ocean boundary type with fluxes to drive the |
Definition at line 1358 of file mom_surface_forcing_nuopc.F90.
|
private |
Clean up and deallocate any memory associated with this module and its children.
cs | A pointer to the control structure returned by a previous call to surface_forcing_init, it will be deallocated here. | |
[in,out] | fluxes | A structure containing pointers to all possible mass, heat or salt flux forcing fields. If present, it will be deallocated here. |
Definition at line 1342 of file mom_surface_forcing_nuopc.F90.
subroutine, public mom_surface_forcing_nuopc::surface_forcing_init | ( | type(time_type), intent(in) | Time, |
type(ocean_grid_type), intent(in) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
type(param_file_type), intent(in) | param_file, | ||
type(diag_ctrl), intent(inout), target | diag, | ||
type(surface_forcing_cs), pointer | CS, | ||
logical, intent(in), optional | restore_salt, | ||
logical, intent(in), optional | restore_temp | ||
) |
Initialize the surface forcing, including setting parameters and allocating permanent memory.
[in] | time | The current model time |
[in] | g | The ocean's grid structure |
[in] | us | A dimensional unit scaling type |
[in] | param_file | A structure to parse for run-time parameters |
[in,out] | diag | A structure that is used to regulate diagnostic output |
cs | A pointer that is set to point to the control structure for this module | |
[in] | restore_salt | If present and true surface salinity restoring will be applied in this model. |
[in] | restore_temp | If present and true surface temperature restoring will be applied in this model. |
Definition at line 1004 of file mom_surface_forcing_nuopc.F90.
References mom_get_input::get_mom_input(), id_clock_forcing, mom_error_handler::mom_error(), mom_restart::restart_init_end(), mom_restart::restore_state(), and mom_string_functions::uppercase().
integer mom_surface_forcing_nuopc::id_clock_forcing |
Definition at line 194 of file mom_surface_forcing_nuopc.F90.
Referenced by convert_iob_to_fluxes(), convert_iob_to_forces(), and surface_forcing_init().