Skip to content

Commit

Permalink
Merge branch 'develop' into bugfix/tclune/#199-hflux-fix-3rd-try
Browse files Browse the repository at this point in the history
# Conflicts:
#	base/Base/Base_Base_implementation.F90
  • Loading branch information
mathomp4 committed Oct 20, 2024
2 parents 4925e40 + 9375d12 commit 9081bcb
Show file tree
Hide file tree
Showing 608 changed files with 32,120 additions and 10,761 deletions.
170 changes: 66 additions & 104 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,59 +16,30 @@ parameters:

# Anchors to prevent forgetting to update a version
os_version: &os_version ubuntu20
baselibs_version: &baselibs_version v7.13.0
bcs_version: &bcs_version v11.1.0
baselibs_version: &baselibs_version v7.25.0
bcs_version: &bcs_version v11.6.0
tag_build_arg_name: &tag_build_arg_name maplversion

orbs:
ci: geos-esm/circleci-tools@1
ci: geos-esm/circleci-tools@4

workflows:
build-and-test:
build-and-test-MAPL:
jobs:

# Builds MAPL in a "default" way - Intel
# Builds MAPL in a "default" way
- ci/build:
name: build-and-test-MAPL-on-<< matrix.compiler >>-using-<< matrix.cmake_generator >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [ifort]
#cmake_generator: ['Unix Makefiles', 'Ninja']
cmake_generator: ['Unix Makefiles']
baselibs_version: *baselibs_version
repo: MAPL
mepodevelop: false
run_unit_tests: true
ctest_options: "-LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure"
persist_workspace: true # Needed for MAPL tutorials

# Builds MAPL in a "default" way - GNU
#
# NOTE: Currently Open MPI fails on the bundleio with:
#
# The OSC pt2pt component does not support MPI_THREAD_MULTIPLE in this release.
# Workarounds are to run on a single node, or to use a system with an RDMA
# capable network such as Infiniband.
#
# For now, we run GNU/Open MPI without the bundleio tests. Some indications that
# Open MPI 5 will not have this limitation

- ci/build:
name: build-and-test-MAPL-on-<< matrix.compiler >>-using-<< matrix.cmake_generator >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran]
#cmake_generator: ['Unix Makefiles', 'Ninja']
cmake_generator: ['Unix Makefiles']
compiler: [gfortran, ifort]
cmake_generator: ['Unix Makefiles','Ninja']
baselibs_version: *baselibs_version
repo: MAPL
mepodevelop: false
run_unit_tests: true
ctest_options: "-E bundleio -LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure"
ctest_options: "-L 'ESSENTIAL' --output-on-failure"
persist_workspace: true # Needed for MAPL tutorials

# Builds MAPL like UFS does (no FLAP and pFlogger, static)
Expand All @@ -78,76 +49,54 @@ workflows:
- docker-hub-creds
matrix:
parameters:
compiler: [ifort]
compiler: [gfortran, ifort]
baselibs_version: *baselibs_version
repo: MAPL
mepodevelop: false
remove_flap: true
remove_pflogger: true
extra_cmake_options: "-DBUILD_WITH_FLAP=OFF -DBUILD_WITH_PFLOGGER=OFF -DBUILD_WITH_FARGPARSE=OFF -DUSE_EXTDATA2G=OFF -DBUILD_SHARED_MAPL=OFF"
run_unit_tests: true
ctest_options: "-LE 'PERFORMANCE|EXTDATA1G_BIG_TESTS|EXTDATA2G_BIG_TESTS' --output-on-failure"
# ExtData1G tests were removed from ESSENTIAL, so we run them separately here as UFS might still use 1G?
ctest_options: "-L 'ESSENTIAL|EXTDATA1G_SMALL_TESTS' --output-on-failure"

