


Modifications 
This page contains a
list of additions,
changes,
compatibility,
implementation
issues and bug fixes
(affecting the user)
since version 30.51
(first FTPrelease).

The current version number of SWAN is 41.10. 
Additions 
Version 41.10:
 Spectral partitioning is included as an option.
Partition of wave spectra is based on the watershed algorithm of Hanson and Phillips (2001).
First partition is due to wind sea and the remaining partitions are the swell, from highest to lowest
significant wave height. On request, a raw spectral partition file can be generated meant
for wave system tracking postprocessing.
Details on the file format and meaning of different parameters may be found in
WW3 wavetracking.
 An option is included which enables the user to specify frequency and directiondependent transmission coefficients to be applied to
an obstacle. This is mainly useful for wave energy converters (WECs) which can only transmit wave energy from a specific range of frequencies
for each directional segment, whereas left unaffected in some other frequencies.
Version 41.01:
 The socalled βkd model for surf breaking based on the work of
Salmon and Holthuijsen (2011)
is included as an option. This model determines the breaker index γ based on the bottom slope β and the dimensionless depth kd.
See also the poster SWAN and its recent developments.
 An alternative for triad wavewave interactions is added. This alternative is
the Stochastic Parametric model based on the Boussinesqtype wave equations (SPB) of
BecqGirard et al. (1999).
 Interaction of waves with fluid mud is included as an option. Fluid mud affects waves through viscous damping and alters
the dispersion relation and thereby the change in wave number and group velocity. These are obtained from the model of
Ng (2000). Details on the implementation and application
of fluid mudinduced wave dissipation can be found in
Rogers and Holland (2009).
 A movable bed roughness model through ripple formation is included as an alternative. This model is implemented in SWAN as described in
Smith et al. (2011), in which bottom friction
depends on the formation process of bottom ripples and on the grain size of the sediment.
Version 40.91:
 New limiters are included to handle refraction and frequency shifting on coarse meshes in a proper way. For details and
background information, please click forward to
this page and
this page.
 Output data from a parallel, unstructured mesh simulation are automatically merged.
 A new concatenation program, called HottifySWAN, for collecting hotfiles after a parallel, unstructured SWAN simulation.
Click on this page for details.
 An alternative to the wellknown Wu (1982) winddrag parameterization is added. It is based on a review of a large number of more
recent observations, and will gives lower drag values for relatively high wind speeds (compared to Wu (1982)). This parameterization has been
published recently in the next article.
Version 40.85:
 Inclusion of parallel, unstructured mesh implementation utilizing the parallel infrastructure from ADCIRC.
 Inclusion of hooks for tightly coupled ADCIRC and SWAN models.
 New predefined curves for outputting: BOUNDARY, BOUND_01, BOUND_02, etc. See command CURVE in the User Manual.
 A new output quantity for TABLE and BLOCK: peak wave length named as LWAVP.
Version 40.81:
Wave damping due to vegetation (mangroves, salt marshes, etc.) at variable depths is included as an option.
The calculation of this type of dissipation is specified by the drag coefficient, the stem diameter of plant
(schematised as a cylinder), the number of plants per square meter and the vegetation height.
In addition to the vertical variation, the possibility of horizontal variation of the vegetation characteristics
is included as well. This inclusion enables the vegetation in a given region to be varied so as to reflect
real density variations in the field.
Version 40.72:
 The use of unstructured mesh in the geographical domain is
included. The grid may be comprised of triangular cells only. The
following grid generators are supported by SWAN:
 For the computation of the integral parameters (e.g. significant
wave height, directional spreading, etc.) for output purposes, the
choice for carrying out the integration over a userdefined
interval [fmin,fmax] is included.
Version 40.51:
 An alternative of the whitecapping
expression based on Alves and Banner (2003) is included.
This dissipation term
depends on quantities that are local in the frequency
spectrum, as opposed to ones that are distributed over the
spectrum, as in the Komen formulation (1984). This
dissipation formulation can also be combined with the
adapted formulation of Yan (1987) for wind growth. This
alternative formulation is more accurate for young waves
than the default expression of Komen et al. (1984). The
combination of the alternative wind input and whitecapping
expressions is able to correct both the tendency towards underprediction of wave periods
in SWAN and the erroneous overprediction of windsea energy under
combined swellsea conditions occuring in nearshore zones.
This combination can be obtained with the command GEN3 WESTH
(instead of GEN3 KOM).
 Three new output quantities for TABLE
