Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



Environmental Fluid Dynamics Code (EFDC) is a multifunctional surface water modeling engine that includes hydrodynamic, sediment-contaminant, and eutrophication components designed to simulate aquatic systems in one, two, and three dimensions.

Over the years, DSI has continued developing EFDC and into what is now known as EFDC+. To learn more about different versions of EFDC, please visit A Review of EFDC Versions - EEMS Blog

Getting Started


After you Prepare your environment.

Execute the following:

git clone
cd EFDC_Plus
chmod +x

Run the setup script and pass in your package manager parameter (ubuntu users would use apt).
If you want to be able to compile the code, use option -c. If you just want to be able to run efdc, use option -r. <-r or -c> <package manager name> 
# example: toolkit-setup -r apt

Alternatively, you can download and follow the installation steps from intel:
Intel OneApi Base Toolkit
Intel OneApi HPC Toolkit

Load the intel environment variables.

source /opt/intel/oneapi/

If your environment already has NetCDF installed and available in the Path, you can add the DNCOUT flag to the FFLAGS section in the makefile to compile with NetCDF features enabled.

Build EFDC

make -f Makefile
chmod +x efdc.x  # this allows the built file to be executed as a program.


The run command structure is

cd /path/to/project
mpiexec -n <number of nodes> path/to/efdc.x -NT<number of omp threads>

An example of a run command for a model with 4 mpi domains, running with 6 omp threads per domain (24 cpu cores total) would look like:
mpiexec -n 4 ~/code/efdc/efdc.x -NT6



If compiled with the NCOUT flag, you will need to get the NetCDF dlls to run EFDC+. The installer can be found here. Once installed, locate the bin directory (e.g. - C:\Program Files\netCDF 4.8.1\bin) and copy the dlls to your EFDC+ executable directory.


The open source availability of this code will make it easier for scientists, researchers, and developers to contribute to the code and build more trust in their models. We welcome all the opportunities to collaborate. If you would like to contribute to the source code development, please clone the repository and submit pull requests as needed. For more active contribution and role, please email