Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update main from develop #330

Merged
merged 71 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
6ffa2d6
Bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0
dependabot[bot] Nov 28, 2023
bf4180d
Merge pull request #243 from earth-system-radiation/dependabot/github…
RobertPincus Nov 28, 2023
8131adc
Documentation -> develop (#244)
RobertPincus Nov 30, 2023
b9dbe26
Update Readme
RobertPincus Dec 1, 2023
90925e3
Simplify build flags (#247)
RobertPincus Dec 2, 2023
9821324
Update Documentation (#248)
RobertPincus Dec 4, 2023
fee55ca
Update CI configuration (#249)
skosukhin Dec 6, 2023
a8acd3b
Update environment*.yml files (#251)
RobertPincus Dec 14, 2023
c61f373
Simplify LW source functions (#250)
RobertPincus Dec 14, 2023
6616f4f
Bump actions/upload-artifact from 3 to 4
dependabot[bot] Dec 14, 2023
93e1062
Merge pull request #252 from earth-system-radiation/dependabot/github…
RobertPincus Dec 14, 2023
5ac4d0a
Temperature and source function refinements (#253)
RobertPincus Dec 18, 2023
5c55f2c
Bump actions/cache from 3 to 4 (#254)
dependabot[bot] Jan 17, 2024
44e4352
Run CI jobs on Levante via GitLab (#255)
skosukhin Jan 24, 2024
592c30a
Extend Levante CI with NAG (#259)
skosukhin Jan 26, 2024
0a17084
Adjust tolerances, fix error in accelerator source function kernel (#…
RobertPincus Jan 26, 2024
9dcc9ba
Fix intent in subroutine lw_transport_noscat_up (#261)
skosukhin Jan 30, 2024
a0ed5bf
Reduce use of CI (#264)
RobertPincus Feb 9, 2024
ebb1b8c
Run CI jobs on Lumi via GitLab (#265)
skosukhin Feb 16, 2024
6cda868
Align success/failure of CI with expectations (#267)
skosukhin Feb 19, 2024
43adc58
Add initial unit tests (solvers) (#263)
RobertPincus Feb 19, 2024
3274155
Fix cce-gpu-openacc-SP
skosukhin Feb 19, 2024
e242466
Small refactoring for the build system (#266)
skosukhin Feb 19, 2024
1ffd140
Merge pull request #268 from earth-system-radiation/fix-lumi-sp-ci
RobertPincus Feb 19, 2024
dc88744
Make front-end/kernel libraries by default
RobertPincus Feb 28, 2024
f6d4a63
fix the gpu runtime error on nvidia a100 with nvhpc/24.3
sjsprecious Mar 22, 2024
1b75505
Merge pull request #273 from sjsprecious/fix_gpu_error
RobertPincus Mar 23, 2024
36f34c6
Add kernel API (#272)
RobertPincus Apr 2, 2024
bbc14c2
Re-vectorize SW two-stream (#275)
RobertPincus Apr 18, 2024
8cf510c
Skip GitLab CI for dependabot (#278)
skosukhin Apr 18, 2024
29cc4b3
Different user for dependabot jobs
RobertPincus Apr 18, 2024
9caac5e
Bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0 (#276)
dependabot[bot] Apr 18, 2024
aad596a
Homogenize GitLab CI (#279)
skosukhin Apr 29, 2024
3acd062
---
dependabot[bot] May 20, 2024
da9fc8b
Merge pull request #283 from earth-system-radiation/dependabot/github…
RobertPincus May 20, 2024
2516f68
Update LW quadrature angles (#282)
RobertPincus May 20, 2024
70c3c99
Merge branch 'main' into develop
RobertPincus May 20, 2024
481d49a
Use tag v1.8.1 for data repo
RobertPincus May 21, 2024
798ce32
tag typo?
RobertPincus May 21, 2024
9fde1c5
Merge pull request #285 from earth-system-radiation/hotfix-data-repo-tag
RobertPincus May 21, 2024
04ac3f7
Merge main back into develop
RobertPincus May 21, 2024
84d2730
Script producing typos
RobertPincus May 21, 2024
fb26ee7
Fortran front-end: encapsulate orientation (#287)
RobertPincus May 23, 2024
417b8e0
Set default variables in the makefiles (#290)
skosukhin May 31, 2024
9660d18
Bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3 (#292)
dependabot[bot] Jul 6, 2024
6685a94
Fixes for CI (#294)
skosukhin Aug 15, 2024
466afa8
Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4
dependabot[bot] Sep 2, 2024
57c3a6d
Merge pull request #295 from earth-system-radiation/dependabot/github…
RobertPincus Sep 3, 2024
390fb52
Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.6
dependabot[bot] Sep 27, 2024
fa63b2b
Merge pull request #296 from earth-system-radiation/dependabot/github…
RobertPincus Sep 28, 2024
e891f92
Bump JamesIves/github-pages-deploy-action from 4.6.6 to 4.6.8
dependabot[bot] Sep 30, 2024
fa125c0
Merge pull request #297 from earth-system-radiation/dependabot/github…
RobertPincus Sep 30, 2024
a7cdefb
Update CI to use current data release
RobertPincus Oct 21, 2024
2d69752
Disable Lumi CI (compilers are broken)
RobertPincus Nov 7, 2024
3f7919f
Merge pull request #301 from earth-system-radiation/hotfix-disable-lu…
RobertPincus Nov 8, 2024
210e234
Self-hosted CI no longer has access to resources
RobertPincus Nov 9, 2024
06ea828
Separate cloud optics kernels (#302)
RobertPincus Nov 9, 2024
c155dd5
Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9 (#303)
dependabot[bot] Nov 20, 2024
27f2649
Bump JamesIves/github-pages-deploy-action from 4.6.9 to 4.7.1 (#306)
dependabot[bot] Nov 30, 2024
4080fc3
Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2
dependabot[bot] Dec 3, 2024
c2a6e43
Merge pull request #308 from earth-system-radiation/dependabot/github…
RobertPincus Dec 11, 2024
bda5e7e
Thomas Jahn's gas optics interpolation fixes (#315)
RobertPincus Dec 20, 2024
e13d20e
Refactor CMake and CI scripting (#316)
skosukhin Dec 23, 2024
4573539
CMake: add missing test dependencies (#319)
skosukhin Jan 4, 2025
986c539
ci: exclude failing ifx accel test (#321)
skosukhin Jan 6, 2025
a7d6a69
CMake: add install target (#323)
skosukhin Jan 6, 2025
7055137
Tests don't write to inputs (#322)
RobertPincus Jan 6, 2025
ce66160
cmake: install data files
skosukhin Jan 6, 2025
6769f2b
Project version in CMake to 1.9.0
RobertPincus Jan 6, 2025
529522c
CMake installs data files
RobertPincus Jan 6, 2025
2c4a848
Merge branch 'develop' into main
RobertPincus Jan 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .cmake-format.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
with section("parse"):
additional_commands = {"check_python3_package": {"pargs": 1, "kwargs": {"CODE": 1}}}

with section("format"):
dangle_parens = True
max_lines_hwrap = 0
keyword_case = "upper"
autosort = True

with section("lint"):
# The formatter sometimes fails to fit the code into the line limit (C0301) and can
# disagree with the linter regarding the indentation (C0307):
disabled_codes = ["C0301", "C0307"]
# Names of local variables must be in lowercase but sometimes we need to
# override standard CMake variables:
local_var_pattern = "CMAKE_[0-9A-Z_]+|[a-z][0-9a-z_]+"
# The standard names of the languages in CMake are C and Fortran. Names of
# private variables must be in lowercase but can have substings "C" and
# "Fortran":
private_var_pattern = (
"([a-z_][0-9a-z_]*_)?(C|Fortran)(_[a-z_][0-9a-z_]*)?|[a-z_][0-9a-z_]+"
)
# The standard name of the language in CMake is Fortran. Names of public
# variables must be in uppercase but can have substring "Fortran":
public_var_pattern = "([A-Z][0-9A-Z_]*_)?Fortran(_[A-Z][0-9A-Z_]*)?|[A-Z][0-9A-Z_]+"
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Formatted entire CMake code base with cmake-format
45b43632309cff022326472a8be0fdd5efc8f5c8
11 changes: 7 additions & 4 deletions .github/workflows/check-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ jobs:
API:
runs-on: ubuntu-22.04
env:
# Core variables:
FC: gfortran-12
FCFLAGS: "-ffree-line-length-none -m64 -std=f2008 -march=native -fbounds-check -fmodule-private -fimplicit-none -finit-real=nan -g -DRTE_USE_CBOOL"
RRTMGP_ROOT: ${{ github.workspace }}
FFLAGS: "-m64 -std=f2008 -march=native -fbounds-check -fmodule-private -fimplicit-none -finit-real=nan"
RTE_KERNELS: extern
CMAKE_BUILD_PARALLEL_LEVEL: 8
VERBOSE:
steps:
#
# Check out repository under $GITHUB_WORKSPACE
Expand All @@ -31,4 +31,7 @@ jobs:
- name: Build libraries
run: |
$FC --version
make -j4 libs
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DKERNEL_MODE=$RTE_KERNELS
cmake --build build
98 changes: 36 additions & 62 deletions .github/workflows/containerized-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,31 @@ jobs:
fortran-compiler: [ifort, ifx, nvfortran]
rte-kernels: [default, accel]
fpmodel: [DP, SP]
exclude:
# Fails with error #5633: **Internal compiler error: segmentation violation signal raised**
- fortran-compiler: ifx
rte-kernels: accel
# fcflags: -debug -traceback -O0 -heap-arrays -assume realloc_lhs -extend-source 132 -stand f08 -fiopenmp -fopenmp-targets=spir64
# build-type: None
include:
# Set flags for Intel Fortran Compiler Classic
- fortran-compiler: ifort
fcflags: -m64 -g -traceback -heap-arrays -assume realloc_lhs -extend-source 132 -check bounds,uninit,pointers,stack -stand f08 -diag-disable=10448
fcflags: -m64 -traceback -heap-arrays -assume realloc_lhs -extend-source 132 -check bounds,uninit,pointers,stack -stand f08 -diag-disable=10448
build-type: RelWithDebInfo
# Set flags for Intel Fortran Compiler
- fortran-compiler: ifx
rte-kernels: default
fcflags: -debug -traceback -O0 -heap-arrays -assume realloc_lhs -extend-source 132 -stand f08
- fortran-compiler: ifx
rte-kernels: accel
fcflags: -debug -traceback -O0 -heap-arrays -assume realloc_lhs -extend-source 132 -stand f08 -fiopenmp -fopenmp-targets=spir64
build-type: None
# Set flags for NVIDIA Fortran compiler
- fortran-compiler: nvfortran
rte-kernels: default
fcflags: -Mallocatable=03 -Mstandard -Mbounds -Mchkptr -Kieee -Mchkstk
build-type: None
- fortran-compiler: nvfortran
rte-kernels: accel
fcflags: -Mallocatable=03 -Mstandard -Mbounds -Mchkptr -Kieee -Mchkstk -acc
build-type: None
# Set container images
- fortran-compiler: ifort
image: ghcr.io/earth-system-radiation/rte-rrtmgp-ci:oneapi
Expand All @@ -46,86 +53,53 @@ jobs:
container:
image: ${{ matrix.image }}
env:
# Core variables:
FC: ${{ matrix.fortran-compiler }}
FCFLAGS: ${{ matrix.fcflags }} -DRTE_USE_${{ matrix.fpmodel}}
# Make variables:
NFHOME: /opt/netcdf-fortran
RRTMGP_ROOT: ${{ github.workspace }}
RRTMGP_DATA: ${{ github.workspace }}/rrtmgp-data
RTE_KERNELS: ${{ matrix.rte-kernels }}
RUN_CMD:
FFLAGS: ${{ matrix.fcflags }}
NetCDF_Fortran_ROOT: /opt/netcdf-fortran
CMAKE_BUILD_PARALLEL_LEVEL: 8
VERBOSE:
CTEST_PARALLEL_LEVEL: 8
CTEST_OUTPUT_ON_FAILURE: 1
# https://github.com/earth-system-radiation/rte-rrtmgp/issues/194
OMP_TARGET_OFFLOAD: DISABLED
FAILURE_THRESHOLD: 7.e-4

steps:
#
# Checks-out repository under $GITHUB_WORKSPACE
#
- uses: actions/checkout@v4
#
# Check out data
# Check out repository under $GITHUB_WORKSPACE
#
- name: Check out data
- name: Check out code
uses: actions/checkout@v4
with:
repository: earth-system-radiation/rrtmgp-data
path: rrtmgp-data
ref: v1.8.1
#
# Build libraries, examples and tests (expect success)
# Install required tools
#
- name: Build libraries, examples and tests (expect success)
id: build-success
if: matrix.fortran-compiler != 'ifx' || matrix.rte-kernels != 'accel'
- name: Install Required Tools
run: |
$FC --version
make -j4 libs
apt-get update
apt-get install -y git cmake ninja-build
#
# Build libraries, examples and tests (expect failure)
# Build libraries, examples and tests
#
- name: Build libraries, examples and tests (expect failure)
if: steps.build-success.outcome == 'skipped'
shell: bash
- name: Build libraries, examples and tests
run: |
$FC --version
make -j4 libs 2> >(tee make.err >&2) && {
echo "Unexpected success"
exit 1
} || {
grep make.err -e 'Internal compiler error' && {
echo "Expected failure"
} || {
echo "Unexpected failure"
exit 1
}
}
cmake -S . -B build -G "Ninja" \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DRTE_ENABLE_SP=`test 'x${{ matrix.fpmodel }}' = xSP && echo ON || echo OFF` \
-DKERNEL_MODE=${{ matrix.rte-kernels }} \
-DBUILD_TESTING=ON
cmake --build build
#
# Run examples and tests
#
- name: Run examples and tests
if: steps.build-success.outcome != 'skipped'
run: make -j4 tests
#
# Relax failure thresholds for single precision
#
- name: Relax failure threshold for single precision
if: matrix.fpmodel == 'SP' && steps.build-success.outcome != 'skipped'
run: echo "FAILURE_THRESHOLD=3.5e-1" >> $GITHUB_ENV
#
# Compare the results
#
- name: Compare the results
if: steps.build-success.outcome != 'skipped'
run: make -j4 check
working-directory: build
run: ctest
#
# Generate validation plots
#
- name: Generate validation plots
if: matrix.fortran-compiler == 'ifort' && matrix.rte-kernels == 'default' && matrix.fpmodel == 'DP'
working-directory: tests
run: python validation-plots.py
run: |
cmake --build build --target validation-plots
#
# Upload validation plots
#
Expand All @@ -134,4 +108,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: valdiation-plot
path: tests/validation-figures.pdf
path: build/tests/validation-figures.pdf
Loading
Loading