and BLOCK: water level, bottom level and smoothed peak
period named as WATLEV, BOTLEV and TPS, respectively.
Besides the water depth, you can also output the water level
and/or bottom level. Whereas RTP (relative peak period) is
calculated in an discrete manner (only function of frequency
bins), the computation of TPS is made more smoother (i.e.
can be a function of any frequency).
 The SWAN documentation is extended and
improved. The old User Manual has been split up into two new
documents: the actual User Manual and the
Technical documentation.
Morever, the Programming rules and the manual
LaTeX for dummies is added.
 Introduction of the online
documentation. The abovementioned documents are also
available online.
Version 40.41:
 Effects of diffraction is included. The approximation of these effects
is based on the mildslope formulation for refraction
and diffraction but with omission of phase information.
 Introduction of scattered and diffuse reflections.
 An alternative stopping criterion is implemented and
is based on the curvature of the iteration curve of
the significant wave height. It is found to be more
effective in locating the point of model convergence,
yielding results that are closer to the fullyconverged
solution.
 A fast version of the DIA approximation for quadruplets is included.
Neighbouring interactions are interpolated in a piecewise constant
manner instead of linear one. Moreover, the DIA calculation is
carried out in the full
spectral circle per iteration (instead of a quadrant per iteration).
As a result, a significant speedup in the computation can
be obtained. Use of this technique can be realised by setting
QUAD IQUAD = 8. This approach has almost no effect on the model
results compared to the default method (IQUAD = 2).
 The Xnl exact method for computing quadruplet interaction,
appropriate for finitedepth water, is implemented. This
method is, however, extremely time consuming.
 Extra output in PRINT file concerning convergence progress
in userselected geographic points.
(Already introduced with patch H of the previous version 40.31.)
 Two new output quantities for TABLE and BLOCK: absolute
and relative average wave period Tm1,0 named as
TMM10 and RTMM10, respectively.
(Already introduced with patch H of the previous version 40.31.)
Version 40.31:
 For the
specification of the
discrete frequency
space, SWAN permits
the user to choose
one of the following
options:
 The lowest
frequency, the
highest
frequency and
the number of
frequencies can
be specified.
This choice is
the usual one in
the previous
versions of
SWAN.
 The lowest
frequency and
the number of
frequencies can
be specified.
The highest
frequency will
be computed by
SWAN such that
the ratio of
frequency
resolution is
10%. This is
required by the
DIA method.
 The highest
frequency and
the number of
frequencies can
be specified.
The lowest
frequency will
be computed by
SWAN such that
the ratio of
frequency
resolution is
10%. This is
required by the
DIA method.
 The lowest and
the highest
frequencies can
be specified.
The number of
frequencies will
be computed by
SWAN such that
the ratio of
frequency
resolution is
10%. This is
required by the
DIA method.
 An exact method
called the FDRIAM,
for the computation
of the nonlinear
4wave interactions
in finitedepth
water, is
implemented. This
method is extremely
time consuming.
Hence, it should not
be used for
production runs.
Version 40.20:
 The SWAN code is
parallelized both
using MPI and
OpenMP.
 Alternative
approximations for
two physical
processes are
available:
 M(ultiple) DIA for quadruplets and
 Cumulative Steepness Method for
whitecapping.
 The Stone's SIP
solver is
implemented for
solving action
density equation, in
case of
nonstationary depth
or ambient current.
This solver is 4 to
5 times faster than
the preconditioned
BiCGSTAB solver.
 A
frequencydependent
underrelaxation
technique is
implemented.
Version 40.11:
 SWAN allows nesting in
WAVEWATCH III.
 Spherical
coordinates are
available.
 The user can
define obstacles at
which waves are
reflected.
 A higher order
propagation scheme
is introduced for
both the stationary
and nonstationary
modes.
Version 40.01:
 SWAN
permits the
calculation of
waveinduced setup.
It is exact in 1D
cases and
approximate in 2D
cases.
 Nonstationary
boundary conditions
are introduced.
 Initial conditions
for a stationary or
nonstationary
computation can now
be defined by the
user.
 SWAN now also
permits a
"hotstart",
i.e. using a initial
condition computed
by a previous SWAN
run
("hotfile").
 The new version
