Skip to content

Commit

Permalink
Merge branch 'develop' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
RobertPincus authored Nov 28, 2023
2 parents 3ac0636 + e1f221f commit 4d8c5df
Show file tree
Hide file tree
Showing 10 changed files with 55 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
# Set up Conda
#
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
activate-environment: rte_rrtmgp_test
Expand Down
21 changes: 16 additions & 5 deletions Compiler-flags.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,37 @@ To build any of the executables in `examples/` or `tests` the locations of the C
need to be set via environment variables `NCHOME` and `NFHOME`, and the variable `RRTMGP_ROOT` must be set to the
root of the RTE+RRTMGP installation.

## Gnu Fortran
`FC: gfortran-8` or `gfortran-9` or `gfortran-10`
## Gnu Fortran
(see also the [continuous integration](https://github.com/earth-system-radiation/rte-rrtmgp/blob/main/.github/workflows/continuous-integration.yml))
`FC: `gfortran-10` or `gfortran-11` or `gfortran-12`
### Debugging flags
`FCFLAGS: "-ffree-line-length-none -m64 -std=f2008 -march=native -fbounds-check -finit-real=nan -DRTE_USE_CBOOL"`
### Even stricter debugging flags
`FCFLAGS: "-ffree-line-length-none -m64 -std=f2008 -march=native -fbounds-check -fbacktrace -finit-real=nan -DRTE_USE_CBOOL -pedantic -g -Wall"`

## Intel Fortran
## Intel Fortran Classic
(see also the [continuous integration](https://github.com/earth-system-radiation/rte-rrtmgp/blob/main/.github/workflows/containerized-ci.yml))
`FC: ifort`
### Debugging flags
`FCFLAGS: "-m64 -g -traceback -heap-arrays -assume realloc_lhs -extend-source 132 -check bounds,uninit,pointers,stack -stand f08"`
### Optimization flags:
`FCFLAGS:"-m64 -O3 -g -traceback -heap-arrays -assume realloc_lhs -extend-source 132"`

## Intel Fortran
(LLVM, see also the [continuous integration](https://github.com/earth-system-radiation/rte-rrtmgp/blob/main/.github/workflows/containerized-ci.yml))
`FC: ifort`
### Debugging flags
`FCFLAGS: "-debug -traceback -heap-arrays -assume realloc_lhs -extend-source 132 -stand f08"`
### Using OpenMP GPU offload
See [this open issue](https://github.com/earth-system-radiation/rte-rrtmgp/issues/194)

## NVFortran
`FC: nvfortran` (if using the Nvidia HPC SDK)
(see also the see also the [continuous integration](https://github.com/earth-system-radiation/rte-rrtmgp/blob/main/.github/workflows/containerized-ci.yml))
`FC: nvfortran`
### Debugging flags
`FCFLAGS: "-g -Minfo -Mbounds -Mchkptr -Mstandard -Kieee -Mchkstk -Mallocatable=03 -Mpreprocess"`
### Optimization flags:
`FCFLAGS: "-g -O3 -fast -Minfo -Mallocatable=03 -Mpreprocess"`
`FCFLAGS: "-O3 -fast -Minfo -Mallocatable=03 -Mpreprocess"`

## HPE CCE for GPU using OpenMP-acc: crayftn -- requires at least CCE 14.0.0
`FC: crayftn`
Expand Down
5 changes: 2 additions & 3 deletions doc/ford_site/rrtmgp-fortran-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ The user interface uses the [ty_gas_concs](./module/mo_gas_concentrations.html)
to represent the volume mixing ratios needed as input. Output suitable for
scattering emission, two-stream, or multi-stream calculations are provided
depending on which sub-class of RTE's
[ty_optical_props_arry](./rte-fortran-interface/module/mo_optical_props.html#type-ty_optical_props_arry)
[ty_optical_props_arry](../rte-fortran-interface/module/mo_optical_props.html#type-ty_optical_props_arry)
are provided. Planck source functions, if requested, are reported in a variable
of type [ty_source_func_lw.](./rte-fortran-interface/type/ty_source_func_lw.html)
of type [ty_source_func_lw.](../rte-fortran-interface/type/ty_source_func_lw.html)

The listings below may not be exhaustive.
To see the full listings use the links at the top of the page.
Expand All @@ -47,4 +47,3 @@ There is a search bar in the top right.
Return to the [Documentation overview] or the [reference overview].

[Documentation overview]: ../../index.html
[reference overview]: ../../reference.html
2 changes: 1 addition & 1 deletion doc/ford_site/rrtmgp-kernels.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ There is a search bar in the top right.
Return to the [Documentation overview] or the [reference overview].

[Documentation overview]: ../../index.html
[reference overview]: ../../reference.html
[reference overview]: ../index.html
3 changes: 2 additions & 1 deletion doc/ford_site/rte-fortran-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ author: The RTE+RRTTMGP consortium
github: https://github.com/earth-system-radiation/
license: by
title: RTE Fortran interfaces-frontend
src_dir: ../../rte-frontend
output_dir: ../../public/reference/rte-fortran-interface
...

Expand Down Expand Up @@ -39,7 +40,7 @@ There is a search bar in the top right.
Return to the [Documentation overview] or the [reference overview].

[Documentation overview]: ../../index.html
[reference overview]: ../../reference.html
[reference overview]: ../index.html

<!---
## How to Read This Documentation
Expand Down
2 changes: 1 addition & 1 deletion doc/ford_site/rte-kernels.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ There is a search bar in the top right.
Return to the [Documentation overview] or the [reference overview].

[Documentation overview]: ../../index.html
[reference overview]: ../../reference.html
[reference overview]: ../index.html
15 changes: 15 additions & 0 deletions doc/jekyll_site/_posts/2023-11-27-v1.8-Release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
layout: post
title: "v1.8 Release notes"
categories: Release-notes
---

Commit [3ac0636](https://github.com/earth-system-radiation/rte-rrtmgp/commit/3ac0636b17d6a3f11e4085f91679393fceaa4e18)
to branch `main` makes the following changes:

- Libraries can be built in single precision by changes in `rte-kind/mo_rte_kind.F90`. Differences with respect to double precision are roughly 0.13 W/m2.
- A class for computing the optical properties of aerosols following the MERRA representation has been added.
- The repository is reorganized into `frontend` and `kernel` directories for `rte` and `rrtmgp`. Data has been moved to a separate [repository])((https://github.com/earth-system-radiation/rrtmgp-data/).
- Citation information has been added.

As usual some bugs have been fixed, the use of OpenACC and OpenMP GPU offload directives continues to evolve, and the continous integration continues to be fine-tuned.
31 changes: 9 additions & 22 deletions doc/jekyll_site/how-tos/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,16 @@ title: "How-to guides"
---
# How-to guides will live here

## How to: build and test the libraries and examples
## How-to: build, run, and test the libraries, examples, and unit-testing codes.

### Building and testing using (Gnu) make

1. Set environment variables `FC` (the Fortran 2003 compiler) and `FCFLAGS` (compiler flags).
Examples are provided in the `Compiler-flags.md` file.
2. Set environment variable `RRTMGP_ROOT` to the top-level RTE+RRTMGP directory.
Set the variables `NCHOME` and `NFHOME` to the roots of the C and Fortran
netCDF installations. (Building the libraries alone )
3. Set environment variable `RTE_KERNELS` to `accel` if you want the OpenACC/OpenMP
kernels rather than the default.
4. `make libs` in the top-level directory will make the RTE and RRTMGP libraries
and the regression tests in in `examples/` and `tests/`. Libraries and module
files are in `build/`; examples and tests are in the subdirectory containing
their source code.
5. `make tests` runs the examples and regression tests.
(A few files need to be downloaded for `examples/rfmip-clear-sky`. The default
is to download with a Python script is shell script using `wget` is also available.)
6. Comparisons can be made with `make check` in the top level directory.
Evaluating the results of the tests requires `Python` and the packages
described in `environment.yml`. One approach is to use
`conda env create -f environment.yml; conda activate rte_rrtmgp_test; make check`
7. `make` invoked without a target in the top level attempts all three steps.
1. Set environment variables `FC` (the Fortran 2003 compiler) and `FCFLAGS` (compiler flags). Examples are provided in the `Compiler-flags.md` file.
2. Set environment variables `RRTMGP_ROOT` to the top-level RTE+RRTMGP directory and `RTE_KERNELS` to `accel` if you want the OpenACC/OpenMP kernels rather than the default.
3. `make libs` in the top-level directory will make the RTE and RRTMGP libraries.
4. The examples and testing codes use netCDF. Set the variables `NCHOME` and `NFHOME` to the roots of the C and Fortran netCDF installations.
5. Download the RRTMGP data either by cloning the [data repository](https://github.com/earth-system-radiation/rrtmgp-data) or from the [Zenodo archive](https://doi.org/10.5281/zenodo.7988260). Set the environment variable `RRTMGP_DATA` to the root of this directory.
6. `make tests` to will build and run the test.
7. Evaluating the results of the tests requires `Python` and the packages described in `environment.yml`. Comparisons can be made with `make check` in the top level directory.
8. `make` invoked without a target in the top level attempts all three steps.

### Building and testing using (Gnu) make

Expand Down
8 changes: 7 additions & 1 deletion doc/jekyll_site/index.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ title: "RTE+RRTMGP documentation"
This is the documentation for RTE+RRTMGP, a set of codes for computing radiative
fluxes in planetary atmospheres. RTE+RRTMGP is described in a
[paper](https://doi.org/10.1029/2019MS001621) in
[Journal of Advances in Modeling Earth Systems](http://james.agu.org).
[Journal of Advances in Modeling Earth Systems](http://james.agu.org).
The code itself can be sited as
doi:[10.5281/zenodo.3403172](https://doi.org/10.5281/zenodo.3403172) or via the
DOI attached to each release.

RRTMGP uses a k-distribution to provide an optical description (absorption and
possibly Rayleigh optical depth) of the gaseous atmosphere, along with the
Expand All @@ -30,3 +33,6 @@ and produce [tutorials](./tutorials/index.html), [how-to guides](./how-tos/index
We are starting with the [reference documentation](./reference/index.html),
auto-generated from the code itself. This is provided separately for
RTE and RRTMGP and for the user-facing classes and underlying computational kernels.

We welcome contributions to the documentation via pull requests to the `documentation` branch
of the Github repository.
1 change: 1 addition & 0 deletions doc/jekyll_site/reference/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ RTE aspires to follow a set of coding conventions:
and spectral quadrature point.
- RTE and RRTMGP are agnostic to vertical ordering
- Units are MKS
- Procedures (with the exception of testing code) do not perform I/O

## Fortran user-facing class interfaces

Expand Down

0 comments on commit 4d8c5df

Please sign in to comment.