Allometry

Agate.Library.Allometry.allometric_palatability_unimodalMethod
allometric_palatability_unimodal(prey_data, predator_data)

Calculates the unimodal allometric palatability of prey based on predator-prey diameters.

This function extracts prey_diameter, predator_diameter, optimum_predator_prey_ratio, and specificity from the provided dictionaries and calculates the palatability using the diameter-based formula.

Note that this formulation differs from the currently operational MITgcm-DARWIN model as it uses diameter instead of volumes and is structurally different. However, both formulations result in a unimodal response the width and optima are modulated by the optimumpredatorprey ratio and the specificity.

Arguments

  • prey_data: A dictionary containing prey-specific data:
    • diameters: Diameter of the prey.
  • predator_data: A dictionary containing predator-specific data:
    • can_eat: A binary value (1 or 0) indicating if the predator can consume prey. If this is set to 0, palatability is set to 0.
    • diameters: Diameter of the predator.
    • optimum_predator_prey_ratio: The optimal predator-prey diameter ratio for the predator.
    • specificity: A parameter controlling how sharply the palatability decreases away from the optimal ratio.

Returns

  • palatability: A number between 0 and 1 representing the palatability.
source
Agate.Library.Allometry.allometric_palatability_unimodal_protectionMethod
allometric_palatability_unimodal_protection(prey_data, predator_data)

Calculates the unimodal allometric palatability of prey, accounting for additional prey protection mechanisms.

The function uses a modified unimodal relationship defined by: palatability = prey_protection / (1 + (predator_prey_ratio - predator_prey_optimum)^2)^predator_specificity

Arguments

  • prey_data: A dictionary containing prey-specific data:
    • diameters: Diameter of the prey.
    • protection: A scaling factor between 0 and 1 representing additional protection mechanisms of the prey.
  • predator_data: A dictionary containing predator-specific data:
    • can_eat: A binary value (1 or 0) indicating if the predator can consume prey. If this is set to 0, palatability is set to 0.
    • diameters: Diameter of the predator.
    • optimum_predator_prey_ratio: The optimal predator-prey diameter ratio for the predator.
    • specificity: A parameter controlling how sharply the palatability decreases away from the optimal ratio.

Returns

  • palatability: A number between 0 and prey_protection representing the palatability.
source

Growth

Agate.Library.Growth.default_PCMethod
PC = PCᵐᵃˣ * γⁿᵘᵗ *  γˡⁱᵍʰᵗ * fᵗᵉᵐᵖ *  γᶜᵒ²

Carbon-specific growth rate for plankton (Default MITgcm-DARWIN formulation).

Arguments

  • PCᵐᵃˣ: maximum carbon-specific growth rate
  • γⁿᵘᵗ: nutrient limition
  • γˡⁱᵍʰᵗ: light limition
  • fᵗᵉᵐᵖ: temperature limitation
  • γᶜᵒ²: carbon dioxide limitation
source

Mortality

Agate.Library.Mortality.linear_lossMethod

Linear mortality rate. In this formulation mortality is constant, and can be interpreted as a "closure term" for low density predation and and other death terms.

Arguments

  • P: plankton concentration
  • l: mortality rate
source
Agate.Library.Mortality.net_linear_lossMethod

Net loss of all plankton due to linear mortality.

Arguments

  • P: NamedArray which includes all plankton concentration values
  • linear_mortality: NamedArray of all plankton linear mortality rates
source
Agate.Library.Mortality.net_quadratic_lossMethod

Net loss of all plankton due to quadratic mortality.

Arguments

  • P: NamedArray which includes all plankton concentration values
  • quadratic_mortality: NamedArray of all plankton quadratic mortality rates
source
Agate.Library.Mortality.quadratic_lossMethod

Quadratic mortality coefficient. In this formulation mortality increases exponentially with plankton biomass and is often interpreted to represent viral processes and non-represented density-dependent predation effects.

Arguments

  • P: plankton concentration
  • l: mortality rate
source

Nutrients

Agate.Library.Nutrients.monod_limitationMethod
R / (kᵣ + R)

Monod formulation of nutrient limitation, which is based on Michaelis-Menten enzyme kinetics.

Arguments

  • R: nutrient (e.g. N, P, Si)
  • kᵣ: nutrient half saturation constant

Note that sometimes this formulation is also used for Predation ('Holling type 2').

source

Photosynthesis

Agate.Library.Photosynthesis.light_limitation_geiderMethod
Pᶜₘₐₓ[1-exp((-αᶜʰˡθᶜE₀)/Pᶜₘₐₓ)]

A light limitation function which depends on the cellular ratio of chlorophyll to carbon. This formulation is based on equation (4) from Geider et al., 1998.

Arguments

  • PAR: photosynthetic active radiation (E₀)
  • maximum_growth_rate: maximum growth rate before nutrient limitation (Pᶜₘₐₓ)
  • photosynthetic_slope: initial photosynthetic slope (αᶜʰˡ)
  • chlorophyll_to_carbon_ratio: ratio between cellular chlorophyll and carbon (θᶜ)
