marbl_forcing_mod module reference

This module provides a common datatype to provide forcing for MARBL tracers regardless of driver.

More…

Data Types

marbl_forcing_diag_ids

Data type used to store diagnostic index returned from register_diag_field() For the forcing fields that can be written via post_data() For the forcing fields that can be written via post_data()

marbl_forcing_cs

Control structure for this module.

Functions/Subroutines

marbl_forcing_init()

convert_driver_fields_to_forcings()

Detailed Description

This module provides a common datatype to provide forcing for MARBL tracers regardless of driver.

Type Documentation

type marbl_forcing_mod/marbl_forcing_diag_ids

Data type used to store diagnostic index returned from register_diag_field() For the forcing fields that can be written via post_data() For the forcing fields that can be written via post_data()

Type fields:
  • % atm_fine_dust [integer,private] :: Atmospheric fine dust component of dust_flux.

  • % atm_coarse_dust [integer,private] :: Atmospheric coarse dust component of dust_flux.

  • % atm_bc [integer,private] :: Atmospheric black carbon component of iron_flux.

  • % ice_dust [integer,private] :: Sea-ice dust component of dust_flux.

  • % ice_bc [integer,private] :: Sea-ice black carbon component of iron_flux.

type marbl_forcing_mod/marbl_forcing_cs

Control structure for this module.

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

  • % dust_ratio_thres [real] :: coarse/fine dust ratio threshold [1]

  • % dust_ratio_to_fe_bioavail_frac [real] :: ratio of dust to iron bioavailability fraction [1]

  • % fe_bioavail_frac_offset [real] :: offset for iron bioavailability fraction [1]

  • % atm_fe_to_bc_ratio [real] :: atmospheric iron to black carbon ratio [1]

  • % atm_bc_fe_bioavail_frac [real] :: atmospheric black carbon to iron bioavailablity fraction ratio [1]

  • % seaice_fe_to_bc_ratio [real] :: sea-ice iron to black carbon ratio [1]

  • % seaice_bc_fe_bioavail_frac [real] :: sea-ice black carbon to iron bioavailablity fraction ratio [1]

  • % iron_frac_in_atm_fine_dust [real] :: Fraction of fine dust from the atmosphere that is iron [1].

  • % iron_frac_in_atm_coarse_dust [real] :: Fraction of coarse dust from the atmosphere that is iron [1].

  • % iron_frac_in_seaice_dust [real] :: Fraction of dust from the sea ice that is iron [1].

  • % atm_co2_const [real] :: atmospheric CO2 (if specifying a constant value) [ppm]

  • % atm_alt_co2_const [real] :: alternate atmospheric CO2 for _ALT_CO2 tracers (if specifying a constant value) [ppm]

  • % diag_ids [type( marbl_forcing_diag_ids )] :: used for registering and posting some MARBL forcing fields as diagnostics

  • % use_marbl_tracers [logical] :: most functions can return immediately MARBL tracers are turned off

  • % atm_co2_iopt [integer] :: Integer version of atm_co2_opt, which determines source of atm_co2.

  • % atm_alt_co2_iopt [integer] :: Integer version of atm_alt_co2_opt, which determines source of atm_alt_co2.

Function/Subroutine Documentation

subroutine marbl_forcing_mod/marbl_forcing_init(G, US, param_file, diag, day, inputdir, use_marbl, CS)
Parameters:
  • g :: [in] The ocean’s grid structure

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

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

  • diag :: [in] Structure used to regulate diagnostic output.

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

  • inputdir :: [in] Directory containing input files

  • use_marbl :: [in] Is MARBL tracer package active?

  • cs :: [inout] A pointer that is set to point to control structure for MARBL forcing

Call to:

atm_co2_constant_iopt atm_co2_diagnostic_iopt atm_co2_prognostic_iopt mom_error_handler::mom_error mom_diag_mediator::register_diag_field

subroutine marbl_forcing_mod/convert_driver_fields_to_forcings(atm_fine_dust_flux, atm_coarse_dust_flux, seaice_dust_flux, atm_bc_flux, seaice_bc_flux, nhx_dep, noy_dep, atm_co2_prog, atm_co2_diag, afracr, swnet_afracr, ifrac_n, swpen_ifrac_n, Time, G, US, i0, j0, fluxes, CS)
Parameters:
  • atm_fine_dust_flux :: [in] atmosphere fine dust flux from IOB [kg m-2 s-1]

  • atm_coarse_dust_flux :: [in] atmosphere coarse dust flux from IOB [kg m-2 s-1]

  • seaice_dust_flux :: [in] sea ice dust flux from IOB [kg m-2 s-1]

  • atm_bc_flux :: [in] atmosphere black carbon flux from IOB [kg m-2 s-1]

  • seaice_bc_flux :: [in] sea ice black carbon flux from IOB [kg m-2 s-1]

  • afracr :: [in] open ocean fraction [1]

  • nhx_dep :: [in] NHx flux from atmosphere [kg m-2 s-1]

  • noy_dep :: [in] NOy flux from atmosphere [kg m-2 s-1]

  • atm_co2_prog :: [in] Prognostic atmospheric CO2 concentration [ppm]

  • atm_co2_diag :: [in] Diagnostic atmospheric CO2 concentration [ppm]

  • swnet_afracr :: [in] shortwave flux * open ocean fraction [W m-2]

  • ifrac_n :: [in] per-category ice fraction [1]

  • swpen_ifrac_n :: [in] per-category shortwave flux * ice fraction [W m-2]

  • time :: [in] The time of the fluxes, used for interpolating the salinity to the right time, when it is being restored.

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

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

  • i0 :: [in] i index offset

  • j0 :: [in] j index offset

  • fluxes :: [inout] MARBL-specific forcing fields

  • cs :: [inout] A pointer that is set to point to control structure for MARBL forcing

Call to:

atm_co2_constant_iopt atm_co2_diagnostic_iopt atm_co2_prognostic_iopt marbl_constants_mod::molw_fe mom_error_handler::mom_error

Called from:

mom_surface_forcing::marbl_forcing_from_data_override