Revision as of 09:44, 17 May 2022 by AAshton (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)



Also known as
Model type Single
Model part of larger framework
Note on status model
Date note status model
Incorporated models or components:
Spatial dimensions 1D
Spatial extent Landscape-Scale
Model domain Coastal
One-line model description Coastline evolution model
Extended model description The Coastline Evolution Model (CEM) addresses predominately sandy, wave-dominated coastlines on time-scales ranging from years to millenia and on spatial scales ranging from kilometers to hundreds of kilometers. Shoreline evolution results from gradients in wave-driven alongshore sediment transport. At its most basic level, the model follows the standard 'one-line' modeling approach, where the cross-shore dimension is collapsed into a single data point. However, the model allows the plan-view shoreline to take on arbitrary local orientations, and even fold back upon itself, as complex shapes such as capes and spits form under some wave climates (distributions of wave influences from different approach angles). The model can also represent the geology underlying the sandy coastline and shoreface in a simplified manner and enables the simulation of coastline evolution when sediment supply from an eroding shoreface may be constrained. CEM also supports the simulation of human manipulations to coastline evolution through beach nourishment or hard structures.

coastal evolution,

Name A. Brad Murray
Type of contact Project manager
Institute / Organization Duke University
Postal address 1 Box 90230
Postal address 2
Town / City Durham
Postal code 27708-0230
State North Carolina
Country United States
Email address
Phone 919 681-5069
Fax 919 684-5833

Name Andrew Ashton
Type of contact Model developer
Institute / Organization WHOI
Postal address 1 260 Woods Hole Rd MS 22
Postal address 2
Town / City Woods Hole
Postal code 02543
State Massachusetts
Country United States
Email address

Supported platforms
Unix, Linux, Mac OS
Other platform
Programming language


Other program language
Code optimized Single Processor
Multiple processors implemented
Nr of distributed processors
Nr of shared processors
Start year development 2000
Does model development still take place? Yes
If above answer is no, provide end year model development
Code development status Active
When did you indicate the 'code development status'? 2020
Model availability As code
Source code availability
(Or provide future intension)
Through CSDMS repository
Source web address
Source csdms web address
Program license type BSD or MIT X11
Program license type other
Memory requirements 20 Mb
Typical run time days

Describe input parameters The input parameters to a model run consist of an initial shoreline, a wave file, and a set of configuration parameters. The initial shoreline is stored within a custom binary formatted-file. Since CEM has been used for abstract simulations of coastline evolution, the initial model condition consists either of a mostly-smooth shoreline with initial perturbations to the shoreline position (generated by a tool provided with the model), or using a shoreline that resulted from a previous model run. The wave file consists of a set of wave approach angles and wave heights that are used during the model run. This wave file is also generated by a tool provided with the model, and takes as input the statistical distribution of wave-approach angles. Finally, basic model parameters (e.g. number of time steps to simulate, etc.) are specified within an XML-formatted text file. An example is provided with the model.
Input format Binary
Other input format XML
Describe output parameters The output of the model consists of snapshots of the coastline during its evolution. The model can be configured to write the resulting coastline at any point during the simulation. The output format of the coastline file is a custom binary formatted-file (the same format as the initial model input). Also, for convenience using with other software tools such as MATLAB, an ASCII-based file of the coastline shape can be written too. The model can also directly generate JPEG-formatted pictures of the coastline shape at any time during the simulation.
Output format ASCII, Binary
Other output format JPEG
Pre-processing software needed? No
Describe pre-processing software
Post-processing software needed? Yes
Describe post-processing software Post-processing software is sometimes necessary: In some instances (if not just using the JPEGs generated by the model code), some post-processing of the results is desired, e.g. to compare the position of the shoreline between two different times. The model code comes with simple tools to perform simple post-processing. The model also outputs the shoreline in an ASCII format and further post-processing may be achieved using tools such as MATLAB.
Visualization software needed? Yes
If above answer is yes Matlab
Other visualization software Note: if using the JPEGs automatically generated, the answer to the visualization question is 'no.'

