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 JGDAS_ENKF_SFC and JGDAS_ENKF_UPDATE jobs with COMIN/COMOUT instead of COM #3170

Closed
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
adcab3e
changing COM_ into COMIn_ or COMOUT_
Nov 13, 2024
5bc8e78
changing COM_ into COMIN_ or COMOUT_
Nov 13, 2024
705dab5
changing COMOUT_ATMOS_ANALYSIS_MEM into COMIN_ATMOS_ANALYSIS_MEM
Nov 13, 2024
6803d1e
modified JGDAS_ENKF_SFC job again
Nov 13, 2024
c3ae578
modified exgdas_enkf_update.sh
mingshichen-noaa Nov 13, 2024
311db65
modified JGDAS_ENKF_UPDATE
Nov 13, 2024
8c7f6c8
adding gdas.cd
mingshichen-noaa Dec 13, 2024
6027460
adding wxflow
mingshichen-noaa Dec 13, 2024
5b49863
commit all modified files
mingshichen-noaa Dec 16, 2024
5beadef
adjust space before sentences
mingshichen-noaa Dec 16, 2024
f79ce30
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Dec 16, 2024
357a648
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Dec 19, 2024
952d808
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 2, 2025
168858d
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 6, 2025
9d620d0
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 8, 2025
6248b68
changing COMIN_ATMOS_ANALYSIS_STAT into COMOUT_ATMOS_ANALYSIS_STAT
mingshichen-noaa Jan 8, 2025
6f4ddfe
modified gdas.cd gfs_utils.fd gsi_enkf.fd ufs_model.fd ufs_utils.fd
mingshichen-noaa Jan 8, 2025
815cd11
changing COMIN_ATMOS_ANALYSIS_STAT into COMOUT_ATMOS_ANALYSIS_STAT
mingshichen-noaa Jan 8, 2025
2b42b9a
update sorc/ufs_model.fd
mingshichen-noaa Jan 8, 2025
10ea8bd
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 9, 2025
709adca
remove COMIN_ATMOS_ANALYSIS_STAT
mingshichen-noaa Jan 13, 2025
e83e143
changing COMIN_ATMOS_ANALYSIS_STAT into COMOUT_ATMOS_ANALYSIS_STAT
mingshichen-noaa Jan 13, 2025
66ff703
update gfs_utils.fd
mingshichen-noaa Jan 16, 2025
0c4f139
update sorc/ufs_model.fd with key-id from develop
mingshichen-noaa Jan 16, 2025
af32925
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 16, 2025
8171b73
update all modified files
mingshichen-noaa Jan 17, 2025
b86ab9d
update sorc/ufs_model.fd
mingshichen-noaa Jan 17, 2025
83d42fb
update sorc
mingshichen-noaa Jan 17, 2025
0a63209
update sorc/ufs_model.fd
mingshichen-noaa Jan 23, 2025
5cde120
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 23, 2025
0ecb680
Merge branch 'develop' into feature/jgdas_enkf_sfc_update_com_in_out
mingshichen-noaa Jan 24, 2025
5ad9607
update sorc/gdas.cd
mingshichen-noaa Jan 24, 2025
253e20c
update sorc/gfs_utils.fd
mingshichen-noaa Jan 24, 2025
f3b8f1a
update sorc/gsi_enkf.fd
mingshichen-noaa Jan 24, 2025
e65f757
update sorc/gsi_monitor.fd
mingshichen-noaa Jan 24, 2025
1868319
update sorc/ufs_utils.fd
mingshichen-noaa Jan 24, 2025
eac8cfc
update sorc/gsi_enkf.fd
mingshichen-noaa Jan 24, 2025
3e652b8
Merge branch 'NOAA-EMC:develop' into feature/jgdas_enkf_sfc_update_co…
mingshichen-noaa Jan 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Prev Previous commit
Next Next commit
update sorc/gsi_enkf.fd
mingshichen-noaa committed Jan 24, 2025
commit eac8cfc46899eae06162c0ff99b94b4e4ba98bfa
1 change: 0 additions & 1 deletion sorc/gsi_enkf.fd
Submodule gsi_enkf.fd deleted from 27c03e
41 changes: 41 additions & 0 deletions sorc/gsi_enkf.fd/.github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!-- PLEASE READ -->
<!--
Before opening a PR, please note these guidelines:

- Each PR should only address ONE topic and have an associated issue
- No hardcoded or paths to personal directories should be present
- No temporary or backup files should be committed
- Any code that was disabled by being commented out should be removed
-->

