FMS Coupler  2022.03
Functions/Subroutines | Variables
atmos_ocean_fluxes_calc_mod Module Reference

Functions/Subroutines

subroutine, public atmos_ocean_fluxes_calc (gas_fields_atm, gas_fields_ice, gas_fluxes, seawater, tsurf, ustar, cd_m)
 Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive. More...
 
real function calc_kw (tk, p, u10, h, vb, mw, sc_w, ustar, cd_m)
 Calculate $k_w$. More...
 
real function calc_ka (t, p, mw, vb, u10, ustar, cd_m)
 Calculate $k_a$. More...
 
real function calc_kl (t, v, sc)
 Calculate $k_l$. More...
 
real function schmidt_g (t, p, mw, vb)
 Schmidt number of the gas in air. More...
 
real function d_air (t, p, mw, vb)
 From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007) More...
 
real function p_air (t)
 kinematic viscosity in air More...
 
real function v_air (t)
 Kinematic viscosity in air ( $m^2/s$. More...
 
real function n_air (t)
 dynamic viscosity in air More...
 

Variables

character(len= *), parameter mod_name = "cdwfe"
 
real, parameter epsln =1.0e-30
 

Function/Subroutine Documentation

◆ atmos_ocean_fluxes_calc()

subroutine, public atmos_ocean_fluxes_calc_mod::atmos_ocean_fluxes_calc ( type(fmscoupler1dbc_type), intent(in)  gas_fields_atm,
type(fmscoupler1dbc_type), intent(in)  gas_fields_ice,
type(fmscoupler1dbc_type), intent(inout)  gas_fluxes,
real, dimension(:), intent(in)  seawater,
real, dimension(:), intent(in)  tsurf,
real, dimension(:), intent(in), optional  ustar,
real, dimension(:), intent(in), optional  cd_m 
)

Calculate the ocean gas fluxes. Units should be mol/m^2/s, upward flux is positive.

Parameters
[in]gas_fields_atmStructure containing atmospheric surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
[in]gas_fields_iceStructure containing ice-top and ocean surface variables that are used in the calculation of the atmosphere-ocean gas fluxes.
[in,out]gas_fluxesStructure containing the gas fluxes between the atmosphere and the ocean and parameters related to the calculation of these fluxes.
[in]seawater1 for the open water category, 0 if ice or land.

◆ calc_ka()

real function atmos_ocean_fluxes_calc_mod::calc_ka ( real, intent(in)  t,
real, intent(in)  p,
real, intent(in)  mw,
real, intent(in)  vb,
real, intent(in)  u10,
real, intent(in), optional  ustar,
real, intent(in), optional  cd_m 
)
private

Calculate $k_a$.

See calc_kw

Parameters
[in]ttemperature at surface in C
[in]ppressure at surface in pa
[in]mwmolecular weight (g/mol)
[in]vbmolar volume
[in]u10wind speed at 10m above the surface in m/s
[in]ustarFriction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$.
[in]cd_mDrag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$

◆ calc_kl()

real function atmos_ocean_fluxes_calc_mod::calc_kl ( real, intent(in)  t,
real, intent(in)  v,
real, intent(in)  sc 
)
private

Calculate $k_l$.

See calc_kw, and Nightingale, Global Biogeochemical Cycles, 2000 (https://doi.org/10.1029/1999GB900091)

Parameters
[in]ttemperature at surface in C
[in]vwind speed at surface in m/s

◆ calc_kw()

real function atmos_ocean_fluxes_calc_mod::calc_kw ( real, intent(in)  tk,
real, intent(in)  p,
real, intent(in)  u10,
real, intent(in)  h,
real, intent(in)  vb,
real, intent(in)  mw,
real, intent(in)  sc_w,
real, intent(in), optional  ustar,
real, intent(in), optional  cd_m 
)
private

Calculate $k_w$.

Taken from Johnson, Ocean Science, 2010. (http://doi.org/10.5194/os-6-913-2010)

Uses equations defined in Liss[1974],

\[ F = K_g(c_g - H C_l) = K_l(c_g/H - C_l) \]

where $c_g$ and $C_l$ are the bulk gas and liquid concentrations, $H$ is the Henry's law constant ( $H = c_{sg}/C_{sl}$, where $c_{sg}$ is the equilibrium concentration in gas phase ( $g/cm^3$ of air) and $C_{sl}$ is the equilibrium concentration of unionised dissolved gas in liquid phase ( $g/cm^3$ of water)),

\[ 1/K_g = 1/k_g + H/k_l \]

and

\[ 1/K_l = 1/k_l + 1/{Hk_g} \]

where $k_g$ and $k_l$ are the exchange constants for the gas and liquid phases, respectively.

Parameters
[in]tktemperature at surface in kelvin
[in]ppressure at surface in pa
[in]u10wind speed at 10m above the surface in m/s
[in]hHenry's law constant ( $H=c_sg/C_sl$) (unitless)
[in]vbMolar volume
[in]mwmolecular weight (g/mol)
[in]ustarFriction velocity (m/s). If not provided, ustar = $u_{10} \sqrt{C_D}$.
[in]cd_mDrag coefficient ( $C_D$). Used only if ustar is provided. If ustar is not provided, cd_m = $6.1 \times 10^{-4} + 0.63 \times 10^{-4} *u_10$

◆ d_air()

real function atmos_ocean_fluxes_calc_mod::d_air ( real, intent(in)  t,
real, intent(in)  p,
real, intent(in)  mw,
real, intent(in)  vb 
)
private

From Fuller, Industrial & Engineering Chemistry (https://doi.org/10.1021/ie50677a007)

Parameters
[in]ttemperature in c
[in]ppressure in pa
[in]mwmolecular weight (g/mol)
[in]vbdiffusion coefficient ( $cm3/mol$)

◆ n_air()

real function atmos_ocean_fluxes_calc_mod::n_air ( real, intent(in)  t)
private

dynamic viscosity in air

Parameters
[in]ttemperature in C

◆ p_air()

real function atmos_ocean_fluxes_calc_mod::p_air ( real, intent(in)  t)
private

kinematic viscosity in air

◆ schmidt_g()

real function atmos_ocean_fluxes_calc_mod::schmidt_g ( real, intent(in)  t,
real, intent(in)  p,
real, intent(in)  mw,
real, intent(in)  vb 
)
private

Schmidt number of the gas in air.

Parameters
[in]ttemperature at surface in C
[in]ppressure at surface in pa
[in]mwmolecular weight (g/mol)
[in]vbmolar volume

◆ v_air()

real function atmos_ocean_fluxes_calc_mod::v_air ( real, intent(in)  t)
private

Kinematic viscosity in air ( $m^2/s$.

Parameters
[in]ttemperature in C

Variable Documentation

◆ epsln

real, parameter atmos_ocean_fluxes_calc_mod::epsln =1.0e-30
private

◆ mod_name

character(len=*), parameter atmos_ocean_fluxes_calc_mod::mod_name = "cdwfe"
private