Skip to content
Snippets Groups Projects
Commit 6fc04389 authored by Yen-Chen Chen's avatar Yen-Chen Chen Committed by Jonas Jucker
Browse files

Improve README (!85)




## What is the new feature
Improve README.

Merged-by: default avatarJonas Jucker <jonas.jucker@env.ethz.ch>
Changelog: feature
parent eb0d85d0
No related branches found
No related tags found
1 merge request!85Improve README
Pipeline #64895 passed
......@@ -15,8 +15,8 @@ SPDX-License-Identifier: CC-BY-4.0
This repository is an external library of ICON collecting low-level supporting modules of ICON.
[![Latest Release](https://gitlab.dkrz.de/icon-libraries/libfortran-support/-/badges/release.svg)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/-/releases)
[![pipeline status](https://gitlab.dkrz.de/icon-libraries/libfortran-support/badges/master/pipeline.svg)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/pipelines/latest?ref=master)
[![coverage report](https://gitlab.dkrz.de/icon-libraries/libfortran-support/badges/master/coverage.svg)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/pipelines/latest?ref=master)
[![pipeline status](https://gitlab.dkrz.de/icon-libraries/libfortran-support/badges/master/pipeline.svg?key_text=Pipeline&key_width=55)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/pipelines/latest?ref=master)
[![coverage report](https://gitlab.dkrz.de/icon-libraries/libfortran-support/badges/master/coverage.svg?key_text=Test%20coverage&key_width=90)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/pipelines/latest?ref=master)
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/-/blob/master/LICENSES/BSD-3-Clause.txt)
[![License: CC BY 4.0](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/-/blob/master/LICENSES/CC-BY-4.0.txt)
[![License: CC0-1.0](https://img.shields.io/badge/License-CC0_1.0-lightgrey.svg)](https://gitlab.dkrz.de/icon-libraries/libfortran-support/-/blob/master/LICENSES/CC0-1.0.txt)
......@@ -26,14 +26,15 @@ This repository is an external library of ICON collecting low-level supporting m
The following packages/libraries are required for `libfortran-support`.
- Fortran compiler
- C compiler
- C++ compiler
- CMake 3.18+
The following requirements are optional
- C++ compiler (testing with [GoogleTest](https://github.com/google/googletest))
- OpenACC(nvhpc) for GPU support
- `fprettify` for Fortran code formatting
- [`fprettify`](https://github.com/pseewald/fprettify) for Fortran code formatting
- `clang-format` for C/C++ code formatting
- Ragel State Machine Compiler 7.0+ for C code generation from `.rl` files, used for
- [REUSE](https://reuse.software) v3.0.0+ for licensing
- [Ragel State Machine Compiler](http://www.colm.net/open-source/ragel/) 7.0+ for C code generation from `.rl` files, used for
- `nml_annotate.c`
- `util_arithmetic_expr.c`
- `util_string_parse.c`
......@@ -75,9 +76,11 @@ The `libfortran-support` library includes some general Fortran supporting module
## Some notes for developers
- The `fortran-support` library is only configured by CMake.
- Tips and standards on CMake https://gitlab.dkrz.de/icon/wiki/-/wikis/CMake-recommendations-and-requirements
- Tips and standards on CMake [ICON developer wiki/CMake recommendations and requirements](https://gitlab.dkrz.de/icon/wiki/-/wikis/CMake-recommendations-and-requirements)
- The `fortran-support` library uses `fprettify` for formatting Fortran codes. Run `make format` before you commit.
- The `fortran-support` library is unit tested. (work in progress) All merge request changes are preferable to have a unit test.
- The `fortran-support` library is unit tested. All merge request changes are required to have a unit test. See [icon-c/Wiki/Testing and building of ICON C/Unit test frameworks](https://gitlab.dkrz.de/icon/icon-c/-/wikis/ICON-C-Phase-0/Testing-and-building-of-ICON-C#unit-test-frameworks) for more information on unit testing.
- __Fortran__ unit tests are written in [FortUTF](https://github.com/artemis-beta/FortUTF). [Assertions Documentation](https://github.com/artemis-beta/FortUTF/blob/main/docs/assertions.md)
- __C__ unit tests are written in [GoogleTest](https://github.com/google/googletest). [User's Guide](https://google.github.io/googletest/)
- Fortran preprocessing is automatically applied for files with `.F90` extensions. See [\#4](https://gitlab.dkrz.de/icon-libraries/libfortran-support/-/issues/4) for more details.
## How to add modules in `fortran-support`?
......@@ -105,10 +108,14 @@ cmake -DFS_ENABLE_OPENACC=ON ..
make
```
4. Format the code by `make format`.
5. Make sure your code is tested. For more information on unit tests, check out this [GitLab WIKI page](https://gitlab.dkrz.de/icon/icon-c/-/wikis/ICON-C-Phase-0/Testing-and-building-of-ICON-C#unit-test-frameworks)
5. Make sure your code is tested. Check [developer note](#some-notes-for-developers).
6. Check license by `reuse lint`. Check [requirements](#requirements).
- Code snippets should have license BSD-3-Clause
- Documentations should have license CC-BY-4.0
- Files unrelated to the library itself should have license CC0-1.0
## How to contribute
Please open a merge request and select one of our templates for new features or bugfixes. Detailed instructions on how to proceed are provided there.
Please open a merge request and select one of our templates: __[feature/bugfix]__. Detailed instructions on how to proceed are provided there.
## Contact
This repository is mainly maintained by the following maintainers:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment