/
Introduction

Introduction


Welcome to the EFDC+ Computer Implementation Guide





This documentation is designed to support users of the Environment Fluid Dynamics Code (EF581pxDC) who are interested in understanding and modifying the source code. As such, it provides lists of arrays, variables, and input files. The EFDC code exists in several different versions.  This documentation describes the version maintained by DSI, called EFDC+ (EFDCPlus).  Each model application is specified entirely by information in the input files which are typically configured using EFDC_Explorer but also be modified manually in a text editor.  In older versions of EFDC, to minimize memory requirements for specific applications, an executable file was created by adjusting the appropriate variable array size in the model's parameter file and compiling the source code.  EFDC+ uses dynamic array memory allocation so recompiling is not required. The EFDC model can be configured to execute all or a portion of a model application in reduced spatial dimension mode including 2-D depth or width averaged and 1-D cross section averaged. The number of layers used in the 3-D mode or 2-D width averaged mode is readily changed by one line of model input. Model grid sections specified as 2-D width averaged are allowed to have depth varying widths to provide representations equivalent to those of 2-D width averaged estuarine and reservoir models such as CE-QUAL-W2 (Cole and Buchak 1994).

The theoretical and computational aspects of a three-dimensional computer code for environmental fluid flow simulation have been presented in the EFDC+ Theory documentation. The code is applicable to a wide range of environmental flows which are vertically hydrostatic and of the boundary layer type. The computer code solves the vertically hydrostatic, free surface, variable density, turbulent-averaged equations of motion and transport equations for turbulence intensity and length scale, any dissolved water column constituent in a stretched, vertical coordinate system, and horizontal coordinate systems which may be Cartesian or curvilinear- orthogonal. The code uses a either a two or a three time level, finite difference scheme with a internal-external mode splitting procedure to separate the internal shear or baroclinic mode from the external free surface gravity wave or barotropic mode. The external mode solution is implicit, and simultaneously computes the two-dimensional surface elevation field using the conjugant gradient method. The external solution is completed by the calculation of the depth integrated barotropic velocities using the new surface elevation field. The three time level  solution's implicit external solution allows large time steps which are constrained only by the stability criteria of the explicit advection scheme used for the nonlinear accelerations. The internal solution, at the same time step as the external, is implicit with respect to vertical diffusion. The internal solution of the momentum equations is in terms of the velocity shear, which results in the simplest and most accurate form of the baroclinic pressure gradients and eliminates the over determined character of alternate internal mode formulations. The vertical diffusion coefficients for momentum, mass and temperature are determined by the second moment closure scheme of Mellor and Yamada (Mellor and Yamada, 1982; Blumberg and Mellor, 1987; and Galperin et al., 1988) which involves the use of analytically determined stability functions and the solution of transport equations for the turbulence intensity and length scale. Time splitting inherent in the three time level scheme is controlled by periodic insertion of a two time level step. The code include various options for advective transport, including the centered in time and space scheme, the forward in time and upwind in space scheme, and Smolarkiewicz's multidimensional positive definite advective transport algorithm, (Smolarkiewicz and Clark, 1986; Smolarkiewicz and Grabowski, 1990), which is used in the scalar transport equations. The code is written in Fortran 90, and is designed to economize mass storage by storing only active water cell variables in memory. Particular attention has also been given to minimizing logical operations, and the code is highly vectorizable.  The code was originally developed on a DEC VAX computer and has been ported to Windows (with OpenMP option) and various Linux workstations and supercomputers.

Figure1‑1. Magnitude of amplification factor, vertical axis, versus kxmx and kymy, horizontal axes, for upwind advection scheme.

Related content