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.
---------------------------------------
+PALEOocean Reactions · PALEOocean Documentation 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"
sourcePALEOocean.Ocean.OceanTransport3box.ReactionOceanTransport3box
— TypeReactionOceanTransport3box
3-box (Sarmiento and Toggweiler, 1984), (Toggweiler and Sarmiento, 1985) ocean model.
---------------------------------------
| 1 (s) | 2(h) |
| -->--->- |
|-------------------|----| | |
@@ -9,7 +9,7 @@
| 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
(Kelvin), VT_ReactProperty
, description
="Ocean temperature"
sourcePALEOocean.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
--------------------------------------------------
+----------------------------------------
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
(Kelvin), VT_ReactProperty
, description
="Ocean temperature"
sourcePALEOocean.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) |
| | | |
|-----------|------------------------| |
@@ -19,10 +19,10 @@
| |------------------------ |
| 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
(Kelvin), VT_ReactProperty
, description
="Ocean temperature"
sourcePALEOocean.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
base_path[String]
="$TMMDir$/MITgcm_2.8deg", default_value
="$TMMDir$/MITgcm_2.8deg", description
="directory containing transport matrices"sal_norm[Bool]
=false, default_value
=false, description
="apply salinity normalisation to transport matrix"use_annualmean[Bool]
=false, default_value
=false, description
="true to read annual mean matrix"num_seasonal[Int64]
=12, default_value
=12, description
="number of seasonal matrices"Aimp_deltat[Int64]
=86400 (seconds), default_value
=86400, description
="timestep to derive upscaling factor for implicit transport matrix"kji_order[Bool]
=true, default_value
=true, description
="true to sort indices into k,j,i order to optimise memory layout"pack_chunk_width[Int64]
=4, default_value
=4, allowed_values
=[0, 2, 4, 8, 16], description
="non-zero to enable SIMD packed transport matrix multiply"TMfpsize[Int64]
=64 (bits), default_value
=64, allowed_values
=[32, 64], description
="FP size for transport matrix"
Methods and Variables
setup_grid_TMM
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"
sourcePALEOocean.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")
sourceVertical 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"
sourcePALEOocean.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)"
sourcePALEOocean.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"
sourcePALEOocean.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"
sourceBiological 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"
sourcePALEOocean.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 population phtyP_conc
)
nutrient_limitation
Set by k_nuttype
parameter:
PO4MM
: P_conc / (P_conc + k_KPO4)
PO4NMM
: P, N limited phytoplankton export production: cf GENIE 2N2T_PO4MM_NO3
, (Fennel, 2005)PO4NMMNfix
: P limited nitrogen-fixer export production: cf GENIE 2N2T_PO4MM_NO3
, (Fennel, 2005)
light_limitation
Set by k_lightlim
parameter:
fixed
: constant k_Irel
linear
: GENIE-like form k_Irel*insol/PB.Constants.k_solar_presentday
where insol
(W m-2) is provided insolation in each cellMM
: MITgcm-like saturating form zInsol/(k_Ic + zInsol)
where zInsol = k_Irel*insol
and insol
is provided PAR in each cellQE
: Saturating light limitation of rate vs (local) PAR k_Irel*insol
, derived from photosynthetic QE k_alphaQE
and chl absorption cross section k_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
] (), 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"
sourceOcean surface air-sea flux
PALEOocean.Oceansurface.AirSeaExchange.ReactionAirSea
— TypeReactionAirSea(Sc_function, sol_function, frac_function, gas_name)
+ -----------------------------------------------
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
(Kelvin), VT_ReactProperty
, description
="Ocean temperature"
sourcePALEOocean.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
base_path[String]
="$TMMDir$/MITgcm_2.8deg", default_value
="$TMMDir$/MITgcm_2.8deg", description
="directory containing transport matrices"sal_norm[Bool]
=false, default_value
=false, description
="apply salinity normalisation to transport matrix"use_annualmean[Bool]
=false, default_value
=false, description
="true to read annual mean matrix"num_seasonal[Int64]
=12, default_value
=12, description
="number of seasonal matrices"Aimp_deltat[Int64]
=86400 (seconds), default_value
=86400, description
="timestep to derive upscaling factor for implicit transport matrix"kji_order[Bool]
=true, default_value
=true, description
="true to sort indices into k,j,i order to optimise memory layout"pack_chunk_width[Int64]
=4, default_value
=4, allowed_values
=[0, 2, 4, 8, 16], description
="non-zero to enable SIMD packed transport matrix multiply"TMfpsize[Int64]
=64 (bits), default_value
=64, allowed_values
=[32, 64], description
="FP size for transport matrix"
Methods and Variables
setup_grid_TMM
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"
sourcePALEOocean.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")
sourceVertical 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"
sourcePALEOocean.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)"
sourcePALEOocean.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"
sourcePALEOocean.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"
sourceBiological 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"
sourcePALEOocean.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 population phtyP_conc
)
nutrient_limitation
Set by k_nuttype
parameter:
PO4MM
: P_conc / (P_conc + k_KPO4)
PO4NMM
: P, N limited phytoplankton export production: cf GENIE 2N2T_PO4MM_NO3
, (Fennel, 2005)PO4NMMNfix
: P limited nitrogen-fixer export production: cf GENIE 2N2T_PO4MM_NO3
, (Fennel, 2005)
light_limitation
Set by k_lightlim
parameter:
fixed
: constant k_Irel
linear
: GENIE-like form k_Irel*insol/PB.Constants.k_solar_presentday
where insol
(W m-2) is provided insolation in each cellMM
: MITgcm-like saturating form zInsol/(k_Ic + zInsol)
where zInsol = k_Irel*insol
and insol
is provided PAR in each cellQE
: Saturating light limitation of rate vs (local) PAR k_Irel*insol
, derived from photosynthetic QE k_alphaQE
and chl absorption cross section k_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
] (), 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"
sourceOcean 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.
sourcePALEOocean.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"
sourcePALEOocean.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"
sourcePALEOocean.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"
sourcePALEOocean.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"
sourceOcean 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"
sourcePALEOocean.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"
sourceOrganic 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 cell i
= Corg particulateflux * BECorgNorm
*Parameter BECorg[i]
Ozaki2011
: Corg burial in cell i
= Corg particulateflux * BECorgNorm
*burialEffCorg_Ozaki2011(sedimentation_rate)
Dunne2007
: corg burial in cell i
= Corg particulateflux * BECorgNorm
*burialEffCorg_Dunne2007(Corg particulateflux, Afloor)
ConstantBurialRate
: Corg burial in cell i
= 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"
sourceGlobal
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"
sourcePALEOocean.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:
+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.
sourcePALEOocean.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"
sourcePALEOocean.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"
sourcePALEOocean.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"
sourcePALEOocean.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"
sourceOcean 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"
sourcePALEOocean.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"
sourceOrganic 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 cell i
= Corg particulateflux * BECorgNorm
*Parameter BECorg[i]
Ozaki2011
: Corg burial in cell i
= Corg particulateflux * BECorgNorm
*burialEffCorg_Ozaki2011(sedimentation_rate)
Dunne2007
: corg burial in cell i
= Corg particulateflux * BECorgNorm
*burialEffCorg_Dunne2007(Corg particulateflux, Afloor)
ConstantBurialRate
: Corg burial in cell i
= 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"
sourceGlobal
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"
sourcePALEOocean.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
sourceSettings
This document was generated with Documenter.jl version 1.4.1 on Friday 14 June 2024. Using Julia version 1.6.7.
+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