source
Agate.Library.Photosynthesis.light_limitation_smithMethod
α * PAR / sqrt(μ₀ ^ 2 + α ^ 2 * PAR ^ 2)

Smith 1936 formulation of light limitation (also see Evans and Parslow, 1985).

Arguments

  • PAR: photosynthetic active radiation
  • α: initial photosynthetic slope
  • μ₀: maximum growth rate at T = 0 °C (this seems weird?, from Kuhn 2015)
source
Agate.Library.Photosynthesis.net_photosynthetic_growth_single_nutrientMethod

Net photosynthetic growth of all plankton assuming geider light limitation.

Arguments

  • N: Nutrient
  • P: NamedArray which includes all plankton concentration values
  • PAR: PAR
  • maximum_growth_rate: NamedArray of all plankton maximum growth rates
  • nutrient_half_saturation: NamedArray of all plankton nutrient half saturation constants
source
Agate.Library.Photosynthesis.net_photosynthetic_growth_single_nutrient_geider_lightMethod

Net photosynthetic growth of all plankton.

Arguments

  • N: Nutrient
  • P: NamedArray which includes all plankton concentration values
  • PAR: PAR
  • maximum_growth_rate: NamedArray of all plankton maximum growth rates
  • nutrient_half_saturation: NamedArray of all plankton nutrient half saturation constants
  • photosynthetic_slope: initial photosynthetic slope (αᶜʰˡ)
  • chlorophyll_to_carbon_ratio: ratio between cellular chlorophyll and carbon (θᶜ)
source
Agate.Library.Photosynthesis.photosynthetic_growth_single_nutrientMethod

Single nutrient monod smith photosynthetic growth (used, for example, in Kuhn 2015).

Arguments

  • N: nutrient concentration
  • P: phytoplankton concentration
  • PAR: photosynthetic active radiation
  • μ₀: maximum growth rate at T = 0 °C
  • kₙ: nutrient half saturation
  • α: initial photosynthetic slope
source
Agate.Library.Photosynthesis.photosynthetic_growth_single_nutrient_geider_lightMethod

Single nutrient geider photosynthetic growth.

Arguments

  • N: nutrient concentration
  • P: phytoplankton concentration
  • PAR: photosynthetic active radiation
  • maximum_growth_rate: maximum growth rate before nutrient limitation (Pᶜₘₐₓ)
  • kₙ: nutrient half saturation
  • photosynthetic_slope: initial photosynthetic slope (αᶜʰˡ)
  • chlorophyll_to_carbon_ratio: ratio between cellular chlorophyll and carbon (θᶜ)
source
Agate.Library.Photosynthesis.γˡⁱᵍʰᵗMethod
γˡⁱᵍʰᵗ = (1 - ℯ^(kˢᵃᵗ*I)) * ℯ^kⁱⁿʰ * nˡⁱᵍʰᵗ

Light limitation for plankton (Default MITgcm-DARWIN formulation).

Arguments

  • I: irradiance
  • kˢᵃᵗ: half saturation constant of light saturation
  • kⁱⁿʰ: half saturation constant of light inhibition
  • nˡⁱᵍʰᵗ: light penalty term
source

Predation

Agate.Library.Predation.assimilation_efficiency_emergent_binaryMethod
assimilation_efficiency_emergent_binary(prey_data, predator_data)

Determines the assimilation efficiency of a predator consuming prey, based on binary conditions of edibility.

The function evaluates whether the predator can eat the prey and whether the prey can be consumed, and assigns the assimilation efficiency accordingly.

Arguments

  • prey_data: A dictionary containing prey-specific data:
    • can_be_eaten: A binary value (1 or 0) indicating if the prey can be consumed by the predator.
  • predator_data: A dictionary containing predator-specific data:
    • can_eat: A binary value (1 or 0) indicating if the predator can consume prey.
    • assimilation_efficiency: The efficiency with which the predator assimilates nutrients from the prey if the conditions are met.

Returns

  • assimilation_efficiency:
    • If can_eat is 1 and can_be_eaten is 1, returns the predator's assimilation_efficiency.
    • Otherwise, returns 0.
source
Agate.Library.Predation.holling_type_2Method

Holling's "type II" functional response as describe in Holling 1959. The function is similar to the Monod equation and Michaelis-Menten equation of for enzyme kinetics. The formulation is characterized by decelerating predation as prey concentrations increase.

Arguments

  • R: prey density
  • k: prey density at which predation is half it's maximum rate
source
Agate.Library.Predation.net_predation_assimilation_loss_preferentialMethod

Net predator assimilation loss of all plankton.

Arguments

  • P: NamedArray which includes all plankton concentration values
  • holling_half_saturation: NamedArray of all plankton predation half saturation constants
  • maximum_predation_rate: NamedArray of all plankton maximum predation rates
  • palatability: NamedArray of all plankton palatabilities where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
  • assimilation_efficiency: NamedArray of all plankton assimilation efficiencies where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
source
Agate.Library.Predation.predation_assimilation_loss_idealizedMethod

