# Air-sea gas exchange

Air-sea gas transfer is typically parameterised as a function of temperature ($T$) and wind speed ($u_{10}$), and the concentration of the gas in the air ($C_a$) and in the surface water ($C_w$) in the form:

\[F = k(u_{10}, T)(C_w - C_a),\]

where `k`

is the gas transfer velocity.

Our implementation is intended to be generic for any gas, so you can specify `air_concentration`

, `water_concentration`

, `transfer_velocity`

, and `wind_speed`

as any function in `GasExchange`

, but we also provide constructors and default values for carbon dioxide and oxygen.

To setup carbon dioxide and/or oxygen boundary conditions you simply build the condition and then specify it in the model:

```
using OceanBioME
CO₂_flux = CarbonDioxideGasExchangeBoundaryCondition()
O₂_flux = OxygenGasExchangeBoundaryCondition()
using Oceananigans
grid = RectilinearGrid(size=(3, 3, 30), extent=(10, 10, 200));
model = NonhydrostaticModel(; grid,
biogeochemistry = LOBSTER(; grid, carbonates = true, oxygen = true),
boundary_conditions = (DIC = FieldBoundaryConditions(top = CO₂_flux),
O₂ = FieldBoundaryConditions(top = O₂_flux)),
tracers = (:T, :S))
```

```
NonhydrostaticModel{CPU, RectilinearGrid}(time = 0 seconds, iteration = 0)
├── grid: 3×3×30 RectilinearGrid{Float64, Oceananigans.Grids.Periodic, Oceananigans.Grids.Periodic, Oceananigans.Grids.Bounded} on Oceananigans.Architectures.CPU with 3×3×3 halo
├── timestepper: QuasiAdamsBashforth2TimeStepper
├── advection scheme: Centered reconstruction order 2
├── tracers: (T, S, NO₃, NH₄, P, Z, sPOM, bPOM, DOM, DIC, Alk, O₂)
├── closure: Nothing
├── buoyancy: Nothing
└── coriolis: Nothing
```

All gas exchange models require temperature (`T`

) to be present in the model, and carbon dioxide requires sailinity (`S`

), total inorganic carbon (`DIC`

), and alkalinity (`Alk`

), and optionally can take silicate and phosphate where there names are specified in the keyword argument `silicate_and_phosphate_names`

## Model equations

### Gas transfer velocity

The default gas transfer velocity (`ScaledTransferVelocity`

) returns a velocity in the form:

\[k(u_{10}, T) = cu_{10}^2\left(\frac{Sc(T)}{660}\right)^{-1/2},\]

where $c$ is a coefficient (`coeff`

) which typically is wind product specific with default value $0.266$ cm/hour from Ho *et al.* (2006), and $Sc$ is gas specific the temperature dependent Schmidt number (the dimensionless ratio of momentum and mass diffusivity) specified as `schmidt_number`

which can be any function of temperature. The default parameterisations is the 4th order polynomial formulation of Wanninkhof (2014).

Currently, the parameters for CO₂ and oxygen are included, but it would be very straightforward to add the parameters given in the original publication for other gases (e.g. inert tracers of other nutrients such as N₂).

### Carbon dioxide partial pressure

For most gasses the water concentration `C_w`

is simply taken directly from the biogeochemical model or another tracer (in which case `water_concentration`

should be set to `TracerConcentration(:tracer_name)`

), but for carbon dioxide the fugacity ($fCO_2$) must be derived from the dissolved inorganic carbon (`DIC`

) and `Alk`

alinity by a `CarbonChemistry`

model (please see the docs for CarbonChemistry), and used to calculate the partial pressure ($pCO_2$).

The default parameterisation for the partial pressure (`CarbonDioxideConcentration`

) is given by Dickson *et al.* (2007) and defines the partial pressure to be the mole fraction $x(CO_2)$ multiplied by the pressure, $P$, related to the fugacity by:

\[fCO_2 = x(CO_2)P\exp\left(\frac{1}{RT}\int_0^P\left(V(CO_2)-\frac{RT}{P'}\right)dP'\right).\]

The volume ($V$) is related to the gas pressure by the virial expression:

\[\frac{PV(CO_2)}{RT}\approx1+\frac{B(x, T)}{V(CO_2)}+\mathcal{O}(V(CO_2)^{-2}),\]

and the first virial coefficient $B$ for carbon dioxide in air can be approximated as:

\[B_{CO_2-\text{air}} \approx B_{CO_2}(T) + 2x(CO_2)\delta_{CO_2-\text{air}}(T),\]

where $\delta$ is the cross virial coefficient.

$B_{CO_2}$ and $\delta_{CO_2-\text{air}}$ are parameterised by Weiss (1974) and reccomended in Dickson *et al.* (2007) as fourth and first order polynomials respectively.