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

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, 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

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

wind

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

util

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.