# The FluxEngine air-sea gas flux toolbox: simplified interface and extensions for in situ analyses and multiple sparingly soluble gases

Thomas Holding, Ian Ashton, Jamie D. Shutler, Peter E. Land, Philip D. Nightingale, Andrew P. Rees, Ian Brown, Jean-Francois Piolle, Annette Kock, Hermann W. Bange, et al.

► To cite this version:

Thomas Holding, Ian Ashton, Jamie D. Shutler, Peter E. Land, Philip D. Nightingale, et al. The FluxEngine air-sea gas flux toolbox: simplified interface and extensions for in situ analyses and multiple sparingly soluble gases. Ocean Science, 2019, 15 (6), pp.1707-1728. 10.5194/os-15-1707-2019. hal-04202475

HAL Id: hal-04202475

https://hal.science/hal-04202475v1

Submitted on 6 Oct 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
<figure><img src="image_2.png" /></figure>

# The FluxEngine air–sea gas flux toolbox: simplified interface and extensions for in situ analyses and multiple sparingly soluble gases

Thomas Holding<fnref n="1" />, Ian G. Ashton<fnref n="1" />, Jamie D. Shutler<fnref n="1" />, Peter E. Land<fnref n="2" />, Philip D. Nightingale<fnref n="2" />, Andrew P. Rees<fnref n="2" />, Ian Brown<fnref n="2" />, Jean-François Piolle<fnref n="3" />, Annette Kock<fnref n="4" />, Hermann W. Bange<fnref n="4" />, David K. Woolf<fnref n="5" />, Lonneke Goddijn-Murphy<fnref n="6" />, Ryan Pereira<fnref n="7" />, Frederic Paul<fnref n="3" />, Fanny Girard-Ardhuin<fnref n="3" />, Bertrand Chapron<fnref n="3" />, Gregor Rehder<fnref n="8" />, Fabrice Ardhuin<fnref n="3" />, and Craig J. Donlon<fnref n="9" />

**Correspondence:** Thomas Holding (t.m.holding@exeter.ac.uk)

Received: 1 May 2019 – Discussion started: 15 May 2019

Revised: 5 November 2019 – Accepted: 7 November 2019 – Published: 13 December 2019

**Abstract.** The flow (flux) of climate-critical gases, such as carbon dioxide (CO₂), between the ocean and the atmosphere is a fundamental component of our climate and an important driver of the biogeochemical systems within the oceans. Therefore, the accurate calculation of these air–sea gas fluxes is critical if we are to monitor the oceans and assess the impact that these gases are having on Earth’s climate and ecosystems. FluxEngine is an open-source software toolbox that allows users to easily perform calculations of air–sea gas fluxes from model, in situ, and Earth observation data. The original development and verification of the toolbox was described in a previous publication. The toolbox has now been considerably updated to allow for its use as a Python library, to enable simplified installation, to ensure verification of its installation, to enable the handling of multiple sparingly soluble gases, and to enable the greatly expanded functionality for supporting in situ dataset analyses. This new functionality for supporting in situ analyses includes user-defined grids, time periods and projections, the ability to reanalyse in situ CO₂ data to a common temperature dataset, and the ability to easily calculate gas fluxes using in situ data from drifting buoys, fixed moorings, and research cruises. Here we

describe these new capabilities and demonstrate their application through illustrative case studies. The first case study demonstrates the workflow for accurately calculating CO₂ fluxes using in situ data from four research cruises from the Surface Ocean CO₂ ATlas (SOCAT) database. The second case study calculates air–sea CO₂ fluxes using in situ data from a fixed monitoring station in the Baltic Sea. The third case study focuses on nitrous oxide (N₂O) and, through a user-defined gas transfer parameterisation, identifies that biological surfactants in the North Atlantic could suppress individual N₂O sea–air gas fluxes by up to 13%. The fourth and final case study illustrates how a dissipation-based gas transfer parameterisation can be implemented and used. The updated version of the toolbox (version 3) and all documentation is now freely available.

## 1 Introduction

The exchange of climate relevant gases between the oceans and atmosphere including that of carbon dioxide (CO₂), nitrous oxide (N₂O), and methane (CH₄) is a major component

<footnote n="1">¹University of Exeter, Penryn Campus, Cornwall, TR10 9EZ, UK</footnote>

<footnote n="2">²Plymouth Marine Laboratory, Prospect Place, Plymouth, PL1 3DH, UK</footnote>

<footnote n="3">³Ifremer, Univ. Brest, CNRS, IRD, Laboratoire d'Oceanographie Physique et Spatiale (LOPS), IUEM, Brest, France</footnote>

<footnote n="4">⁴GEOMAR Helmholtz Centre for Ocean Research Kiel, Marine Biogeochemistry Research Division, 24105 Kiel, Germany</footnote>

<footnote n="5">⁵International Centre for Island Technology, Heriot-Watt University, Stromness, Orkney, KW16 3AW, UK</footnote>

<footnote n="6">⁶Environmental Research Institute, University of the Highlands and Islands, Thurso, KW14 7EE, UK</footnote>

<footnote n="7">⁷The Lyell Centre, Heriot-Watt University, Research Avenue South, Edinburgh, EH14 4AS, UK</footnote>

<footnote n="8">⁸Leibniz Institute for Baltic Sea Research Warnemünde, 18119 Rostock, Germany</footnote>

<footnote n="9">⁹European Space Agency, Noordwijk, the Netherlands</footnote>
of the climate system, and the ability of the oceans to absorb and desorb these gases varies both temporally and spatially. The need to monitor this exchange has been the driver for international data collation initiatives such as the Surface Ocean CO₂ ATlas (SOCAT; Bakker et al., 2016) and the MarinE MethanE and NiTrous Oxide database (MEMENTO; Kock and Bange, 2015). These collaborative efforts are now routinely collecting, quality controlling and collating over a million new in situ data points each year. FluxEngine complements these initiatives by providing a standardised tool which can robustly calculate air-sea gas fluxes from such in situ data, with the flexibility to incorporate new data sources and methodologies. The use of common tools and methods simplifies collaborations and accelerates advancements, both within and between scientific disciplines, through eliminating methodological or implementation-driven differences and the duplication of effort.

## 1.1 Overview of FluxEngine

FluxEngine is a flexible open-source toolbox that allows users to easily exploit Earth observation and model data, in combination with in situ data, to calculate air-sea gas fluxes (Shutler et al., 2016). It is available to download from http://github.com/oceanflux-ghg/FluxEngine (last access: 6 December 2019). The toolbox uses plain-text configuration files, allowing the user to configure the input data sources, random noise or bias on input data, the temporal period for the analysis, the structure of the air-sea gas flux calculation, and user-defined gas transfer velocity parameterisations. The calculation itself can be performed using fugacity, partial pressure, or concentration data via a user-defined bulk formulation, including formulations that can account for vertical temperature gradients across the mass boundary layer, the very small layer at the surface over which gas exchange occurs. A full description of the differences between flux formulations is provided in Shutler et al. (2016) and Woolf et al. (2016). The formulation that enables vertical temperature and salinity gradients to be included, allowing a more accurate gas flux calculation is described in detail by Woolf et al. (2016) and takes the generalised form of

$$F = k(\alpha_W f G_W - \alpha_S f G_A), \qquad (1)$$

where F is the sea-to-air flux of a sparingly soluble gas G, k is the gas transfer velocity, αS and αW are the solubilities of the gas above and below the surface water interface, and fG_A and fG_W represent the respective fugacities. Here we use “p” and “f” prefixes to refer to partial pressure and fugacity of a gas, respectively. Gas transfer velocity is driven by turbulence at ocean surface, caused by wind stress and wave breaking, amongst other processes. Because of the wide availability of high-quality wind data products and the relative difficulty of directly measuring turbulence, it is commonplace to estimate k using a statistical relationship with

wind speed (e.g. Ho et al., 2006; Nightingale et al., 2000; Wanninkhof, 2014).

Concentration of the gas is determined by its solubility and fugacity (or partial pressure). Equation (1) can therefore be rewritten as a product of the gas transfer velocity and the difference in gas concentrations,

$$F = k(G_W - G_S), \qquad (2)$$

where G_S and G_W are the concentration of the gas above and below the interface. The FluxEngine configuration file allows users to choose the structure of the gas flux calculation, the inputs, and the gas transfer velocity (either by choosing an already implemented published algorithm or through parameterising their own). The user can then perform calculations across their chosen input data and the outputs are Climate and Forecast (CF) standard netCDF 4.0 files that contain data layers for each of the stages of the calculation, along with process indicator layers to aid the interpretation of the calculated gas fluxes (such as surface chlorophyll a concentrations, the climatological position of temperature fronts, and error indicator layers). A summary of the main features of the toolbox is given in Table C1 (Appendix C).

Version 1.0 of FluxEngine was introduced and described by Shutler et al. (2016), which included a full description of the calculations, the flexibility of the toolbox, and the extensive verification of the different calculations along with examples of its use. With the aim to provide a standardised community tool, development has continued since its original release. Feedback from the user communities and the needs of specific scientific studies (e.g. Ashton et al., 2016) have guided these developments and considerably extended the functionality and range of possible applications.

At the time of writing, the toolbox and resulting data have been used to quantify regional and global uncertainties (e.g. Wrobel and Piskozub, 2016; Wrobel, 2017; Woolf et al., 2019; Shutler et al., 2019), evaluate the impact of gas transfer processes on regional and global gas exchange (e.g. Ashton et al., 2016; Pereira et al., 2018), evaluate the European shelf sea CO₂ gas fluxes and sinks (Shutler et al., 2016) and investigate biological and physical controls of air-sea exchange (Henson et al., 2018). FluxEngine has also been used to identify shortfalls of current modelling approaches through the inclusion of FluxEngine outputs within an international inter-comparison (Rödenbeck et al., 2015). The toolbox has also been incorporated within undergraduate and postgraduate teaching at the University of Exeter within geography, environmental science, and marine biology degrees, and at Utrecht University for computer science.

This paper uses four case studies to illustrate key developments and the extended capabilities now contained within version 3.0 of the FluxEngine toolbox. Collectively, the case studies illustrate user-selectable grids, support for calculating sea-to-air gas fluxes from time series data collected by fixed monitoring stations and research cruises (and how to incorporate the flux outputs into the original dataset to create
a coherent time series), the ability to calculate nitrous oxide (N₂O) sea-to-air gas fluxes, and the addition of a new forcing variable (kinetic energy dissipation rate). The extensive support for in situ data contained within version 3 of Flux-Engine means that it can now be fully exploited by three different scientific communities in isolation: in situ, model, and Earth observation, whilst the original capability to enable gas fluxes to be calculated from combinations of in situ, model, and Earth observation data is retained.

Section 2 of this paper describes the structural extensions and changes and explains how the toolbox can now be used as a command-line tool or as a Python library. Section 3 then presents the case studies, and Sect. 4 outlines the future direction and developments for the toolbox; Sect. 5 gives conclusions. To aid the user, the appendices of this paper provide a list all of the toolbox utilities (Appendix A), details of all datasets used in the case studies (Appendix B), an overview of the main toolbox features and options (Appendix C), and a description of the automatic software installers and verification tools (Appendix D).

