Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
mathomp4 committed Apr 28, 2022
2 parents 9077e85 + 1824910 commit c910622
Show file tree
Hide file tree
Showing 26 changed files with 1,952 additions and 1,735 deletions.
110 changes: 41 additions & 69 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,92 +1,64 @@
version: 2.1

executors:
gcc-build-env:
docker:
- image: gmao/ubuntu20-geos-env-mkl:v6.2.8-openmpi_4.0.6-gcc_11.2.0
auth:
username: $DOCKERHUB_USER
password: $DOCKERHUB_AUTH_TOKEN
environment:
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
OMPI_MCA_btl_vader_single_copy_mechanism: none
resource_class: large
#MEDIUM# resource_class: medium
orbs:
circleci-tools: geos-esm/circleci-tools@0.13.0

workflows:
version: 2.1
build-and-test:
jobs:
- build-GOCART2G:
name: build-GOCART2G-on-<< matrix.compiler >>
matrix:
parameters:
compiler: [gfortran, ifort]
context:
- docker-hub-creds
- build-GEOSgcm:
name: build-GEOSgcm-on-<< matrix.compiler >>
matrix:
parameters:
compiler: [gfortran, ifort]
context:
- docker-hub-creds

jobs:
build-GOCART2G:
executor: gcc-build-env
parameters:
compiler:
type: string
executor: circleci-tools/<< parameters.compiler >>
working_directory: /root/project
steps:
- checkout:
path: GOCART
- run:
name: "Versions etc"
command: mpirun --version && gfortran --version && echo $BASEDIR && pwd && ls
- run:
name: "Mepo clone external repos"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GOCART
mepo clone
mepo status
- run:
name: "CMake"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GOCART
mkdir build
cd build
cmake .. -DBASEDIR=$BASEDIR/Linux -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_BUILD_TYPE=Debug -DUSE_F2PY=OFF -DMPIEXEC_PREFLAGS='--oversubscribe'
- run:
name: "Build GOCART2G_GridComp"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GOCART/build
make -j"$(nproc)" GOCART2G_GridComp
#MEDIUM# make -j4 GOCART2G_GridComp
- circleci-tools/versions:
compiler: << parameters.compiler >>
- circleci-tools/mepoclone:
repo: GOCART
- circleci-tools/cmake:
repo: GOCART
compiler: << parameters.compiler >>
- circleci-tools/buildtarget:
repo: GOCART
target: GOCART2G_GridComp
- circleci-tools/compress_artifacts
- store_artifacts:
path: /logfiles

build-GEOSgcm:
executor: gcc-build-env
parameters:
compiler:
type: string
executor: circleci-tools/<< parameters.compiler >>
working_directory: /root/project
steps:
- run:
name: "Checkout GEOSgcm fixture"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}
git clone https://github.com/GEOS-ESM/GEOSgcm.git
- run:
name: "Mepo clone external repos"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GEOSgcm
mepo clone
mepo develop GEOSgcm_GridComp GEOSgcm_App
mepo status
- run:
name: "Mepo checkout GOCART branch(es)"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GEOSgcm
mepo checkout-if-exists ${CIRCLE_BRANCH}
mepo status
- run:
name: "CMake"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GEOSgcm
mkdir build
cd build
cmake .. -DBASEDIR=$BASEDIR/Linux -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CIRCLE_WORKING_DIRECTORY}/workspace/install-GEOSgcm -DUSE_F2PY=OFF
- run:
name: "Build and install"
command: |
cd ${CIRCLE_WORKING_DIRECTORY}/GEOSgcm/build
make -j"$(nproc)" install
#MEDIUM# make -j4 install
- circleci-tools/checkout_fixture
- circleci-tools/mepoclone
- circleci-tools/mepodevelop
- circleci-tools/checkout_if_exists
- circleci-tools/cmake:
compiler: << parameters.compiler >>
- circleci-tools/buildinstall
- circleci-tools/compress_artifacts
- store_artifacts:
path: /logfiles
32 changes: 32 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Global Editor Config for MAPL
#
# This is an ini style configuration. See http://editorconfig.org/ for more information on this file.
#
# Top level editor config.
root = true