also permits the
user to combine
stationary and
nonstationary
computations.
 Source terms can
be inspected since
they are written to
file at (user)
selected geographic
points.
Version 30.75:
 SWAN can now read
and write wind and
wave directions
using both nautical
and Cartesian
conventions. The
command SET NAUT
switches to the
nautical convention.
 It is now possible
to impose stationary
boundary conditions
defined by wave
spectra that vary
along the boundary.
The model
interpolates between
the boundary
conditions at given
points. The command
BOUNDSPEC controls
this.
 SWAN now produces
a warning if the
computed significant
wave height differs
from the prescribed
significant wave
height at the
upwave boundary.
The command SET
[hsrerr] controls
the error margin for
this warning.
 SWAN can now run
in one dimensional
stationary mode. The
features specific
for two dimensional
calculations are not
available when
running in one
dimensional mode.
The command MODE
STAT ONED switches
to one dimensional
mode.
 When calculating
in one dimensional
mode, the model can
optionally include
the effects of
waveinduced setup.
The command SETUP
controls this.
Version 30.62:
 SWAN now accounts
for subgrid
obstacles, that may
(partially) transmit
waves (no
reflection). The
command OBSTACLES
controls this.
 SWAN is now more
efficient and
requires less
memory, because
exception values are
now allowed in the
CGRID command (land
grid points are not
computed and
stored).
Version 30.51:
First release of SWAN.

Changes 
Version 41.10:
 Implementation of triads has been improved:
 coefficient [trfac] is set to 0.8 in case of LTA and 0.9 in case of SPB
 implementation SPB more structured and documented
 Efficiency of UnSWAN algorithm has been further improved by taking 1 sweep per iteration.
Version 41.01:
 For computing wind drag the second order polynomial fit as described in
this article
is the default instead of the wellknown Wu (1982) parameterization. At the same time
the value of the Jonswap bottom friction is set to 0.038 m²/s³.
This is default irrespective of swell and windsea conditions.
 The stopping criterion of
Zijlema and Van der Westhuysen (2005)
is the default. This criterion is based on the curvature of the iteration curve of the significant wave height.
The former stopping criterion (activated though NUM ACCUR) will become obsolete.
 The LTA formulation for triadwave interactions is made consistent with the unidirectional approximation
in the limit of directional spreading to zero. This is particularly meant for e.g. swell or in (nearly) 1D conditions.
Version 40.85:

Length of character string of datetime for WAM nesting can be
specified through variable [lwdate] with command BOUND WAMNEST.
Note that the format of CDATE cannot be specified at the compile level anymore.

The definition of the RMS orbital velocity has been reviewed. See the documentations.
Version 40.81:

The RIAM approach for calculating the nonlinear 4wave interactions has been removed.

The format of CDATE for WAM nesting can be specified at the compile level. See the Implementation Manual.
Version 40.72:

Interpolation of a wave parameter in a userdefined output
location near an obstacle is improved. This means that this
interpolation over the obstacle will be prevented.

The default value of maximum number of iterations for a stationary
computation is 50 (instead of 15).
Version 40.51:
The numerical implementation of triads is improved. It is
energyconservative and more stable.
Version 40.41:
 The implementation of 2D setup is considerably improved.
This version is much more robust than the previous one.
 The SWAN code is considerably cleaned up and optimized. As a consequence,
a significant speedup is obtained.
 Nesting in both SWAN and WWIII is further improved.
 Due to an update of WAM, the format of CDATE is changed
from YYMMDDHHMM (10 characters) into YYMMDDHHMMSS (12 characters).
SWAN enables to interpret the new format in case of nesting with
WAM.
 Computing the dispersion relation is now based on a
Pade approximation for the wave celerity instead of an
oldfashion table lookup.
 The SIP solver is considerably improved.
(Already done with patch C of the previous version 40.31.)
 The CSM whitecapping formulation contains normalisation.
(Already introduced with patch F of the previous version 40.31.)
 SWAN enables generation of binary MATLAB files for instationary
computations.
(Already introduced with patch F of the previous version 40.31.)
 More than 1 nonstationary computation is allowed in a
parallel computation.
(Already carried out with patch H of the previous version 40.31.)
 Maximum number of output requests increased from 50 to 250.
(Already done with patch H of the previous version 40.31.)
 SWAN can read HOTFILE that contains variance density instead of action
