From f8f2f38950ebca3fcc2e8c5caf25f837465a2f93 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 25 Feb 2022 09:52:49 -0500 Subject: [PATCH 1/2] Use CircleCI Orb for CI --- .circleci/config.yml | 157 +++---------------------------------------- 1 file changed, 11 insertions(+), 146 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 61c37ad27..ce182cb53 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,28 +1,7 @@ version: 2.1 -executors: - gfortran: - 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 - MPIEXEC_PREFLAGS: --oversubscribe - resource_class: large - #MEDIUM# resource_class: medium - - ifort: - docker: - - image: gmao/ubuntu20-geos-env:v6.2.8-intelmpi_2021.2.0-intel_2021.2.0 - auth: - username: $DOCKERHUB_USER - password: $DOCKERHUB_AUTH_TOKEN - resource_class: large - #MEDIUM# resource_class: medium +orbs: + circleci-tools: geos-esm/circleci-tools@0.11.0 workflows: build-test: @@ -35,136 +14,22 @@ workflows: context: - docker-hub-creds -commands: - versions: - description: "Versions, etc." - parameters: - compiler: - type: string - steps: - - run: - name: "Versions, etc." - command: mpirun --version && << parameters.compiler >> --version && echo $BASEDIR && pwd && ls && echo "$(nproc)" - - compress_artifacts: - description: "Compress artifacts" - steps: - - run: - name: "Compress artifacts" - command: | - gzip -9 /logfiles/* - - checkout_fixture: - description: "Checkout fixture" - parameters: - repo: - type: string - steps: - - run: - name: "Checkout fixture" - command: | - cd ${CIRCLE_WORKING_DIRECTORY} - git clone https://github.com/GEOS-ESM/<< parameters.repo >>.git - - mepoclone: - description: "Mepo clone external repos" - parameters: - repo: - type: string - steps: - - run: - name: "Mepo clone external repos" - command: | - cd ${CIRCLE_WORKING_DIRECTORY}/<< parameters.repo >> - mepo clone - mepo status - - mepodevelop: - description: "Mepo develop GEOSgcm_GridComp GEOSgcm_App GMAO_Shared" - parameters: - repo: - type: string - steps: - - run: - name: "Mepo develop GEOSgcm_GridComp GEOSgcm_App GMAO_Shared" - command: | - cd ${CIRCLE_WORKING_DIRECTORY}/<< parameters.repo >> - mepo develop GEOSgcm_GridComp GEOSgcm_App GMAO_Shared - mepo status - - checkout_feature_branch: - description: "Mepo checkout-if-exists feature branch" - parameters: - repo: - type: string - steps: - - run: - name: "Mepo checkout-if-exists feature branch" - command: | - cd ${CIRCLE_WORKING_DIRECTORY}/<< parameters.repo >> - echo "${CIRCLE_BRANCH}" - if [ "${CIRCLE_BRANCH}" != "develop" ] && [ "${CIRCLE_BRANCH}" != "main" ] - then - mepo checkout-if-exists ${CIRCLE_BRANCH} - fi - mepo status - - cmake: - description: "Run CMake" - parameters: - repo: - type: string - compiler: - type: string - steps: - - run: - name: "Build and install" - command: | - mkdir -p /logfiles - cd ${CIRCLE_WORKING_DIRECTORY}/<< parameters.repo >> - mkdir -p ${CIRCLE_WORKING_DIRECTORY}/workspace/build-<< parameters.repo >> - cd ${CIRCLE_WORKING_DIRECTORY}/workspace/build-<< parameters.repo >> - cmake ${CIRCLE_WORKING_DIRECTORY}/<< parameters.repo >> -DBASEDIR=$BASEDIR/Linux -DCMAKE_Fortran_COMPILER=<< parameters.compiler >> -DCMAKE_BUILD_TYPE=Debug -DUSE_F2PY=OFF -DMPIEXEC_PREFLAGS=${MPIEXEC_PREFLAGS} -DCMAKE_INSTALL_PREFIX=${CIRCLE_WORKING_DIRECTORY}/workspace/install-<< parameters.repo >> |& tee /logfiles/cmake.log - - buildinstall: - description: "Build and install" - parameters: - repo: - type: string - steps: - - run: - name: "Build and install" - command: | - cd ${CIRCLE_WORKING_DIRECTORY}/workspace/build-<< parameters.repo >> - make -j"$(nproc)" install |& tee /logfiles/make.log - #MEDIUM# make -j4 install |& tee /logfiles/make.log - jobs: build-GEOSgcm: parameters: compiler: type: string - executor: << parameters.compiler >> + executor: circleci-tools/<< parameters.compiler >> working_directory: /root/project steps: - - run: - name: "GEOSgcm_GridComp branch" - command: echo ${CIRCLE_BRANCH} - - checkout_fixture: - repo: GEOSgcm - - versions: + - circleci-tools/checkout_fixture + - circleci-tools/mepoclone + - circleci-tools/mepodevelop + - circleci-tools/checkout_if_exists + - circleci-tools/cmake: compiler: << parameters.compiler >> - - mepoclone: - repo: GEOSgcm - - mepodevelop: - repo: GEOSgcm - - checkout_feature_branch: - repo: GEOSgcm - - cmake: - repo: GEOSgcm - compiler: << parameters.compiler >> - - buildinstall: - repo: GEOSgcm - - compress_artifacts + - circleci-tools/buildinstall + - circleci-tools/compress_artifacts - store_artifacts: path: /logfiles + From 0e78d6e980b190e3618c237f67a03b3ee681c705 Mon Sep 17 00:00:00 2001 From: gmao-jkolassa Date: Fri, 25 Feb 2022 12:21:35 -0500 Subject: [PATCH 2/2] using generic format specifier (*) in the read statements for the CLM4.5_abm_peatf_gdp_hdm_fc file --- .../Utils/mk_restarts/mk_GEOSldasRestarts.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_GEOSldasRestarts.F90 b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_GEOSldasRestarts.F90 index f6d270051..da979d04b 100644 --- a/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_GEOSldasRestarts.F90 +++ b/GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSsurface_GridComp/Utils/mk_restarts/mk_GEOSldasRestarts.F90 @@ -1421,7 +1421,7 @@ SUBROUTINE read_bcs_data (ntiles, SURFLAY,MODEL, DataDir, InRestart, rc) if(clm45) then open(unit=30, file=trim(DataDir)//'CLM4.5_abm_peatf_gdp_hdm_fc' ,form='formatted') do n=1,ntiles - read (30,'(2I10, i3, f8.4, f8.2, f10.2, f8.4)' ) i, j, abm(n), peatf(n), & + read (30, *) i, j, abm(n), peatf(n), & gdp(n), hdm(n), fc(n) end do CLOSE (30, STATUS = 'KEEP') @@ -1478,7 +1478,7 @@ SUBROUTINE read_bcs_data (ntiles, SURFLAY,MODEL, DataDir, InRestart, rc) read (29, *) i,j, CLMC45_pt1(n), CLMC45_pt2(n), CLMC45_st1(n), CLMC45_st2(n), & CLMC45_pf1(n), CLMC45_pf2(n), CLMC45_sf1(n), CLMC45_sf2(n) - read (30,'(2I10, i3, f8.4, f8.2, f10.2, f8.4)' ) i, j, abm(n), peatf(n), & + read (30, *) i, j, abm(n), peatf(n), & gdp(n), hdm(n), fc(n) endif endif