atlas

A library for numerical weather prediction and climate modelling

https://github.com/ecmwf/atlas

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: sciencedirect.com
  • Committers with academic emails
    4 of 56 committers (7.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.0%) to scientific vocabulary

Keywords from Contributors

ecflow
Last synced: 6 months ago · JSON representation

Repository

A library for numerical weather prediction and climate modelling

Basic Info
Statistics
  • Stars: 133
  • Watchers: 26
  • Forks: 44
  • Open Issues: 25
  • Releases: 41
Created about 8 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Authors

README.md

Atlas

atlas release version build codecov

Project home: https://confluence.ecmwf.int/display/ATLAS
Contact: Willem Deconinck (willem.deconinck@ecmwf.int)
Publication:

Deconinck et al, 2017 --- Atlas: A library for numerical weather prediction and climate modelling

Atlas is a ECMWF library for parallel data-structures supporting unstructured grids and function spaces, with the aim to investigate alternative more scalable dynamical core options for Earth System models, and to support modern interpolation and product generation software

Atlas is predominantly C++ code, with main features available to Fortran codes through a F2003 interface. It requires some flavour of Unix (such as Linux). It is known to run on a number of systems, some of which are directly supported by ECMWF.

Requirements

Tested compilers include:

  • GCC 4.9.1, 5.3.0, 6.3.0, 7.2.0
  • Intel 15.0.2, 16.0.3, 17, 18
  • CCE 8.4.5, 8.5.8, 8.6.2
  • PGI-Fortran 17.7 combined with GNU-C/C++ 6.3
  • PGI 17.7

Known compilers to fail include:

  • PGI-Fortran 17.10, 18.1

Required dependencies:

  • CMake --- For use and installation see http://www.cmake.org/
  • ecbuild --- ECMWF library of CMake macros
  • eckit (with MPI support) --- C++ support library

Recommended dependencies:

  • fckit --- For enabling Fortran interfaces
  • python (only when Fortran bindings are required)

Optional dependencies:

  • gridtools-storage --- For GPU interoperability
  • transi --- For enabling IFS spherical harmonics transforms ( not open-source )
  • CGAL --- For enabling Delaunay triangulation of unstructured grids
  • Eigen3 -- For certain linear algebra operations
  • FFTW -- For enabling inverse spherical harmonics transforms (TransLocal)

Installation

Atlas employs an out-of-source build/install based on CMake.

Make sure ecbuild, eckit and fckit are installed and the ecbuild executable script is found ( which ecbuild ). Following environment variables help the build system to detect the right dependencies:

```bash

For finding eckit

ECKIT_PATH # Path to eckit prefix

For finding fckit

FCKIT_PATH # Path to fckit prefix ```

Other environment variables that could be required for optional features:

```bash

For finding gridtools-storage

GRIDTOOLSSTORAGEPATH # Path to gridtools-storage prefix

For finding transi

TRANSI_PATH # Path to transi prefix

For finding CGAL

BOOSTROOT # Path to Boost prefix CGALDIR # Path to directory containing CGALConfig.cmake Eigen3DIR # Path to directory containing Eigen3Config.cmake FFTWPATH # Path to FFTW prefix ```

Now proceed with installation as follows

```bash

Environment --- Edit as needed

ATLASSRC=$(pwd) ATLASBUILD=build ATLAS_INSTALL=$HOME/local

1. Create the build directory:

mkdir $ATLASBUILD cd $ATLASBUILD

2. Run CMake

ecbuild --prefix=$ATLASINSTALL -- $ATLASSRC

3. Compile / Install

make -j10 make install

4. Check installation

$ATLAS_INSTALL/bin/atlas --info ```

Extra flags maybe added to step 2 to fine-tune configuration.

  • --build=DEBUG|RELEASE|BIT --- Optimisation level
    • DEBUG: No optimisation (-O0 -g)
    • BIT: Maximum optimisation while remaning bit-reproducible (-O2 -g)
    • RELEASE: Maximum optimisation (-O3)
  • -DENABLE_OMP=OFF --- Disable OpenMP
  • -DENABLE_FORTRAN=OFF --- Disable Compilation of Fortran bindings

Note: By default compilation is done using shared libraries. Some systems have linking problems with static libraries that have not been compiled with -fPIC. In this case, also compile atlas using static linking, by adding to step 2: --static

Runtime Configuration

Atlas behaviour can be configured through some environment variables with defaults marked in square brackets

  • ATLAS_INFO=<0|[1]> --- Control printing of Atlas standard information
  • ATLAS_DEBUG=<[0]|1> --- Control printing of Atlas debug information
  • ATLAS_TRACE=<[0]|1> --- Control printing of Atlas traces (includes timings)

Contributing

Contributions to Atlas are welcome. In order to do so, please open an issue where a feature request or bug can be discussed. Then issue a pull request with your contribution. Pull requests must be issued against the develop branch.

Citing Atlas

If you publish work which mentions Atlas, or Atlas has been useful in your research, please cite the following paper:

