Quoted from: https://umwm.org/
This is the reference implementation of UMWM, described by Donelan et al. (2012), with later improvements and bug fixes. UMWM solves the wave energy balance equation on a curvilinear grid. It has been used to simulate:
- Global swell and windsea
- Waves in coastal and hurricane conditions
- Wave-induced material transport (Stokes drift)
- Ancient Martian seas and methane lakes on Titan
- Waves in laboratory settings such as wave tanks
Getting started
Getting the code
git clone https://github.com/umwm/umwm
System dependencies
- make
- A recent Fortran compiler (known to work with GNU, Intel, Cray, and IBM)
- NetCDF for I/O
- MPI for parallel processing (optional)
Building UMWM
Edit the following variables in the top-level Makefile:
- FC: Fortran compiler (e.g. mpif90 for parallel builds)
- FCFLAGS: Flags to pass to the Fortran compiler
- CPPFLAGS: Pre-processor flags – set to -DMPI if building for parallel execution, and leave blank for serial builds.
Path to the NetCDF library must be set as NETCDF environment variable. If your library is installed in non-standard directories (something other than $NETCDF/lib for library files and $NETCDF/include for modules) edit the NETCDFLIB and NETCDFINC variables in src/Makefile.
Type make. Executable umwm will be built in the top-level directory. Auxilliary tools executables will be built in tools/. Documentation will be built in docs/.
Running UMWM
Running in serial mode:
Running in parallel, for example on 16 cores:
Read the docs for more information.
Publications
See the full list of publications here.
Thanks
UMWM development is currently supported by NSF Award 1745384. It has previously been supported by the Gulf of Mexico Research Initiative and the National Oceanographic Partnership Program.
UMWM has also been improved by a number of open source contributors.