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.

[source]

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.

[source]

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 :: param_file [in] A structure to parse for run-time parameters

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

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

  • inputdir :: inputdir [in] Directory containing input files

  • use_marbl :: 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

[source]

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 :: atm_fine_dust_flux [in] atmosphere fine dust flux from IOB [kg m-2 s-1]

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

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

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

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

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

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

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

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

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

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

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

  • swpen_ifrac_n :: 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 :: i0 [in] i index offset

  • j0 :: j0 [in] j index offset

  • fluxes :: 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

[source]

[source]