## 2 New capabilities

The following sections describe the extensions to the Flux-Engine toolbox that are now contained within version 3.

### 2.1 Installation, verification, and use

FluxEngine has now been optimised for use on a stand-alone desktop or laptop computer, removing the previous requirement for specialist computing facilities. Installation tools or instructions are provided for Microsoft Windows, Apple MacOS, and Ubuntu/Debian-based Linux operating systems. Separate utilities can then be used to verify that FluxEngine has been successfully installed. Details of the installation, verification process, and execution times are provided in Appendix D.

FluxEngine is now implemented as a Python module, which means that FluxEngine and its accompanying utilities can be imported as a Python module and easily integrated with other software or use as stand-alone tools that are called from the command line. This approach offers a larger degree of flexibility than offered by version 1 of the toolbox and supports advanced exploitation. For example, a simple Python script can be written to run a sensitivity analysis where ensembles of flux calculations are required without any need to modify the underlying FluxEngine software.

### 2.2 Flexible input data specification

Previous versions of FluxEngine required the user to make changes to the underlying software in order to use new or differently formatted sources of input data. This required additional (and time consuming) testing and verification after modifications were made, making FluxEngine less accessible

<figure><img src="image_3.png" /><figcaption>**Figure 1.** Conceptual diagram showing the way that input data are imported and used by FluxEngine. Single or groups of files are specified using a plain-text configuration file. File names are interpreted using a subset of regular expression matching syntax (Unix glob patterns), and additional tokens are used to substitute time and date. The data preprocessing steps occur after input files are read into memory. Preprocessing functions are specified in the configuration file. Finally, the netCDF output files follow a user-specified filename and directory structure (as specified in the configuration file).</figcaption></figure>

to those unfamiliar to Python programming. Two features have been added in version 3.0 to address this issue: (i) file pattern matching (through standard Unix glob patterns and custom date/time tokens, described fully in *Flux-EngineV3.pdf*) allows the input file name format and directory structure to be customised using the plain-text configuration file, and (ii) optional preprocessing functions can be used to manipulate input data after the data have been read into memory. These features can be specified for each input variable in the configuration file and FluxEngine contains a selection of common preprocessing functions, such as unit conversions or matrix transformation of the input data. Additional custom preprocessing functions can be added and tested easily by the user without the need to modify the core FluxEngine software, through copying and then completing the Python template function provided within the source code (*data_preprocessing.py*). Storing the completed function into the *data_preprocessing.py* file will then result in the custom preprocessing function being automatically available for use in any configuration file.

These features make it possible to use any observational netCDF dataset by specifying the file path and, if required, appropriate preprocessing functions. For example a custom preprocessing function could resample the input files, followed by a transformation to change the projection. This flexibility is conceptualised by the diagram in Fig. 1.
## 2.3 Extensive support for in situ data analyses

Version 1 of FluxEngine required that all input data be supplied as monthly 1° × 1° global grids. These constraints restricted its relevance to regional analyses and in situ analyses, where sub-daily or sub-kilometre resolutions are often more appropriate. The spatial resolution and extent can now be fully specified by the user and regional masks can be used in conjunction with the *ofluxghg_flux_budgets.py* tool to calculate regional net integrated fluxes. In addition, flexible start and stop times and user-specified temporal resolutions allow gas fluxes to be calculated for specific time intervals, e.g. the calculation can be configured to match the temporal resolution of the in situ data. Furthermore, a new configuration option allows the output from multiple time points to be grouped into a single netCDF file (rather than multiple files, one for each time point). This enables the calculation of gas fluxes from fixed research stations and other scenarios in which it is more convenient to provide results as a time series.

Improvements have been made to the bundled file conversion utilities, which convert between plain-text data formats and the netCDF format used by FluxEngine. By default, these tools use the SOCAT format (Bakker et al., 2016) for convenience but now offer a high degree of flexibility to reflect the variety of data formats and conventions used for storing in situ data. This means that the tools can be used with virtually any text-formatted in situ data files, avoiding the need for the user to convert their data to a fixed format with predefined column names.

The new utility, *append2insitu.py*, is designed specifically for use with in situ data and appends FluxEngine output as new columns within the original in situ data (achieved by matching spatial and temporal coordinates). For example, this means that users can use SOCAT-formatted (or custom-formatted) in situ data as input to FluxEngine and then the results can be placed into a copy of the original input file, allowing the user to study the calculated fluxes, gas transfer rates, gas concentrations, etc. alongside (and aligned with) their original in situ data. This functionality is demonstrated in case study 1 and case study 3 within this paper.

## 2.4 Reanalysis of in situ CO₂ fugacity data to a consistent temperature and depth

A new utility, *reanalyse_socat_driver.py*, is CO₂ specific and exploits a reference (sea surface temperature) SST dataset (e.g. climate quality Earth observation SST data) and the original paired in situ measurements of CO₂ fugacity ($fCO_2$) and temperature to recalculate the $fCO_2$ for the reference temperature dataset (and thus a consistent depth). The reasoning for the reanalysis is to reduce uncertainty and unknown biases that arise due to the $fCO_2$ measurements being collected using different instrumentation at some unknown and potentially variable depth below the surface. A detailed

justification of the method and a full description of the approach are described in Goddijn-Murphy et al. (2015).

The reanalysis step is especially important if in situ data consisting of a collated dataset (originating from different instruments, sampling strategies, or sources) is being used to calculate temporally averaged gas fluxes (e.g. monthly mean values). In this situation the in situ measurements are highly likely to be collected from a range of different depths and unlikely to fully capture the monthly mean conditions of temperature and $fCO_2$ (due to aliasing), whereas temporally averaged (mean) satellite observations are likely to provide a better representation (reference) of the mean temperature conditions. Therefore reanalysing the collated $fCO_2$ dataset to this reference temperature enables the calculation of the equivalent mean $fCO_2$ data.

It is worth noting that ship draught, and thus underway measurement intake depth, can even vary on a single research cruise due to changes in sea state, ballasting, or cargo. So the method can also be important for data collected during a single research cruise.

For the case studies presented here, the satellite-observed SST data used for the reanalysis are valid for a depth of ~1 m (Reynolds et al., 2007). So the recalculated $fCO_2$ data are therefore also valid for this depth and are used to represent the conditions at the bottom of the mass boundary layer or sub-skin temperature. The reanalysis to a consistent depth also enables a more accurate calculation of the gas fluxes, as it is then possible to accurately calculate two solubilities and thus two concentrations: one at the bottom and one at the top of the mass boundary layer.

The Goddijn-Murphy et al. (2015) reanalysis method relies upon variations in $fCO_2$ being purely isochemical. This assumes that the total dissolved inorganic carbon is approximately constant throughout the surface waters over the temporal period and spatial scale being studied and that differences in $fCO_2$ are solely due to temperature differences altering the equilibria of the carbonate system. Therefore caution should be used when applying the reanalysis method to data where these assumptions are not valid.

The slow re-equilibrium time of $CO_2$ in seawater (i.e. of the order of months for $CO_2$ to equilibrate with the atmosphere) ensures that monthly mean, or rolling monthly mean (centred on the day of interest), skin or sub-skin sea surface temperature (SST) values are suitable for reanalysing the in situ data. Arguably, for reanalysing individual in situ datasets (e.g. to calculate gas fluxes for a single cruise dataset) a robust daily skin or sub-skin SST value would be better, even if that is obtained by a seasonal curve fitted to the monthly values and interpolated to the day of interest. Another solution would be to collect paired measurements of skin SST and $fCO_2$ and SST at depth, all in situ, as has been done on a recent research cruise (Tarran, 2018) as ship-ready instruments are available, e.g. the Infrared Sea surface Autonomous Radiometer (ISAR; Donlon et al., 2008). This enables the paired measurements at depth to be reanalysed using the in situ
<figure><img src="image_4.png" /><figcaption>**Figure 2.** A typical CO₂ workflow for using FluxEngine with in situ data, showing the different utilities (blue boxes) and input data (green boxes) used at each stage.</figcaption></figure>

skin SST. However in the majority of cases ships collecting *f*CO₂ data do not collect skin temperature data. Where in situ skin temperature data are not available and satellite temperature data are not appropriate, a regional model could be used to estimate skin temperature from the SST a few metres below the surface. An example model capable of this is the US National Oceanic and Atmospheric Administration (NOAA) Coupled Ocean-Atmosphere Response Experiment (COARE) model (e.g. see Fairall et al., 1996).

Whilst the reanalysis method and utility is CO₂ specific, its applicability to alternative gases (including unreactive N₂O and CH₄) is discussed and shown in Table 1 of Woolf et al. (2016). The impact on the net gas fluxes of not performing this reanalysis on a relatively large time series of CO₂ measurements through the north and south Atlantic is demonstrated within case study 1 (Sect. 3.1), whereas the impact on global net integrated gas fluxes has been analysed by Woolf et al. (2019).

A typical workflow for calculating sea-to-air gas fluxes from in situ data using FluxEngine, and the tools used at each step, is illustrated in Fig. 2. All of the in situ analysis utilities, including the use of the *reanalyse_socat_driver.py* tool, are demonstrated in case study 1 to case study 3 (Sect. 3).

## 2.5 Custom gas transfer velocity parameterisation

The processes that govern exchange, their relative importance, and how gas exchange should be parameterised are

all active areas of research (e.g. Pereira et al., 2018; Wrobel and Piskozub, 2016).

FluxEngine has always allowed users to select or define different gas transfer velocity parameterisations. However, version 3.0 adopts a modular approach to specifying the flux calculation, which makes it simpler for the user to extend the functionality and incorporate new gas transfer parameterisations. Custom parameterisations can be implemented as separate Python classes without modifying the core FluxEngine software. This is achieved by copying and modifying the template class provided in *rate_parameterisation.py*. Storing the new class within *rate_parameterisation.py* means that the new parameterisation will be automatically available for inclusion in the configuration file. These custom parameterisations can define new input variables and therefore make use of additional input data sources. These custom parameterisations can also produce new data layers in the final netCDF output, such as the results from intermediate calculation steps, which may be useful for testing or subsequent analysis outside of FluxEngine. Examples of how to use this functionality are provided in the source code. The toolbox documentation describes the process of, and best practices for, extending FluxEngine in this way (see Sect. 9.1 and 9.2 within *FluxEngineV3 METRICS.pdf*).

