# WINDTRANS is the jOceans module of jLab.

WINDTRANS  Ekman-like transfer-functions for the wind-driven response.

G=WINDTRANS(OMEGA,Z,FC,DELTA,MU,H) returns the no-slip transfer
function for the wind-driven currents evaluated at frequencies OMEGA
and at depths Z.  G will have LENGTH(OMEGA) rows and LENGTH(Z) columns.

Here FC is the local Coriolis frequency, DELTA is the Ekman depth.
MU is the Madsen depth, and H is the boundary layer depth.

The units of these quantitites are important.  For consistency with
other routines, OMEGA and FC are in radians per day, while Z, DELTA,
MU, and H are all in meters.  The units of G are then m^2 s / kg.

WINDTRANS(...,'free') instead returns the free slip transfer function.

For details on the expressions implemented by this function, see

Lilly, J. M. and S. Elipot (2021). A unifying perspective on
transfer function solutions to the unsteady Ekman problem.
Fluids, 6 (2): 85, 1--36.
__________________________________________________________________

Special forms

By default WINDTRANS uses the general transfer function.  WINDTRANS
will also employ limiting expressions for special cases, as follows.

H = Inf                --  Mixed Ekman / Madsen solution
H = Inf, MU = 0        --  Ekman solution
H = Inf, DELTA = 0     --  Madsen solution
MU = 0                 --  Finite-layer Ekman solution
DELTA = 0              --  Finite-layer Madsen solution

These have to be coded separately because the full solution is singular
in these cases.
__________________________________________________________________

Computational options

When computed over a wide range of parameter space, the transfer
function tends to be encounter numerical overflow when the arguments to
Bessel functions become large, causing its computation to fail.

To avoid this problems, by default WINDTRANS switches to using a highly
accurate thirty-term expansion about the large-argument exponential
behavior of the Bessel functions when their arguments exceed 10^2.9.

Two other options are available, primarily for testing purposes. Both
of these other algorithms lead to artifacts and are not recommended.

WINDTRANS(...'far',...) switches instead to use the (inferior) one-term
expansion, also known as the far-inertial limit.

WINDTRANS(...,'general',...) uses the general formula with no switch.

Note that these options only apply to no-slip solution.  The free-slip
solution, which is not deemed to be physically relevant, is only
computed with the general formula.

For details on these algorithms, see Lilly and Elipot (2021).
__________________________________________________________________

'windtrans --t' runs a some tests.

Usage: G=windtrans(omega,z,fc,delta,mu,h);
__________________________________________________________________
This is part of JLAB --- type 'help jlab' for more information
(C) 2019--2021 J.M. Lilly --- type 'help jlab_license' for details