Skip to content

Developing uDALES

uDALES is developed openly on GitHub. Bug reports, feature requests, and pull requests are all welcome — see how to contribute for the process.

Development starts from the master branch, which is the bleeding-edge version of the model; users running simulations should instead use the latest release, as described in the installation guide.

This section collects the developer-facing documentation:

  • Code architecture — how the solver is organised: repository layout, module responsibilities, and the exact sequence of calls in a timestep. Start here before modifying the solver.
  • Extending uDALES — recipes for common tasks, each traced through a working example in the code: adding a namelist option, an output variable, a statistic, an example case, or a test.
  • Testing and CI — the test suites, how to run them locally, and what continuous integration checks on every pull request.
  • Development notes — setting up a development environment, building in debug mode, and building this documentation.
  • How to contribute — reporting bugs, requesting features, and opening pull requests.
  • Parallelisation — how the 2-D pencil domain decomposition with 2DECOMP&FFT works, and what it means for code that loops over the grid.
  • Using agents — conventions for working on this repository with AI coding agents.
  • Fortran API reference — API documentation of the Fortran source, generated with FORD.

The model source lives in src/, the pre/post-processing tools in tools/, example cases in examples/, and the tests in tests/ (see the test docs for the layout). uDALES uses semantic versioning.