This increased flexibility means that users can define and use region-specific gas transfer parameterisations or incorporate new transfer processes into existing gas transfer parameterisations (such as the impact of biological surfactants as
discussed by Pereira et al. (2018). Case study 1 (Sect. 3.1) and case study 2 (Sect. 3.2) demonstrate the use of different well-known wind-speed-based gas transfer parameterisations, while case study 3 (Sect. 3.3) demonstrates the use of a custom gas transfer velocity parameterisation, which is used to assess the impact of biological surfactants on the N₂O gas fluxes. Case study 4 (Sect. 3.4) utilises a gas transfer velocity parameterisation that is based on turbulent kinetic energy dissipation and provides an example of using additional input data.

## 2.6 Extensions for other sparingly soluble gases

The toolbox now supports the handling of two other sparingly soluble gases (CH₄ and N₂O) and so that gas-specific data can be substituted into Eqs. (1) or (2) (dependent upon the choice of setup). FluxEngine can calculate dissolved gas concentration from these gas input data, which can be supplied as either partial pressure or mean molar fraction of a gas in the dry atmosphere. Alternatively, dissolved gas concentrations can be provided directly as an input. Gas-specific parameterisations for Schmidt number (Sc) and solubility (α) are automatically chosen from those provided in Wanninkhof (2014). The option to use the older Sc and α parameterisations from Wanninkhof (1992) is also included for compatibility with previous versions and to aid comparative analysis. It is worth noting that both sets of Sc parameterisations are only valid for saline water, and care should be taken when using them for analysis of freshwater data or regions with low salinity (e.g. the Baltic Sea; see case study 2, Sect. 3.2). Support for additional and user-defined Schmidt number parameterisations are likely to be added in the future.

## 3 Case study examples of the new capabilities

The following sections describe the application and results from four case studies that illustrate the new capabilities. Table 1 summarises the new features that are demonstrated in each case study. These case studies were run using Flux-Engine version 3.0, which can be accessed via the GitHub repository (see “Code availability”). The configuration files for each case study are included as examples in the *configs* subdirectory of the GitHub repository, and these will be updated to maintain compatibility as new versions of the toolbox are released. In addition, interactive iPython Jupyter Notebook tutorials for the first three case studies are included in the *tutorials* subdirectory of the repository. Section 4 of this paper provides more information about these tutorials.

### 3.1 Case study 1: calculating CO₂ fluxes from research cruise data

Each year over 1 million new in situ data points are included within the annual updates to the SOCAT dataset. Field scientists

collecting these data often need to calculate the coincident sea-to-air gas fluxes, either using solely in situ measurements or through combining them with satellite Earth observation and/or model data.

Here we illustrate the procedure for calculating sea-to-air gas fluxes from in situ data collected during four different sampling campaigns. These in situ data (Kitidis and Brown, 2017; Schuster, 2016; Steinhoff et al., 2016; Wanninkhof and Pierrot, 2016; hereafter referred to as cruises 1–4, respectively) were all collected in the North Atlantic during October 2013. The in situ data were first downloaded from PAN-GAEA (an open-access data publishing and archiving repository, http://www.pangaea.de, last access: 6 December 2019) in tab-delimited format. The datasets follow the standard SOCAT structure and content (see Bakker et al., 2016, Table 9).

The majority of the measurements needed for the sea-to-air CO₂ gas flux calculation were included within the downloaded datasets. The aqueous fCO₂, salinity, SST, and air pressure were measured in situ and the molar fraction of CO₂ in dry air (xCO₂) had been extracted from the GLOBALVIEW-CO₂ dataset (GLOBALVIEW-CO₂, 2013). However, wind speed (needed for calculating the gas transfer velocity) was missing in all cases. Therefore, to complement these in situ data, multi-sensor merged wind speed data at 10 m were downloaded (Cross-Calibrated Multi-Platform, CCMPv2, 6 h temporal resolution, 0.25° × 0.25° spatial grid; Atlas et al., 2011). These wind speed data were appended to the in situ data by matching each in situ measurement to the closest temporal and spatial grid point. This same process was used to add columns for the second and third moments of wind speed, which were estimated by taking the second and third power of wind speed, respectively.

Two datasets (Schuster, 2016; Steinhoff et al., 2016) were missing xCO₂ data, so the same method of matching temporal and spatial grid points was used to fill in these fields using the GLOBALVIEW-CO₂ dataset from the US National Oceanic and Atmospheric Administration (NOAA) Earth System Research Laboratory (ESRL) (GLOBALVIEW-CO₂, 2013). For ease, these additional wind speed and xCO₂ data were downloaded, extracted, and then inserted into the tab-delimited in situ file using some simple custom Python scripts but the same process could be performed manually. These scripts are not part of Flux-Engine.

Collectively the in situ data from these cruises were collected from different ships and underway systems, all sampling water at different and unknown depths. These measurements are typically collected from a few metres below the water surface, whereas the CO₂ concentration (combination of fCO₂ and solubility) on either side of the mass boundary layer is required for an accurate gas flux calculation. Before these data from multiple sources can be used for an accurate gas flux calculation, they need to be reanalysed to a common temperature dataset and depth (Goddijn-Murphy et al., 2015; Woolf et al., 2016). Therefore, the *reanalyse_socat_driver.py*
<table><caption>**Table 1.** Summary of the new functionality demonstrated in each case study.</caption><thead><tr><th></th><th>New features utilised</th></tr></thead><tbody><tr><td>Case study 1: calculating sea-to-air CO<sub>2</sub> gas fluxes from ship research cruise data and using SOCAT data.</td><td>Flexible input data specification to select in situ data files and unit conversion using preprocessing functions (Sect. 2.2).<br>Utilises new support for in situ data analysis, including the use of the text2ncdf.py and append2insitu.py tools, custom temporal resolution, and reanalysis of fCO<sub>2</sub> to a consistent temperature field.</td></tr><tr><td>Case study 2: calculating sea-to-air CO<sub>2</sub> gas fluxes from the Östergärnsholm fixed monitoring station data.</td><td>Flexible input data specification to select in situ data files and unit conversion using preprocessing functions (Sect. 2.2).<br>Utilises new support for in situ data analysis, including use of text2ncdf.py, daily temporal resolution and output formatted as time series (Sect. 2.3).</td></tr><tr><td>Case study 3: surfactant suppression of sea-to-air N<sub>2</sub>O gas fluxes using the MEMENTO data.</td><td>Flexible input data specification and unit conversion using preprocessing functions (Sect. 2.2).<br>Utilises new support for in situ data analysis, including use of the text2netcdf.py and append2insit.py tools, custom temporal resolution, and cruise-specific time interval (Sect. 2.3).<br>Custom gas transfer parameterisation (Sect. 2.5).<br>Calculation of N<sub>2</sub>O gas fluxes (Sect. 2.6).</td></tr><tr><td>Case study 4: gas transfer velocity parameterisation using turbulent kinetic energy dissipation rate.</td><td>Unit conversion and use of custom preprocessing functions to calculate the dissipation rate from the input data. This uses the preprocessing functions to perform a nontrivial computation (Sect. 2.2).<br>Use of a custom gas transfer parameterisation which includes the specification of an additional input data layer (Sect. 2.5).</td></tr></tbody></table>

tool was first used to reanalyse all fCO₂ data to a consistent temperature and depth.

Monthly mean sea surface temperatures from the Reynolds Optimum Interpolation Sea Surface Temperature dataset (OISST; Reynolds et al., 2007) were used as the reference sub-skin temperature dataset, resulting in reanalysed fCO₂ that are valid for ~1 m and used to represent the bottom of the mass boundary layer (termed “sub-skin” within Woolf et al., 2016).

The reanalysed fCO₂ data were then inserted into the tab-delimited in situ dataset producing a single dataset. The tab-delimited file was then converted into a netCDF file using the text2ncdf.py tool. This tool groups all data according to a user-specified spatial sampling grid, calculating the mean value and standard deviation for each cell within the grid as well as the number of data that were used to calculate these statistics. The spatial resolution was defined as 1° × 1° grid and FluxEngine was then configured to use each of the variables in the resulting netCDF file as input, with a preprocessing function applied to convert Reynolds OISST from degrees Celsius to kelvin (as all SST data within the main flux calculation use kelvin). In order to produce a single netCDF output file for the entire 35 d period, the temporal resolution for the flux calculation was set to 35 d. This allows the cruise tracks from all four cruises (1–4) to be easily visualised at the same time.

The sea-to-air CO₂ fluxes were then calculated using the rapid model (see Eq. (1) and Woolf et al., 2016) and was run

using a quadratic wind speed based gas transfer velocity parameterisation (Ho et al., 2007). To identify the impact of the fCO₂ reanalysis stage, the sea-to-air CO₂ flux calculation was repeated using the original in situ SST and fCO₂.

Figure 3a shows the resultant calculated CO₂ flux along each of the cruises (1–4). The southern subtropical part of the cruise track 1 represents an area of the ocean that is a sink of CO₂ (negative sea-to-air flux). The northern subtropical section of cruise 1 shows an overall positive CO₂ flux into the atmosphere, while south of 15°N the net fluxes are smaller and in variable directions. Interestingly, there are also examples (e.g. along the equatorial part of cruise track 1 and the western part of cruise track 2) where the direction of the flux has changed as a result of reanalysing the fCO₂ data. The highest magnitude fluxes were seen around the European continental shelf in cruise track 3, with a strong ocean sink west of Ireland and an intermittent source of CO₂ in the North Sea. Figure 3b shows the difference in calculated net flux between use of the original fCO₂ data and the reanalysed fCO₂. Whilst very little difference is seen over large lengths of cruise tracks 1, 2, and 4, there are substantial differences in net flux of up to 0.1C m⁻² d⁻¹ in some regions; for example, within the frontal regions at the edge of the European shelf seas (cruise track 3) or in the southern section of cruise track 1. These are regions where temporally and spatially dynamic temperature gradients can exist that are likely under-sampled (aliased) by both the in situ measurements and the satellite observations used to reanalyse the fCO₂ data. In this case,
<figure><img src="image_5.png" /><figcaption>**Figure 3.** Example sea-to-air CO₂ fluxes calculated using in situ data and the gas transfer velocity detailed in Ho et al. (2006) (a) fluxes calculated for four sampling cruises in the North Atlantic during October and November 2013 (Kitidis and Brown, 2017; Schuster, 2016; Steinhoff et al., 2016; Wanninkhof and Pierrot, 2016; labelled 1–4, respectively). (b) The difference in the calculated flux resulting from using the reanalysed fCO₂ compared to the original in situ fCO₂ data (reanalysed minus original).</figcaption></figure>

reanalysis using an estimated or modelled skin temperature (based on the in situ SST at depth) may be more appropriate (see the discussion in Sect. 2.4).

The *append2insitu.py* tool was then used to append Flux-Engine output to the original input data file for the Kitidis and Brown (2017) dataset. The output from this tool enables the user to visualise FluxEngine output (including any additional input data such as the Cross-Calibrated Multi-Platform (CCMP) wind speed data) as a time series alongside all other in situ data. Figure 4 shows the time series of SST, fCO₂, and xCO₂ (from the downloaded cruise data). Plotted alongside these are the corresponding CCMP wind speed data and the calculated concentrations and fluxes using the original and reanalysed fCO₂ data.

## 3.2 Case study 2: calculating CO₂ fluxes from Östergarnsholm fixed station data

In this section the new capabilities for calculating gas fluxes from fixed stations is demonstrated using data from the long-term monitoring station at Östergarnsholm. The Östergarnsholm station is situated in the Baltic Sea (57.42° N, 18.99° E) and is part of the Integrated Carbon Observation System (ICOS) infrastructure. The station was originally established in 1995 with the aim of collecting data on the marine atmospheric boundary layer to support research on the exchange of heat, momentum, and CO₂ between the atmosphere and ocean. It is equipped with instruments to measure (amongst other parameters) profiles of wind speed, water temperature, and aqueous fCO₂.

The new FluxEngine support for calculating gas fluxes from fixed stations uses the temporal dimension of the input files, creating output files of the same dimension that can

be easily visualised as a time series. Data for the Östergarnsholm monitoring station covering a period from 28 January to 9 September 2015 were downloaded from the data repository (Rutgersson, 2017). These data contain in situ measurements for fCO₂, salinity, and temperature; model reanalysis air pressure at sea level from the National Centers for Environmental Prediction and the National Center for Atmospheric Research (NCEP/NCAR) dataset (Kalnay et al., 1996); xCO₂ from the NOAA ESRL GLOBALVIEW dataset (GLOBALVIEW-CO₂, 2013); and World Ocean Atlas salinity data (Boyer et al., 2013). CCMP wind speed data were extracted and added to the tab-delimited in situ dataset using the same method as used in case study 1 (Sect. 3.1). For gridded input data, values were extracted from the single grid point containing the Östergarnsholm station location and were selected from a global 1° × 1° projected grid.

The *text2ncdf.py* tool was configured to convert the text-formatted data file into a single netCDF file using a temporal resolution of 1 d. This produced a netCDF file with a temporal dimension size of 246 d, containing the daily mean value for each of the 246 d covered by the dataset. For this case study, FluxEngine was configured to use this file as input.

The flux calculation used the rapid model (Woolf et al., 2016) with the Nightingale et al. (2000) wind-based gas transfer velocity parameterisation and was performed using the original in situ fCO₂ and SST data. The temporal resolution was set to provide daily calculations for each of the 246 d, allowing seasonal variations to be observed. FluxEngine supports arbitrary temporal resolutions to within minute precision and the choice predominantly depends on the resolution of the available data and the particular research questions to be addressed. FluxEngine was configured to write output into a single netCDF file as a time series. The
<figure><img src="image_6.png" /><figcaption>**Figure 4.** Time series of the (Kitidis and Brown, 2017) in situ campaign data with the sea-to-air CO₂ flux as calculated by FluxEngine using the Ho et al. (2006) gas transfer velocity parameterisation. The results from the reanalysed fCO₂ values are shown in red to distinguish them from the original data. The differences in fCO₂, sub-skin, and interface CO₂ concentration, and sea-to-air CO₂ flux, resulting from the reanalysis, are shown in grey (reanalysed minus original).</figcaption></figure>

in situ fCO₂ and SST measurements were assumed to repre-
sent the conditions at the bottom of the mass boundary layer
and the concentrations at the top of the mass boundary layer
were estimated by configuring the FluxEngine to estimate the
skin temperature using the in situ SST – 0.17 (which is based
on the work of Donlon et al., 2002).

Figure 5 shows the time series of SST, wind speed, xCO2, fCO2, concentration of CO2, and calculated sea-to-air CO2 flux. There is a moderate negative flux (ocean sink of CO2) throughout most of the sampled period, which switched to a positive flux (outgassing to the atmosphere) during winter months. At approximately day 130, there is a local upwelling event which results in an incursion of CO2-rich cold
<figure><img src="image_7.png" /><figcaption>**Figure 5.** FluxEngine output file using data from Östergarnsholm station over the 246 d period. Example components of the sea-to-air flux calculation are shown alongside the calculated CO₂ flux.</figcaption></figure>

water. This results in an increase in fCO₂ of approximately 250 µatm; however, coincident low wind speed means that there was little change in the flux during this event.

**3.3 Case study 3: surfactant suppression of N₂O gas fluxes using the MEMENTO database**

Nitrous oxide (N₂O) and methane (CH₄) are both climati-
cally important gases. In the troposphere, they act as green-
house gases (IPCC, 2013), whereas stratospheric N₂O is the
major source for nitric oxide radicals, which are involved in
one of the main ozone reaction cycles (Ravishankara et al.,
2009). Source estimates indicate that the world's oceans play
a major role in the global budget of atmospheric N₂O and

a minor role in the case of CH₄ (IPCC, 2013). Oligotrophic
ocean areas are near equilibrium with the atmosphere and,
consequently, make only a relatively small contribution to
overall oceanic emissions, whereas biologically productive
regions (e.g. estuaries, shelves, and coastal upwelling areas)
appear to be responsible for the major fraction of the N₂O
and CH₄ emissions (Bakker et al., 2014).

Surfactants are surface-active compounds that can sup-
press turbulence at the sea surface thus altering air-sea gas
exchange (McKenna and Bock, 2006; Pereira et al., 2016;
Salter et al., 2011). There is growing evidence from field
and laboratory studies that naturally occurring surfactants
can significantly reduce the flux of N₂O across the water-
atmosphere interface (Kock et al., 2012; Mesarchaki et al., 2015).

Previous work, which studied CO₂ fluxes, found that surfactants potentially reduce the annual net integrated CO₂ flux by up to 9% in the Atlantic Ocean (Pereira et al., 2018). Here, we use FluxEngine to apply the methodology of Pereira et al. (2018) to in situ data from the MEMENTO (MarinE MethanE and NiTrous Oxide) database (Kock and Bange, 2015) in order to estimate the equivalent suppression effect on the exchange of N₂O between ocean and atmosphere.

While FluxEngine is able to calculate sea-to-air fluxes of both N₂O and CH₄, we confined our analysis to N₂O because of the sparsity of CH₄ data. In situ and 1° × 1° gridded monthly mean atmospheric and ocean partial pressure of N₂O, sea surface temperature, and salinity were obtained from the MEMENTO database for the Atlantic Meridional Transect (AMT) cruise (AMT-24, JR303), which took place between September and November 2014 (Brown and Rees, 2018). These data were supplemented with Earth observation wind speed, U₁₀, from the CCMP dataset and modelled air pressure from the European Centre for Medium-Range Weather Forecasts (ECMWF). All input data were gridded to monthly means with a 1° × 1° resolution.

A custom gas transfer velocity parameterisation was implemented following the template provided in the toolbox to calculate the gas transfer suppression due to biological surfactants in surface waters. This parameterisation uses the gas transfer velocity by Nightingale et al. (2000) combined with an estimate of the degree of surfactant suppression from Pereira et al. (2018). The method described by Pereira et al. (2018) used sea surface temperature to estimate surfactant suppression, meaning that no additional input data fields were needed. FluxEngine was configured to use the rapid flux model (Woolf et al., 2016) and run once with the standard Nightingale et al. (2000) gas transfer parameterisation (no suppression case) and then again using the Pereira et al. (2018) parameterisation (suppression case). This new gas transfer parameterisation is now freely available within the FluxEngine (and can be selected by specifying k_Nightingale2000_with Surfactant_suppression for the k_parameterisation option).

After calculating the air-to-sea N₂O fluxes, we removed negative (atmosphere to ocean) fluxes. The fluxes for each grid cell (within which at least one in situ measurement exists) are shown in Fig. 6a, while the difference in sea-to-air flux due to surfactant suppression is shown in Fig. 6b. The largest fluxes occur in the tropics and subtropical part of the AMT cruise track (Fig. 6a). Suppression of the gas transfer reduces the magnitude of the air-sea flux and the largest absolute suppression is also seen in the tropics and subtropical regions (Fig. 6a and b).

The append2insitu.py utility was used to combine FluxEngine output with the original in situ data. The time series are shown in Fig. 6c for SST, wind speed, atmospheric

and aqueous N₂O, and sea-to-air N₂O flux. The net fluxes along the transect are generally small and in both directions. The overall mean (and standard deviation) flux was 5.7 × 10⁻² (±5.7 × 10⁻²) g N₂O m⁻² d⁻¹ (no suppression) and 5.0 × 10⁻² (±4.8 × 10⁻²) g N₂O m⁻² d⁻¹ (suppression), indicating in both cases a small net flux into the ocean. There was a mean flux suppression due to surfactants of 13% for the entire dataset.

## 3.4 Case study 4: gas transfer velocity parameterisation using turbulent kinetic energy dissipation rate

The gas transfer velocity, k in Eqs. (1) and (2), is determined by the turbulent mixing near the ocean surface (Jähne et al., 1987). While it is common to estimate gas transfer using a polynomial relationship with wind speed, turbulence in the upper ocean is influenced by additional physical processes that are independent, or not solely dependent, on the wind. These include wave breaking, shear stress due to geostrophic currents, wind-wave-current interactions, bottom-generated turbulence, tidal forces, and precipitation (Villas Bôas et al., 2019; Zappa et al., 2007; Zhao et al., 2018).

In this case study we apply a gas transfer velocity parameterisation based on turbulent kinetic energy dissipation rate (ε), as developed by Zappa et al. (2007), to quantify the impact of wind- and wave-driven turbulence on sea-to-air CO₂. Zappa et al. (2007) used direct measurements of k and ε in aquatic and shallow marine regions to derive the following relationship:

$$k = 0.419 Sc^{-0.5} (\epsilon v)^{0.25}, \quad (3)$$

where k is the gas transfer velocity (m s⁻¹), Sc is the Schmidt number, ε is the turbulent kinetic energy dissipation rate (W kg⁻¹), and v is the kinematic viscosity of water (m² s⁻¹). We calculate the monthly mean ε using the monthly mean wave (swell, secondary swell, and wind waves) to ocean turbulent kinetic energy flux (FOC) provided by the WAVEWATCH III model reanalysis (WAVEWATCH III development group, 2016). The mean dissipation rate of turbulent kinetic energy, ε mean, is calculated using ε mean = FOC/(ρz max), where ρ is the density of sea water (taken to be 1026 kg m⁻³), and z max is the maximum depth over which dissipation is assumed to occur (taken as 10 m from Fig. 8 of Craig and Banner, 1994). This provides the mean total dissipation rate through the volume of water. Equation (3) is valid for ε measurements near the surface (of the order of 0.1 to 0.2 m), and ε is known to decrease exponentially with depth. To estimate ε at a depth of 0.2 m, we first fit an exponential function to the curve of ε from Fig. 8 of Craig and Banner (1994) which gave

$$\epsilon = \beta \exp(0.20z + 0.78), \quad (4)$$

where z is depth and β = 1.86 × 10⁻³. Normalising this function to have a mean ε equal to ε mean allows ε at any depth
<figure><img src="image_8.png" /><figcaption>**Figure 6.** (a) Sea-to-air N₂O flux taking into account surfactant suppression. (b) Change in N₂O flux resulting from surfactant suppression. (c) Time series of SST, wind speed, atmospheric N₂O, aqueous N₂O, and sea-to-air flux.</figcaption></figure>

to be determined. This was done by fitting $\beta$ to minimise the difference between $\varepsilon_{\text{mean}}$ calculated from FOC and $\varepsilon_{\text{mean}}$ calculated from Eq. (4) to produce separate depth relationships with $\varepsilon$ for each individual grid cell. Finally, the dissipation rate at 0.2 m was calculated by substituting $z = 0.2$ into the final depth relationship. The process of fitting of the depth relationship and calculating $\varepsilon$ at depth $z = 0.2$ was implemented using a custom preprocessing function that is

included as an example in the FluxEngine download. This demonstrates how preprocessing functions can be used to perform complex data processing.

FluxEngine was then used to calculate monthly sea-to-air CO₂ fluxes, globally, for 2010. All inputs to FluxEngine were provided as monthly averages with a 1° × 1° resolution. The additional input data were wind speed data from WAVEWATCH III reanalysis forcing field (WAVE-
WATCH III development group, 2016), sea surface tem-
perature from Reynolds Optimum Interpolation Sea Sur-
face Temperature dataset (OISST; Reynolds et al., 2007),
salinity data from the NOAA World Ocean Atlas (Zweng
et al., 2018), xCO₂ from the GLOBALVIEW-CO₂ dataset
(GLOBALVIEW-CO₂, 2013), and fCO₂ data from the SO-
CAT derived sea-to-air CO₂ flux reference dataset for 2010
(Woolf et al., 2019). Since the Zappa et al. (2007) relation-
ship was parameterised in low to moderate wind speeds and
in shallow marine environments, a mask was set in the con-
figuration file to constrain the calculation to grid cells with
wind speeds less than 10 m s⁻¹ and shelf sea water depths be-
tween 20 and 200 m; then the analysis repeated with depths
between 20 and 500 m. These depth ranges were chosen to be
consistent with previous studies (e.g. Laruelle et al., 2018;
Shutler et al., 2016), and the General Bathymetric Chart of
the Oceans (GEBCO) Digital Atlas bathymetry was used for
this masking (GEBCO, 2003).

The *ofluxghg flux budgets.py* tool was used to compute
the annual integrated net sea-to-air flux in all shelf sea re-
gions. Collectively, the global shelf seas result in a net inte-
grated flux into the ocean (sink) of 0.57 to 0.78 Pg C for 2010,
where the range is due to the two shelf definitions. These re-
sults are within the bounds of those determined by previous
studies (0.2–1 Pg C yr⁻¹ from Laruelle et al., 2017, 2018).
However we note that all previous studies have used wind
speed for calculating gas exchange. Repeating the analysis
with a wind-speed-based gas transfer velocity (Wanninkhof,
2014) instead of Eq. (4) gives an ~8% smaller net inte-
grated flux of 0.53 to 0.72 Pg C. This result could suggest
that published values of the global shelf sea CO₂ sink (cal-
culated using wind speed gas transfer) are underestimated, as
they do not fully account for wind-wave-current interactions
and whitecapping. Figure 7 shows the resulting mean annual
sea-to-air CO₂ flux in 2010 for global shelf seas. FluxEngine
has the capability to use non-wind-driven gas transfer param-
eterisations, allowing more physically based approaches to
be evaluated such as the use of ε. The first synoptic-scale
observation-based estimates of ε could soon be possible from
space using Doppler techniques (e.g. Ardhuin et al., 2019).

4 Future developments

The FluxEngine toolbox will continue to be developed in
response to new advances in research and further user up-
take will be encouraged through the provision of iPython
Jupyter Notebook tutorials. There are currently four inter-
active Jupyter Notebook tutorials available within the Flux-
Engine v3.0 download and these correspond to the first three
case studies presented in this paper as well as an additional
introductory tutorial. These interactive notebooks allow users
to investigate the toolbox without the need to install any ad-
ditional software. Users are able to modify and rerun the
notebook and immediately see the impact of any changes.

<figure><img src="image_9.png" /><figcaption>**Figure 7.** Mean annual sea-to-air CO₂ flux of shelf seas in 2010 using the Zappa et al. (2007) gas transfer relationship for all regions and months with wind speeds 0 to 10 m s⁻¹. Shelf regions are defined as having depths between 20 and 200 m.</figcaption></figure>

This approach has been previously used by the authors for
supporting collaborative research and summer school teach-
ing. Additional Jupyter Notebook tutorials could be written
to provide worked examples of (i) driving FluxEngine with
a custom Python script to perform a sensitivity or ensemble
analysis, (ii) using the FluxEngine to study a freshwater envi-
ronment, or (iii) using the verification tools module to verify
custom changes and extensions to the toolbox. All notebooks
will be maintained so that they remain available and relevant
to future versions of the FluxEngine.

5 Conclusions

FluxEngine is an open-source and freely available software
toolbox that provides standardised and verified calculations
of gas exchange and net integrated fluxes between the ocean
and atmosphere, and the toolbox is now being used by in
situ, Earth observation, and modelling scientific communi-
ties. The development of the toolbox was driven by the desire
to reduce duplication of effort, to facilitate collaboration be-
tween different research communities, and to accelerate ad-
vancements in air-sea gas flux research and monitoring.

Building on Shutler et al. (2016), who demonstrated the
toolbox and verified the accuracy of the calculations, this pa-
per demonstrates new capabilities that considerably broadens
the scope of research questions that can be addressed using
FluxEngine. Version 3.0 can now be easily installed and ex-
ecuted on a desktop or laptop computer and does not require
specialist hardware or software libraries. It can be used as a
Python library or as a set of stand-alone command-line util-
ities. The toolbox now includes an extensive suite of tools
for calculating gas fluxes directly from in situ data. Collec-
tively, these improvements have streamlined the process for
extending the toolbox and will allow users to easily take ad-
vantage of newly developed gas transfer velocity parameter-
isations and/or new sources of input data. These new tools
and the toolbox are fully compatible with the internationally
established data structures being used by the SOCAT and the
MEMENTO communities.
The inclusion of the handling of CH₄ and N₂O sea-air gas fluxes is intended to directly support those communities studying these gases. Significant international research focus and effort is now being directed to collating data on these gases towards monitoring and understanding their spatial distribution and variability.

The FluxEngine toolbox will continue to be updated as new approaches become available. Further development will be guided by the needs of the international research and monitoring communities, so we welcome feedback from users on all aspects of the toolbox.

*Code availability.* FluxEngine is an open-source software and is available with a creative commons license via https://github.com/oceanflux-ghg/FluxEngine (last access: 6 December 2019, GitHub, 2019a). FluxEngine is in constant development and historic versions are available via GitHub. To access the specific version used to conduct the case studies in Sect. 3, please access the v3.0 release via https://github.com/oceanflux-ghg/FluxEngine/releases/tag/v3.0 (last access: 6 December 2019, GitHub, 2019b).
## Appendix A: Utility names and descriptions

Several additional utilities are provided as Python scripts to support the installation, verification, execution, and processing of output, and these are listed in Table A1.

<table><caption>**Table A1.** Description of the bundled tools and scripts that are included in FluxEngine. Each tool can be used as a stand-alone command-line tool or used as a Python package.</caption><thead><tr><td>Utility</td><td>Description</td></tr></thead><tbody><tr><td>append2insitu.py</td><td>Appends netCDF data (e.g. FluxEngine output) to text-formatted data files as new columns. Matching rows by longitude, latitude, and time.</td></tr><tr><td>install_dependencies_macos.py, install_dependencies_ubuntu.py</td><td>Installation scripts. Installation instructions are provided for Windows users in FluxEngineV3_instructions.pdf.</td></tr><tr><td>ncdf2text.py</td><td>Converts netCDF output files to text-formatted files.</td></tr><tr><td>ofluxghg_flux_budgets.py</td><td>Calculates total monthly and annual gas flux from FluxEngine output. Supports global and regional analysis.</td></tr><tr><td>ofluxghg_run.py</td><td>Commandline tool used to run FluxEngine.</td></tr><tr><td>reanalyse_socat_driver.py</td><td>Uses satellite sea surface temperature to reanalyse CO<sub>2</sub> fugacity and partial pressure data to a consistent temperature and depth (see Goddijn-Murphy et al., 2015)</td></tr><tr><td>run_full_verifyation.py</td><td>Runs an extended verification procedure. Required additional data from (Holding et al., 2018).</td></tr><tr><td>text2ncdf.py</td><td>Converts text-formatted data files into FluxEngine compatible netCDF format.</td></tr><tr><td>validation_tools.py, compare_net_budgets.py</td><td>Contains Python functions to aid verification of FluxEngine output to a reference dataset.</td></tr><tr><td>verify_socatv4_sst salinity gradients_N00.py, verify_takahashi09.py</td><td>Verifies that FluxEngine has been installed correctly by comparing output with a reference data from SOCAT-derived or Takahashi climatologies, respectively.</td></tr></tbody></table>
## Appendix B: Datasets used

Table B1 provides details of each of the datasets that were used in the case studies.

<table><caption>**Table B1.** The Earth observation in situ, model, and climatology data used in this research.</caption><thead><tr><th>Name</th><th>Parameter(s)</th><th>Reference and source</th></tr></thead><tbody><tr><td>CCMP v2 (Cross-Calibrated Multi-Platform)</td><td>U<sub>10</sub> (wind speed at 10 m)</td><td>Atlas et al. (2011)<br>http://www.rems.com/measurements/ccmp/<br>(last access: 6 December 2019)</td></tr><tr><td>OISST (Optimum Interpolation Sea Surface Temperature)</td><td>Sea surface temperature (SST)</td><td>Reynolds et al. (2007)<br>https://www.ncdc.noaa.gov/oisst (last access: 6 December 2019)</td></tr><tr><td>GLOBALVIEW-CO2</td><td>xCO<sub>2</sub> (molar fraction of CO<sub>2</sub> in dry air)</td><td>GLOBALVIEW-CO2 (2013)<br>https://www.esrl.noaa.gov/gmd/ccgg/globalview/co2/co2_intro.html (last access: 6 December 2019)</td></tr><tr><td>National Centers for Environmental Prediction, National Center for Atmospheric Research (NCEP/NCAR)</td><td>Air pressure</td><td>Kalnay et al. (1996)<br>https://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.pressure.html (last access: 6 December 2019)</td></tr><tr><td>Underway data from the James Clark cruise (74JC20131009)</td><td>SST, salinity, air pressure, fCO<sub>2</sub></td><td>Kitidis and Brown (2017)<br>https://doi.pangaea.de/10.1594/PANGAEA.878492</td></tr><tr><td>Underway data from the Benguela Stream cruise (642B20131005)</td><td>SST, salinity, air pressure, fCO<sub>2</sub></td><td>Schuster (2016)<br>https://doi.org/10.1594/PANGAEA.852980</td></tr><tr><td>Underway data from the Atlantic Companion cruise (77CN20131004)</td><td>SST, salinity, air pressure, fCO<sub>2</sub></td><td>Steinhoff et al. (2016)<br>https://doi.org/10.1594/PANGAEA.852786</td></tr><tr><td>Underway data from the REYKJAFOSS cruise (64RJ20131017)</td><td>SST, salinity, air pressure, fCO<sub>2</sub>, xCO<sub>2</sub></td><td>Wanninkhof and Pierrot (2016)<br>https://doi.org/10.1594/PANGAEA.866092</td></tr><tr><td>Östergarnsholm station (77FS20150128)</td><td>Air pressure, salinity, SST, xCO<sub>2</sub> (air), fCO<sub>2</sub> (water)</td><td>Rutgersson (2017)<br>https://doi.pangaea.de/10.1594/PANGAEA.878531</td></tr><tr><td>MarinE MethanE and NiTrous Oxide database (MEMENTO)</td><td>SST, pN<sub>2</sub>O<sub>air</sub>, pN<sub>2</sub>O<sub>water</sub></td><td>Kock and Bange (2015)<br>https://memento geomar.de/<br>(last access: 6 December 2019)</td></tr><tr><td>National Oceanic and Atmospheric Administration, US (NOAA) WAVEWATCH III</td><td>U<sub>10</sub> (wind speed at 10 m), FOC (wave to turbulent kinetic energy)</td><td>WAVEWATCH III development group (2016)</td></tr><tr><td>Interpolated and reanalysed fCO<sub>2</sub> field originating from the SOCAT dataset</td><td>fCO<sub>2</sub> (interpolated)</td><td>Dataset methodology: Woolf et al. (2019)<br>Resultant fCO<sub>2</sub> data: Holding et al. (2018)<br>https://doi.pangaea.de/10.1594/PANGAEA.890118<br>Original SOCAT dataset: Bakker et al. (2016)<br>https://www.socat.info/ (last access: 6 December 2019)</td></tr></tbody></table>
## Appendix C: Summary of main toolbox features

Table C1 lists the main features of the FluxEngine toolbox with summaries of their impact for the accurate calculation of atmosphere-ocean gas fluxes.

<table><caption>**Table C1.** An overview of the key features provided by the FluxEngine software toolkit and their relevance or use for atmosphere-ocean gas exchange.</caption><thead><tr><td>Feature or option</td><td>Description</td><td>Example impact or use</td></tr></thead><tbody><tr><td>Ability to choose the structure of the bulk gas flux calculation or formulation</td><td>The user can choose their bulk formulation but a formulation based on concentration differences (i.e. containing two solubilities) is advised. This advised formulation enables near-surface temperature and salinity gradients to be included. For reasoning and examples of this advice, please see Woolf et al. (2016, 2019) and Sect. 1b of Shutler et al. (2016).</td><td>Woolf et al. (2019) shows that ignoring vertical temperature and salinity gradients for 2010 results in a 0.35 Pg C (12%) bias or underestimate in the oceanic sink of CO<sub>2</sub>.</td></tr><tr><td>User-selectable gas transfer velocity parameterisations</td><td>The toolbox includes 14 published wind speed parameterisations and one mean square slope parameterisation, along with a generic user-configurable wind speed parameterisation (see Sect. 7 of the FluxEngine manual). Custom user parameterisations can be added using a Python template (Sect. 9.2 of the FluxEngine manual).</td><td>Wrobel and Piskozub (2016) showed that the (model) uncertainty due to the choice of quadratic gas transfer parameterisation led to a 9% difference in the gas transfer velocity for the North Atlantic and subpolar waters. This uncertainty increased to 65% when all parameterisations were considered.</td></tr><tr><td>Reanalyse fCO<sub>2</sub> data to a reference temperature and depth</td><td>The user can reanalyse paired in situ fCO<sub>2</sub> and SST measurements to a consistent depth using a reference temperature dataset as described by Goddijn-Murphy et al. (2015).</td><td>This removes unknown biases due to paired data originating from multiple depths. The depth of in situ data can vary during a single research cruise (e.g. due to sea state or balancing) and measurements from varying depths become a more significant problem when using large collated datasets collected using different measurement systems.</td></tr><tr><td>User-selectable gas input data types</td><td>The user can input atmospheric and marine gas data as partial pressures, fugacities, or concentrations.</td><td>This allows for a wider range of poorly soluble gases to be analysed.</td></tr><tr><td>Flexibility to calculate air-sea gas fluxes of multiple poorly soluble gases</td><td>The toolbox supports user-definable sea-to-air gas flux calculations for CO<sub>2</sub>, CH<sub>4</sub>, and N<sub>2</sub>O.</td><td>This paper estimates that surfactants can suppress N<sub>2</sub>O gas fluxes by up to 13% in the North Atlantic.</td></tr><tr><td>Accounting for the impact of rain on air-sea gas fluxes</td><td>Users can investigate methods that include the different influences that rain can have on air-sea gas fluxes.</td><td>Ashton et al. (2016) estimated that rain-driven gas transfer and wet deposition of carbon increases the annual oceanic integrated net sink of CO<sub>2</sub> by up to 6%.</td></tr><tr><td>Flexible input data specification and support for in situ data</td><td>Tools are provided to support user-specified grid size, temporal resolution, naming conventions and directory structure, automatic unit conversion, and conversion between text- (ASCII) and netCDF-formatted data files.</td><td>Allows for a wide range of data to be easily used and analysed by the user and the FluxEngine outputs can be easily incorporated into the users original in situ dataset.</td></tr><tr><td>Calculate integrated net gas fluxes</td><td>A tool for calculating global or regional integrated net gas fluxes (e.g. CO<sub>2</sub> sink) from netCDF air-sea gas flux data is provided. This enables user-defined land, ice, and region of interest masks to be used and there are multiple options for handling the impact of sea ice.</td><td>Shutler et al. (2016) showed that the calculated net CO<sub>2</sub> fluxes can vary by 14% for the European shelf sea simply due to differing shelf sea masks, highlighting the need for traceable methods and masks for net flux calculations.</td></tr><tr><td>Input data uncertainty analysis</td><td>Users can add random noise (with user-defined variance and bias) to any input dataset. This enables the users to investigate the impact of input data uncertainties on their air-sea gas flux calculation (e.g. through using an ensemble approach).</td><td>Ashton et al. (2016) identified that known uncertainties due to random fluctuations in the input data resulted in a ±1% variation in the monthly net integrated CO<sub>2</sub> sink. Land et al. (2013) identified that the dominant source of uncertainty in Arctic air-sea gas flux calculations was due to bias in wind speed data (and its impact on the wind-speed-based gas transfer velocity).</td></tr></tbody></table>
## Appendix D: Installation, verification, and benchmarking

Installation tools or instructions are provided in the FluxEngine root directory for the following operating systems: Ubuntu/Debian-based Linux (install_dependencies_ubuntu.sh), Apple Mac (install_dependencies_macos.sh), and Windows (instructions are within FluxEngineV3 beat instructions.pdf). Two verification utilities (also located in the root directory) are provided (verify_takahashi09.py and verify_socatv4_sst_salinity_gradients_N00.py). These can be used to verify the successful installation of Flux-Engine by running standard global sea-to-air CO2 gas flux calculations and net integrated fluxes using the (Takahashi et al., 2009) sea-to-air CO2 flux climatology (for the year 2000) and the Woolf et al. (2019) Surface Ocean CO2 ATlas (SOCAT; Bakker et al., 2016) sea-to-air CO2 flux reference dataset for the year 2010. Both of these datasets are contained within Holding et al. (2018) and the verification process compares the output from a test run of the toolbox with the reference data published in Holding et al. (2018). The installation is deemed successful if all results are identical to the reference dataset within a precision of five decimal places. An additional utility (run_full_verify.py) enables the user to perform a more detailed verification of different user-defined options that exploit the Woolf et al. (2019) reference dataset. This executes a suite of 12 different configurations and scenarios, the justification for which is described within Woolf et al. (2019). Owing to the large volume of data required to execute and verify all of these scenarios, the verification data are not packaged with the standard FluxEngine download but are all freely available and contained within Holding et al. (2018).

To provide an indication of the execution time, a benchmarking analysis was performed using an Intel Core i5 2.7 GHz laptop processor with 8GB RAM running MacOS El Capitan. The automatic installation took ~3 min to complete and the basic verification script using the Woolf et al. (2019) reference dataset (involving a global 1 year analysis of the gas fluxes for 2010, monthly temporal resolution, and 1° × 1° spatial resolution) took approximately 6 min to complete. As the flux calculation is sequential for each grid cell, the execution time scales approximately linearly with the number of grid points and number of time steps. Hence, doubling the temporal resolution will approximately double the execution time, whilst doubling the resolution of both spatial dimensions will lead to a factor of 4 increase in execution time.
*Author contributions.* Design and analysis was performed by TH, IGA, and JDS. Software engineering was performed by TH and IGA. Preprocessing of nitrous oxide data was performed by AK. All authors contributed to the preparation of the article.

*Competing interests.* The authors declare that they have no conflict of interest.

*Acknowledgements.* This work was partially funded by the European Space Agency (ESA) Support to Science Element (STSE) through the OceanFlux Greenhouse Gases project (contract no. 4000104762/11/I-AM), the OceanFlux Greenhouse Gases Evolution project (contract no. 4000112091/14/I-LG), and by the European Space Agency (ESA) through the Sea surface Kinematics Multiscale monitoring (SKIM) Mission Science study (contract no. 4000124734/18/NL/CT/gp) and the ESA SKIM Scientific Performance Evaluation study (contract no. 4000124521/18/NL/CT/gp), as well as through the NERC RAGNARoCC project (grant ref. NE/K002473/1). Further development of FluxEngine was funded by the European Union's Seventh Programme for Research and Technological Development (grant nos. 03FO773A (BONUS INTEGRAL) and 730944 (RINGO)).

The Surface Ocean CO₂ ATlas (SOCAT) is an international effort, endorsed by the International Ocean Carbon Coordination Project (IOCCP), the Surface Ocean-Lower Atmosphere Study (SOLAS), and the Integrated Marine Biosphere Research (IMBeR) programme, to deliver a uniformly quality-controlled surface ocean CO₂ database. The many researchers and funding agencies responsible for the collection of data and quality control are thanked for their contributions to SOCAT.

CCMP Version-2.0 vector wind analyses are produced by Remote Sensing Systems (http://www.remsss.com, last access: 6 December 2019). NCEP Reanalysis data provided by the NOAA/OAR/ESRL PSD, Boulder, Colorado, USA, from their web site at https://www.esrl.noaa.gov/psd/ (last access: 6 December 2019).

MEMENTO (https://memento.geomar.de/, last access: 6 December 2019) is currently supported by the Kiel Data Management Team at GEOMAR and the BONUS INTEGRAL project.

This study is a contribution to the international IMBeR project and was supported by the UK Natural Environment Research Council National Capability (CLASS Theme 1.2) funding to Plymouth Marine Laboratory. This is contribution number 330 of the AMT programme.

BONUS INTEGRAL receives funding from BONUS (Art 185), funded jointly by the EU, the German Federal Ministry of Education and Research, the Swedish Research Council Formas, the Academy of Finland, the Polish National Centre for Research and Development, and the Estonian Research Council.

*Financial support.* This research has been supported by the European Space Agency (grant nos. 4000104762/11/I-AM, 4000112091/14/I-LG, 4000124734/18/NL/CT/gp, and 4000124521/18/NL/CT/gp), the Natural Environment Research Council (grant no. NE/K002473/1), the Horizon 2020 Frame-

work Programme (RINGO (grant no. 730944)), and the Seventh Framework Programme (INTEGRAL (grant no. 282887)).

*Review statement.* This paper was edited by Mario Hoppema and reviewed by Brian Butterworth and one anonymous referee.

## References

Ardhuin, F., Brandt, P., Gaultier, L., Donlon, C., Battaglia, A., Boy, F., Casal, T., Chapron, B., Collard, F., Cravatte, S., and Delouis, J. M.: SKIM, a candidate satellite mission exploring global ocean currents and waves, Front. Mar. Sci., 6, 209, https://doi.org/10.3389/fmars.2019.00209, 2019.

Ashton, I. G., Shutler, J. D., Land, P. E., Woolf, D. K., and Quartly, G. D.: A Sensitivity Analysis of the Impact of Rain on Regional and Global Sea-Air Fluxes of CO₂, edited by: deCastro, M., PLoS One, 11, e0161105, https://doi.org/10.1371/journal.pone.0161105, 2016.

Atlas, R., Hoffman, R. N., Ardizzone, J., Leidner, S. M., Jusem, J. C., Smith, D. K., and Gombos, D.: A Cross-calibrated, Multi-platform Ocean Surface Wind Velocity Product for Meteorological and Oceanographic Applications, B. Am. Meteorol. Soc., 92, 157–174, https://doi.org/10.1175/2010BAMS2946.1, 2011.

Bakker, D. C. E., Bange, H. W., Gruber, N., Johannessen, T., Upstill-Goddard, R. C., Borges, A. V., Delille, B., Löscher, C. R., Naqvi, S. W. A., Omar, A. M., and Santana-Casiano, J. M.: Air-Sea Interactions of Natural Long-Lived Greenhouse Gases (CO₂, N₂O, CH₄) in a Changing Climate, p. 113–169, Springer, Berlin, Heidelberg, 2014.

Bakker, D. C. E., Pfeil, B., Landa, C. S., Metzl, N., O’Brien, K. M., Olsen, A., Smith, K., Cosca, C., Harasawa, S., Jones, S. D., Nakaoka, S., Nojiri, Y., Schuster, U., Steinhoff, T., Sweeney, C., Takahashi, T., Tilbrook, B., Wada, C., Wanninkhof, R., Alin, S. R., Balestrini, C. F., Barbero, L., Bates, N. R., Bianchi, A. A., Bonou, F., Boutin, J., Bozec, Y., Burger, E. F., Cai, W.-J., Castle, R. D., Chen, L., Chierici, M., Currie, K., Evans, W., Featherstone, C., Feely, R. A., Fransson, A., Goyet, C., Greenwood, N., Gregor, L., Hankin, S., Hardman-Mountford, N. J., Harlay, J., Hauck, J., Hoppema, M., Humphreys, M. P., Hunt, C. W., Huss, B., Ibánhez, J. S. P., Johannessen, T., Keeling, R., Kitidis, V., Körtzinger, A., Kozyr, A., Krasakopoulou, E., Kuwata, A., Landschützer, P., Lauvset, S. K., Lefèvre, N., Lo Monaco, C., Manke, A., Mathis, J. T., Merlivat, L., Millero, F. J., Monteiro, P. M. S., Munro, D. R., Murata, A., Newberger, T., Omar, A. M., Ono, T., Paterson, K., Pearce, D., Pierrot, D., Robbins, L. L., Saito, S., Salisbury, J., Schlitzer, R., Schneider, B., Schweitzer, R., Sieger, R., Skjelvan, I., Sullivan, K. F., Sutherland, S. C., Sutton, A. J., Tadokoro, K., Telszewski, M., Tuma, M., van Heuven, S. M. A. C., Vandemark, D., Ward, B., Watson, A. J., and Xu, S.: A multi-decade record of high-quality fCO₂ data in version 3 of the Surface Ocean CO₂ Atlas (SOCAT), Earth Syst. Sci. Data, 8, 383–413, https://doi.org/10.5194/essd-8-383-2016, 2016.

Boyer, T. P., Antonov, J. I., Baranova, O. K., Garcia, H. E., Johnson, D. R., Mishonov, A. V., O’Brien, T. D., Seidov, D., Smolyar, I., Zweng, M. M., Paver, C. R., Locarnini, R. A., Reagan, J. R., Forgy, C., Grodsky, A., and Levitus, S.:
World Ocean Database 2013, NOAA Atlas NESDIF, 72, 209, https://doi.org/10.7289/V5NZ85MT, 2013.

Brown, I. and Rees, A.: Nitrous Oxide measurements from CTD collected depth profiles along a North-South transect in the Atlantic Ocean on cruise JR303/AMT24/JR20140922, Br. Oceanogr. Data Cent.-Nat. Environ. Res. Counc. UK, https://doi.org/10.5285/7cbed206-c122-2777-e053-6c86abc041f9, 2018.

Craig, P. D., Banner, M. L., and Craig, P. D.: Modeling Wave-Enhanced Turbulence in the Ocean Surface Layer, J. Phys. Oceanogr., 24, 2546–2559, https://doi.org/10.1175/1520-0485(1994)024<2546:MWETIT>2.0.CO;2, 1994.

Donlon, C., Robinson, I. S., Wimmer, W., Fisher, G., Reynolds, M., Edwards, R. and Nightingale, T. J.: An Infrared Sea Surface Temperature Autonomous Radiometer (ISAR) for Deployment aboard Volunteer Observing Ships (VOS), J. Atmos. Ocean. Technol., 25, 93–113, https://doi.org/10.1175/2007JTECHO505.1, 2008.

Fairall, C. W., Bradley, E. F., Rogers, D. P., Edson, J. B., and Young, G. S.: Bulk parameterization of air-sea fluxes for Tropical Ocean-Global Atmosphere Coupled-Ocean Atmosphere Response Experiment, J. Geophys. Res.-Ocean., 101, 3747–3764, https://doi.org/10.1029/95JC03205, 1996.

GEBCO: The GEBCO Digital Atlas published by the British 15 Oceanographic Data Centre on behalf of IOC and IHO, https://doi.org/10.5285/836f016a-33be-6ddc-e053-6c86abc0788e (last access: 6 December 2019), 2003.

GitHub, FluxEngine source code repository, available at: https://github.com/oceanflux-ghg/FluxEngine, last access: 6 December, 2019a.

GitHub, FluxEngine release page for version 3.0, available at: https://github.com/oceanflux-ghg/FluxEngine/releases/tag/v3.0, last access: 6 December, 2019b.

GLOBALVIEW-CO2: Cooperative Global Atmospheric Data Integration Project, 2013, updated annually. Multi-laboratory compilation of synchronized and gap-filled atmospheric carbon dioxide records for the period 1979–2012 (obspack_co2_1_GLOBALVIEW-CO2_2013_v1.0.4_2013-12-23), Compil. by NOAA Glob. Monit. Devision, https://doi.org/10.3334/OBSPACK/1002, 2013.

Goddijn-Murphy, L. M., Woolf, D. K., Land, P. E., Shutler, J. D., and Donlon, C.: The OceanFlux Greenhouse Gases methodology for deriving a sea surface climatology of CO₂ fugacity in support of air-sea gas flux studies, Ocean Sci., 11, 519–541, https://doi.org/10.5194/os-11-519-2015, 2015.

Henson, S. A., Humphreys, M. P., Land, P. E., Shutler, J. D., Goddijn-Murphy, L., and Warren, M.: Controls on open-ocean North Atlantic $\Delta p\text{CO}_2$ at seasonal and interannual timescales are different, Geophys. Res. Lett., 45, 9067–9076, https://doi.org/10.1029/2018GL078797, 2018.

Ho, D. T., Law, C. S., Smith, M. J., Schlosser, P., Harvey, M., and Hill, P.: Measurements of air-sea gas exchange at high wind speeds in the Southern Ocean: Implications for global parameterizations, Geophys. Res. Lett., 33, L16611, https://doi.org/10.1029/2006GL026817, 2006.

Ho, D. T., Veron, F., Harrison, E., Bliven, L. F., Scott, N., and McGillis, W. R.: The combined effect of rain and wind on air-water gas exchange: A feasibility study, J. Mar. Syst., 66, 150–160, https://doi.org/10.1016/J.JMARSYS.2006.02.012, 2007.

Holding, T., Ashton, I., Woolf, D. K., and Shutler, J. D.: Flux-Engine v2.0 and v3.0 reference and verification data, PANGAEA, https://doi.org/10.1594/PANGAEA.890118, 2018.

IPCC: Climate Change 2013: The Physical Science Basis. Contribution of Working Group I to the Fifth Assessment Report of the Intergovernmental Panel on Climate Change, Cambridge University Press, Cambridge, United Kingdom and New York, NY, USA, 1535 pp., available at: https://www.ipcc.ch/report/ar5/wg1/ (last access: 6 December 2019), 2013.

Jähne, B., Münnich, K. O., Bösinger, R., Dutzi, A., Huber, W., and Libner, P.: On the parameters influencing air-water gas exchange, J. Geophys. Res., 92, 1937–1949, https://doi.org/10.1029/JC092iC02p01937, 1987.

Kalnay, E., Kanamitsu, M., Kistler, R., Collins, W., Deaven, D., Gandin, L., Iredell, M., Saha, S., White, G., Woollen, J., Zhu, Y., Leetmaa, A., Reynolds, R., Chelliah, M., Ebisuzaki, W., Higgins, W., Janowiak, J., Mo, K. C., Ropelewski, C., Wang, J., Jenne, R., Joseph, D., Kalnay, E., Kanamitsu, M., Kistler, R., Collins, W., Deaven, D., Gandin, L., Iredell, M., Saha, S., White, G., Woollen, J., Zhu, Y., Chelliah, M., Ebisuzaki, W., Higgins, W., Janowiak, J., Mo, K. C., Ropelewski, C., Wang, J., Leetmaa, A., Reynolds, R., Jenne, R., and Joseph, D.: The NCEP/NCAR 40-Year Reanalysis Project, B. Am. Meteorol. Soc., 77, 437–471, https://doi.org/10.1175/1520-0477(1996)077<0437:TNYRP>2.0.CO;2, 1996.

Kitidis, V. and Brown, I.: Underway physical oceanography and carbon dioxide measurements during James Clark Ross cruise 74JC20131009, PANGAEA, https://doi.org/10.1594/PANGAEA.878492, 2017.

Kock, A. and Bange, H.: Counting the Ocean's Greenhouse Gas Emissions, Earth Sp. Sci. News, 96, 10–13, https://doi.org/10.1029/2015EO023665, 2015.

Kock, A., Schafstall, J., Dengler, M., Brandt, P., and Bange, H. W.: Sea-to-air and diapycnal nitrous oxide fluxes in the eastern tropical North Atlantic Ocean, Biogeosciences, 9, 957–964, https://doi.org/10.5194/bg-9-957-2012, 2012.

Land, P. E., Shutler, J. D., Cowling, R. D., Woolf, D. K., Walker, P., Findlay, H. S., Upstill-Goddard, R. C., and Donlon, C. J.: Climate change impacts on sea-air fluxes of CO₂ in three Arctic seas: a sensitivity study using Earth observation, Biogeosciences, 10, 8109–8128, https://doi.org/10.5194/bg-10-8109-2013, 2013.

Laruelle, G. G., Landschützer, P., Gruber, N., Tison, J.-L., Delille, B., and Regnier, P.: Global high-resolution monthly $p\text{CO}_2$ climatology for the coastal ocean derived from neural network interpolation, Biogeosciences, 14, 4545–4561, https://doi.org/10.5194/bg-14-4545-2017, 2017.

Laruelle, G. G., Cai, W.-J., Hu, X., Gruber, N., Mackenzie, F. T., and Regnier, P.: Continental shelves as a variable but increasing global sink for atmospheric carbon dioxide, Nat. Commun., 9, 454, https://doi.org/10.1038/s41467-017-02738-z, 2018.

McKenna, S. P. and Bock, E. J.: Physicochemical effects of the marine microlayer on air-sea gas transport, in Marine Surface Films, p. 77–91, Springer-Verlag, Berlin/Heidelberg, 2006.

Mesarchaki, E., Kräuter, C., Krall, K. E., Bopp, M., Helleis, F., Williams, J., and Jähne, B.: Measuring air-sea gas-exchange velocities in a large-scale annular wind-wave tank, Ocean Sci., 11, 121–138, https://doi.org/10.5194/os-11-121-2015, 2015.

Nightingale, P. D., Malin, G., Law, C. S., Watson, A. J., Liss, P. S., Liddicoat, M. I., Boutin, J. and Upstill-Goddard, R. C.: In situ
evaluation of air-sea gas exchange parameterizations using novel conservative and volatile tracers, Global Biogeochem. Cy., 14, 373–387, https://doi.org/10.1029/1999GB900091, 2000.

Pereira, R., Schneider-Zapp, K., and Upstill-Goddard, R. C.: Surfactant control of gas transfer velocity along an offshore coastal transect: results from a laboratory gas exchange tank, Biogeoosciences, 13, 3981–3989, https://doi.org/10.5194/bg-13-3981-2016, 2016.

Pereira, R., Ashton, I., Sabbaghzadeh, B., Shutler, J. D. and Upstill-Goddard, R. C.: Reduced air-sea CO₂ exchange in the Atlantic Ocean due to biological surfactants, Nat. Geosci., 11, 492–496, https://doi.org/10.1038/s41561-018-0136-2, 2018.

Ravishankara, A. R., Daniel, J. S., and Portmann, R. W.: Nitrous oxide (N₂O): the dominant ozone-depleting substance emitted in the 21st century, Science, 326, 123–125, https://doi.org/10.1126/science.1176985, 2009.

Reynolds, R. W., Smith, T. M., Liu, C., Chelton, D. B., Casey, K. S., and Schlax, M. G.: Daily High-Resolution-Blended Analyses for Sea Surface Temperature, J. Climate, 20, 5473–5496, https://doi.org/10.1175/2007JCLI1824.1, 2007.

Rödenbeck, C., Bakker, D. C. E., Gruber, N., Iida, Y., Jacobson, A. R., Jones, S., Landschützer, P., Metzl, N., Nakaoka, S., Olsen, A., Park, G.-H., Peylin, P., Rodgers, K. B., Sasse, T. P., Schuster, U., Shutler, J. D., Valsala, V., Wanninkhof, R., and Zeng, J.: Data-based estimates of the ocean carbon sink variability – first results of the Surface Ocean pCO₂ Mapping intercomparison (SOCOM), Biogeosciences, 12, 7251–7278, https://doi.org/10.5194/bg-12-7251-2015, 2015.

Rutgersson, A.: Time series of physical oceanography and carbon dioxide measurements at mooring site OS-TERGARNSHOLM – 77FS20150128, PANGAEA, https://doi.org/10.1594/PANGAEA.878531, 2017.

Salter, M. E., Upstill-Goddard, R. C., Nightingale, P. D., Archer, S. D., Blomquist, B., Ho, D. T., Huebert, B., Schlosser, P., and Yang, M.: Impact of an artificial surfactant release on air-sea gas fluxes during Deep Ocean Gas Exchange Experiment II, J. Geophys. Res., 116, C11016, https://doi.org/10.1029/2011JC007023, 2011.

Schuster, U.: Underway physical oceanography and carbon dioxide measurements during Benguela Stream cruise 642B20131005, PANGAEA, https://doi.org/10.1594/PANGAEA.852980, 2016.

Shutler, J. D., Land, P. E., Piolle, J. F., Woolf, D. K., Goddijn-Murphy, L., Paul, F., Girard-Ardhuin, F., Chapron, B., and Donlon, C. J.: FluxEngine: A flexible processing system for calculating atmosphere-ocean carbon dioxide gas fluxes and climatologies, J. Atmos. Ocean. Tech., 33, 741–756, https://doi.org/10.1175/JTECH-D-14-00204.1, 2016.

Shutler, J. D., Wanninkhof, R., Nightingale, P. D., Woolf, D. K., Bakker, D. C., Watson, A., Ashton, I., Holding, T., Chapron, B., Quilfen, Y., Fairall, C., Schuster, U., Nakajima, M., and Donlon, C. J.: Satellites will address critical science priorities for quantifying ocean carbon, Front. Ecol. Environ., https://doi.org/10.1002/fee.2129, online first, 2019.

Steinhoff, T., Becker, M., and Körtzinger, A.: Underway physical oceanography and carbon dioxide measurements during Atlantic Companion cruise 77CN20131004, PANGAEA, https://doi.org/10.1594/PANGAEA.852786, 2016.

Takahashi, T., Sutherland, S. C., Wanninkhof, R., Sweeney, C., Feely, R. A., Chipman, D. W., Hales, B., Friederich, G., Chavez,

F., Sabine, C., Watson, A., Bakker, D. C. E., Schuster, U., Yoshikawa-Inoue, H., Ishii, M., Midorikawa, T., Nojiri, Y., Körtzinger, A., Steinhoff, T., Hoppema, M., Olafsson, J., Arnarson, T. S., Johannessen, T., Olsen, A., Bellerby, R., Wong, C. S., Delille, B., Bates, N. R., and de Baar, H. J. W.: Climatological mean and decadal change in surface ocean pCO₂, and net sea-air CO₂ flux over the global oceans, Deep-Sea Res. Pt. II, 56, 554–577, https://doi.org/10.1016/j.dsr2.2008.12.009, 2009.

Tarran, G.: AMT 28 Cruise Report, available at: https://amt-uk.org/getattachment/Cruises/AMT28/AMT_28_CRIUSE_REPORT_RS.pdf (last access: 6 December 2019), 2018.

Villas Bôas, A. B., Ardhuin, F., Ayet, A., Bourassa, M. A., Chapron, B., Brandt, P., Cornuelle, B. D., Farrar, J. T., Fewings, M. R., Fox-Kemper, B., and Gille, S. T.: Integrated observations and modeling of global winds, currents, and waves: requirements and challenges for the next decade, Front. Mar. Sci., 6, 425, https://doi.org/10.3389/fmars.2019.00425, 2019.

Wanninkhof, R.: Relationship between wind speed and gas exchange over the ocean, J. Geophys. Res., 97, 7373, https://doi.org/10.1029/92JC00188, 1992.

Wanninkhof, R.: Relationship between wind speed and gas exchange over the ocean revisited, Limnol. Oceanogr. Methods, 12, 351–362, https://doi.org/10.4319/lom.2014.12.351, 2014.

Wanninkhof, R. and Pierrot, D.: Underway physical oceanography and carbon dioxide measurements during REYKJAFOSS cruise 64RJ20131017, PANGAEA, https://doi.org/10.1594/PANGAEA.866092, 2016.

WAVEWATCH III development group: User manual and system documentation of WAVEWATCH III version 5.16, Technical Note 329, 2016.

Woolf, D. K., Land, P. E., Shutler, J. D., Goddijn-Murphy, L. M., and Donlon, C. J.: On the calculation of air-sea fluxes of CO₂ in the presence of temperature and salinity gradients, J. Geophys. Res.-Ocean., 121, 1229–1248, https://doi.org/10.1002/2015JC011427, 2016.

Woolf, D. K., Shutler, J. D., Goddijn-Murphy, L., Watson, A. J., Chapron, B., Nightingale, P. D., Donlon, C. J., Piskozub, J., Yelland, M. J., Ashton, I., Holding, T., Schuster, U., Girard-Ardhuin, F., Grouazel, A., Piolle, J.-F., Warren, M., Wrobel-Niedzwiecka, I., Land, P. E., Torres, R., Prytherch, J., Moat, B., Hanafin, J., Ardhuin, F., and Paul, F.: Key Uncertainties in the Recent Air-Sea Flux of CO₂, Global Biogeochem. Cy., https://doi.org/10.1029/2018gb006041, online first, 2019.

Wrobel, I.: Monthly dynamics of carbon dioxide exchange across the sea surface of the Arctic Ocean in response to changes in gas transfer velocity and partial pressure of CO₂ in 2010, Oceanologia, 59, 445–459, https://doi.org/10.1016/j.oceanogr.2017.05.001, 2017.

Wrobel, I. and Piskozub, J.: Effect of gas-transfer velocity parameterization choice on air-sea CO₂ fluxes in the North Atlantic Ocean and the European Arctic, Ocean Sci., 12, 1091–1103, https://doi.org/10.5194/os-12-1091-2016, 2016.

Zappa, C. J., McGillis, W. R., Raymond, P. A., Edson, J. B., Hintsa, E. J., Zemmelink, H. J., Dacey, J. W. H., and Ho, D. T.: Environmental turbulent mixing controls on air-water gas exchange in marine and aquatic systems, Geophys. Res. Lett., 34, L10601, https://doi.org/10.1029/2006GL028790, 2007.
Zhao, D., Jia, N., and Dong, Y.: Relationship between turbulent energy dissipation and gas transfer through the air-sea interface, Tellus B, 70, 1–11, https://doi.org/10.1080/16000889.2018.1528133, 2018.

Zweng, M. M., Reagan, J. R., Seidov, D., Boyer, T. P., Locarnini, R. A., Garcia, H. E., Mishonov, A. V., Baranova, O. K., Weathers, K., Paver, C. R., and Smolyar, I.: WORLD OCEAN ATLAS 2018 Volume 2: Salinity (pre-release), available at: http://www nodc.noaa.gov/ (last access: 26 March 2019), 2018.