ADCIRC is a system of computer programs for solving time dependent, free surface circulation and transport problems in two and three dimensions. These programs utilize the finite element method in space allowing the use of highly flexible, unstructured grids. Typical ADCIRC applications have included:
- Prediction of storm surge and flooding
- Modeling tides and wind driven circulation
- Larval transport studies
- Near shore marine operations
- Dredging feasibility and material disposal studies
ADCIRC has been used around the world for various studies, including those conducted by the United States Army Corps of Engineers (USACE), Federal Emergency Management Agency (FEMA), National Oceanographic and Atmospheric Administration (NOAA), and many others.
- Joannes Westerink, University of Notre Dame
- Rick Luettich, University of North Carolina at Chapel Hill
- Brian Blanton - RENCI
- Shintaro Bunya - University of North Carolina at Chapel Hill
- Zachary Cobell - The Water Institute of the Gulf
- Clint Dawson - University of Texas at Austin
- Casey Dietrich - North Carolina State University
- Randall Kolar - University of Oklahoma at Norman
- Chris Massey - US Army Corps of Engineers Research and Development Center, Coastal and Hydraulics Laboratory
Louisiana ADCIRC model simulating Hurricane Katrina storm surge and waves developed by The Water Institute of the Gulf.
ADCIRC mesh in the Chesapeake Bay area used for the FEMA Coastal Storm Surge Study
Code versions are published based on semantic versioning as of version 56. Prior to that, ADCIRC used a two level versioning scheme, though it approximately mirrors semantic versioning.
Documentation is presently undergoing upgrades, however, the main documentation locations for users are:
Contributors are actively consolidating information from ADCIRC website and ADCIRC Wiki into ADCIRC documentation to provide comprehensive, up-to-date information about ADCIRC.
ADCIRC is an open source project and contributions are welcome. Please see the CONTRIBUTING.md file for more information on how to contribute to the project.
The high-level summary is:
- Run
pre-commit install
to install pre-commit hooks in your development environment. Pre-commit can be installed usingpip install pre-commit
. - New source files should have a "*.F90" extension
- All new code should contain Doxygen-style comments
- Developers are encouraged to compile their code using the GCC compilers (even if this is not their typical development environment) with
-DADCIRC_DEVELOPER_MODE=ON
to ensure that the code will build in the CI environment with strict checks - Developers should avoid adding new variables to the
GLOBAL
module unless absolutely necessary
ADCIRC minimally requires a C and Fortran compiler that minimally meet the following specifications:
- C compiler: C11 standard
- Fortran compiler: Fortran 2008 standard
ADCIRC has been tested with the following compilers:
- GNU Compiler Collection (GCC)
- Intel Classic Compilers
- Intel OneAPI Compilers/IntelLLVM
- NVIDIA HPC Compilers (nvc/nvfortran)
- LLVM (clang/flang)
Additional features, including MPI parallelism and netCDF output require additional libraries:
- MPI (Message Passing Interface) - OpenMPI, MVAPICH2, Intel MPI, or other MPI implementations
- netCDF - netCDF C and Fortran libraries
To help new users get spun up quickly with the ADCIRC model, ADCIRC is provided as Linux Docker containers and pushed to DockerHub. New images are published either when a new version is released or the main branch has changes. The DockerHub repository is located here. Images may be used with Docker Desktop or Singularity on x86 or ARM CPUs on Windows, Mac, and Linux.
Images are tagged for release versions (using semantic versioning) as well as the current state of the main branch as "latest". By default, a release tag should be used and only use latest to try the newest version of the code. The ADCIRC Docker images are distributed under the same license and conditions as this repository.
Images built for x86 systems use the IntelLLVM compiler while images build for ARM CPUs use the GCC compiler, version 14.2. The x86 base image is the same that is used to build ADCIRC during continuous integration testing.
The ADCIRC testing repository doubles as a set of examples which can be used for new users to become acquainted with the model. Since version 55, the branches are annotated with the expected version numbers that would allow the tests to run successfully.