density. Furthermore, first direction in HOTFILE need not
to be equal to the first direction defined by CGRID command.
(Already introduced with patch H of the previous version 40.31.)
Version 40.31:
 The
HPGLfunctionality
has been removed.
This functionality
is outdated, is not
maintained and is
not supported on
several platforms
(e.g., Windows XP,
Linux, etc.). For
this reason, SWAN
40.31 is not
compatible with
version 40.20!
 The command BOUND
SIDE cannot be used
in case of
curvilinear grids,
because it does not
work properly. Note
that it works fine
for rectilinear
grids! For
curvilinear grids,
the command BOUND
SEGMENT should be
employed.
 Both quadruplets
and triads are
activated
simultaneously.
Moreover, in case of
decreasing wave
height due to the
depthinduced
breaking, the
limiter stay active.
This will enhance
the stability of the
computation.
Version 40.20:
 It is possible to
activate both
quadruplets and
triads at the same
time.
 On request,
spatial distribution
of several
quantities can be
saved into binary
MATLAB files.
 On request,
detailed information
concerning CPU and
wallclock timings
of several parts of
the SWAN calculation
is obtainable. Also,
information on
frequency use of
limiting and
rescaling (in terms
of percentage of wet
gridpoints) is
provided.
 A number of small
changes is made
which does not have
effect on the model
results nor the
performance.
Version 40.11:
 The approximation
of the bathymetry in
the refraction
computations is
improved. To give
robust results (but
not necessarily
accurate results) in
case of poor
resolution in
bathymetry, currents
or the wave field
itself, the user can
activate a limiter
to avoid waves
turning over more
than 90 degrees in
one spatial grid
step.
 The limiter on the
refraction is
switched off on
default.
 In stationary mode
the second order
upwind (SORDUP) is
chosen as default,
while in
nonstationary mode
the S&L scheme
is default. In the
previous versions of
SWAN only the
backward space,
backward time (BSBT)
scheme was
available. BSBT is
still available
optionally.
Version 40.01:
 For reasons of
consistency the 2D
spectral densities,
used for input and
output are now
represented per
frequency per
directional degree
(40.01) instead of
per frequency per
directional radian
(30.75).
 The numerical
approximation of the
fraction of breakers
in the surfzone has
changed (more
accurate).
 The primary task
of the limiter is to
stabilize the
quadruplet wavewave
interactions (as
approximated by the
DIA). However, in
SWAN 30.75, it also
but unduly dampened
the triad wavewave
interactions. If in
SWAN 40.01 these
triad interactions
are active the
quadruplet
interactions and the
limiter are
deactivated. The
coefficients of the
triad interactions
have been given
correspondingly new
default values.
 For very strong
refraction the value
of c_{q} is
reduced in each grid
point and for each
wave component
individually with
the square of the
fraction of the grid
spacing over which
kd<3.0.
 To improve the
convergence
characteristics of
SWAN, the
firstguess (in
stationary mode) and
the breakoff
criteria for the
iterative procedure
have been changed.
The effect of these
changes are usually
hardly noticeable in
field conditions
whereas the
computations are
more accurate in
laboratory
conditions.
Version 30.75 (not
compatible with version
30.62):
 Modified the
handling of choosing
physics for the
model. Error
messages warn the
user regarding
erroneous choices in
the physics. In
previous versions
SWAN would
automatically
correct erroneous
choices in the
physics, this is now
left to the user.

Compatibility 
Version 41.10:
SWAN 41.10 is fully
compatible with version 41.01AB.
Version 41.01:
SWAN 41.01 is fully
compatible with version 40.91ABC.
Version 40.91:
SWAN 40.91 is fully
compatible with version 40.85.
Version 40.85:
SWAN 40.85 is fully
compatible with version 40.81.
Version 40.81:
SWAN 40.81 is fully
compatible with version 40.72ABCDE.
Version 40.72:
SWAN 40.72 is fully
compatible with version 40.51AB.
Version 40.51:
SWAN 40.51 is fully
compatible with version 40.41AB.
Version 40.41:
SWAN 40.41 is fully
compatible with version
40.31. Due to several
changes, a
comparison between
versions 40.41 and 40.31
may show small differences in
the results.
Version 40.31:
Because of the
removement of the
HPGLfunctionality, the
commands LINE, SITES and
PLOT... cannot be used.
Version 40.20:
SWAN 40.20 is fully
compatible with version
40.11.
Version 40.11:
SWAN 40.11 is fully
compatible with version
40.01. Due to the
changes in SWAN, a
comparison between
versions 40.11 and 40.11
may show differences in
the results.
Version 40.01:
SWAN 40.01 is fully
compatible with version
30.75 except for
 command BOUNDPAR
