|
MOM6
|
Drives the generic version of tracers TOPAZ and CFC and other GFDL BGC components.
Data Types | |
| type | mom_generic_tracer_cs |
| Control structure for generic tracers. More... | |
Functions/Subroutines | |
| logical function, public | register_mom_generic_tracer (HI, GV, param_file, CS, tr_Reg, restart_CS) |
| Initializes the generic tracer packages and adds their tracers to the list Adds the tracers in the list of generic tracers to the set of MOM tracers (i.e., MOM-register them) Register these tracers for restart. More... | |
| subroutine, public | initialize_mom_generic_tracer (restart, day, G, GV, US, h, param_file, diag, OBC, CS, sponge_CSp, ALE_sponge_CSp) |
| Initialize phase II: Initialize required variables for generic tracers There are some steps of initialization that cannot be done in register_MOM_generic_tracer This is the place and time to do them: Set the grid mask and initial time for all generic tracers. Diag_register them. Z_diag_register them. More... | |
| subroutine, public | mom_generic_tracer_column_physics (h_old, h_new, ea, eb, fluxes, Hml, dt, G, GV, CS, tv, optics, evap_CFL_limit, minimum_forcing_depth) |
| Column physics for generic tracers. Get the coupler values for generic tracers that exchange with atmosphere Update generic tracer concentration fields from sources and sinks. Vertically diffuse generic tracer concentration fields. Update generic tracers from bottom and their bottom reservoir. More... | |
| integer function, public | mom_generic_tracer_stock (h, stocks, G, GV, CS, names, units, stock_index) |
| This subroutine calculates mass-weighted integral on the PE either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. More... | |
| integer function, public | mom_generic_tracer_min_max (ind_start, got_minmax, gmin, gmax, xgmin, ygmin, zgmin, xgmax, ygmax, zgmax, G, CS, names, units) |
| This subroutine find the global min and max of either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of tracers it has gone through. More... | |
| subroutine, public | mom_generic_tracer_surface_state (sfc_state, h, G, CS) |
| This subroutine calculates the surface state and sets coupler values for those generic tracers that have flux exchange with atmosphere. More... | |
| subroutine, public | mom_generic_flux_init (verbosity) |
| subroutine, public | mom_generic_tracer_fluxes_accumulate (flux_tmp, weight) |
| subroutine, public | mom_generic_tracer_get (name, member, array, CS) |
| Copy the requested tracer into an array. More... | |
| subroutine, public | end_mom_generic_tracer (CS) |
| This subroutine deallocates the memory owned by this module. More... | |
Variables | |
| logical | g_registered = .false. |
| An state hidden in module data that is very much not allowed in MOM6. | |
| subroutine, public mom_generic_tracer::end_mom_generic_tracer | ( | type(mom_generic_tracer_cs), pointer | CS | ) |
This subroutine deallocates the memory owned by this module.
| cs | Pointer to the control structure for this module. |
Definition at line 822 of file MOM_generic_tracer.F90.
| subroutine, public mom_generic_tracer::initialize_mom_generic_tracer | ( | logical, intent(in) | restart, |
| type(time_type), intent(in), target | day, | ||
| type(ocean_grid_type), intent(inout) | G, | ||
| type(verticalgrid_type), intent(in) | GV, | ||
| type(unit_scale_type), intent(in) | US, | ||
| real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, | ||
| type(param_file_type), intent(in) | param_file, | ||
| type(diag_ctrl), intent(in), target | diag, | ||
| type(ocean_obc_type), pointer | OBC, | ||
| type(mom_generic_tracer_cs), pointer | CS, | ||
| type(sponge_cs), pointer | sponge_CSp, | ||
| type(ale_sponge_cs), pointer | ALE_sponge_CSp | ||
| ) |
Initialize phase II: Initialize required variables for generic tracers There are some steps of initialization that cannot be done in register_MOM_generic_tracer This is the place and time to do them: Set the grid mask and initial time for all generic tracers. Diag_register them. Z_diag_register them.
This subroutine initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.
| [in] | restart | .true. if the fields have already been read from a restart file. |
| [in] | day | Time of the start of the run. |
| [in,out] | g | The ocean's grid structure |
| [in] | gv | The ocean's vertical grid structure |
| [in] | us | A dimensional unit scaling type |
| [in] | h | Layer thicknesses [H ~> m or kg m-2] |
| [in] | param_file | A structure to parse for run-time parameters |
| [in] | diag | Regulates diagnostic output. |
| obc | This open boundary condition type specifies whether, where, and what open boundary conditions are used. | |
| cs | Pointer to the control structure for this module. | |
| sponge_csp | Pointer to the control structure for the sponges. | |
| ale_sponge_csp | Pointer to the control structure for the ALE sponges. |
Definition at line 232 of file MOM_generic_tracer.F90.
| subroutine, public mom_generic_tracer::mom_generic_flux_init | ( | integer, intent(in), optional | verbosity | ) |
| [in] | verbosity | A 0-9 integer indicating a level of verbosity. |
Definition at line 763 of file MOM_generic_tracer.F90.
| subroutine, public mom_generic_tracer::mom_generic_tracer_column_physics | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_old, |
| real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h_new, | ||
| 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, | ||
| type(forcing), intent(in) | fluxes, | ||
| real, dimension( g %isd: g %ied, g %jsd: g %jed), intent(in) | Hml, | ||
| real, intent(in) | dt, | ||
| type(ocean_grid_type), intent(in) | G, | ||
| type(verticalgrid_type), intent(in) | GV, | ||
| type(mom_generic_tracer_cs), pointer | CS, | ||
| type(thermo_var_ptrs), intent(in) | tv, | ||
| type(optics_type), intent(in) | optics, | ||
| real, intent(in), optional | evap_CFL_limit, | ||
| real, intent(in), optional | minimum_forcing_depth | ||
| ) |
Column physics for generic tracers. Get the coupler values for generic tracers that exchange with atmosphere Update generic tracer concentration fields from sources and sinks. Vertically diffuse generic tracer concentration fields. Update generic tracers from bottom and their bottom reservoir.
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. CFCs are relatively simple, as they are passive tracers. with only a surface flux as a source.
| [in] | g | The ocean's grid structure |
| [in] | gv | The ocean's vertical grid structure |
| [in] | h_old | Layer thickness before entrainment [H ~> m or kg m-2]. |
| [in] | h_new | Layer thickness after entrainment [H ~> m or kg m-2]. |
| [in] | ea | The amount of fluid entrained from the layer |
| [in] | eb | The amount of fluid entrained from the layer |
| [in] | fluxes | A structure containing pointers to thermodynamic and tracer forcing fields. |
| [in] | hml | Mixed layer depth [Z ~> m] |
| [in] | dt | The amount of time covered by this call [s] |
| cs | Pointer to the control structure for this module. | |
| [in] | tv | A structure pointing to various thermodynamic variables |
| [in] | optics | The structure containing optical properties. |
| [in] | evap_cfl_limit | Limits how much water can be fluxed out of the top layer Stored previously in diabatic CS. |
| [in] | minimum_forcing_depth | The smallest depth over which fluxes can be applied [H ~> m or kg m-2] |
Definition at line 399 of file MOM_generic_tracer.F90.
| subroutine, public mom_generic_tracer::mom_generic_tracer_fluxes_accumulate | ( | type(forcing), intent(in) | flux_tmp, |
| real, intent(in) | weight | ||
| ) |
| [in] | flux_tmp | A structure containing pointers to thermodynamic and tracer forcing fields. |
| [in] | weight | A weight for accumulating this flux |
Definition at line 797 of file MOM_generic_tracer.F90.
| subroutine, public mom_generic_tracer::mom_generic_tracer_get | ( | character(len=*), intent(in) | name, |
| character(len=*), intent(in) | member, | ||
| real, dimension(:,:,:), intent(out) | array, | ||
| type(mom_generic_tracer_cs), pointer | CS | ||
| ) |
Copy the requested tracer into an array.
| [in] | name | Name of requested tracer. |
| [in] | member | The tracer element to return. |
| [out] | array | Array filled by this routine. |
| cs | Pointer to the control structure for this module. |
Definition at line 807 of file MOM_generic_tracer.F90.
| integer function, public mom_generic_tracer::mom_generic_tracer_min_max | ( | integer, intent(in) | ind_start, |
| logical, dimension(:), intent(out) | got_minmax, | ||
| real, dimension(:), intent(out) | gmin, | ||
| real, dimension(:), intent(out) | gmax, | ||
| real, dimension(:), intent(out) | xgmin, | ||
| real, dimension(:), intent(out) | ygmin, | ||
| real, dimension(:), intent(out) | zgmin, | ||
| real, dimension(:), intent(out) | xgmax, | ||
| real, dimension(:), intent(out) | ygmax, | ||
| real, dimension(:), intent(out) | zgmax, | ||
| type(ocean_grid_type), intent(in) | G, | ||
| type(mom_generic_tracer_cs), pointer | CS, | ||
| character(len=*), dimension(:), intent(out) | names, | ||
| character(len=*), dimension(:), intent(out) | units | ||
| ) |
This subroutine find the global min and max of either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of tracers it has gone through.
| [in] | ind_start | The index of the tracer to start with |
| [out] | got_minmax | Indicates whether the global min and max are found for each tracer |
| [out] | gmin | Global minimum of each tracer, in kg times concentration units. |
| [out] | gmax | Global maximum of each tracer, in kg times concentration units. |
| [out] | xgmin | The x-position of the global minimum |
| [out] | ygmin | The y-position of the global minimum |
| [out] | zgmin | The z-position of the global minimum |
| [out] | xgmax | The x-position of the global maximum |
| [out] | ygmax | The y-position of the global maximum |
| [out] | zgmax | The z-position of the global maximum |
| [in] | g | The ocean's grid structure |
| cs | Pointer to the control structure for this module. | |
| [out] | names | The names of the stocks calculated. |
| [out] | units | The units of the stocks calculated. |
Definition at line 636 of file MOM_generic_tracer.F90.
| integer function, public mom_generic_tracer::mom_generic_tracer_stock | ( | real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, |
| real, dimension(:), intent(out) | stocks, | ||
| type(ocean_grid_type), intent(in) | G, | ||
| type(verticalgrid_type), intent(in) | GV, | ||
| type(mom_generic_tracer_cs), pointer | CS, | ||
| character(len=*), dimension(:), intent(out) | names, | ||
| character(len=*), dimension(:), intent(out) | units, | ||
| integer, intent(in), optional | stock_index | ||
| ) |
This subroutine calculates mass-weighted integral on the PE either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.
| [in] | g | The ocean's grid structure |
| [in] | gv | The ocean's vertical grid structure |
| [in] | h | Layer thicknesses [H ~> m or kg m-2] |
| [out] | stocks | The mass-weighted integrated amount of each tracer, in kg times concentration units [kg conc]. |
| cs | Pointer to the control structure for this module. | |
| [out] | names | The names of the stocks calculated. |
| [out] | units | The units of the stocks calculated. |
| [in] | stock_index | The coded index of a specific stock being sought. |
Definition at line 571 of file MOM_generic_tracer.F90.
| subroutine, public mom_generic_tracer::mom_generic_tracer_surface_state | ( | type(surface), intent(inout) | sfc_state, |
| real, dimension( g %isd: g %ied, g %jsd: g %jed, g %ke), intent(in) | h, | ||
| type(ocean_grid_type), intent(in) | G, | ||
| type(mom_generic_tracer_cs), pointer | CS | ||
| ) |
This subroutine calculates the surface state and sets coupler values for those generic tracers that have flux exchange with atmosphere.
This subroutine sets up the fields that the coupler needs to calculate the CFC fluxes between the ocean and atmosphere.
| [in] | g | The ocean's grid structure |
| [in,out] | sfc_state | A structure containing fields that describe the surface state of the ocean. |
| [in] | h | Layer thicknesses [H ~> m or kg m-2] |
| cs | Pointer to the control structure for this module. |
Definition at line 720 of file MOM_generic_tracer.F90.
| logical function, public mom_generic_tracer::register_mom_generic_tracer | ( | type(hor_index_type), intent(in) | HI, |
| type(verticalgrid_type), intent(in) | GV, | ||
| type(param_file_type), intent(in) | param_file, | ||
| type(mom_generic_tracer_cs), pointer | CS, | ||
| type(tracer_registry_type), pointer | tr_Reg, | ||
| type(mom_restart_cs), pointer | restart_CS | ||
| ) |
Initializes the generic tracer packages and adds their tracers to the list Adds the tracers in the list of generic tracers to the set of MOM tracers (i.e., MOM-register them) Register these tracers for restart.
| [in] | hi | Horizontal index ranges |
| [in] | gv | The ocean's vertical grid structure |
| [in] | param_file | A structure to parse for run-time parameters |
| cs | Pointer to the control structure for this module | |
| tr_reg | Pointer to the control structure for the tracer advection and diffusion module. | |
| restart_cs | Pointer to the restart control structure. |
Definition at line 98 of file MOM_generic_tracer.F90.