This page is hosted on AFS file server space, which is being shut down on November 13, 2018. If you are seeing this message, your service provider needs to take steps now. Visit for more information.

Generic ADCIRC - Compile Time Operations

An archive of the ADCIRC source code contains the following:

top-level directories

prep: code to control domain decomposition for a parallel run
metis: 3rd party code written in C that is used during domain decomposition
src: all the code required to run adcirc or padcirc
work: executables are built here, contains makefiles and build-supporting files
util: helpful utilities
wind: code related to generation and manipulation of wind data


header.F: log of changes that have been made to each version
readme.txt: some instructions for building and running adcirc at UNC
strip_cr.bat: DOS batch file that converts source files from DOS to unix format
add_cr.bat: DOS batch file that converts source files from unix to DOS format


adcprep.F: controls domain decomposition
pre_global.F: global variables for domain decomposition
presizes.F: reads unit 14 and unit 15 files for dynamic array size allocation
read_global.F: reads full domain input files
prep.F: subroutines to create input files after domain decomposition
metis.F and metis2.F: makes calls to metis during domain decomposition
decomp.F: creates data structures for mapping between subdomains and fulldomain
interp.F: manages wind data during domain decomposition
picomsg.F: MPI support routines
machdep.F: dependencies for different platforms
mpif.h.t3e: reference information for MPI on Cray-T3E
adcpost.F: controls the merging of subdomain output into fulldomain files
post_global.F: global variables for post processing code
post.F: subroutines to merge each type of output file
*diffmerge.F: create a difference file between two output files
*compare.F: compare two output files
*hs_2_ascii.F: convert a binary hot start file to ascii

Files marked with (*) may not be actively maintained.


adcirc.F: toplevel driver code
global.F: global variables and subroutines for 2D operation
sizes.F: variables used in dynamic array allocation
read_input.F: reads units 10, 11, 14, 15, 24 (serial) and 80 (parallel) and performs some initialization
nodalattr.F: read unit 13 and initialize time invariant attributes at each node
cstart.F: initialization for cold start run, reads units 19, 20, 22 and 23
hstart.F: initialization for hot start run, reads units 19, 20, 22 and 23
harm.F: code to perform harmonic analysis
messenger.F: any subroutine that uses MPI
timestep.F: continuity, momentum, wet/dry, levees, and boundary conditions
wind.F: handling of wind data input and interpolation
global_3dvs.F: global variables and subroutines for 3D operation
vsmy.F: code required for 3D momentum equation solution
itpackv.F: iterative solver (conjugate gradient)
transport.F: transport solution for salt or other conserved quantities


config.guess: shell script to guess which machine it is running on; this is used to select the right compiler flags from compiler flags for different machines and compilers
makefile_adcirc_sp.pc: Windows makefile, single precision
makefile_adcirc_dp.pc: Windows makefile, double precision
makefile.non_pc: makefile for non-Windows platforms
makefile_adcprep.pc: Windows makefile for adcprep
makefile.pc: Windows makefile


vortex.F: analytical asymmetric hurricane wind model
constants.F: multiprecision constants
lsq.F: unconstrained linear least squares calculations
precision.F: cross platform precision definitions
owi22.F: create grid-specific unit 22 file from Ocean Weather Winds data
p15.F: create grid-specific unit 22 file from PBL wind data


build13.F: create unit 13 file for v46 from unit 12 amd 14 files from v42

ADCIRC contains options that can be specified at compile time using compiler flags as follows:

REAL4 - specifies that most real variables will be handled as REAL*4 (although coordinate related variables, elemental areas and elemental coefficients are always declared as REAL*8). The default is that all real variables are handled as REAL*8. This flag affects code precision and execution time.
CMPI - specifies that MPI library calls will be included in the code for parallelization. The default is no MPI calls.
CVEC - specifies that the code will be optimized for a vector computer. The default is off.
CSCA - specifies that the code will be optimized for a scalar computer. The default is off.
CMACHSUN - specifies that underflow statements that appear to be required to run on a SUN computers will be included in the code. The default is to not include these statements.

  Contact:   About Webpage    ADCIRC Listserv   Join ADCIRC Listserv   Request ADCIRC code Updated April 17, 2009