old version still
accepted.
 command BOUNDSPEC
old version not
accepted!
 command BOUNDNEST1
old version not
accepted!
 command GEN3 old
version with limiter
option not
available.
Conversion
programs are provided to convert
the old spectra files
into the new format.

Implementation 
Version 41.10:
An option at compile level is available to switch from the wavefront to the block Jacobi approach for parallel MPI runs.
The latter is very efficient for nonstationary computations.
See Implementation Manual for more details.
Version 41.01:
This version supports netCDF output (both integrated parameters and spectra).
Version 40.91:
Four different wizards for installing SWAN on your Windows PC are available on the SWAN website.
They are tailored to your needs and specific requirements. There is a setup wizard for serial runs and
there are wizards for parallel runs (e.g. OpenMP and MPI).
Version 40.85:
The hidden commands have been cleaned up. Only wellproven hidden commands may be used.
Version 40.72:
The source code of the unstructured grid functionality is written in
free form Fortran90 style. Moreover, each file with extension f90
contains at most one subroutine or function.
Version 40.51:

Automatic installation of SWAN on a Macintosh is available.

On Linux platforms the SWAN source code can also be compiled
with free GNU Fortran90 compilers, namely g95 and gfortran.
See also free software list.

An option is available to switch off the timing calls
entirely inside SWAN. See Implementation Manual.
Version 40.41:
 The source code does not contain common blocks. The common
variables are now resided in modules.
 For a heterogeneous machine, the sizes of the subdomains depend
on the speed of the processors. This is accounted for in SWAN.
A list of nondefault processor speeds can be specified in the
initialisation file SWANINIT. For details, see the Implementation
Manual.
 Parallel MPI runs on Windows 2000/NT/XP are possible.
(Already introduced with patch E of the previous version 40.31.)
Version 40.31:
 The program does
not contain the POOL
mechanism. As a
consequence, the
user may generate
the executable once.
Computation of
problems with
arbitrary sizes can
be carried out with
this executable.
However, these sizes
are restricted by
the internal
computer memory.
 For a number of
computer platforms,
the installation of
SWAN can be done
fully automatically.
Further details can
be found in the
Implementation
Manual.
Version 40.20:
 Add of OpenMP
compiler directives.
 A set of generic
subroutines based on
MPI is devised that
hide the technical
details of local
data exchange,
gathering data,
global reductions,
etc. from SWAN
subroutine calls.
These can be found
in swanparll.for.
 A Perl script
called switch.pl is
provided that
enables the user to
quickly select the
switches to be
removed for a
correct installation
of SWAN. These
switches deals with
the choice of a
platform, notably
Windows and Linux,
usage of Fortran 95
features, enabling
compilation with the
MPIlibrary, etc.
See the
Implementation
Manual for further
information.
Version 40.11:
 All but one
obsolescent FORTRAN
95 features have
been removed to
avoid compiler
warnings.
 Allocatable arrays
have been introduced
to avoid the use of
the POOL array for
newly introduced
arrays.
 Modules have been
introduced to avoid
lengthy argument
lists of
subroutines.
 The use of FORTRAN
90 features implies
that SWAN will not
compile under
FORTRAN 77.
Version 40.01:
 Equivalent
logical, real and
integer POOL arrays
have been introduced
to avoid a
frequently occuring
compiler warnings.
 All STOP
statements have been
replaced by improved
error handling to
allow SWAN being
used as a subroutine
in a larger system.
Version 30.75:
All common blocks
used in the source
code have been moved
to INCLUDE files.
This makes it for
developers easier to
modify SWAN.

Bug fixes 
The purpose of describing the bug fixes in terms of problems solved, is to enable the user to identify
previous SWAN runs that may have encountered these problems (noticed at the time of running or in hindsight with
this (new) information). All the bug fixes are implemented in the current version 41.10.
Solved in version 41.10:
 small bug outputting in case of obstacles in parallel unstructured mesh
 in case exception value is zero, not write to Matlab as NaN
