mom_ocmip2_cfc module reference

Simulates CFCs using the OCMIP2 protocols.

More…

Data Types

ocmip2_cfc_cs

The control structure for the OCMPI2_CFC tracer package.

Functions/Subroutines

register_ocmip2_cfc()

Register the OCMIP2 CFC tracers to be used with MOM and read the parameters that are used with this tracer package.

flux_init_ocmip2_cfc()

This subroutine initializes the air-sea CFC fluxes, and optionally returns the indicies of these fluxes.

initialize_ocmip2_cfc()

Initialize the OCMP2 CFC tracer fields and set up the tracer output.

init_tracer_cfc()

This subroutine initializes a tracer array.

ocmip2_cfc_column_physics()

This subroutine applies diapycnal diffusion, souces and sinks and any other column tracer physics or chemistry to the OCMIP2 CFC tracers.

ocmip2_cfc_stock()

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated.

ocmip2_cfc_surface_state()

This subroutine extracts the surface CFC concentrations and other fields that are shared with the atmosphere to calculate CFC fluxes.

ocmip2_cfc_end()

Deallocate any memory associated with the OCMIP2 CFC tracer package.

Detailed Description

By Robert Hallberg, 2007.

This module contains the code that is needed to set up and use CFC-11 and CFC-12 in a fully coupled or ice-ocean model context using the OCMIP2 protocols

Type Documentation

type mom_ocmip2_cfc/ocmip2_cfc_cs

The control structure for the OCMPI2_CFC tracer package.

Type fields
  • % a1_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a1_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a2_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a2_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a3_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a3_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a4_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % a4_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d1_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d1_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d2_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d2_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d3_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d3_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d4_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % d4_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % e1_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % e1_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % e2_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % e2_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % e3_11 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % e3_12 [real] :: Coefficients used in the CFC11 and CFC12 solubility calculation.

  • % ic_file [character (len=200)] :: The file in which the CFC initial values can be found, or an empty string for internal initilaization.

  • % z_ic_file [logical] :: If true, the IC_file is in Z-space. The default is false..

  • % time [type(time_type),pointer] :: A pointer to the ocean model’s clock.

  • % tr_reg [type(tracer_registry_type),pointer] :: A pointer to the MOM6 tracer registry.

  • % cfc11 [real(:,:,:),pointer] :: The CFC11 concentration [mol m-3].

  • % cfc12 [real(:,:,:),pointer] :: The CFC12 concentration [mol m-3].

  • % cfc11_ic_val [real] :: The initial value assigned to CFC11 [mol m-3].

  • % cfc12_ic_val [real] :: The initial value assigned to CFC12 [mol m-3].

  • % cfc11_land_val [real] :: The value of CFC11 used where land is masked out [mol m-3].

  • % cfc12_land_val [real] :: The value of CFC12 used where land is masked out [mol m-3].

  • % tracers_may_reinit [logical] :: If true, tracers may be reset via the initialization code if they are not found in the restart files.

  • % cfc11_name [character (len=16)] :: CFC11 variable name.

  • % cfc12_name [character (len=16)] :: CFC12 variable name.

  • % ind_cfc_11_flux [integer] :: Index returned by atmos_ocn_coupler_flux that is used to pack and unpack surface boundary condition arrays.

  • % ind_cfc_12_flux [integer] :: Index returned by atmos_ocn_coupler_flux that is used to pack and unpack surface boundary condition arrays.

  • % diag [type(diag_ctrl),pointer] :: A structure that is used to regulate the timing of diagnostic output.

  • % restart_csp [type(mom_restart_cs),pointer] :: Model restart control structure.

  • % cfc11_desc [type(vardesc)] :: A set of metadata for the CFC11 tracer.

  • % cfc12_desc [type(vardesc)] :: A set of metadata for the CFC12 tracer.

Function/Subroutine Documentation

function mom_ocmip2_cfc/register_ocmip2_cfc(HI, GV, param_file, CS, tr_Reg, restart_CS) [logical]

Register the OCMIP2 CFC tracers to be used with MOM and read the parameters that are used with this tracer package.

Parameters
  • hi :: [in] A horizontal index type structure.

  • gv :: [in] The ocean’s vertical grid structure.

  • param_file :: [in] A structure to parse for run-time parameters.

  • cs :: A pointer that is set to point to the control structure for this module.

  • tr_reg :: A pointer to the tracer registry.

  • restart_cs :: A pointer to the restart control structure.

Call to

flux_init_ocmip2_cfc mom_error_handler::mom_error mom_tracer_registry::register_tracer mom_io::var_desc

subroutine mom_ocmip2_cfc/flux_init_ocmip2_cfc(CS, verbosity)

This subroutine initializes the air-sea CFC fluxes, and optionally returns the indicies of these fluxes. It can safely be called multiple times.

Parameters
  • cs :: An optional pointer to the control structure for this module; if not present, the flux indicies are not stored.

  • verbosity :: [in] A 0-9 integer indicating a level of verbosity.

Called from