# Build GEOSgcm -- ifort
- ci/build:
name: build-GEOSgcm-on-<< matrix.compiler >>
# Run MAPL Tutorials
- ci/run_mapl_tutorial:
name: run-<< matrix.tutorial_name >>-Tutorial-with-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [ifort]
compiler: [gfortran, ifort]
tutorial_name:
- hello_world
- parent_no_children
- parent_one_child_import_via_extdata
- parent_one_child_no_imports
- parent_two_siblings_connect_import_export
# We will only run the tutorials with GNU make. No need to double up
# as Ninja is a build test only
requires:
- build-and-test-MAPL-on-<< matrix.compiler >>-using-Unix Makefiles
baselibs_version: *baselibs_version
repo: GEOSgcm
checkout_fixture: true
mepodevelop: true
checkout_mapl_branch: true
persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra, retained for one day

# Build GEOSgcm -- GCC
build-and-run-GEOSgcm:
jobs:
# Build GEOSgcm
- ci/build:
name: build-GEOSgcm-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran]
compiler: [gfortran, ifort]
baselibs_version: *baselibs_version
repo: GEOSgcm
checkout_fixture: true
mepodevelop: true
checkout_mapl_branch: true
persist_workspace: true # Needs to be true to run fv3/gcm experiment, costs extra, retained for one day

# Build GEOSldas on ifort
- ci/build:
name: build-GEOSldas-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [ifort]
baselibs_version: *baselibs_version
repo: GEOSldas
mepodevelop: false
checkout_fixture: true
fixture_branch: develop
checkout_mapl_branch: true

# Build GEOSldas on gfortran
- ci/build:
name: build-GEOSldas-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
compiler: [gfortran]
baselibs_version: *baselibs_version
repo: GEOSldas
mepodevelop: false
checkout_fixture: true
fixture_branch: develop
checkout_mapl_branch: true

# Run GCM (1 hour, no ExtData)
- ci/run_gcm:
name: run-GCM-on-<< matrix.compiler >>
Expand Down Expand Up @@ -178,26 +127,22 @@ workflows:
gcm_ocean_type: MOM6
change_layout: false

# Run MAPL Tutorials
- ci/run_mapl_tutorial:
name: run-<< matrix.tutorial_name >>-Tutorial-with-<< matrix.compiler >>
build-GEOSldas:
jobs:
# Build GEOSldas
- ci/build:
name: build-GEOSldas-on-<< matrix.compiler >>
context:
- docker-hub-creds
matrix:
parameters:
#compiler: [gfortran, ifort]
compiler: [ifort]
tutorial_name:
- hello_world
- parent_no_children
- parent_one_child_import_via_extdata
- parent_one_child_no_imports
- parent_two_siblings_connect_import_export
# We will only run the tutorials with GNU make. No need to double up
# as Ninja is a build test only
requires:
- build-and-test-MAPL-on-<< matrix.compiler >>-using-Unix Makefiles
compiler: [gfortran, ifort]
baselibs_version: *baselibs_version
repo: GEOSldas
mepodevelop: false
checkout_fixture: true
fixture_branch: develop
checkout_mapl_branch: true

