PALEOocean Reactions
Ocean geometry and circulation transport
PALEOocean.Ocean.OceanNoTransport.ReactionOceanNoTransport
— TypeReactionOceanNoTransport
N ocean boxes (default N=1 ie a single 0-D box), each with a surface and floor, no transport.
Parameters
area[Vector{Float64}]
=[1.0] (m^2),default_value
=[1.0],description
="surface / floor area (per box)"depth[Vector{Float64}]
=[1.0] (m),default_value
=[1.0],description
="depth (per box)"
Methods and Variables
do_setup_grid
volume
(m^3),VT_ReactProperty
,description
="volume of ocean cells"volume_total
(m^3),VT_ReactProperty
,description
="total volume of ocean cells"Abox
(m^2),VT_ReactProperty
,description
="horizontal area of box"zupper
(m),VT_ReactProperty
,description
="depth of upper surface of box (m) 0 is surface, -100 is depth of 100 m"zlower
(m),VT_ReactProperty
,description
="depth of lower surface of box (m)"zmid
(m),VT_ReactProperty
,description
="mean depth of box"rho_ref
(kg m^-3),VT_ReactProperty
,description
="Ocean transport model density conversion factor (NB: this an artificial model quantity determined by the offline model for tracer transport, and may be distinct from physical ocean density, and from any density anomaly / potl density used by the offline physical model)"pressure
(dbar),VT_ReactProperty
,description
="Ocean pressure"Afloor
–> oceanfloor.Afloor (m^2),VT_ReactProperty
,description
="horizontal area of seafloor at base of box"Afloor_total
–> oceanfloor.Afloor_total (m^2),VT_ReactProperty
,description
="total area of seafloor"zfloor
–> oceanfloor.zfloor (m),VT_ReactProperty
,description
="depth of ocean floor (m, -ve)"Asurf
–> oceansurface.Asurf (m^2),VT_ReactProperty
,description
="horizontal area of oceansurface"
PALEOocean.Ocean.OceanTransport3box.ReactionOceanTransport3box
— TypeReactionOceanTransport3box
3-box (Sarmiento and Toggweiler, 1984), (Toggweiler and Sarmiento, 1985) ocean model.
---------------------------------------
| 1 (s) | 2(h) |
| -->--->- |
|-------------------|----| | |
| | | | /|\ |
| | |__|______|___|
| | | | |
| 3 (d) -<--<-- \|/ |
| circT fhd |
| |
----------------------------------------
Parameters
circT[Float64]
=2.0e7 (m^3 s^-1),default_value
=2.0e7,description
="overturning circulation"circfhd[Float64]
=6.0e7 (m^3 s^-1),default_value
=6.0e7,description
="high latitude <-> deep exchange rate"temp[Vector{Float64}]
=[21.5, 2.5, 2.5] (degrees C),default_value
=[21.5, 2.5, 2.5],description
="ocean temperature"temp_trackglobal[Bool]
=false,default_value
=false,description
="track global temperature (apply offset of global temp -15C"
Methods and Variables for default Parameters
do_setup_grid
volume
(m^3),VT_ReactProperty
,description
="volume of ocean cells"volume_total
(m^3),VT_ReactProperty
,description
="total volume of ocean cells"Abox
(m^2),VT_ReactProperty
,description
="horizontal area of box"zupper
(m),VT_ReactProperty
,description
="depth of upper surface of box (m) 0 is surface, -100 is depth of 100 m"zlower
(m),VT_ReactProperty
,description
="depth of lower surface of box (m)"zmid
(m),VT_ReactProperty
,description
="mean depth of box"rho_ref
(kg m^-3),VT_ReactProperty
,description
="Ocean transport model density conversion factor (NB: this an artificial model quantity determined by the offline model for tracer transport, and may be distinct from physical ocean density, and from any density anomaly / potl density used by the offline physical model)"pressure
(dbar),VT_ReactProperty
,description
="Ocean pressure"Afloor
–> oceanfloor.Afloor (m^2),VT_ReactProperty
,description
="horizontal area of seafloor at base of box"Afloor_total
–> oceanfloor.Afloor_total (m^2),VT_ReactProperty
,description
="total area of seafloor"zfloor
–> oceanfloor.zfloor (m),VT_ReactProperty
,description
="depth of ocean floor (m, -ve)"Asurf
–> oceansurface.Asurf (m^2),VT_ReactProperty
,description
="horizontal area of oceansurface"sal
(psu),VT_ReactProperty
,description
="Ocean salinity"rho
(kg m^-3),VT_ReactProperty
,description
="physical ocean density"open_area_fraction
–> oceansurface.open_area_fraction (),VT_ReactProperty
,description
="fraction of area open to atmosphere"
do_temperature
- [
TEMP
] –> global.TEMP (K),VT_ReactDependency
,description
="global mean temperature" temp
(K),VT_ReactProperty
,description
="Ocean temperature"
- [
PALEOocean.Ocean.OceanTransport6box.ReactionOceanTransport6box
— TypeReactionOceanTransport6box
4+2-box ocean model from (Daines and Lenton, 2016) This is based on:
- the four-box model of (Hotinski et al., 2000)
- the five-box model of (Watson, 1995)
- the upwelling region representation of (Canfield, 2006)
There are two main ingredients here:
An open-ocean 'intermediate/thermocline' box(i) from (Hotinski et al., 2000), coupled to the low-latitude surface box via an Ekman pumping term and to high latitude box (h) via an overturning circulation term. This is a more realistic representation of the open ocean than the 3-box (Sarmiento and Toggweiler, 1984), (Toggweiler and Sarmiento, 1985) model.
A two-box shelf/slope (boxes r, rc), which can be configured as
- an upwelling region (k_slopetype='OMZ'), cf Canfield (2006) with upwelling from the intermediate/thermocline box
- a low-latitude shelf (k_slopetype='shelf') with exchange terms to low-latitude surface (s) and thermocline (i) boxes
See Oxygen oases\Box Model 20150922\HotinskiCalc5Box.m, HotinskiConstants5Box.m, HotinskiCalcCirc6.m
-------------------------------------------------- | 5(r) | 1 (s) | 2(h) | | | | | |-----------|------------------------| | | 6(rc) | | | | | 3 (i) |_____________| -----------| | | | |------------------------ | | 4(d) | | | -----------------------------------------------
Parameters
slopetype[String]
="OMZ",default_value
="OMZ",allowed_values
=["OMZ", "shelf"],description
="type of shelf circulation (boxes r, rc)"circT[Float64]
=1.93e7 (m^3 s^-1),default_value
=1.93e7,description
="overturning circulation (exchange high lat (h) to deep (d) and thermocline (i)"circfhd[Float64]
=4.87e7 (m^3 s^-1),default_value
=4.87e7,description
="high latitude <-> deep exchange rate"circR[Float64]
=2.0e7 (m^3 s^-1),default_value
=2.0e7,description
="upwelling thermocline (i) to slope (rc) to upwell (r) to low lat surface (s)"totalEkman[Float64]
=6.0e7 (m^3 s^-1),default_value
=6.0e7,description
="total wind-driven Ekman pumping"circS[Float64]
=1.0e6 (m^3 s^-1),default_value
=1.0e6,description
="upwell(r) <-> low lat surf box (s) exchange"temp[Vector{Float64}]
=[21.5, 2.5, 2.5, 2.5, 21.5, 2.5] (degrees C),default_value
=[21.5, 2.5, 2.5, 2.5, 21.5, 2.5],description
="ocean temperature"temp_trackglobal[Bool]
=false,default_value
=false,description
="track global temperature (apply offset of global temp -15C"
Methods and Variables for default Parameters
do_setup_grid
volume
(m^3),VT_ReactProperty
,description
="volume of ocean cells"volume_total
(m^3),VT_ReactProperty
,description
="total volume of ocean cells"Abox
(m^2),VT_ReactProperty
,description
="horizontal area of box"zupper
(m),VT_ReactProperty
,description
="depth of upper surface of box (m) 0 is surface, -100 is depth of 100 m"zlower
(m),VT_ReactProperty
,description
="depth of lower surface of box (m)"zmid
(m),VT_ReactProperty
,description
="mean depth of box"rho_ref
(kg m^-3),VT_ReactProperty
,description
="Ocean transport model density conversion factor (NB: this an artificial model quantity determined by the offline model for tracer transport, and may be distinct from physical ocean density, and from any density anomaly / potl density used by the offline physical model)"pressure
(dbar),VT_ReactProperty
,description
="Ocean pressure"Afloor
–> oceanfloor.Afloor (m^2),VT_ReactProperty
,description
="horizontal area of seafloor at base of box"Afloor_total
–> oceanfloor.Afloor_total (m^2),VT_ReactProperty
,description
="total area of seafloor"zfloor
–> oceanfloor.zfloor (m),VT_ReactProperty
,description
="depth of ocean floor (m, -ve)"Asurf
–> oceansurface.Asurf (m^2),VT_ReactProperty
,description
="horizontal area of oceansurface"sal
(psu),VT_ReactProperty
,description
="Ocean salinity"rho
(kg m^-3),VT_ReactProperty
,description
="physical ocean density"open_area_fraction
–> oceansurface.open_area_fraction (),VT_ReactProperty
,description
="fraction of area open to atmosphere"
do_temperature
- [
TEMP
] –> global.TEMP (K),VT_ReactDependency
,description
="global mean temperature" temp
(K),VT_ReactProperty
,description
="Ocean temperature"
- [
PALEOocean.Ocean.OceanTransportColumn.ReactionOceanTransportColumn
— TypeReactionOceanTransportColumn
Set up 1D ocean column grid, provide tracer transport using supplied eddy diffusivity Kz
.
A netCDF file (name specified by grid_file
parameter) should provide zupper
, zmid
, zlower
(m) defining z coordinates of cell surfaces and centres for a 1D column.
Eddy diffusivity on cell upper surfaces should be provided by a variable Kz
(m^2 s-1).
Parameters
grid_file[String]
="S2P3_depth80_m2amp04.nc",default_value
="S2P3_depth80_m2amp04.nc",description
="netcdf file with grid data (zmid, zupper, zlower)"column_area[Float64]
=1.0 (m^2),default_value
=1.0,description
="column area"
Methods and Variables
METHODS PALEOboxes.DocStrings.Methods(:methods_setup) exception: ErrorException("PALEOocean.Ocean.OceanTransportColumn.ReactionOceanTransportColumn register_methods! not implemented")
METHODS PALEOboxes.DocStrings.Methods(:methods_do) exception: ErrorException("PALEOocean.Ocean.OceanTransportColumn.ReactionOceanTransportColumn register_methods! not implemented")
PALEOocean.Ocean.OceanTransportRomaniello2010.ReactionOceanTransportRomanielloICBM
— TypeReactionOceanTransportRomanielloICBM
Modern global and Black Sea ocean transport from (Romaniello and Derry, 2010) (Romaniello and Derry, 2010),
Global configurations (circname = Global_79_Box
, circname = Global_13_Box
):
The ocean
Domain consists of three columns, :hlat, :gyre, :upw
Ocean box indices are:
:hlat :gyre :upw
---------------------------
| 1 | 14 | 47 |
| | | |
| | | |
| | | |
| 13 | 46 | 79 |
-------------------
:hlat :gyre :upw
---------------------------
| 1 | 4 | 9 |
| | | |
| | | |
| | | |
| 3 | 8 | 13 |
-------------------
The oceansurface
Domain has three boxes, the oceanfloor
Domain has 1 box per ocean box.
Black Sea configuration (circname = Black_Sea
)
The ocean
Domain consists of a single column. The oceansurface
Domain has one box, the oceanfloor
Domain has 1 box per ocean box.
Bosphorus outflow flux (Parameter bosph_outflow
) is represented by Variables with default linking to a fluxBosphorusOutflow
Domain:
bosph_outflow_<X> --> fluxBosphorusOutflow.flux_<X>
The .yaml configuration file can be used to configure a closed system by adding outflow flux back into the ocean surface:
variable_links:
bosph_outflow_*: ocean.oceansurface.*_sms
Bosphorus inflow (plume) flux is represented by Variables with default linking to concentrations and source - sink fluxes in a BosphorusInflow
Domain:
bosph_inflow_<X>_conc --> BosphorusInflow.<X>_conc
bosph_inflow_<X>_sms --> BosphorusInflow.<X>_sms # will be -ve for flux into Black Sea
the .yaml configuration file can be used to configure a closed system by sourcing inflow flux from ocean surface:
variable_links:
bosph_inflow_*_conc: ocean.oceansurface.*_conc
bosph_inflow_*_sms: ocean.oceansurface.*_sms
Implementation
Reads Matlab .mat files created from the published SI with Matlab commands:
>> circ_global_79_box = Global_79_Box_ICBM_Params
>> circ_global_13_box = Global_13_Box_ICBM_Params
>> circ_black_sea = Black_Sea_ICBM_Params
>> save('romaniello_global79','-struct', 'circ_global_79_box', '-v6')
>> save('romaniello_global13','-struct', 'circ_global_13_box', '-v6')
>> save('romaniello_blacksea','-struct', 'circ_black_sea', '-v6')
Parameters
matdir[String]
="romaniello2010_transport",default_value
="romaniello2010_transport",description
="folder with Romaniello (2010) transport and geometry data files"circname[String]
="Global_79_Box",default_value
="Global_79_Box",allowed_values
=["Global79Box", "Global13Box", "Black_Sea"],description
="transport matrix from Romaniello(2010) G3"set_temp[Bool]
=true,default_value
=true,description
="true to provide and set ocean.temp variable to (very approximate) values"temp_trackglobal[Bool]
=false,default_value
=false,description
="track global temperature (apply offset of global temp -15C"bosph_outflow[Float64]
=6.04e11 (m^3 yr^-1),default_value
=6.04e11,description
="Bosphorus outflow (Black_Sea only)"bosph_inflow[Float64]
=3.05e11 (m^3 yr^-1),default_value
=3.05e11,description
="Bosphorus inflow (plume, Black_Sea only)"
Methods and Variables
do_setup_grid
volume
(m^3),VT_ReactProperty
,description
="volume of ocean cells"volume_total
(m^3),VT_ReactProperty
,description
="total volume of ocean cells"Abox
(m^2),VT_ReactProperty
,description
="horizontal area of box"zupper
(m),VT_ReactProperty
,description
="depth of upper surface of box (m) 0 is surface, -100 is depth of 100 m"zlower
(m),VT_ReactProperty
,description
="depth of lower surface of box (m)"zmid
(m),VT_ReactProperty
,description
="mean depth of box"rho_ref
(kg m^-3),VT_ReactProperty
,description
="Ocean transport model density conversion factor (NB: this an artificial model quantity determined by the offline model for tracer transport, and may be distinct from physical ocean density, and from any density anomaly / potl density used by the offline physical model)"pressure
(dbar),VT_ReactProperty
,description
="Ocean pressure"Afloor
–> oceanfloor.Afloor (m^2),VT_ReactProperty
,description
="horizontal area of seafloor at base of box"Afloor_total
–> oceanfloor.Afloor_total (m^2),VT_ReactProperty
,description
="total area of seafloor"zfloor
–> oceanfloor.zfloor (m),VT_ReactProperty
,description
="depth of ocean floor (m, -ve)"Asurf
–> oceansurface.Asurf (m^2),VT_ReactProperty
,description
="horizontal area of oceansurface"sal
(psu),VT_ReactProperty
,description
="Ocean salinity"rho
(kg m^-3),VT_ReactProperty
,description
="physical ocean density"open_area_fraction
–> oceansurface.open_area_fraction (),VT_ReactProperty
,description
="fraction of area open to atmosphere"
do_temperature
- [
TEMP
] –> global.TEMP (K),VT_ReactDependency
,description
="global mean temperature" temp
(K),VT_ReactProperty
,description
="Ocean temperature"
- [
PALEOocean.Ocean.OceanTransportTMM.ReactionOceanTransportTMM
— TypeReactionOceanTransportTMM
GCM ocean transport implementation using transport matrices in format defined by (Khatiwala, 2007) Requires download of Samar Khatiwala's TMM files (for MITgcm, UVic models) as described in https://github.com/samarkhatiwala/tmm where TM files are from http://kelvin.earth.ox.ac.uk/spk/Research/TMM/TransportMatrixConfigs/
NB: length(operatorID)
must be 2, to define operatorID[1]
for explicit and operatorID[2]
for implicit matrices.
The base_path
parameter sets the top level of the folder structure for the downloaded matrices.
Code based on TMM/tmm/models/petsc3.4/mitgchem/matlab/make_input_files_for_migchem_dic_biotic_model.m
Parameters
PARS exception: ErrorException("ReactionOceanTransportTMM requires PALEOboxes version >= 0.22, current version is 0.21.40")
Methods and Variables
METHODS PALEOboxes.DocStrings.Methods(:methods_setup) exception: ErrorException("ReactionOceanTransportTMM requires PALEOboxes version >= 0.22, current version is 0.21.40")
Vertical Transport
PALEOocean.Ocean.VerticalTransport.ReactionLightColumn
— TypeReactionLightColumn
Calculate light availability insol
in ocean interior, given surface insolation surface_insol
.
Includes: (i) a background_opacity
; (ii) contributions from any Variables representing concentrations with non-zero specific_light_extinction
attribute; (iii) any other opacity contributions added to the Target Variable opacity
.
Parameters
background_opacity[Float64]
=0.04 (m-1),default_value
=0.04,description
="background opacity"
PALEOocean.Ocean.VerticalTransport.ReactionExportDirect
— TypeReactionExportDirect
Vertical particle sinking represented as instantaneous transport, described by fixed matrices (suitable for small ocean models)
Transports a list of fluxes defined by parameter fluxlist
, from input Target Variables with local name export_<flux in fluxlist>
to output Contributor Variables remin_<flux in fluxlist>
.
Matrices are defined by parameter transportocean
for sinking within water column, and parameter transportfloor
for flux to ocean floor.
For larger, column-based ocean models use ReactionExportDirectColumn
.
Parameters
fluxlist[Vector{String}]
=["P", "N", "Corg"],default_value
=["P", "N", "Corg"],description
="names of fluxes to transport"transportocean[Vector{Vector{Float64}}]
=Vector{Float64}[],default_value
=Vector{Float64}[],description
="matrix describing ocean export"transportfloor[Vector{Vector{Float64}}]
=Vector{Float64}[],default_value
=Vector{Float64}[],description
="matrix describing oceanfloor export"conserv_errthresh[Float64]
=1.0e-5,default_value
=1.0e-5,description
="error threshold for conservation check (fraction of input)"
PALEOocean.Ocean.VerticalTransport.ReactionExportDirectColumn
— TypeReactionExportDirectColumn
Vertical particle sinking represented as instantaneous transport. As ReactionExportDirect
, but for regular column-based models with functional form of flux vs depth defined by exportfunction
parameter.
Transports a list of fluxes defined by parameter fluxlist
, from input Target Variables with local name export_<flux in fluxlist>
to output Contributor Variables remin_<flux in fluxlist>
.
Parameters
fluxlist[Vector{String}]
=String[],default_value
=String[],description
="names of fluxes to transport"transportfloor[Bool]
=true,default_value
=true,description
="true to provide oceanfloor flux, false to recycle flux into lowest ocean cell"exportfunction[String]
="SumExp",default_value
="SumExp",allowed_values
=["Martin", "SumExp"],description
="functional form for particle flux vs depth"input_frac[Vector{Float64}]
=[1.0],default_value
=[1.0],description
="fractions of input for each component ([1.0] for Martin, length=number of components for SumExp"sumexp_scale[Vector{Float64}]
=[500.0] (m),default_value
=[500.0],description
="length scales for each component of exponential decay of flux with depth"martin_rovera[Float64]
=0.858,default_value
=0.858,description
="Martin power law exponent: flux \propto depth^rovera"martin_depthmin[Float64]
=100.0 (m),default_value
=100.0,description
="Martin power law minimum depth for start of decay with depth"
PALEOocean.Ocean.VerticalTransport.ReactionSinkFloat
— TypeReactionSinkFloat
Vertical particle advection.
Applied to all concentration Variables with non-zero attribute :vertical_movement
(m d-1, +ve upwards), using naming convention <name>_conc
to identify <name>_sms
Deriv Variable to apply to. An optional variable <name>_w
may be defined that overrides :vertical_movement
to define spatially-variable vertical motion.
Parameters
transportfloor[Bool]
=true,default_value
=true,description
="true to provide oceanfloor flux, false to recycle flux into lowest ocean cell"
Biological Production
PALEOocean.Ocean.BioProd.ReactionBioProdPrest
— TypeReactionBioProdPrest
P-limited biological production, configurable to restore P to specified level or to consume fraction of nutrients
Parameters
bioprod[Vector{Int64}]
=Int64[],default_value
=Int64[],allowed_values
=[0, 1, 2, 3],description
="production type (per cell): 0 - none, 1 - restore to absolute conc, 2 - consume fraction of nutrients supplied, 3 - restore to fraction of ocean mean"bioprodval[Vector{Float64}]
=Float64[] (m-3 or none),default_value
=Float64[],description
="conc or frac corresponding to 'bioprod'"rCorgPO4[Float64]
=106.0,default_value
=106.0,description
="Corg:P Redfield ratio of organic matter produced"rNPO4[Float64]
=16.0,default_value
=16.0,description
="N:P Redfield ratio of organic matter produced"rCcarbCorg[Float64]
=0.0,default_value
=0.0,description
="ratio of Ccarb to Corg produced"trest[Float64]
=0.1 (yr),default_value
=0.1,description
="restoring timescale"CIsotope[external, DataType]
=PALEOboxes.ScalarData,default_value
=PALEOboxes.ScalarData,allowed_values
=Type[PALEOboxes.ScalarData, PALEOboxes.IsotopeLinear],description
="disable / enable carbon isotopes and specify isotope type"
Methods and Variables for default Parameters
do_bio_prod_Prest
volume
(m^3),VT_ReactDependency
,description
="ocean cell volume"volume_total
(m^3),VT_ReactDependency
,description
="ocean total volume"P_conc
(mol m^-3),VT_ReactDependency
,description
="total P concentration"Prod_Corg
–> %reaction%Prod_Corg (mol yr-1),VT_ReactProperty
,description
="organic carbon production rate"Prod_Ccarb
–> %reaction%Prod_Ccarb (mol yr-1),VT_ReactProperty
,description
="carbonate production rate"P_sms
(mol yr-1),VT_ReactContributor
,description
="total dissolved P source minus sink"- [
O2_sms
] (mol yr-1),VT_ReactContributor
,description
="O2 source minus sink" - [
TAlk_sms
] (mol yr-1),VT_ReactContributor
,description
="TAlk source minus sink" - [
DIC_sms
] (mol yr-1),VT_ReactContributor
,description
="DIC source minus sink" - [
enable_bioprod
] –> global.enable_bioprod (),VT_ReactDependency
,description
="optional forcing, =0.0 to disable, !=0.0 to enable" - [
PELCALC
] –> global.PELCALC (),VT_ReactDependency
,description
="optional forcing for pelagic calcification" - [
prod_P
] (mol yr-1),VT_ReactContributor
,description
="flux P" - [
prod_N
] (mol yr-1),VT_ReactContributor
,description
="flux N" - [
prod_Corg
] (mol yr-1),VT_ReactContributor
,description
="flux Corg" - [
prod_Ccarb
] (mol yr-1),VT_ReactContributor
,description
="flux Ccarb"
totals
Prod_Corg
–> %reaction%Prod_Corg (mol yr-1),VT_ReactDependency
,description
="organic carbon production rate"Prod_Ccarb
–> %reaction%Prod_Ccarb (mol yr-1),VT_ReactDependency
,description
="carbonate production rate"Prod_Corg_total
(mol yr-1),VT_ReactProperty
,description
="total organic carbon production rate"Prod_Ccarb_total
(mol yr-1),VT_ReactProperty
,description
="total carbonate production rate"
PALEOocean.Ocean.BioProd.ReactionBioProdMMPop
— TypeReactionBioProdMMPop
Ocean phytoplankton biological production.
Configurable to represent oxygenic photosynthesizers with P, N limitation, nitrogen fixers, anoxygenic photosynthesis limited by electron donor availability.
Export production or production is represented as a combination of limiting factors:
population_size x nutrient_limitation x light_limitation x temperature_limitation x electron_donor_limitation
population_size
may be either implicit (either a constant or ∝ nutrient concentration, generating GENIE-like parameterisations of export production), or represented explicitly as a state variable (in which case production is accumulated into a state variable phytP_conc
, and k_grazeresprate
defines a background loss rate that is exported).
Export production is than partitioned into DOM flux (components domprod_P
, domprod_N
, domprod_Corg
) and particulate flux (components partprod_P
, partprod_N
, partprod_Corg
, partprod_Ccarb
) fractions according to parameter k_nuDOM
.
See (Kriest et al., 2010) for a comparison of models of this type.
Production functional forms
population_size
Set by k_poptype
parameter:
Constant
:k_uPO4
(mol P / m-3 / yr) (represents export production)Nutrient
:k_mu*P_conc
(mol P / m-3 / yr) (represents export production)Pop
:k_mu*phytP_conc
(mol P / m-3 / yr) (represents growth of explicit populationphtyP_conc
)
nutrient_limitation
Set by k_nuttype
parameter:
PO4MM
:P_conc / (P_conc + k_KPO4)
PO4NMM
: P, N limited phytoplankton export production: cf GENIE2N2T_PO4MM_NO3
, (Fennel, 2005)PO4NMMNfix
: P limited nitrogen-fixer export production: cf GENIE2N2T_PO4MM_NO3
, (Fennel, 2005)
light_limitation
Set by k_lightlim
parameter:
fixed
: constantk_Irel
linear
: GENIE-like formk_Irel*insol/PB.Constants.k_solar_presentday
whereinsol
(W m-2) is provided insolation in each cellMM
: MITgcm-like saturating formzInsol/(k_Ic + zInsol)
wherezInsol = k_Irel*insol
andinsol
is provided PAR in each cellQE
: Saturating light limitation of rate vs (local) PARk_Irel*insol
, derived from photosynthetic QEk_alphaQE
and chl absorption cross sectionk_thetaChlC
. See eg (Geider, 1987) for summary of notation and unit conversions.
temperature_limitation
Set by k_templim
parameter:
Constant
: constant value 1.0Eppley
: Eppley curve, normalized to 1.0 at 0 deg C,exp(0.0633*(temp - PB.Constants.k_CtoK))
electron_donor_limitation
Set by k_edonor
parameter:
H2O
: constant 1.0, no electron-donor limitation on productionH2S
:H2S_conc / (H2S_conc + k_KH2S)
production limited by H2S concentration
Examples
k_poptype | k_nuttype | k_lightlim | k_templim | k_edonor | Reference |
---|---|---|---|---|---|
Constant | PO4MM | linear | Constant | H2O | P and light limited export production, as used by GENIE (Ridgwell et al., 2007) |
Pop | PO4MM | QE | Eppley | H2O | P and light limited phytoplankton population |
Parameters
rCorgPO4[Float64]
=106.0,default_value
=106.0,description
="Corg:P Redfield ratio of organic matter produced"rNPO4[Float64]
=16.0,default_value
=16.0,description
="N:P Redfield ratio of organic matter produced"rCcarbCorg[Float64]
=0.0,default_value
=0.0,description
="ratio of Ccarb to Corg produced"rCcarbCorg_fixed[Bool]
=true,default_value
=true,description
="Ccarb:Corg rain ratio true for fixed, false for sat. state dependent"k_r0[Float64]
=0.044372,default_value
=0.044372,description
="initial rain-ratio for sat. state dependent rain ratio"k_eta[Float64]
=0.8053406,default_value
=0.8053406,description
="exponent for sat. state dependent rain ratio"nuDOM[Float64]
=0.66,default_value
=0.66,description
="fraction of production to DOM reservoir"depthlimit[Float64]
=-200.0 (m),default_value
=-200.0,description
="depth limit for production"k_poptype[String]
="Constant",default_value
="Constant",allowed_values
=["Constant", "Nutrient", "Pop"],description
="population / growth rate model"k_uPO4[Float64]
=0.002 (mol P / m-3 / yr),default_value
=0.002,description
="for k_poptype = 'Constant': max rate, constant ie of form k_O_uPO4 * (light, nut etc)"k_mu[Float64]
=NaN (1/yr),default_value
=NaN,description
="for k_poptype = 'Nutrient', 'Pop': max prod/growth rate (at 0C if templim=='Eppley')"k_grazeresprate[Float64]
=NaN (1/yr),default_value
=NaN,description
="for k_poptype = 'Pop' imposed const loss (mortality) rate"k_templim[String]
="Constant",default_value
="Constant",allowed_values
=["Constant", "Eppley"],description
="temperature limitation factor"k_lightlim[String]
="linear",default_value
="linear",allowed_values
=["linear", "MM", "fixed", "QE"],description
="Light limitation function"k_Irel[Float64]
=1.0,default_value
=1.0,description
="multiplier for forcing-supplied insolation"k_Ic[Float64]
=30.0 (W/m^2),default_value
=30.0,description
="saturating irradiance for 'MM' case"k_alphaQE[Float64]
=7.0 (mgC/mgChl/Wpar m^-2/d-1),default_value
=7.0,description
="chla-specific initial slope of the photosynthesis-light curve for lightlim='QE'"k_thetaChlC[Float64]
=0.03 (mg Chl / mgC),default_value
=0.03,description
="Chl:Corg ratio for explicit population k_poptype=Pop"k_epsilonChl[Float64]
=0.012 (m^2/mg Chl),default_value
=0.012,description
="chl absorption coeff (for self shielding) for k_poptype='Pop'"k_nuttype[String]
="PO4MM",default_value
="PO4MM",allowed_values
=["PO4MM", "PO4NMM", "PO4NMMNfix"],description
="Nutrient limitation / nitrogen fixation function"k_KPO4[Float64]
=NaN (mol P m-3 ),default_value
=NaN,description
="limitation at low [P] MM half-max constant"k_KN[Float64]
=0.0 (mol NO3+NH4 m-3),default_value
=0.0,description
="limitation at low nitrogen"k_prefNH3[Float64]
=10.0,default_value
=10.0,description
="preference for ammonia over nitrate"k_edonor[String]
="H2O",default_value
="H2O",allowed_values
=["H2O", "H2S"],description
="electron donor (H2O for oxygenic phototroph"k_KH2S[Float64]
=0.001 (mol H2S m-3),default_value
=0.001,description
="limitation at low [H2S] MM half-max constant"CIsotope[external, DataType]
=PALEOboxes.ScalarData,default_value
=PALEOboxes.ScalarData,allowed_values
=Type[PALEOboxes.ScalarData, PALEOboxes.IsotopeLinear],description
="disable / enable carbon isotopes and specify isotope type"
Methods and Variables for default Parameters
RateStoich_edonorO2eq
edonorO2eq
(mol O2eq yr-1),VT_ReactDependency
,description
="O2eq e- donor consumption (H2O) by oxygenic photosynthesis"- [
O2_sms
] (mol yr-1),VT_ReactContributor
,description
="generated by RateStoich rate=edonorO2eq"
do_bio_prod_MM_pop
volume
(m^3),VT_ReactDependency
,description
="ocean cell volume"zupper
(m),VT_ReactDependency
,description
="cell depth (-ve)"open_area_fraction
–> oceansurface.open_area_fraction (),VT_ReactDependency
,description
="fraction of area open to atmosphere"P_conc
(mol m^-3),VT_ReactDependency
,description
="total P concentration"- [
OmegaCA
] (),VT_ReactDependency
,description
="calcite saturation state" - [
rate_bioprod
] –> global.rate_bioprod (),VT_ReactDependency
,description
="optional forcing, multiplier for productivity" - [
PELCALC
] –> global.PELCALC (),VT_ReactDependency
,description
="optional forcing for pelagic calcification" Prod_Corg
–> %reaction%Prod_Corg (mol yr-1),VT_ReactProperty
,description
="organic carbon production rate"Prod_Ccarb
–> %reaction%Prod_Ccarb (mol yr-1),VT_ReactProperty
,description
="carbonate production rate"P_sms
(mol yr-1),VT_ReactContributor
,description
="total dissolved P source minus sink"- [
TAlk_sms
] (mol yr-1),VT_ReactContributor
,description
="TAlk source minus sink" - [
DIC_sms
] (mol yr-1),VT_ReactContributor
,description
="DIC source minus sink" - [
partprod_P
] (mol yr-1),VT_ReactContributor
,description
="flux P" - [
partprod_N
] (mol yr-1),VT_ReactContributor
,description
="flux N" - [
partprod_Corg
] (mol yr-1),VT_ReactContributor
,description
="flux Corg" - [
partprod_Ccarb
] (mol yr-1),VT_ReactContributor
,description
="flux Ccarb" - [
domprod_P
] (mol yr-1),VT_ReactContributor
,description
="flux P" - [
domprod_N
] (mol yr-1),VT_ReactContributor
,description
="flux N" - [
domprod_Corg
] (mol yr-1),VT_ReactContributor
,description
="flux Corg" - [
domprod_Ccarb
] (mol yr-1),VT_ReactContributor
,description
="flux Ccarb" edonorO2eq
(mol O2eq yr-1),VT_ReactProperty
,description
="O2eq e- donor consumption (H2O) by oxygenic photosynthesis"insol
(W m-2),VT_ReactDependency
,description
="photosynthetic radiative flux"
totals
Prod_Corg
–> %reaction%Prod_Corg (mol yr-1),VT_ReactDependency
,description
="organic carbon production rate"edonorO2eq
(mol O2eq yr-1),VT_ReactDependency
,description
="O2eq e- donor consumption (H2O) by oxygenic photosynthesis"Prod_Ccarb
–> %reaction%Prod_Ccarb (mol yr-1),VT_ReactDependency
,description
="carbonate production rate"Prod_Corg_total
(mol yr-1),VT_ReactProperty
,description
="total organic carbon production rate"edonorO2eq_total
(mol O2eq yr-1),VT_ReactProperty
,description
="total O2eq e- donor consumption (H2O) by oxygenic photosynthesis"Prod_Ccarb_total
(mol yr-1),VT_ReactProperty
,description
="total carbonate production rate"
Ocean surface air-sea flux
PALEOocean.Oceansurface.AirSeaExchange.ReactionAirSea
— TypeReactionAirSea(Sc_function, sol_function, frac_function, gas_name)
ReactionAirSeaO2
ReactionAirSeaCO2
ReactionAirSeaCO2
ReactionAirSeaFixedSolubility
Calculate atmosphere to ocean gas flux, mol/yr.
NB: ReactionAirSea not used directly - use as ReactionAirSeaO2
etc.
Runs in oceansurface
Domain, calculates per-oceansurface-cell atmosphere to ocean gas flux (mol yr-1) for a gas X
using stagnant film model:
flux_X = Asurf * open_area_fraction * vpiston * (solX(pXatm) - X_conc)
Asurf
and open_area_fraction
should be defined by oceansurface
variables.
Piston velocity vpiston
and gas solutibility solX
are defined by gas specific functions (eg an empirical wind-velocity dependent Schmidt factor, and temperature and salinity dependent solubility).
If Parameter moistair = true
, atmospheric partial pressure pXatm
should be supplied as the equivalent for dry air (~ volume mixing ratio in dry air * pressure ), and is then corrected assuming saturated H2O at the ocean surface temperature.
PALEOocean.Oceansurface.AirSeaExchange.ReactionAirSeaO2
— TypeReactionAirSeaO2
See ReactionAirSea
- Piston velocity: Schmidt factor from (Sarmiento and Gruber, 2006)
- Solubility: from (Wanninkhof, 1992)
Parameters
solubility_fixed[Bool]
=false,default_value
=false,description
="use fixed solubility"sol_fix_henry_coeff[Float64]
=NaN (mol l-1 atm-1),default_value
=NaN,description
="Henry's law coefficient for solubility_fixed=true"moistair[Bool]
=true,default_value
=true,description
="apply correction for moist air"piston_fixed[Bool]
=true,default_value
=true,description
="use fixed piston velocity"piston[Float64]
=NaN (m d-1),default_value
=NaN,description
="fixed piston velocity"TempKmin[Float64]
=-Inf (K),default_value
=-Inf,description
="GENIE bug compatibility - lower limit on temperature for solubility"atm_partial_pressure_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of atmospheric partial pressure to zero when calculating flux"ocean_conc_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of ocean concentration to zero when calculating flux"
Methods and Variables for default Parameters
do_air_sea_flux
Asurf
(m^2),VT_ReactDependency
,description
="horizontal area of oceansurface"open_area_fraction
(),VT_ReactDependency
,description
="fracton of surface open to atmosphere (0-1.0)"pXatm
–> atm.pO2atm (atm),VT_ReactDependency
,description
="gas X atmospheric partial pressure"X_conc
–> ocean.oceansurface.O2_conc (mol m-3),VT_ReactDependency
,description
="ocean concentration [gas X]"flux_X
–> fluxAtmtoOceansurface.flux_O2 (mol yr-1),VT_ReactContributor
,description
="air -> sea gas X flux"temp
–> ocean.oceansurface.temp (K),VT_ReactDependency
,description
="ocean surface temperature"sal
–> ocean.oceansurface.sal (psu),VT_ReactDependency
,description
="ocean salinity"
PALEOocean.Oceansurface.AirSeaExchange.ReactionAirSeaCO2
— TypeReactionAirSeaCO2
See ReactionAirSea
- Piston velocity: Schmidt factor from (Wanninkhof, 1992)
- Solubility: calculated from
ocean.CO2_conc
,ocean.pCO2atm
defined by ocean carbonate chemistry. - Isotope fractionation: equilibrium and kinetic fractionation from (Zhang et al., 1995)
Parameters
solubility_fixed[Bool]
=false,default_value
=false,description
="use fixed solubility"sol_fix_henry_coeff[Float64]
=NaN (mol l-1 atm-1),default_value
=NaN,description
="Henry's law coefficient for solubility_fixed=true"moistair[Bool]
=true,default_value
=true,description
="apply correction for moist air"piston_fixed[Bool]
=true,default_value
=true,description
="use fixed piston velocity"piston[Float64]
=NaN (m d-1),default_value
=NaN,description
="fixed piston velocity"TempKmin[Float64]
=-Inf (K),default_value
=-Inf,description
="GENIE bug compatibility - lower limit on temperature for solubility"atm_partial_pressure_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of atmospheric partial pressure to zero when calculating flux"ocean_conc_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of ocean concentration to zero when calculating flux"
PALEOocean.Oceansurface.AirSeaExchange.ReactionAirSeaCH4
— TypeReactionAirSeaCH4
See ReactionAirSea
- Piston velocity: Schmidt factor from (Wanninkhof, 1992)
- Solubility: from (Wanninkhof, 1992)
- Isotope fractionation: NB: TODO no isotope fractionation
Parameters
solubility_fixed[Bool]
=false,default_value
=false,description
="use fixed solubility"sol_fix_henry_coeff[Float64]
=NaN (mol l-1 atm-1),default_value
=NaN,description
="Henry's law coefficient for solubility_fixed=true"moistair[Bool]
=true,default_value
=true,description
="apply correction for moist air"piston_fixed[Bool]
=true,default_value
=true,description
="use fixed piston velocity"piston[Float64]
=NaN (m d-1),default_value
=NaN,description
="fixed piston velocity"TempKmin[Float64]
=-Inf (K),default_value
=-Inf,description
="GENIE bug compatibility - lower limit on temperature for solubility"atm_partial_pressure_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of atmospheric partial pressure to zero when calculating flux"ocean_conc_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of ocean concentration to zero when calculating flux"
PALEOocean.Oceansurface.AirSeaExchange.ReactionAirSeaFixedSolubility
— TypeReactionAirSeaFixedSolubility
See ReactionAirSea
- Piston velocity: fixed value from
piston
Parameter - Solubility: fixed value from
sol_fix_henry_coeff
NB: moistair
correction is not applied
Parameters
solubility_fixed[Bool]
=true,default_value
=true,description
="use fixed solubility"sol_fix_henry_coeff[Float64]
=NaN (mol l-1 atm-1),default_value
=NaN,description
="Henry's law coefficient for solubility_fixed=true"moistair[Bool]
=false,default_value
=false,description
="apply correction for moist air"piston_fixed[Bool]
=true,default_value
=true,description
="use fixed piston velocity"piston[Float64]
=NaN (m d-1),default_value
=NaN,description
="fixed piston velocity"TempKmin[Float64]
=-Inf (K),default_value
=-Inf,description
="GENIE bug compatibility - lower limit on temperature for solubility"atm_partial_pressure_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of atmospheric partial pressure to zero when calculating flux"ocean_conc_min_zero[Bool]
=false,default_value
=false,description
="true to clamp -ve values of ocean concentration to zero when calculating flux"
Methods and Variables for default Parameters
do_air_sea_flux
Asurf
(m^2),VT_ReactDependency
,description
="horizontal area of oceansurface"open_area_fraction
(),VT_ReactDependency
,description
="fracton of surface open to atmosphere (0-1.0)"pXatm
–> atm.pXatm (atm),VT_ReactDependency
,description
="gas X atmospheric partial pressure"X_conc
–> ocean.oceansurface.X_conc (mol m-3),VT_ReactDependency
,description
="ocean concentration [gas X]"flux_X
–> fluxAtmtoOceansurface.flux_X (mol yr-1),VT_ReactContributor
,description
="air -> sea gas X flux"
Ocean floor burial
Carbonate burial
PALEOocean.Oceanfloor.Burial.ReactionShelfCarb
— TypeReactionShelfCarb
Shallow-water carbonate burial controlled by carbonate saturation state (after (Caldeira and Rampino, 1993))
Carbonate burial rate in cell i
is shelf_Ccarb[i]
= carbsedshallow
* shelfareanorm[i]
* '(OmegaAR[i]-1.0)^1.7where
carbsedshallow(mol C yr-1) controls the global rate, and
shelfareanorm[i]` controls the spatial distribution among ocean shelf cells.
Parameters
carbsedshallow[Float64]
=1.4355e12 (mol C yr-1),default_value
=1.4355e12,description
="total carbonate deposition rate"shelfareanorm[Vector{Float64}]
=Float64[],default_value
=Float64[],description
="per box distribution of carbonate burial (length=Domain size, must sum to 1.0)"CIsotope[external, DataType]
=PALEOboxes.ScalarData,default_value
=PALEOboxes.ScalarData,allowed_values
=Type[PALEOboxes.ScalarData, PALEOboxes.IsotopeLinear],description
="disable / enable carbon isotopes and specify isotope type"
Methods and Variables for default Parameters
do_shelf_carb
fluxOceanfloor_soluteflux_DIC
–> fluxOceanfloor.soluteflux_DIC (mol yr-1),VT_ReactContributor
,description
="flux DIC"fluxOceanfloor_soluteflux_TAlk
–> fluxOceanfloor.soluteflux_TAlk (mol yr-1),VT_ReactContributor
,description
="flux TAlk"- [
fluxOceanfloor_soluteflux_Ca
] –> fluxOceanfloor.soluteflux_Ca (mol yr-1),VT_ReactContributor
,description
="flux Ca" - [
fluxOceanBurial_flux_Ccarb
] –> fluxOceanBurial.flux_Ccarb (mol yr-1),VT_ReactContributor
,description
="flux Ccarb" - [
shelfarea_force
] –> global.shelfarea_force (),VT_ReactDependency
,description
="optional forcing multiplier for carbsedshallow (defaults to 1.0)" OmegaAR
–> ocean.oceanfloor.OmegaAR (),VT_ReactDependency
,description
="aragonite saturation"shelf_Ccarb
(mol yr-1),VT_ReactProperty
,description
="shelf Ccarb burial"
totals
shelf_Ccarb
(mol yr-1),VT_ReactDependency
,description
="shelf Ccarb burial"shelf_Ccarb_total
(mol yr-1),VT_ReactProperty
,description
="total shelf Ccarb burial"
PALEOocean.Oceanfloor.Burial.ReactionBurialEffCarb
— TypeReactionBurialEffCarb
Deep ocean carbonate burial as a carbonate-saturation-state-dependent fraction of carbonate flux.
Parameterisation from (Caldeira and Rampino, 1993), intended for use in ocean box models with a single deep ocean box.
Fraction of input carbonate flux buried flys
is a function of oceanfloor carbonate saturation state.
Carbonate burial flux flux_Ccarb
= particulateflux_Ccarb
* flys
, where Fraction of input carbonate flux buried flys
is a function of carbonate saturation state.
Can be used with a spatially resolved model to provide a saturation-state dependent switch that allows burial of oceanfloor carbonate flux only above the lysocline.
Parameter burial_eff_function
sets the functional form used for burial fraction flys
:
- "Caldeira1993": flys = 0.5*(1.0+tanh(k0([CO3] -k1)))
(after (Caldeira and Rampino, 1993), intended for use with the single deep ocean box in a 3-box ocean model)
- "OmegaCA": flys = 1 - 0.5 * erfc(m0*(Ω_CA - m1)) (burial efficiency a function of oceanfloor saturation state)
Parameters
burial_eff_function[String]
="Caldeira1993",default_value
="Caldeira1993",allowed_values
=["Caldeira1993", "OmegaCA"],description
="functional form for burial efficiency"k0[Float64]
=26.0 (m3/mol),default_value
=26.0,description
="Caldeira1993: burial frac 'steepness' with CO3 concentration"k1[Float64]
=0.11 (mol/m3),default_value
=0.11,description
="Caldeira1993: CO3 concentration at burial frac 0.5"m0[Float64]
=10.0,default_value
=10.0,description
="OmegaCA: burial frac 'steepness' with OmegaCA"m1[Float64]
=1.0,default_value
=1.0,description
="OmegaCA: OmegaCA at burial frac 0.5"hascarbseddeep[Vector{Bool}]
=Bool[],default_value
=Bool[],description
="per box flag to enable (length=Domain size)"CIsotope[external, DataType]
=PALEOboxes.ScalarData,default_value
=PALEOboxes.ScalarData,allowed_values
=Type[PALEOboxes.ScalarData, PALEOboxes.IsotopeLinear],description
="disable / enable carbon isotopes and specify isotope type"
Methods and Variables for default Parameters
do_burial_eff_carb
fluxOceanfloor_soluteflux_DIC
–> fluxOceanfloor.soluteflux_DIC (mol yr-1),VT_ReactContributor
,description
="flux DIC"fluxOceanfloor_soluteflux_TAlk
–> fluxOceanfloor.soluteflux_TAlk (mol yr-1),VT_ReactContributor
,description
="flux TAlk"- [
fluxOceanfloor_soluteflux_Ca
] –> fluxOceanfloor.soluteflux_Ca (mol yr-1),VT_ReactContributor
,description
="flux Ca" - [
fluxOceanBurial_flux_Ccarb
] –> fluxOceanBurial.flux_Ccarb (mol yr-1),VT_ReactContributor
,description
="flux Ccarb" particulateflux_Ccarb
(mol yr-1),VT_ReactTarget
,description
="input carbonate particulate flux"deep_Ccarb
(mol yr-1),VT_ReactProperty
,description
="deep unresolved Ccarb burial"flys
(),VT_ReactProperty
,description
="fraction of Ccarb export buried"CO3_conc
–> ocean.oceanfloor.CO3_conc (mol m-3),VT_ReactDependency
,description
="CO3 concentration"
totals
deep_Ccarb
(mol yr-1),VT_ReactDependency
,description
="deep unresolved Ccarb burial"deep_Ccarb_total
(mol yr-1),VT_ReactProperty
,description
="total deep unresolved Ccarb burial"
Organic carbon and phosphorus burial
PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP
— TypeReactionBurialEffCorgP
Burial efficiency (fraction of particulateflux
input) for Corg and P.
Input organic matter flux is given by particulateflux_Corg, N, P
. A fraction of Corg
and P
is buried to output flux fluxOceanBurial.flux_, Corg, P, Porg, PFe, Pauth
, where P
is the total P burial flux and Porg, PFe, Pauth
are the three P burial mineral phases. The remainder of the input flux is transferred to reminflux_Corg, N, P
, where it would usually be linked to a ReactionRemin
to be remineralized.
The fraction of Corg
buried is given by a burial efficiency function, with options set by Parameter burial_eff_function
:
Prescribed
: Corg burial in celli
= Corg particulateflux *BECorgNorm
*Parameter BECorg[i]
Ozaki2011
: Corg burial in celli
= Corg particulateflux *BECorgNorm
*burialEffCorg_Ozaki2011(sedimentation_rate)
Dunne2007
: corg burial in celli
= Corg particulateflux *BECorgNorm
*burialEffCorg_Dunne2007(Corg particulateflux, Afloor)
ConstantBurialRate
: Corg burial in celli
=BECorgNorm
*Parameter BECorg[i]
(independent of Corg flux)
It is also possible to set Parameter FixedCorgBurialTotal
, in which case the ocean total Corg burial rate is fixed, and the per-cell Corg burial fluxes calculated as above are then normalized to reach this global total rate.
P burial efficiency is defined as P:Corg ratios for components Porg, PFe, Pauth by parameters BPorgCorg
, BPFeCorg
, BPauthCorg
. If these are Vectors of length > 1, they define interpolated functions of oceanfloor [O2]
on a grid defined by parameter BPO2
. If they are all Vectors of length 1, they define fixed Corg:P ratios.
Parameters
BECorgNorm[Float64]
=1.0,default_value
=1.0,description
="overall normalization factor for Corg burial (or total Corg burial for ConstantBurialRate)"burial_eff_function[String]
="Prescribed",default_value
="Prescribed",allowed_values
=["Prescribed", "Ozaki2011", "Dunne2007", "ConstantBurialRate"],description
="Corg burial efficiency parameterisation (or ConstantBurialRate)"BECorg[Vector{Float64}]
=Float64[],default_value
=Float64[],description
="prescribed fraction seafloor Corg flux buried (or per-cell fraction of total Corg for ConstantBurialRate)"FixedCorgBurialTotal[Float64]
=NaN (mol C yr-1),default_value
=NaN,description
="if != NaN, fix total ocean Corg burial rate by renormalizing per-cell fluxes"BPO2[Vector{Float64}]
=[NaN] (mol O2 m-3),default_value
=[NaN],description
="[O2] points for interpolated oxygen-dependent P:Corg (length 1 for O2-independent P:Corg)"BPorgCorg[Vector{Float64}]
=[0.0] (mol P (mol Corg)-1),default_value
=[0.0],description
="P:Corg for organic P burial fraction at each BPO2 (Vector length 1 for O2-independent P:Corg)"BPFeCorg[Vector{Float64}]
=[0.0] (mol P (mol Corg)-1),default_value
=[0.0],description
="P:Corg for Fe-associated P burial fraction at each BPO2 (Vector length 1 for O2-independent P:Corg)"BPauthCorg[Vector{Float64}]
=[0.0] (mol P (mol Corg)-1),default_value
=[0.0],description
="P:Corg for CFA-associated P burial fraction at each BPO2 (Vector length 1 for O2-independent P:Corg)"CIsotope[external, DataType]
=PALEOboxes.ScalarData,default_value
=PALEOboxes.ScalarData,allowed_values
=Type[PALEOboxes.ScalarData, PALEOboxes.IsotopeLinear],description
="disable / enable carbon isotopes and specify isotope type"
Methods and Variables
do_burial_eff_CorgP
particulateflux_Corg
(mol yr-1),VT_ReactTarget
,description
="input particulate flux Corg"particulateflux_P
(mol yr-1),VT_ReactTarget
,description
="input particulate flux P"particulateflux_N
(mol yr-1),VT_ReactTarget
,description
="input particulate flux N"reminflux_Corg
(mol yr-1),VT_ReactContributor
,description
="output unburied particulate flux Corg"reminflux_P
(mol yr-1),VT_ReactContributor
,description
="output unburied particulate flux P"reminflux_N
(mol yr-1),VT_ReactContributor
,description
="output unburied particulate flux N"- [
fluxOceanBurial_flux_Corg
] –> fluxOceanBurial.flux_Corg (mol yr-1),VT_ReactContributor
,description
="flux Corg" - [
fluxOceanBurial_flux_Porg
] –> fluxOceanBurial.flux_Porg (mol yr-1),VT_ReactContributor
,description
="flux Porg" - [
fluxOceanBurial_flux_PFe
] –> fluxOceanBurial.flux_PFe (mol yr-1),VT_ReactContributor
,description
="flux PFe" - [
fluxOceanBurial_flux_Pauth
] –> fluxOceanBurial.flux_Pauth (mol yr-1),VT_ReactContributor
,description
="flux Pauth" - [
fluxOceanBurial_flux_P
] –> fluxOceanBurial.flux_P (mol yr-1),VT_ReactContributor
,description
="flux P" burial_eff_Corg
(),VT_ReactProperty
,description
="Corg burial efficiency"- [
sedimentation_rate
] (m yr-1),VT_ReactDependency
,description
="sedimentation rate" - [
O2_conc
] –> ocean.oceanfloor.O2_conc (mol m-3),VT_ReactDependency
,description
="O2 concentration" - [
Afloor
] –> oceanfloor.Afloor (m^2),VT_ReactDependency
,description
="horizontal area of seafloor at base of box"
Global
PALEOocean.Global.Insolation.ReactionForceInsolationModernEarth
— TypeReactionForceInsolationModernEarth
Calculate time and latitude dependent daily mean modern Earth surface solar insolation.
Daily mean photosynthetically-active surface insolation
`insolation` = TOA flux * (1 - `albedo`) * `parfrac`
See insolMITgcmDIC
for details.
Parameters
albedo[Float64]
=0.6,default_value
=0.6,description
="mean planetary albedo"parfrac[Float64]
=1.0,default_value
=1.0,description
="fraction of radiation that is photosynthetically active"latitude[Vector{Float64}]
=Float64[] (degrees N),default_value
=Float64[],description
="if non-empty, override grid latitude and set explicitly for each surface cell"
Methods and Variables for default Parameters
do_force_insolation
tforce
–> global.tforce (yr),VT_ReactDependency
,description
="historical time at which to apply forcings, present = 0 yr"insolation
(W m-2),VT_ReactProperty
,description
="daily mean surface insolation"lat
(),VT_ReactDependency
,description
="coordinate variable"
PALEOocean.Global.Insolation.insolMITgcmDIC
— FunctioninsolMITgcmDIC(Timeyr,latdeg; albedo=0.6, solar=1360.0, parfrac=1.0) -> sfac
MITgcm DIC package insol function directly translated from fortran. Similar to (Brock, 1981).
NB: there are three normalization constants here: solar
, albedo
, parfrac
to define top-of-atmosphere flux (from astronomical formulae) -> a crude approx to ground level flux (taking into account clouds etc) -> photosynthetic PAR flux
C !DESCRIPTION:
C find light as function of date and latitude
C based on paltridge and parson
Arguments:
Timeyr
: yr, model time, NB: year assumed to start in winterlatdeg
: deg, latitudesalbedo
: planetary albedo (ie correct for top-of-atmosphere to ground-level, clouds etc)solar
: W m-2 solar constantparfrac
: photosynthetically active fraction
Returns:
sfac
: daily average photosynthetically active solar radiation just below surface