**Description**

<!-- Please include relevant motivation and context. -->
<!-- Please include a summary of the change and which issue is fixed. -->
<!-- List any dependencies that are required for this change. -->

<!-- Please provide reference to the issue this pull request is addressing. -->
<!-- For e.g. Fixes #IssueNumber -->

**Type of change**

Please delete options that are not relevant.

- [ ] 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 not work as expected)
- [ ] This change requires a documentation update

**How Has This Been Tested?**

<!-- Please describe the tests that you ran to verify your changes and on the platforms these tests were conducted. -->
<!-- Provide instructions so we can reproduce. -->
<!-- Please also list any relevant details for your test configuration -->

**Checklist**

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] New and existing tests pass with my changes
- [ ] Any dependent changes have been merged and published
90 changes: 90 additions & 0 deletions sorc/gsi_enkf.fd/.github/workflows/gcc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: GCC Linux Build
on: [push, pull_request, workflow_dispatch]

# Use custom shell with -l so .bash_profile is sourced
# without having to do it in manually every step
defaults:
run:
shell: bash -leo pipefail {0}

env:
cache_key: gcc
CC: gcc-13
FC: gfortran-13
CXX: g++-13

# The jobs are split into:
# 1. a dependency build step (setup), and
# 2. a GSI build step (gsi)
# The setup is run once and the environment is cached,
# so each subsequent build of GSI can reuse the cached dependencies to save time (and compute).

jobs:
setup:
runs-on: ubuntu-latest

steps:
# Checkout the GSI to get the ci/spack.yaml file
- name: checkout
if: steps.cache-env.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
path: gsi

# Cache spack, compiler and dependencies
- name: cache-env
id: cache-env
uses: actions/cache@v4
with:
path: |
spack
~/.spack
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

# Install dependencies using Spack
- name: install-dependencies-with-spack
# if: steps.cache-env.outputs.cache-hit != 'true'
run: |
sudo apt-get install cmake
rm -rf spack
git clone -c feature.manyFiles=true https://github.com/JCSDA/spack.git
source spack/share/spack/setup-env.sh
spack env create gsi-env gsi/ci/spack_gcc.yaml
spack env activate gsi-env
spack compiler find
spack external find
spack concretize
spack install --fail-fast --dirty
spack clean -a

gsi:
needs: setup
runs-on: ubuntu-latest

steps:
- name: checkout
uses: actions/checkout@v4
with:
path: gsi

- name: cache-env
id: cache-env
uses: actions/cache@v4
with:
path: |
spack
~/.spack
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

- name: build
run: |
source spack/share/spack/setup-env.sh
spack env activate gsi-env
cd gsi
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DGSI_MODE=Regional -DENKF_MODE=GFS -DBUILD_REG_TESTING=OFF ..
make -j2 VERBOSE=1
make install
env:
CC: mpicc
FC: mpif90
124 changes: 124 additions & 0 deletions sorc/gsi_enkf.fd/.github/workflows/intel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Intel Linux Build
on: [push, pull_request, workflow_dispatch]

# Use custom shell with -l so .bash_profile is sourced which loads intel/oneapi/setvars.sh
# without having to do it in manually every step
defaults:
run:
shell: bash -leo pipefail {0}

# Set I_MPI_CC/F90 so Intel MPI wrapper uses icc/ifort instead of gcc/gfortran
env:
cache_key: intel
CC: icc
FC: ifort
CXX: icpc
I_MPI_CC: icc
I_MPI_F90: ifort

# The jobs are split into:
# 1. a dependency build step (setup), and
# 2. a GSI build step (gsi)
# The setup is run once and the environment is cached,
# so each subsequent build of GSI can reuse the cached dependencies to save time (and compute).

jobs:
setup:
runs-on: ubuntu-latest

steps:
# Free up disk space
- name: free-disk-spack
run: |
df -h
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
DOCKER_IMGS=$(docker image ls -aq)
if [[ ! -z "${DOCKER_IMGS}" ]]; then docker rmi ${DOCKER_IMGS}; fi
df -h

# Checkout the GSI to get the ci/spack.yaml file
- name: checkout
if: steps.cache-env.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
path: gsi

# Cache spack, compiler and dependencies
- name: cache-env
id: cache-env
uses: actions/cache@v3
with:
path: |
spack
~/.spack
/opt/intel
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}-1

