Get SWAN at SourceForge.net. Fast, secure and Free Open Source software downloads

Release notes

This page contains a list of additions, changes, compatibility, implementation and bug fixes.
The current version number of SWAN is 41.51.
Additions

Version 41.51:

  • A new method for computing triads, called the Full Triad Interaction Model (FTIM), is included as an option. See also Section 2.3.4 of the Technical documentation.
  • The LTA method is extended with another sum interaction to improve its physical accuracy; for details, see Section 2.3.4 of the Technical documentation.
  • Three different interaction coefficients to control energy transfer between the triad components have been added besides Madsen and Sorensen (1993), namely Freilich and Guza (1984), Bredmose et al (2005) and QuadWave of Akrish et al (2024). See also Section 2.3.4 of the Technical documentation for further details.

Version 41.45:

Version 41.41:

  • Bragg scattering is included as an option. Consult for details Section 2.3.7 of the Technical documentation.
  • 1D surfbeat of Reniers and Zijlema (2022) is included as an option.
  • The Quasi-Coherent Model (QCM) is included as an option. The method is described in Akrish et al. (2020) and Smit et al. (2015). See also Section 2.7 and Section 3.9 of the Technical documentation.
  • Radiated seaward FIG energy / reflection option included for FIG source.
  • TMA spectrum shape included for boundary condition.
  • Supports VTK format files for post-processing with Paraview. See for details the User Manual.
Version 41.31:

  • Dissipation by sea ice is included as an option. See for details Section 2.3.6 of the Technical documentation.
  • Freeboard dependent transmission and reflection is included as an option. See for details Section 2.5.3 of the Technical documentation.
Version 41.20:

The so-called observation-consistent wind input and white capping, known as the ST6 physics, is included as an option. In addition, dissipation of swell energy is also included. This ST6 package can be considered as an alternative to the Komen and Janssen formulations. Details on the ST6 physics are described in Rogers et al. (2012) and it is based on the work of Babanin, Young, Tsagareli, Ardhuin and others (see references therein).

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 post-processing. 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 direction-dependent 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 so-called β-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 wave-wave interactions is added. This alternative is the Stochastic Parametric model based on the Boussinesq-type wave equations (SPB) of Becq-Girard 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 mud-induced 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 well-known 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 pre-defined 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 user-defined 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 wind-sea energy under combined swell-sea 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 mild-slope 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 fully-converged 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 speed-up 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 finite-depth water, is implemented. This method is, however, extremely time consuming.
  • Extra output in PRINT file concerning convergence progress in user-selected 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 Tm-1,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 FD-RIAM, for the computation of the nonlinear 4-wave interactions in finite-depth 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 white-capping.
  • The Stone's SIP solver is implemented for solving action density equation, in case of non-stationary depth or ambient current. This solver is 4 to 5 times faster than the preconditioned BiCGSTAB solver.
  • A frequency-dependent under-relaxation technique is implemented.

Version 40.11:

  • SWAN allows nesting in WAVEWATCH III.
  • Spherical co-ordinates are available.
  • The user can define obstacles at which waves are reflected.
  • A higher order propagation scheme is introduced for both the stationary and non-stationary modes.

Version 40.01:

  • SWAN permits the calculation of wave-induced set-up. It is exact in 1D cases and approximate in 2D cases.
  • Non-stationary boundary conditions are introduced.
  • Initial conditions for a stationary or non-stationary 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 non-stationary 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 up-wave 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 wave-induced setup. The command SETUP controls this.

Version 30.62:

  • SWAN now accounts for sub-grid 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.51:

The complexity of computing triads using the SPB method (Becq-Girard et al, 1999) is greatly improved, leading to lower computing times.

Version 41.45:

Version 41.41:

  • In case of ambient current now advice will be given on setting IQUAD=3 (is therefore not automatically adjusted).
  • Highest file reference number is set to 99999 (see initialisation file).
Version 41.20:

