FVCOM is a prognostic, unstructured-grid, finite-volume, free-surface, 3-D primitive equation coastal ocean circulation model developed by UMASSD-WHOI joint efforts.

The model consists of momentum, continuity, temperature, salinity and density equations and is closed physically and mathematically using turbulence closure submodels. The horizontal grid is comprised of unstructured triangular cells and the irregular bottom is preseented using generalized terrain-following coordinates.

The General Ocean Turbulent Model (GOTM) developed by Burchard’s research group in Germany (Burchard, 2002) has been added to FVCOM to provide optional vertical turbulent closure schemes. FVCOM is solved numerically by a second-order accurate discrete flux calculation in the integral form of the governing equations over an unstructured triangular grid. This approach combines the best features of finite-element methods (grid flexibility) and finite-difference methods (numerical efficiency and code simplicity) and provides a much better numerical representation of both local and global momentum, mass, salt, heat, and tracer conservation.

The ability of FVCOM to accurately solve scalar conservation equations in addition to the topological flexibility provided by unstructured meshes and the simplicity of the coding structure has make FVCOM ideally suited for many coastal and interdisciplinary scientific applications.

FVCOM is hosted by the University of Massachusetts – Dartmouth (UMASS-D) in collaboration with Dr. R. Beardsley at the Woods Hole Oceanographic Institution. The FVCOM website contains a registration form which must be completed before the source code is available for download.

Intel Fortran compatibility issues

With Intel Fortran compiler versions 15 and above, the behaviour of pointers has changed and FVCOM experiences problems in some FVCOM modules. To date (2016-10-25), FABM has problems when reading boundary data for ERSEM. Other identified problems appear when running the nesting output (NCNEST). The problems manifest as FVCOM 'hanging' whilst utilising 100% of the CPU(s).

This has been fixed in FVCOM 4.0 (it is to do with initialising pointers) but that change has not been backported to FVCOM 3.x.

  • VisIt - a free interactive parallel visualization and graphical analysis tool for viewing scientific data on Unix and PC platforms
  • fvcom-toolbox - a MATLAB toolbox for generating FVCOM input files and processing output files
  • SMS - proprietary Windows software to generate unstructured grids for use in FVCOM
  • PyFVCOM - an ever-growing toolbox of tools in Python to read FVCOM model outputs and perform FVCOM post-processing
  • PySeidon - a Python post-processing library which performs a number of analyses (e.g. harmonic analysis) of FVCOM outputs.
  • MATLAB - An example MATLAB script for plotting FVCOM output

Some aspects of the configuration of FVCOM are outlined below. This includes configuring the model grid, its open boundaries and the surface forcing. The configuration steps outlined here often make use of the (FVCOM matlab toolbox) which simplifies the processes. Where appropriate, example code is included to show how to use the relevant tools. Elsewhere, the functions which are required are enumerated instead.


Open boundaries

Surface forcing



Nesting and outputs


Lagrangian particles

Tidal turbines

Sediment transport

The pages below outline some useful data sets which have been used with FVCOM. This includes instructions on how to use the FVCOM matlab toolbox to obtain and process these data.

Archived presentations and notes from previous workshops.