Solved in version 41.01:
 many bug fixes in netCDF implementation
 correction Gregorian date of December 31 for years 1599, 1999, 2399, etc.
 some bug fixes in outputting (e.g. spectra and date) for parallel unstructured mesh
The following fixes and (small) extensions were introduced with patch A.
 an option is available to include turbulence viscosity
 when coupled with ADCIRC, the default is to use ADCIRC drag formulation
 change default value of [trfac] for triads
 changes with respect to netCDF:
 lower memory usage
 table output in netCDF format
 warning nonsupported output quantities to prevent crash when outputting
 variable declaration improved
 correction computation of output quantity TRANSP
 small bug fix with vegetation
 small bug fix with reading input field
 small bug fix with outputting spectra in case of Doppler shift
The following fixes and (small) extensions were introduced with patch B.
 calculation of turning rate improved
 based on derivatives of phase velocity instead of depth
 central differences instead of upwind for computing derivatives (structured)
 GreenGauss formula instead of upwind for computing derivatives (unstructured)
 inclusion neighboring sweeps removed
 cdlim removed
 in case of ambient current set IQUAD to 3 by default
 two small bug fixes with netCDF
Solved in version 40.91:
 fix in Janssen formulation for wind input
 small fix in Xnl formulation for quadruplets
 merging FRAME output data in case of parallel computing is corrected
 improvement in listing boundary vertices for unstructured grids
 unexpected behaviour removed when first output time is before start of computation
 open statement for existing Matlab file which should be replaced
 Julian date conversion is corrected (in particular for years 101, 102 and 103)
 several uninitializations removed
 inconsistency in case of reading WAM4.5 boundary conditions removed
 use of data type MPI_REAL4 instead of MPI_REAL to force the buffer size to be correct in the parallel communication in ADCIRC+SWAN environment
 hcat: lines extended from 256 to 1024 characters long