build-GEOSadas:
jobs:
Expand All @@ -213,7 +158,7 @@ workflows:
baselibs_version: *baselibs_version
repo: GEOSadas
checkout_fixture: true
#fixture_branch: feature/mathomp4/ignore-heldsuarez
fixture_branch: feature/mathomp4/mapldevelop
checkout_mapl_branch: true
mepodevelop: false
rebuild_procs: 1
Expand All @@ -222,24 +167,41 @@ workflows:
when:
equal: [ "release", << pipeline.parameters.GHA_Event >> ]
jobs:
- ci/publish-docker:
- ci/publish_docker:
filters:
tags:
only: /^v.*$/
name: publish-intel-docker-image
name: publish-ifort-docker-image
context:
- docker-hub-creds
- ghcr-creds
os_version: *os_version
baselibs_version: *baselibs_version
container_name: mapl
mpi_name: intelmpi
mpi_version: 2021.6.0
compiler_name: intel
compiler_version: 2022.1.0
mpi_version: "2021.13"
compiler_name: ifort
compiler_version: "2021.13"
image_name: geos-env
tag_build_arg_name: *tag_build_arg_name
- ci/publish-docker:
#- ci/publish_docker:
#filters:
#tags:
#only: /^v.*$/
#name: publish-ifx-docker-image
#context:
#- docker-hub-creds
#- ghcr-creds
#os_version: *os_version
#baselibs_version: *baselibs_version
#container_name: mapl
#mpi_name: intelmpi
#mpi_version: "2021.13"
#compiler_name: ifx
#compiler_version: "2024.2"
#image_name: geos-env
#tag_build_arg_name: *tag_build_arg_name
- ci/publish_docker:
filters:
tags:
only: /^v.*$/
Expand All @@ -251,8 +213,8 @@ workflows:
baselibs_version: *baselibs_version
container_name: mapl
mpi_name: openmpi
mpi_version: 4.1.4
mpi_version: 5.0.2
compiler_name: gcc
compiler_version: 12.1.0
compiler_version: 13.2.0
image_name: geos-env-mkl
tag_build_arg_name: *tag_build_arg_name
8 changes: 0 additions & 8 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,3 @@

# The MAPL Team owns all the files
* @GEOS-ESM/mapl-team

# The Python Transition Team will own Python files
# until the Python 3 transition is completed
*.py @GEOS-ESM/python-transition-team

# The GEOS CMake Team is the CODEOWNER for the CMakeLists.txt files in this repository
CMakeLists.txt @GEOS-ESM/cmake-team

39 changes: 9 additions & 30 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,15 @@
<!--- These lines are comments. You can delete or ignore them -->
<!--- NOTE: If your PR is trivial, feel free to delete the "Related Issue" -->
<!--- "Testing" or other sections. -->
## Types of change(s)
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Trivial change (affects only documentation or cleanup)
- [ ] Refactor (no functional changes, no api changes)

<!--- Provide a general summary of your changes in the Title above -->
## Checklist
- [ ] Tested this change with a run of GEOSgcm
- [ ] Ran the Unit Tests (`make tests`)

## Description
<!--- Describe your changes in detail -->

## Related Issue
<!--- This project primarily accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Trivial change (affects only documentation or cleanup)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] I have tested this change with a run of GEOSgcm (if non-trivial)
- [ ] I have added one of the required labels (0 diff, 0 diff trivial, 0 diff structural, non 0-diff)
- [ ] I have updated the CHANGELOG.md accordingly following the style of [Keep a Changelog](https://keepachangelog.com/en/1.0.0/#how)
17 changes: 13 additions & 4 deletions .github/actions/deploy-ford-docs/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ runs:
shell: bash

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'

Expand All @@ -37,12 +37,19 @@ runs:
run: ford --version
shell: bash

- name: cpp version
run: cpp --version
shell: bash

# If you change the ref below make sure to change
# the gFTL version in the Ford control files as well!
- name: Checkout gFTL
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: Goddard-Fortran-Ecosystem/gFTL
path: gFTL
fetch-depth: 1
ref: v1.13.0

- name: Build gFTL
run: |
Expand All @@ -54,12 +61,14 @@ runs:
shell: bash

- name: Build Documentation
run: ford ${{ inputs.ford-input }}
run: |
cd docs/Ford
ford ${{ inputs.ford-input }}
shell: bash

- name: Deploy Pages
uses: JamesIves/github-pages-deploy-action@v4
if: github.event_name == 'push' && github.repository == 'GEOS-ESM/MAPL' && ( startsWith( github.ref, 'refs/tags/v' ) || github.ref == 'refs/heads/main' )
if: github.event_name == 'push' && github.repository == 'GEOS-ESM/MAPL' && ( startsWith( github.ref, 'refs/tags/v' ) || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/release/MAPL-v3' )
with:
folder: ${{ inputs.doc-folder }}
token: ${{ inputs.token }}
Expand Down
19 changes: 0 additions & 19 deletions .github/stale.yml

This file was deleted.

Loading

0 comments on commit 9081bcb

Please sign in to comment.