Describe processes represented by the model A continuity equation, representing the conservation of sediment in the nearshore zone, relates gradients in alongshore sediment flux to horizontal shoreline changes, given a depth over which erosion or accretion are distributed—the depth of the shoreface. This treatment embodies the assumption that cross-shore sediment fluxes across base of the shoreface are small compared to gradients in alongshore flux. However, cross-shore sediment fluxes landward of the shoreline, associated with overwash, are treated, allowing barriers to migrate and maintain elevation relative to a rising sea level. See Ashton and Murray (2006a) for a full treatment of these model dynamics.

The material underlying the shoreline and shoreface converted to mobile sediment as it is exposed by shoreline erosion. The lithology is parameterized by two quantities that can vary across the model domain: the maximum weathering rate (which occurs when the shoreface is bare of sediment) and the composition of the resulting sediment (percentage coarse enough to stay in the nearshore system. See Valvo et al. (2006) for a full explanation of how underlying geology is treated.

Where beach nourishment is deemed by the user to be occurring, if the gradients in sediment flux would cause the shoreline to erode landward of a pre-determined location, sediment is added at the rate required to prevent such shoreline change. Hard structures are treated as if the lithology has a maximum weathering rate of 0.

Describe key physical parameters and equations The evolution of the coastline is governed by a continuity equation; the rate of horizontal shoreline change in the local cross-shore direction is proportional to the divergence of alongshore sediment flux. Alongshore sediment transport is computed via the common CERC formula, which relates alongshore sediment flux to breaking-wave approach angle and breaking wave height. Breaking-wave characteristics in each shoreline location are calculated by starting with the deep-water height and propagation direction (obtained for each time slice from the input wave file), and refracting and shoaling the waves over assumed shore-parallel contours until breaking occurs. The CERC equation also involves an empirical constant K, which can be configured by the model user. Other equations for sediment flux can easily be substituted. See Ashton and Murray (2006a) for details.
Describe length scale and resolution constraints Kilometers to hundreds of kilometers. Numerically, the model can be discretized with much smaller spatial resolution. However, the assumptions of approximately shore-parallel shoreface contours becomes unreasonable at scales smaller than kilometers.
Describe time scale and resolution constraints Years to millenia. Typically, the model is run with timesteps on the order of a day. However, the assumptions that the shoreface progrades or erodes while maintaining its cross-shore shape prevents model results from being interpreted as meaningful over time scales shorter than years to decades. (Storm and post storm cross-shore shifting of sediment within the shoreface causes shoreline fluctuations on event timescales that are implicitly averaged out in this model.)
Describe any numerical limitations and issues The model handles complex-shaped coastlines, such as cuspate-capes and spits. However, where the shoreline curvature becomes extreme (radius of curvature comparable to the cross-shore shoreface extent), as at the ends of spits, the assumptions of a locally rectilinear coordinate system break down, and sediment is conserved less rigorously locally. See Ashton and Murray (2006a) for details.

Describe available calibration data sets In one application, the rate of change in the model has been calibrated to a state data set averaging shoreline change over 50 years (from the North Carolina Department of Transportation; see Slott et al., 2007). Numerous other shoreline change data sets are available, based on surveys of various sorts, aerial photography, and recently LIDAR (e.g. Lazarus and Murray, 2007).
Upload calibration data sets if available:
Describe available test data sets See answer above; many shoreline data sets exist. Comparing model results to detailed records of coastline change will become more appropriate as the model is used to investigate shoreline change in more detail in a particular location and time period.

However, to date the model has been used chiefly for relatively abstract explorations of how coastline evolution works: how emergent coastline structures such as capes, spits, and alongshore sand waves form and interact; how heterogeneity in underlying geology affects coastline evolution; how scenarios of changing storm and wave climates would affect coastline change; and how human manipulations alter large-scale coastline change). Ashton and Murray (2006b) compared robust model predictions concerning the way local wave climates vary along a coastline with emergent structures (capes and flying spits) to hindcast wave climates along actual shorelines. As opposed to testing whether model parameters can be adjusted to reproduce observations in detail, testing a robust prediction like this, which does not depend on the formal details of the model ingredients, can falsify the hypothesis that the interactions in the model capture the basic aspects of the interactions that are important in the actual system (see Murray, 2003; 2007).

