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

files

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

prep

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.

src

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, 12, 14, 15, 21, 24 (serial) and 80 (parallel) and performs some initialization
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)

work

config.guess: shell script to guess which machine it is running on; this is used to select the right compiler flags from cmplrflags.mk
cmplrflags.mk: 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

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 February 6, 2008