register_ocmip2_cfc

subroutine mom_ocmip2_cfc/initialize_ocmip2_cfc(restart, day, G, GV, US, h, diag, OBC, CS, sponge_CSp)

Initialize the OCMP2 CFC tracer fields and set up the tracer output.

Parameters
  • restart :: [in] .true. if the fields have already been read from a restart file.

  • day :: [in] Time of the start of the run.

  • g :: [in] The ocean’s grid structure.

  • gv :: [in] The ocean’s vertical grid structure.

  • us :: [in] A dimensional unit scaling type

  • h :: [in] Layer thicknesses [H ~> m or kg m-2].

  • diag :: [in] A structure that is used to regulate diagnostic output.

  • obc :: This open boundary condition type specifies whether, where, and what open boundary conditions are used.

  • cs :: The control structure returned by a previous call to register_OCMIP2_CFC.

  • sponge_csp :: A pointer to the control structure for the sponges, if they are in use. Otherwise this may be unassociated.

Call to

init_tracer_cfc

subroutine mom_ocmip2_cfc/init_tracer_cfc(h, tr, name, land_val, IC_val, G, GV, US, CS)

This subroutine initializes a tracer array.

Parameters
  • g :: [in] The ocean’s grid structure

  • gv :: [in] The ocean’s vertical grid structure.

  • us :: [in] A dimensional unit scaling type

  • h :: [in] Layer thicknesses [H ~> m or kg m-2]

  • tr :: [out] The tracer concentration array

  • name :: [in] The tracer name

  • land_val :: [in] A value the tracer takes over land

  • ic_val :: [in] The initial condition value for the tracer

  • cs :: The control structure returned by a previous call to register_OCMIP2_CFC.

Call to

mom_error_handler::mom_error mom_tracer_z_init::tracer_z_init

Called from

initialize_ocmip2_cfc

subroutine mom_ocmip2_cfc/ocmip2_cfc_column_physics(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, evap_CFL_limit, minimum_forcing_depth)

This subroutine applies diapycnal diffusion, souces and sinks and any other column tracer physics or chemistry to the OCMIP2 CFC tracers. CFCs are relatively simple, as they are passive tracers with only a surface flux as a source.

Parameters
  • g :: [in] The ocean’s grid structure

  • gv :: [in] The ocean’s vertical grid structure

  • h_old :: [in] Layer thickness before entrainment [H ~> m or kg m-2].

  • h_new :: [in] Layer thickness after entrainment [H ~> m or kg m-2].

  • ea :: [in] an array to which the amount of fluid entrained

  • eb :: [in] an array to which the amount of fluid entrained

  • fluxes :: [in] A structure containing pointers to thermodynamic and tracer forcing fields. Unused fields have NULL ptrs.

  • dt :: [in] The amount of time covered by this call [T ~> s]

  • us :: [in] A dimensional unit scaling type

  • cs :: The control structure returned by a previous call to register_OCMIP2_CFC.

  • evap_cfl_limit :: [in] Limit on the fraction of the water that can be fluxed out of the top layer in a timestep [nondim]

  • minimum_forcing_depth :: [in] The smallest depth over which fluxes can be applied [H ~> m or kg m-2]

Call to

mom_tracer_diabatic::applytracerboundaryfluxesinout mom_tracer_diabatic::tracer_vertdiff

function mom_ocmip2_cfc/ocmip2_cfc_stock(h, stocks, G, GV, CS, names, units, stock_index) [integer]

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

Parameters
  • g :: [in] The ocean’s grid structure.

  • gv :: [in] The ocean’s vertical grid structure.

  • h :: [in] Layer thicknesses [H ~> m or kg m-2].

  • stocks :: [out] the mass-weighted integrated amount of each tracer, in kg times concentration units [kg conc].

  • cs :: The control structure returned by a previous call to register_OCMIP2_CFC.

  • names :: [out] The names of the stocks calculated.

  • units :: [out] The units of the stocks calculated.

  • stock_index :: [in] The coded index of a specific stock being sought.

Return

undefined :: The number of stocks calculated here.

Call to

mom_io::query_vardesc

Called from

mom_tracer_flow_control::call_tracer_stocks

subroutine mom_ocmip2_cfc/ocmip2_cfc_surface_state(sfc_state, h, G, GV, CS)

This subroutine extracts the surface CFC concentrations and other fields that are shared with the atmosphere to calculate CFC fluxes.

Parameters
  • g :: [in] The ocean’s grid structure.

  • gv :: [in] The ocean’s vertical grid structure

  • sfc_state :: [inout] A structure containing fields that describe the surface state of the ocean.

  • h :: [in] Layer thickness [H ~> m or kg m-2].

  • cs :: The control structure returned by a previous call to register_OCMIP2_CFC.

subroutine mom_ocmip2_cfc/ocmip2_cfc_end(CS)

Deallocate any memory associated with the OCMIP2 CFC tracer package.

Parameters

cs :: The control structure returned by a previous call to register_OCMIP2_CFC.