Upload test data sets if available:
Describe ideal data for testing See answer above and Ashton and Murray (2006a, b). Data sets spanning large spatial scales are most appropriate, and if model behaviors are going to be compared to shoreline change, long temporal scales are best (see ‘limitations’ above).

Do you have current or future plans for collaborating with other researchers? Collaborations are underway within Duke University (an interdisciplinary project involving human shoreline manipulations) and Woods Hole Oceanographic Institution (where the model is being used to explore delta dynamics). Various collaborations involving researchers in the US and abroad are in various stages.
Is there a manual available? No
Upload manual if available:
Model website if any
Model forum / discussion board
Comments This entry, with the name 'Coastline Evolution Model' should replace the 'Murray model' currently listed. Thanks Albert!

This part will be filled out by CSDMS staff

OpenMI compliant No but planned
BMI compliant Yes
WMT component Yes
PyMT component Yes
Is this a data component
DOI model 10.1594/IEDA/100100
For model version 0.1.1
Year version submitted 2011
Link to file
Can be coupled with:


Model info
A. Brad Murray

Nr. of publications: 13
Total citations: 1531
h-index: 9
m-quotient: 0.39

Link to this page


NOTE: This page is still under development. Some information may be incorrect. When we believe everything is correct, we'll remove this message.

Coastline Evolution Model: Introduction

This site hosts the source code for the Coastline Evolution Model (CEM) from Duke University. To find out more technical details of this model, please see above. This purpose of the instructions on this page are to explain how to download, compile, and use the model.

Please keep in mind this is an open-source project, not shrink-wrapped software. So it may require a bit of effort to get running on your own system. The source code is very-well documented however, and we'd encourage you to extend it for your own purposes.

The source code is licensed under the Berkeley Standard Distribution (BSD) license.

Supported Systems & Requirements

Currently, the source code has only been run on Linux CentOS (which is a variation of RedHat Linux). It has also been successfully used on Mac OSX and Solaris, but the Makefiles will need slight tweaks on those systems. We'd appreciate any help getting the model to run on systems other than Linux!

The model code is written in C and requires the GNU Compiler Collection (GCC), preferably under version 4.0.2 or greater. It has also been run under GCC v2.9.6. Please do not use the GCC v3.x.x compiler series; we have run into issues with them.

The model code requires two libraries to be installed on your system:

  1. libxml2: Normally this comes standard with Linux
  2. libjpeg: You may need to download this from

You may need to tweak the Makefile to compile if you have these two libraries installed in a non-standard location; contact us for help.

Compiling the Source Code

Once you have downloaded the source code, you can compile it using the UNIX/Linux 'make' utility (which should come standard with your Operating System). It is probably worthwhile to edit the Makefile in the cem/ and cem/tools/ directories to set the options you want. There are further instructions there.

To compile from the cem/ directory, simply enter the 'make' command. It compiles the model into an executable named 'cem'. It also compiles the tools/ subdirectory.

Running the CEM Model

The CEM model is a command-line driven program. It has no GUI (Graphical User Interface). It takes several inputs:

  1. An XML-based configuration file
  2. An initial shoreline, in a custom binary (SPX) format
  3. A set of wave forcings, in a custom binary (WVX) format

It generates several outputs:

  1. A set of model shorelines during the simulation and at the end of the simulation in either SPX or JPEG (picture) format
  2. A debug file

Once you have generated the configuration file, the initial shoreline, and the set of wave forcings (described below), you can run the model on the command-line as follows:

% cem --config=<path to config file>/config.xml

Note that the 'cem' executable must be in your path, and <path to config file> is the directory in which the XML configuration file is located.

The XML-based Configuration File