Green-Gauss formula instead of backward differences for computing derivatives of ambient current with unstructured grids.

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 UnSWAN solution algorithm improved by taking 1 sweep per iteration instead of undetermined number of sweeps.
Version 41.01:
  • For computing wind drag the second order polynomial fit as described in this article is the default instead of the well-known 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 wind-sea 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 triad-wave interactions is made consistent with the uni-directional 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 date-time 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 4-wave 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 user-defined 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 energy-conservative and more stable.

Version 40.41:

  • The implementation of 2D set-up 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 speed-up 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 old-fashion table look-up.
  • The SIP solver is considerably improved. (Already done with patch C of the previous version 40.31.)
  • The CSM white-capping 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 non-stationary 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 HPGL-functionality has been removed. This functionality is out-dated, 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 curvi-linear grids, because it does not work properly. Note that it works fine for recti-linear grids! For curvi-linear 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 depth-induced 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 wall-clock 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 non-stationary 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 wave-wave interactions (as approximated by the DIA). However, in SWAN 30.75, it also but unduly dampened the triad wave-wave interactions. If in SWAN 40.01 these triad interactions are active the quadruplet interactions and the limiter are de-activated. The coefficients of the triad interactions have been given correspondingly new default values.
  • For very strong refraction the value of cq 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 first-guess (in stationary mode) and the break-off 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.51:

SWAN 41.51 is fully compatible with version 41.45.

Version 41.45:

SWAN 41.45 is fully compatible with version 41.41.

Version 41.41:

SWAN 41.41 is fully compatible with version 41.31AB except for specifying wind drag which is now invoke in the GEN3 command (and not in command WIND).

Version 41.31:

SWAN 41.31 is fully compatible with version 41.20AB.

Version 41.20:

SWAN 41.20 is fully compatible with version 41.10AB.

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 HPGL-functionality, 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.51:

Implementation of the processing of boundary conditions along boundary segments on a Metis-partitioned unstructured mesh.

Version 41.41:

  • Source distribution now also hosted on GitLab repository.
  • Supports CMake for building SWAN (as part of the distribution on GitLab).
  • Fortran90 library of FFT is included. (Check out this page.)
  • Two nonstandard Fortran 90 statements added: stream I/O (Fortran 2003 standard) and execute_command_line (Fortran 2008 standard).
  • Perl script platform.pl is modified in relation to oneAPI version of Intel Fortran compiler and gfortran version 10.

Version 41.20:

  • Perl script platform.pl is adapted that is also appropriate for MacBooks.
  • Further clarification in the Implementation Manual with respect to running SWAN using OpenMP built with the Intel Fortran compiler (see Chapter 5 of the manual).

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 well-proven 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 non-default 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 MPI-library, 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.51.

Solved in version 41.45:

  • small bug fix to cos m-model
The following fixes, changes and extensions were introduced with patch A.
  • the code for unstructured mesh is parallelized using Metis graph partitioning and MPI communication protocol
  • directional spreading for radiated FIG energy is included as an option
  • handling obstacles made more efficient especially for a very large number of obstacles (10,000+)
  • small bugfix in VTK format related to halo regimes
  • default cds2 parameter fixed
  • fixed irregularities in post-processing for parallel runs
The following fixes and changes were introduced with patch B.
  • a few small changes for the coupling with ADCIRC
  • small bug fix of triads implementation in case of OpenMP runs

Solved in version 41.31:

  • searching for locations in nesting not complete
  • small fix in SWAN-netCDF library
  • number of columns in S1D/S2D testfiles at first iteration differs from other iterations when invoking ST6 physics
The following fixes and (small) extensions were introduced with patch A.
  • the first partition (=p0) is always reserved for wind-sea (consistent with WW3); if no wind-sea then first partition is zero
  • fix wave reflection in case of transition from 360 degrees to zero
  • prevent division by zero in case of Madsen friction
  • addition output of watershed partition variables (wind-sea plus a number of swells) in netCDF format
