The Modularized Flux Testbed (MFT) has been developed to allow users to combine a wide range of parameterizations related to air/sea interaction. The parameterizations can be selected to match those used in a publication, or to combine parameterizations for momentum roughness length, temperature and moisture roughness lengths, boundary-Layer stability, sea state dependency. The output includes fluxes of momentum (stress), sensible heat, and latent heat, as well as height adjustments for wind, temperature, and humidity, and in some cases wave-related variables. The solutions are consistent with each other, unless the code returns a warning that the solutions did not converge. There are some parameterizations that should not be combined because they are not physically consistent. Some options allow directional wave data and currents to be considered.

Update: An improved stand alone Python version is now available. I am working towards updating the C version that can be called from just about any other languate.

Current non-Python Version: 2017.0a, Updated 11 August 2017: Update History

Current Python version: 2023.5, Updated 1 September 2023: Update History

Review of Relevant Concepts

Winds and Stresses: Stress is the vertical transport of horizontal momentum via turbulence. When appropriately averaged in time and horizontal dimensions, it is constant within the atmospheric boundary layer's log-layer.

Energy Fluxes: The MFT can be used to esimate two heat fluxes: the sensible heat flux (shf) and the latent heat flux (lhf). These are mechanisms for heat transport that are related to turbulent motion. When appropriately averaged in time and horizontal dimensions, they are constant in the atmospheric boundary layer's log-layer. The sensible heat flux quantifies the transfer of thermal energy associated with temperature, but not with phase changes. The latent heat flux quantifies the turbulent transfer of energy stored in water vapor. At the water surface, the latent heat flux is equal to the heat transfered through evaporation of water. For atmospheric applications, a positive value of these fluxes means energy is being moved upward. Oceanography has the oppostive sign convection. The MFT use meteorological sign convention (oceanographers will likely want to change the sign.

Atmospheric Boundary Layer Dynamic Stability: A measure of the impact of the somewhat competing mixing processes of turbulent convection due to buoyancy vs. turbulent mixing due to surface stress. For neutral stability, atmospheric boundary-layer stratification does not influence profiles of wind, potential temperature or humidity. Unstable conditions enhance vertical mixing (increase fluxes), while stable conditions suppress vertical mixing (decrease fluxes). The designation of stable vs. unstable depends on the vertical gradient of potential temperature, which is usually controlled by the vertical gradient of temperature, but is also influenced by the vertical gradient of atmospheric water vapor (humidity). Smaller values of stress exaggerate the impacts of density stratification, while larger values of stress suppress the impacts of density stratification.

Seastate: Seastate impacts are highly controversial. These are usually relatively minor changes to fluxes, where a small systematic error related to seastate could easily be misinterpreted as a dependency of fluxes on seastate. Some observations indicate that seas with sharper waves have more roughness (greater drag) than seas with smoother waves. That means that swell (waves from distant storms that can be very high, but are smooth) have a smaller stress than wind-waves (for the same wind speed). However, the opposite has been found by multiple researchers. This portion of the code is most in need of update to deal with the diversity of seastate dependancies on stress.

Routines in MFT Library (Short description and I/O)

Examples of calls to these routines are given for C, FORTRAN, and IDL in the links for these compilers in the section 'Required Files and Examples' Examples of variable declarations are also provided.

pmix: Main subroutine for determining fluxes and wave values. This subroutine can be run to determine fluxes based on input from any observation heights, but will not adjust these inputs to a uniform height. The next routine will adjust input values to a user specified height (fluxes do not require this adjustment).

ht_adj: Uses the boundary-layer model in routine pmix to adjust known values of wind speeds, potential temperatures, and humidities to values at a user specified height. The Python version of this subroutine is obsolete - it is no longer availble:. For most Python users, the mft_fluxes routine is much easier to work with.

mft_fluxes: Avialable for Python users in the 2023 update. Uses the boundary-layer model in routine pmix to adjust known values of wind speeds, potential temperatures, and humidities to values at a user specified height.

find_q: There are many methods of measuring the moisture content of air. When data sets are combined, it is likely that several methods have been used. In most boundary layer applications, these measurements must be converted to specific humidity. This routine converts all the common humidity measurements to specific humidity.

Test Routines for MFT Library

Routines have been developed to test the installation of pmix. Tests can be made on C, FORTRAN, and IDL versions of the code. Note that each of these versions calls the C routines: mixed language compilers are required. The code is designed for SGIs, for which the same source code can easily be used produce C and FORTRAN routines. The test programs are ctest_mft12.c, ctest_ht_adj12.c, ftest_mft12.f, ftest_ht_adj12.f, test_mft12.pro, and test_ht_adj12.pro. Input data and the expected output are given in testdata12.dat.

Required Files and Examples

The example Makefiles are for SGIs. An examples for FORTRAN compilation on other systems is given near the end of that linked page.

These files can be downloaded through this web site or taken from our public FTP site (anonymous FTP to coaps.fsu.edu, change directories to pub/bourassa/MFT) or ftp://coaps.fsu.edu/pub/bourassa/MFT/ . The linked pages (below) provided examples of variable declarations and calls to the routines.

Python users: MFT23.py, test_MFT.py, testdata12.dat, stability_analysis_CD.py, stabilty_analaysis_CH.py

C users: mft12.c, mft12.h, ctest_mft12.c, ctest_ht_adj12.c, testdata12.dat.

FORTRAN users: mft12.c, mft12.h, ftest_mft12.f, ftest_ht_adj12.f, testdata12.dat, Makefile (for SGIs), and call_mft12.c & call_ht_adj12 (for non-SGI users who want to call be address - the FORTRAN default). Warning: the FORTRAN version has not been updated for modern compilers or for FORTRAN90. Updates will be needed for it to work on a modern system.

IDL users: mft12.c, mft12.h, call_mft12.c, mft12.pro, call_ht_adj.c, ht_adj12.pro, test_mft12.c, test_ht_adj12.c, testdata12.dat

Matlab users: mexmft12.c, mft12.c, mft12.h, testdata12.dat or tesdata12mex.xlsx or testdata12.csv. Warning: the z/L parameter is not successfully passed out of the mft.

References

Bourassa, M. A., D. G. Vincent, W. L. Wood, 1999: A flux parameterization including the effects of capillary waves and sea state. J. Atmos. Sci., 56, 1123-1139.

Bourassa, M. A. (2006). Satellite-based observations of surface turbulent stress during severe weather. W. Perrie (Ed.), Atmosphere - Ocean Interactions, Vol. 2 (pp. 35 - 52). Southampton, UK: Wessex Institute of Technology Press.

Blair, D., Zheng, Y. and Bourassa, M.A., 2023. The Effect of Surface Oil on Ocean Wind Stress. Earth. 4, 345-364. DOI: https://doi.org/10.3390/earth4020019

Last Updated September 22, 2023


home page
URL research
URL publications URL scatterometry URL flux
model URL contact info URL