A text-based XML-formatted file sets configuration options for CEM. You can find an example in the xml/ subdirectory. Please use that example config.xml for your own purposes. The configuration options are relatively straight forward with brief explanations below.

  1. paths:output: The directory in which all output from the model will be stored
  2. input:initial_profile: The location of your initial shoreline (SPX) file
  3. input:waves: The location of your wave forcings (WVX) file
  4. output:debug_file: The name of the file to write debug information to
  5. output:final_spx: The name of the final shoreline (SPX) when the simulation is done
  6. output:final_jpg: The name of the final shoreline as a JPEG image
  7. output:jpeg: Output the model shoreline as a JPEG image at intervals during the simulation. Each JPEG file will named according to a file prefix, and a 'frame' number, where you can specify the initial frame number, the number of digits to print in the frame number, and the timestep interval of when to output a new JPEG
  8. output:spx: Output the model shoreline (SPX) at intervals during the simulation
  9. simulation:number_threads: Parallelize the computation of key algorithms in the model. Typical values are 2, 4, 8.
  10. simulation:timesteps: The number of timesteps to conduct the simulation
  11. simulation:timesteps_per_wave: The number of timesteps to use the same wave before selecting a new wave from the wave forcings file
  12. simulation:days_per_timestep: The number of simulated days per model timestep, typically either 0.1 or 1.
  13. boundary_conditions: Typically "periodic".
  14. ast_rate: To scale the rate of alongshore sediment transport constant.

Creating an Initial Shoreline (SPX) File

There is a utility program in the tools/ directory, called 'spxcreate' to create an initial shoreline. This utility creates model shorelines that are initially straight or have small initial perturbations. The utility works off a set number of predefined shorelines; you have the ability to override any individual attribute of the initial shoreline.

For example,

% spxcreate "Rough Beach 100m"

will create an initially straight shoreline with small perturbations that is 150 cells alongshore, 100 cells cross-shore, where each cell is 100 m on each side. If you want to make an initial shoreline with an alongshore length of 300 cells instead, you can do something like

% spxcreate "Rough Beach 100m" ALONG=300

Please see the source code (tools/spxcreate.c) for more documentation. Typically, cells in the shoreline have widths of either 100 m or 1000 m.

Creating a Wave Forcings (WVX) File

There is a utility program in the tools/ directory, called 'wvxcreate' to create an initial shoreline. This utility creates waves according to two parameters: the proportion of waves approaching from high angles and the proportion of the waves approach from the left (looking off-shore).

For example,

% wvxcreate -n 5000 -d 0.60 -h 0.55 -w 1.7 -f waves.wvx

will create a file named 'waves.wvx' that contains 5000 waves. Each wave has a height of 1.7m and 60% of the wave influences approach from the left (looking off-shore) and 55% of the wave influences approach from high-angle.

Note that you must generate enough waves for your simulation. The number of waves is simply the number of timesteps of your simulation divided by the number of timesteps per wave as set in your config.xml file.

Processing the Output

The CEM model lets you generate both shoreline (SPX) files and picture (JPEG) files at any point during the simulation. If you wish to generate a text file of the positions of the beach (the dividing line between the ocean and land), you may use the 'spxposition' utility located in the tools/ directory. You can then import this text file into other programs (e.g. MATLAB). The usages of the 'spxposition' utility is simple:

% spxposition <spx file>


Nr. of publications: 13
Total citations: 1531
h-index: 9
m-quotient: 0.39

Featured publication(s)YearModel describedType of ReferenceCitations
Ashton, Andrew; Murray, A. Brad; Arnoult, Olivier; 2001. Formation of coastline features by large-scale instabilities induced by high-angle waves. Nature, 414, 296–300. 10.1038/35104541
(View/edit entry)
2001 CEM

Model overview

Ashton, A.D.; Murray, A.B. 2006. High-angle wave instability and emergent shoreline shapes: 1. Modeling of sand waves, flying spits, and capes. Journal of Geophysical Research, 111, . 10.1029/2005JF000422
(View/edit entry)
2006 CEM

Model overview

Murray, A.B. 2011. CEM, version 0.1.1.. , , 10.1594/IEDA/100100
(View/edit entry)
2011 CEM
Source code ref. 0
See more publications of CEM




Input Files

Output Files