The following fixes, changes and extensions were introduced with patch B.
  • four different parametrizations for wave dissipation by sea ice (Rogers et al, 2021)
  • vegetation due to Jacobsen et al. (2019)
  • radiating free ig waves (Rijnsdorp et al, 2021)
  • default [trfac] for triads changed from 0.8 to 0.05 (in case of ITRIAD=1)
  • exhaustive memory clean-up after terminating run
  • small correction collecting post processing data of parallel run

Solved in version 41.20:

  • small correction in Thornton and Guza (1983) breaking formulation
  • correction wave force calculation on sheltered side of a non-transmissive obstacle
  • correction on reading multiple input fields of different grid types
  • correction netCDF output in case of combined multiple stationary and non-stationary runs in MPI mode
The following fixes and (small) extensions were introduced with patch A.
  • prevention friction velocity from dropping to zero at very large wind speeds in wind drag formulation Zijlema et al. (2012)
  • correction adaptation of units of some output quantities in case of true energy
  • correction transformation in output wind vector
The following fixes and (small) extensions were introduced with patch B.
  • correction netCDF output in case of multiple non-stationary runs in MPI mode
  • correct collection multiple output files using different time intervals in parallel unstructured mode
  • temporary fallback option of triads: original LTA is default with [trfac]=0.05

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
The following fixes and (small) extensions were introduced with patch A.
  • use double precision for time coding
  • some automatic arrays used for SPB triads are made allocatable
  • default CFL for refraction limiter changed from 0.5 to 0.9
  • support gfortran and Intel Fortran compilers for macOS
  • support Intel Fortran compiler 17 for MS Windows
  • small correction interpolation near obstacles with flexible mesh
  • correction comparison grid orientation and wave direction with formatted hotfiles
The following fixes and (small) extensions were introduced with patch B.
  • input WW3 boundary condition is made more efficient and allows unformatted WW3 files
  • computation distance between nesting boundary grid and computational grid extended for spherical coordinates
  • linear wind input is made frequency-dependent above 1 Hz
  • cross derivative in anti-GSE diffusion terms corrected
  • small bug in double precision time coding

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 non-supported 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 backward differences for computing derivatives (structured)
    • Green-Gauss formula instead of backward differences 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, xy-propagation, θ-propagation, σ-propagation, wind input, quadruplets, whitecapping, surf breaking, friction and triads, can be outputted by means of the TABLE and BLOCK commands. Moreover, the so-called 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 garden-sprinkler effect,
    • Phase-decoupled diffraction.
  • An alternative to the JONSWAP formulation for bottom friction is included (friction coefficient depends on the frequency-dependent 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 user-value 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:
    • never-ending 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 MAT-file format).
The following fixes and (small) extensions were introduced with patch E.
  • Some adaption to Makefile and perl script plaform.pl.
  • The so-called 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)
  • Hersbach-Janssen 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: do-loop 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, recti-linear computational grid" removed
    • small correction in interpolation technique in case of curvi-linear grids
    • small correction in offset coordinates in case of curvi-linear grids
    • small correction in discretisation of diffraction parameter
    • small correction in computing wave-driven 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 low-crested structures
  • two output quantities added:
    • the peakedness of the wave spectrum (Qp)
    • the Benjamin-Feir 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 dual-core 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 curvi-linear 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:

  • re-design of post-processing 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 right-hand side in case of sub-command SECTOR in command CGRID
    • small change in the 2D set-up equation
    • correction to generation of binary Matlab files in case of non-stationary 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 space-varying 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 non-linear 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 FD-RIAM 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 non-stationary 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 2D-spectra 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 non-stationary mode not as described in manual.
  • Several data transfer problems between WAM (local version) and SWAN.
  • Wave transmission through sub-grid obstacles not as intended.
  • Lay-out of print and plot output.
  • Output at last time step was equal to output at one-but-last 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.
  • SWAN-SWAN nesting not operating.
  • Output problem for curvi-linear grid computations.
  • Compiler dependent problems for DEC and Silicon Graphics systems.