Estimates the rate at which plankton predation gain is lost to the environment due to inefficient assimilation efficiency (e.g. 'sloppy feeding').

Note that this differs from the predationgainidealized as this function represents the transfer of biomass from the prey to the environment rather than the transfer of biomass from the prey to the predator.

Arguments

  • P: phytoplankton concentration
  • Z: zooplankton concentration
  • β: assimilation efficiency of prey to the predator
  • gₘₐₓ: maximum grazing rate of the predator
  • kₚ: grazing/holling half saturation
source
Agate.Library.Predation.predation_assimilation_loss_preferentialMethod

Estimates the rate at which plankton predation gain is lost to the environment due to inefficient assimilation efficiency (e.g. 'sloppy feeding').

Note that this differs from the predationgainpreferential as this function represents the transfer of biomass from the prey to the environment rather than the transfer of biomass from the prey to the predator.

Arguments

  • P: phytoplankton concentration
  • Z: zooplankton concentration
  • β: assimilation efficiency of prey to the predator
  • gₘₐₓ: maximum grazing rate of the predator
  • kₚ: grazing/holling half saturation
  • palatability: the likelihood at which the predator feeds on the prey
source
Agate.Library.Predation.predation_gain_idealizedMethod

Estimates the gain rate of Z (predator) feeding on P (prey). In this formulation predation rate is multiplied by an assimilation efficiency (β) which represents 'sloppy feeding'.

Arguments

  • P: phytoplankton concentration
  • Z: zooplankton concentration
  • β: assimilation efficiency
  • gₘₐₓ: maximum grazing rate
  • kₚ: grazing/holling half saturation
source
Agate.Library.Predation.predation_gain_preferentialMethod

Estimates the gain rate of Z (predator) feeding on P (prey). In this formulation predation rate is multiplied by an assimilation efficiency (β) which represents 'sloppy feeding'.

Arguments

  • P: phytoplankton concentration
  • Z: zooplankton concentration
  • β: assimilation efficiency
  • gₘₐₓ: maximum grazing rate
  • kₚ: grazing/holling half saturation
  • palatability: the likelihood at which the predator feeds on the prey
source
Agate.Library.Predation.predation_loss_idealizedMethod

Estimates the loss rate of P (prey), to Z (predator). In this formulation predator-prey interactions are modulated both by their density (Holling type 2) and the prey-predator palatability.

Arguments

  • P: phytoplankton concentration
  • Z: zooplankton concentration
  • gₘₐₓ: maximum grazing rate
  • kₚ: prey density at which predation is half it's maximum rate
source
Agate.Library.Predation.predation_loss_preferentialMethod

Estimates the loss rate of P (prey), to Z (predator). In this formulation predator-prey interactions are modulated both by their density (Holling type 2) and the prey-predator palatability.

Arguments

  • P: phytoplankton concentration
  • Z: zooplankton concentration
  • gₘₐₓ: maximum grazing rate
  • kₚ: prey density at which predation is half it's maximum rate
  • palatability: the likelihood at which the predator feeds on the prey
source
Agate.Library.Predation.summed_predation_assimilation_loss_preferentialMethod

Estimates the total assimilation loss of the predator (P[predator_name]) feeding on all plankton.

For plankton P[predator_name], the function loops over each prey (P[prey_name]) to estimate the total assimilation loss during predation.

Arguments

  • predator_name: name of the predator, e.g. P[predator_name]
  • P: NamedArray which includes all plankton concentration values
  • maximum_predation_rate: NamedArray of all plankton predation rates
  • holling_half_saturation: NamedArray of all plankton predation half saturation constants
  • palatability: NamedArray of all plankton palatabilities where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
  • assimilation_efficiency: NamedArray of all plankton assimilation efficiencies where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
source
Agate.Library.Predation.summed_predation_gain_preferentialMethod

Estimates the total predation gain of the predator (P[predator_name]) feeding on all plankton.

For plankton P[predator_name], the function loops over each prey (P[prey_name]) to estimate the total gain due to predation.

Arguments

  • predator_name: name of the predator, e.g. P[predator_name]
  • P: NamedArray which includes all plankton concentration values
  • maximum_predation_rate: NamedArray of all plankton predation rates
  • holling_half_saturation: NamedArray of all plankton predation half saturation constants
  • palatability: NamedArray of all plankton palatabilities where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
  • assimilation_efficiency: NamedArray of all plankton assimilation efficiencies where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
source
Agate.Library.Predation.summed_predation_loss_preferentialMethod

Estimates the total loss rate of the prey P[prey_name] to predation.

For plankton P[prey_name], the function loops over each predator to estimate the total loss of plankton prey_name due to predation.

Arguments

  • prey_name: name of the prey plankton to access value as P[prey_name]
  • P: NamedArray which includes all plankton
  • maximum_predation_rate: NamedArray of all plankton predation rates
  • holling_half_saturation: NamedArray of all plankton predation half saturation constants
  • palatability: NamedArray of all plankton palatabilities where:
    • each row is a predator
    • each column is a prey
    • values are accessed as palat[predator, prey]
    • for a non-predator [i,:]=0
source

Remineralization