bibtex @article{DECONINCK2017188, title = "Atlas : A library for numerical weather prediction and climate modelling", journal = "Computer Physics Communications", volume = "220", pages = "188 - 204", year = "2017", issn = "0010-4655", doi = "https://doi.org/10.1016/j.cpc.2017.07.006", url = "http://www.sciencedirect.com/science/article/pii/S0010465517302138", author = "Willem Deconinck and Peter Bauer and Michail Diamantakis and Mats Hamrud and Christian Kühnlein and Pedro Maciel and Gianmarco Mengaldo and Tiago Quintino and Baudouin Raoult and Piotr K. Smolarkiewicz and Nils P. Wedi", keywords = "Numerical weather prediction, Climate, Earth system, High performance computing, Meteorology, Flexible mesh data structure" }

Owner

  • Name: European Centre for Medium-Range Weather Forecasts
  • Login: ecmwf
  • Kind: organization
  • Email: Software.Support@ecmwf.int
  • Location: Shinfield Park, Reading, United Kingdom

Providing software to work with meteorological data and services

GitHub Events

Total
  • Issues event: 19
  • Watch event: 15
  • Delete event: 30
  • Issue comment event: 187
  • Push event: 426
  • Pull request review comment event: 126
  • Pull request review event: 126
  • Pull request event: 93
  • Fork event: 4
  • Create event: 56
Last Year
  • Issues event: 19
  • Watch event: 15
  • Delete event: 30
  • Issue comment event: 187
  • Push event: 427
  • Pull request review comment event: 127
  • Pull request review event: 127
  • Pull request event: 93
  • Fork event: 4
  • Create event: 56

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 4,854
  • Total Committers: 56
  • Avg Commits per committer: 86.679
  • Development Distribution Score (DDS): 0.351
Past Year
  • Commits: 276
  • Committers: 13
  • Avg Commits per committer: 21.231
  • Development Distribution Score (DDS): 0.196
Top Committers
Name Email Commits
Willem Deconinck w****k@e****t 3,150
Tiago Quintino t****o@e****t 341
Pedro Maciel P****l@e****t 313
carlos osuna c****a@m****h 132
cosunae c****a@e****h 106
Avi Bahra A****a@e****t 102
Andreas Mueller a****r@e****t 90
Oliver Lomax o****x@m****k 83
Willem Deconinck n****d@e****t 77
Florian Rathgeber f****r@e****t 73
Baudouin Raoult b****t@e****t 66
MarekWlasak m****y@g****m 53
Slavko Brdar s****r@e****t 50
Daan Degrauwe d****e@m****e 20
Philippe Marguinaud p****d@m****r 20
Willem Deconinck n****d@c****) 17
danholdaway d****y 17
Gianmarco Mengaldo G****o@e****t 16
Dusan Figala d****a@p****m 14
James Hawkes m****h@e****t 11
Toby Searle 1****e 8
Benjamin Menetrier 3****r 7
Rahul Mahajan a****l 7
Benjamin Menetrier b****r@i****r 7
Mats Hamrud n****r@c****t 7
Liam Adams l****0@g****m 6
Olivier Iffrig o****g@e****t 6
tmi v****a@g****m 5
Iain Russell c****i@e****t 5
Christian Kuehnlein c****n@e****t 4
and 26 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 70
  • Total pull requests: 322
  • Average time to close issues: 2 months
  • Average time to close pull requests: 16 days
  • Total issue authors: 18
  • Total pull request authors: 34
  • Average comments per issue: 1.74
  • Average comments per pull request: 3.45
  • Merged pull requests: 203
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 134
  • Average time to close issues: 21 days
  • Average time to close pull requests: 9 days
  • Issue authors: 6
  • Pull request authors: 12
  • Average comments per issue: 1.0
  • Average comments per pull request: 2.37
  • Merged pull requests: 99
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pmarguinaud (14)
  • DJDavies2 (10)
  • odlomax (9)
  • wdeconinck (6)
  • fmahebert (4)
  • l90lpa (4)
  • tom-j-h (4)
  • MarekWlasak (4)
  • twsearle (3)
  • benjaminmenetrier (2)
  • jeromebarre (2)
  • yangjinhui11 (2)
  • sbrdar (1)
  • andreapiacentini (1)
  • iajzenszmi (1)
Pull Request Authors
  • wdeconinck (77)
  • odlomax (52)
  • sbrdar (24)
  • pmarguinaud (22)
  • MarekWlasak (20)
  • benjaminmenetrier (16)
  • l90lpa (12)
  • geier1993 (12)
  • tmi (10)
  • twsearle (9)
  • figi44 (8)
  • fmahebert (6)
  • tom-j-h (6)
  • mo-lormi (5)
  • pmaciel (5)
Top Labels
Issue Labels
Type: Enhancement (7) Status: In Progress (3) Status: Available (3) Status: Merged (2) Type: Question (2) Status: Resolved (2) Type: Bug (2) Status: Review Needed (1)
Pull Request Labels
contributor (86) Status: Merged (57) approved-for-ci (39) Type: Enhancement (16) Type: Bug (7) Status: Resolved (4) alternative approach merged (3) Status: In Progress (2) Status: Review Needed (1)

Dependencies

.github/workflows/build.yml actions
  • Homebrew/actions/setup-homebrew master composite
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • ecmwf-actions/build-package v2 composite
  • pat-s/always-upload-cache v2.1.5 composite
.github/workflows/cd.yml actions
.github/workflows/check-release-version.yml actions
.github/workflows/ci.yml actions
  • ecmwf-actions/dispatch-private-downstream-ci v1 composite
.github/workflows/label-public-pr.yml actions