- name: install-intel-compilers
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran-2023.2.1 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.1
sudo apt-get clean
echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile

# Install dependencies using Spack
- name: install-dependencies-with-spack
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
sudo mv /usr/local/ /usr_local_mv
sudo apt-get install cmake
rm -rf spack
git clone -c feature.manyFiles=true https://github.com/JCSDA/spack.git
source spack/share/spack/setup-env.sh
spack env create gsi-env gsi/ci/spack_intel.yaml
spack env activate gsi-env
spack compiler find
spack external find
spack concretize
spack install --fail-fast --dirty
spack clean -a

gsi:
needs: setup
runs-on: ubuntu-latest

steps:
- name: install-intel
run: |
echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile

- name: checkout
uses: actions/checkout@v4
with:
path: gsi

- name: cache-env
id: cache-env
uses: actions/cache@v3
with:
path: |
spack
~/.spack
/opt/intel
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

- name: build
run: |
sudo mv /usr/local/ /usr_local_mv
sudo apt-get install cmake libblas-dev liblapack-dev
source spack/share/spack/setup-env.sh
spack env activate gsi-env
cd gsi
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DGSI_MODE=Regional -DENKF_MODE=GFS -DBUILD_REG_TESTING=OFF ..
make -j2 VERBOSE=1
make install
env:
CC: mpiicc
FC: mpiifort
34 changes: 34 additions & 0 deletions sorc/gsi_enkf.fd/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
build*/
install*/
.*.swp
*.[aox]
*.mod
.DS_Store
exec/
lib/
lib64/

nohup.out
log*
build.log*
install.log*

# Ensure no one adds binary files to this repo. Not even by accident.
# over-riding this file can be done in the subdirectory
*.bin
*.nc*
*.tar*
*.tgz
*.gz
*.png
*.jp*g
*.tiff

# Python related
_pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

4 changes: 4 additions & 0 deletions sorc/gsi_enkf.fd/.gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "fix"]
path = fix
url = https://github.com/NOAA-EMC/GSI-fix
branch = develop
58 changes: 58 additions & 0 deletions sorc/gsi_enkf.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
cmake_minimum_required(VERSION 3.20)

project(GSIApp
VERSION 1.0.0
LANGUAGES C Fortran)

set(CMAKE_DIRECTORY_LABELS ${PROJECT_NAME})

enable_testing()
include(GNUInstallDirs)

if(NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release|RelWithDebInfo|MinSizeRel)$")
message(STATUS "Setting build type to 'Release' as none was specified.")
set(CMAKE_BUILD_TYPE
"Release"
CACHE STRING "Choose the type of build." FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()

if(NOT CMAKE_C_COMPILER_ID MATCHES "^(GNU|Intel|Clang|AppleClang)$")
message(WARNING "${CMAKE_C_COMPILER_ID} is not supported.")
endif()

if(NOT CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU|Intel)$")
message(WARNING "${CMAKE_Fortran_COMPILER_ID} is not supported.")
endif()

# User options
option(OPENMP "Enable OpenMP Threading" OFF)
option(ENABLE_MKL "Use MKL for LAPACK implementation (if available)" ON)
option(BUILD_GSDCLOUD "Build GSD Cloud Analysis Library" OFF)
option(BUILD_MGBF "Build MGBF Library" ON)
option(BUILD_GSI "Build GSI" ON)
option(BUILD_ENKF "Build EnKF" ON)
option(BUILD_REG_TESTING "Build the Regression Testing Suite" OFF)

# Echo user options
message(STATUS "OPENMP ................. ${OPENMP}")
message(STATUS "ENABLE_MKL ............. ${ENABLE_MKL}")
message(STATUS "BUILD_GSDCLOUD ......... ${BUILD_GSDCLOUD}")
message(STATUS "BUILD_MGBF ............. ${BUILD_MGBF}")
message(STATUS "BUILD_GSI .............. ${BUILD_GSI}")
message(STATUS "BUILD_ENKF ............. ${BUILD_ENKF}")
message(STATUS "BUILD_REG_TESTING ...... ${BUILD_REG_TESTING}")

# Build components
add_subdirectory(src)

# Download and copy binary fix files if submodule has been cloned
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/fix/CMakeLists.txt)
add_subdirectory(fix)
endif()

if(BUILD_REG_TESTING)
add_subdirectory(regression)
endif()

#add_subdirectory(unit-tests)
Loading