Skip to content

DALES Software Management Plan

Fredrik Jansson edited this page Jun 23, 2023 · 1 revision

DALES Software Management Plan

Inspired by the Practical guide to Software Management Plans by the Netherlands eScience center.

Purpose

DALES is the Dutch Atmospheric Large Eddy Simulation. It is used to simulate atmospheric processes such as turbulence, convection, clouds, and precipitation.

Version control

The DALES source code is managed with git, and is maintained on GitHub: https://github.com/dalesteam/dales .

Repository

The main repository is available at https://github.com/dalesteam/dales . Additionally the releases are archived on Zenodo, with DOI 10.5281/zenodo.3759192.

User documentation

Software licencing and compatibility

DALES is made available under the terms of the GNU GPL version 3.

Deployment documentation

Installation instructions in the repository: INSTALL.md Installation instructions for different operating systems and for some specific (super)computers are available in the DALES GitHub Wiki: Installation notes

Citation

Citation for DALES itself: DOI 10.5281/zenodo.3759192 (on Zenodo).

Model description papers:

  • Formulation of the Dutch Atmospheric Large-Eddy Simulation (DALES) and overview of its applications, T. Heus et al, Geosci. Model Dev., 3, 415-444, 2010

  • Ouwersloot, H.G., Moene, A.F., Attema, J.J. et al. Large-Eddy Simulation Comparison of Neutral Flow Over a Canopy: Sensitivities to Physical and Numerical Conditions, and Similarity to Other Representations. Boundary-Layer Meteorol 162, 71–89 (2017)

  • An updated model description paper is in preparation.

Developer documentation

Comments in the source code, in the Doxygen format. Additionally the following Wiki pages are relevant: Guide-for-new-users-and-developers and Quirks.

Testing

GitHub actions are used to verify that new commits can be compiled with different combinations of compilers and compilation options.

The DALES repository contains a number of cases in the cases/ directory. These can be used to test that a new version is running correctly. Two basic and well-studied cases are BOMEX and RICO. BOMEX tests the model core. RICO adds precipitation.

Judging what results are correct is generally difficult, since the weather is chaotic and any change in the code will likely result in the model following a different trajectory. To detect surprise changes in the model result we have defined the following procedure:

  • run an ensemble of cases with the same settings but different random seeds for a reference version of the model
  • run a similar ensemble for a testing version
  • for each model version, plot several quantities over time, e.g. from the tmser.NNN.nc output.
  • if the model versions differ more than the spread within a model version, there is reason to suspect something significant has changed.

An experimental setup for this test is available at https://github.com/fjansson/dales-tester .

Software Engineering quality

So far no formal standard, for example https://bestpractices.coreinfrastructure.org/en can be considered.

Packaging

Currently only source code is distributed, users compile it themselves on their own systems.