The following fixes and (small) extensions were introduced with patch A.
 Spectra and maps can be outputted in netCDF format
 Parameter delta of whitecapping of WAM Cycle III is now set to 1 (this change is known as the Rogers' trick)
 Option to read/write hotfiles in binary format is included
 Small bug fix in output block in case of unstructured MPI run
The following fixes and (small) extensions were introduced with patch B.
 General bug fixes:
 definition of TMBOT is corrected
 small bug fix in interpolation routine
 Bug fixes with respect to netCDF implementation:
 SWAN does not restart after being killed
 add flow, fhigh and msc to frequency variable
 compile errors netCDF code
 when Cartesian convention is set, standard names should be modified accordingly
 add 'standard_name' to time, longitude and latitude
 set calendar attribute of time to 'gregorian' instead of 'julian'
 variable names in netCDF code (hswe, spread)
 add PROJ, RUNID and SWAN version as attributes to netCDF file
The following fixes and (small) extensions were introduced with patch C.
 upgraded and improved netCDF stuff
 very small corrections
 some textual changes in the manuals
Solved in version 40.85:
 reading TPAR files is corrected
 nesting of unstructured grid is improved
 correction computation of dn/dh
Solved in version 40.81:
 computation of dissipation contributions for outputting corrected
 correction of format of spherical coordinates in swanhcat
 correction of "divide by zero" in case of WLEN and STEEPNESS
Solved in version 40.72:

Maximum length of the lines in the output TABLE file is 720 (instead 360).
 Some small corrections:
 computation of output parameter Hswell corrected
 exception value for BOTLEV/WATLEV corrected
The following fixes and (small) extensions were introduced with patch A.
 Extensions and improvements to unstructured mesh implementation:
 Handling holes in an unstructured grid is improved,
 Creating data structures for elements and edges is more faster,
 Prevention of interpolation over an obstacle is also included.
 The stopping criterion based on the curvature of Hm0 is extended with the curvature of Tm01.
 Each term of the action balance equation, i.e. time derivative of
wave action, xypropagation, θpropagation, σpropagation,
wind input, quadruplets, whitecapping, surf breaking, friction and
triads, can be outputted by means of the TABLE and BLOCK commands.
Moreover, the socalled work done by the radiation stress (a rest term in the
energy(!) balance equation) can be plotted as well.
 Bug fixes:
 interpolation near an obstacle for spectra is corrected,
 interpolation near a dry point is corrected,
 small correction in output in case of MPI parallel runs.
The following fixes and (small) extensions were introduced with patch B.
 Extensions to unstructured mesh implementation:
 Alleviation of the gardensprinkler effect,
 Phasedecoupled diffraction.
 An alternative to the JONSWAP formulation for bottom friction
is included (friction coefficient depends on the frequencydependent directional spreading).
 The SORDUP scheme is made more simpler and more consistent.
 Bug fixes:
 correction of outputting the wave force on unstructured meshes
in the case of spherical coordinates,
 remove small inconsistency in the concatenation program for hotfiles,
 small correction in collecting data for MPI parallel runs,
 no use of the Hersbach and Janssen limiter in the case of
stationary runs,
 the uservalue of water density will not be overwritten
with the default value 1025 kg/m3.
The following fixes and (small) extensions were introduced with patch C.
 Unstructured mesh computation is made more efficient, i.e. only a few
sweeps per iteration or time step is needed.
 Original fort.14 file can also be dealt with in SWAN.
Boundary markers will be derived from the ADCIRC boundary information.
 Block outputting for unstructured mesh cases is considerably optimized.
 The default advanced stopping criterion (NUM STOPC) is based on the
curvature of Hm0 only for reasons of robustness. However, the curvature
of Tm01 can be included as an option.
 Technical documentation is extended with useful information.
 Bug fixes:
 neverending sweep in unstructured mesh cases is prevented,
 assign reference point to deepest point in case of no boundary
condition in unstructured mesh cases,
 2 small corrections in collecting data for MPI parallel runs.
The following fixes and (small) extensions were introduced with patch D.
 Computation with unstructured grids is parallelized using OpenMP directives.
 For writing block output to a Matlab binary file, the old format (Level 4)
is replaced by the new one (Level 5 MATfile format).
The following fixes and (small) extensions were introduced with patch E.
 Some adaption to Makefile and perl script plaform.pl.
 The socalled CSM formulation for whitecapping is removed.
 Reading input fields and block outputting for unstructured mesh
cases is made more efficient.
 Technical documentation is extended with useful information.
 Bug fix in calculation of the orbital velocities.
Solved in version 40.51:
 total dissipation splitted out into 3 parts for output purposes
 improvements of WAM4 based on WAM Cycle 4.5 included (by Roop
Lalbeharry)
 nesting of WAM in SWAN based on WAM Cycle 4.5 (by Roop Lalbeharry)
 HersbachJanssen limiter included in case of Janssen formulation
for wind and whitecapping (by Roop Lalbeharry)
 improvements to reflection w.r.t. functionality and code (by Nico
Booij)
 small changes in triad parameters (by Andre van der Westhuysen)
 User Manual adapted (items 1, 5 and 6)
 Technical documentation extended with various subjects
 bug fixes:
 correction: initialisation of energy transport due to transmission
 correction: doloop in computing velocities in case of current
 correction: in case of triads without quadruplets limiter should not be activated
 correction: error message "spherical coordinates must be given in uniform, rectilinear computational grid" removed
 small correction in interpolation technique in case of curvilinear grids
 small correction in offset coordinates in case of curvilinear grids
 small correction in discretisation of diffraction parameter
 small correction in computing wavedriven forces in case of spherical coordinates
The following fixes and (small) extensions were introduced with patch A.
 hotstart functionality modified to handle reading from a single
hotfile or from multiple hotfiles when running in parallel with
MPI
 new transmission formula for lowcrested structures
 two output quantities added:
 the peakedness of the wave spectrum (Qp)
 the BenjaminFeir index (BFI) for quantifying the probability of freak waves
 computation of diffraction in spherical coordinates
 XNL implementation in Fortran90 style
 use of Intel Fortran compiler for Windows with OpenMP
functionality included for dualcore PC's
 User Manual adapted
 Technical documentation adapted
 bug fixes in:
 the Alves and Banner whitecapping formula
 reading WAM boundary conditions
 outputting 3 parts of dissipation
 outputting WATLEV and BOTLEV
The following fixes and (small) extensions were introduced with patch B.

some inconsistency in interpolation tools of SWAN is
corrected. This is only significant in case of curvilinear
grids
 some small corrections:
 remap input spectra to computational grid is corrected
 correction with test points
 correction to windgrid coordinates as set of
output locations
 remove error in case of more than one COMPUTE in
parallel nested run
 correction to bottom dissipation due to current
 no warning "Hsig=0" in routine SSHAPE in
case of specifying initial conditions
Solved in version 40.41:

redesign of postprocessing in parallel mode such that
the performance is significantly improved
 a new output quantity is added for TABLE and BLOCK:
bottom wave period named as TMBOT
 some small corrections:
 correction to building matrix and righthand side
in case of subcommand SECTOR in command CGRID
 small change in the 2D setup equation
 correction to generation of binary Matlab files
in case of nonstationary computation
 improving the determination of number of crossing
points for searching a location in curvilinear
grid
 correction to coordinates in curvilinear grid
with offset values in case of exception value
equal to zero
These fixes were introduced with patch A.
 correction to computation TMBOT, square root added
 correction to location points equal to offset values
 correction to output processing in parallel mode
 correction to memory allocation wrt. obstacles
 other small corrections
These fixes were introduced with patch B.
Solved in version 40.31:
 Problem occur when reading a spacevarying water level field.
This is due to a wrong array name WLEV that is pass to the
routine FLFILE in swanpre2.ftn, while it should be WLEVL.
(Introduced with patch A.)
 When imposing a Jonswap spectrum at an open boundary with a given MEAN
period it turns out that SWAN returns the Jonswap spectrum at the
regarding boundary but with a lower mean period! This will not occur when
choosing a PEAK period. The origin of this problem is that the variable
FSHAPE (indicating the type of the spectrum shape) get the wrong sign
when choosing the keyword MEAN.
(Introduced with patch B.)
 Problem occur when imposing 1D spectrum at open boundaries in 2D case.
SWAN executable created with Compaq Visual compiler will crashed.
This is due to not allocating an array for direction whereas such
an array will be used elsewhere regardless the use of 1D spectrum.
(Introduced with patch D.)
 A small bug in test output for nonlinear interactions if fixed.
(Introduced with patch E.)
 The problem of the use of the command COMPUTE more than
once in case of instationary computations.
(Introduced with patch F.)
 The problem of parallel computing with small grids and
array bounds violation.
(Introduced with patch G.)
 The problem with reading a WAM boundary file in case of nesting.
(Introduced with patch G.)
 A small problem when using FDRIAM for computing quadruplets.
(Introduced with patch G.)
 Dummy points in HOTFILE should be filled with exception values as
given in command CGRID.
(Introduced with patch H.)
 Correction to GROUP command: ix1=xi2 and iy1=iy2 are allowed.
(Introduced with patch H.)
 Small correction with respect to writing coordinates in
output spectra files in case of parallel computations.
(Introduced with patch H.)
 Correction to FRCOEF in TABLE/BLOCK: correct values instead
of not a numbers.
(Introduced with patch H.)
Solved in version
40.20:
 Problems with
OpenMP
functionality.
 Collection of
BLOCK data in
nonstationary mode
in parallel MPI
runs.
 Determining names
of binary Matlab
files for vectorial
quantities.
Solved in version
40.11:
 The output in the
form of starplots on
a rotated output
frame.
 The implementation
of the QUANTITY
command.
 Spectral output of
source terms on land
points.
 The output of 2D
spectra in
combination with
rotated grids or a
directional sector.
 The interpolation
for test points too
close to land
points.
Solved in Version
40.01:
 Imposing
parametric boundary
conditions, using a
mean period.
 Quadruplets in
combination with
obstacles.
 Transmission
coefficient in the
OBSTACLE command.
 Reading 2Dspectra
with SECTOR option
in CGRID command.
 File name referred
in error message in
the print file.
 Zero wave
conditions for
computations with
currents.
 Exception values
on wave boundaries.
Solved in version
30.75:
 No plot output for
the commands ISOLINE
and RAY.
 Initial state for
nonstationary mode
not as described in
manual.
 Several data
transfer problems
between WAM (local
version) and SWAN.
 Wave transmission
through subgrid
obstacles not as
intended.
 Layout of print
and plot output.
 Output at last
time step was equal
to output at
onebutlast time
step.
 Millenium problem
(see User Manual).
 HPGL plot code was
not correctly
imported into WP7
and MS Word7.
Solved in version
30.62:
 Interpolation
problems for output
points too close to
the boundary of the
computational grid.
 SWANSWAN nesting
not operating.
 Output problem for
curvilinear grid
computations.
 Compiler dependent
problems for DEC and
Silicon Graphics
systems.