# Always use Unix style new lines with new line ending on every file and trim whitespace
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

# Python: PEP8 defines 4 spaces for indentation
[*.py]
indent_style = space
indent_size = 4

# YAML format, 2 spaces
[{*.yaml,*.yml}]
indent_style = space
indent_size = 2

# CMake (from KitWare: https://github.com/Kitware/CMake/blob/master/.editorconfig)
[{CMakeLists.txt,*.cmake,*.rst}]
indent_style = space
indent_size = 2

# Markdown
[*.md]
trim_trailing_whitespace = true
indent_style = space
30 changes: 7 additions & 23 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,12 @@
* @GEOS-ESM/aerosol-team

# NOAA Extras are Tom, Weiyuan for now
/CCPP/ @tclune @weiyuan-jiang
/ESMF/Aerosol_GridComp/ @tclune @weiyuan-jiang
/ESMF/NUOPC/ @tclune @weiyuan-jiang
/ESMF/Shared/ @tclune @weiyuan-jiang
/ESMF/UFS/ @tclune @weiyuan-jiang

/ESMF/GOCART_GridComp/ @GEOS-ESM/aerosol-team

# GOCART2G is Elliot for now
/ESMF/GOCART2G_GridComp/ @GEOS-ESM/aerosol-team
/CCPP/ @GEOS-ESM/mapl-team @amdasilva
/ESMF/Aerosol_GridComp/ @GEOS-ESM/mapl-team @amdasilva
/ESMF/NUOPC/ @GEOS-ESM/mapl-team @amdasilva
/ESMF/UFS/ @GEOS-ESM/mapl-team @amdasilva

# The CMake Team should know/approve these
/.github/ @GEOS-ESM/cmake-team
/.circleci/ @GEOS-ESM/cmake-team
/.codebuild/ @GEOS-ESM/cmake-team

# The GEOS CMake Team should be notified about and approve config changes
/config/ @GEOS-ESM/cmake-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
/.github/ @GEOS-ESM/cmake-team @amdasilva
/.circleci/ @GEOS-ESM/cmake-team @amdasilva
/.codebuild/ @GEOS-ESM/cmake-team @amdasilva
25 changes: 23 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Add `.editorconfig` file
- This matches the styles currently used in MAPL (2 space indents in CMake and yaml, 4 spaces for Python)

### Changed

- Update `CODEOWNERS` file to make approvals less restrictive
- Updated the CircleCI to use circleci-tools 0.13.0 orb
- Moves CI to use Baselibs 6.2.13 needed by MAPL development
- Update `components.yaml` to be in line with GEOSgcm v10.22.1
- Updates to support Spack
- Changed the handling of state variable names in multiple instances of component (see Issue #93)
- Major refactoring of Mie table class. (see Issue #96)
- Renamed Chem_MieTableMod.F90 --> GOCART2G_Mie2GMod.F90
- Renamed module Chem_MieTableMod2G --> GOCART2G_Mie2GMod
- Introduced object oriented design with type-bound methods
- renamed some components/arguments for clarity
- eliminated extraneous container data type that is not needed under new GOCART design.
- Cleaned up optional keyword arguments in call to Mie calculator for aerosol
radiative forcing calculation; zero diff change
- Simplified loading of radiation MieTables.

## [2.0.6] - 2021-04-28

### Fixed
Expand Down Expand Up @@ -40,8 +63,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- Cleaned up optional keyword arguments in call to Mie calculator for aerosol
radiative forcing calculation; zero diff change
- Updated FENGSHA dust flux according to Webb et al., Aeolian Res. 42 (2020) 100560

## [2.0.2] - 2021-01-07
Expand Down
Loading

0 comments on commit c910622

Please sign in to comment.