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 'devbuild.sh', module files, and directory names #9

Merged
merged 30 commits into from
Jul 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
541bc1c
basic update
chan-hoo Jun 30, 2023
cff6cfd
additional change to rrfs-workflow
chan-hoo Jul 1, 2023
dee2ce9
extran change in dev
chan-hoo Jul 1, 2023
a6f0d42
update modulefiles
chan-hoo Jul 1, 2023
0cb2327
fix typo
chan-hoo Jul 1, 2023
55275a1
remove env and update hash of ufs-utils
chan-hoo Jul 1, 2023
0a803e2
change libpng and add prod_utils
chan-hoo Jul 2, 2023
a80267e
update README file
chan-hoo Jul 3, 2023
02762b2
fix typo
chan-hoo Jul 3, 2023
98a6b9b
simplify PR template
chan-hoo Jul 3, 2023
f1ec66d
fix typo
chan-hoo Jul 3, 2023
56b1984
change dir structure and name
chan-hoo Jul 3, 2023
a76f768
update task module files for wcoss2
chan-hoo Jul 3, 2023
60d40fb
update task module files for hera
chan-hoo Jul 3, 2023
424b9ae
update task module files for jet and orion
chan-hoo Jul 3, 2023
91156de
fix dir structure in generation scripts
chan-hoo Jul 3, 2023
50d98fe
change DIR to dir to meet NCO standards
chan-hoo Jul 3, 2023
f6c479a
update functions
chan-hoo Jul 4, 2023
cb5c735
remove preamble
chan-hoo Jul 4, 2023
49206fc
remove DEBUG
chan-hoo Jul 4, 2023
3978658
fix launch script
chan-hoo Jul 4, 2023
0dee55e
add non-DA xml for testing
chan-hoo Jul 5, 2023
66f40a6
remove unnecessary machines
chan-hoo Jul 5, 2023
5fc8cae
add pazi to esg grid nml
chan-hoo Jul 5, 2023
d970937
update codeowners
chan-hoo Jul 5, 2023
4532926
update codeowners
chan-hoo Jul 5, 2023
b0b651c
add export=NONE to fix conda issue
chan-hoo Jul 6, 2023
d68d41e
remove unnecessary utilities
chan-hoo Jul 6, 2023
9e4da76
fix failure on make_grid
chan-hoo Jul 6, 2023
2ab1165
address Ben's comments
chan-hoo Jul 7, 2023
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
17 changes: 7 additions & 10 deletions .github/PULL_REQUEST_TEMPLATE
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
- Use this template to give a detailed message describing the change you want to make to the code.

- You may delete any sections labeled "optional".

- If you are unclear on what should be written here, see https://github.com/wrf-model/WRF/wiki/Making-a-good-pull-request-message for some guidance.

- The title of this pull request should be a brief summary (ideally less than 100 characters) of the changes included in this PR.

- Use the "Preview" tab to see what your PR will look like when you hit "Create pull request"

# --- Delete this line and those above before hitting "Create pull request" ---

## DESCRIPTION OF CHANGES:
One or more paragraphs describing the problem, solution, and required changes.
One or more bullet points describing the changes.

## TESTS CONDUCTED:
Explicitly state what tests were run on these changes, or if any are still pending (for README or other text-only changes, just put "None required". Make note of the compilers used, the platform/machine, and other relevant details as necessary. For more complicated changes, or those resulting in scientific changes, please be explicit!
Explicitly state what tests were run on these changes.
- On machines/platforms: wcoss2, hera, orion, or jet
- Test cases: sample config

## ISSUE (optional):
If this PR is resolving or referencing one or more issues, in this repository or elewhere, list them here. For example, "Fixes issue mentioned in #123" or "Related to bug in https://github.com/NOAA-EMC/other_repository/pull/63"
## ISSUE:
If this PR is resolving or referencing one or more issues, in this repository or elewhere, list them here.
- Fixs the issue(s) mentioned in #123

## CONTRIBUTORS (optional):
If others have contributed to this work aside from the PR author, list them here
Expand Down
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ lib/
lib64/
python_graphics/
share/
src/*
!src/CMakeLists.txt
sorc/*
!sorc/CMakeLists.txt
save/
ush/config.sh
ush/*.swp
ush/__pycache__/
ush/python_utils/__pycache__/
fix/.agent
fix/tmp
fix/INIT_DONE

__pycache__
*.swp
74 changes: 29 additions & 45 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,59 +1,53 @@
# This is the main cmake file for ufs-srweather-app.
# This is the main cmake file for RRFS-workflow.

cmake_minimum_required(VERSION 3.15)

# Set the project name and version.
project(ufs-srweather-app VERSION 1.0 LANGUAGES C CXX Fortran)
project(rrfs-workflow VERSION 1.0 LANGUAGES C CXX Fortran)

find_package(MPI REQUIRED COMPONENTS C CXX Fortran)

# Set extended version info.
SET(SRWA_VERSION_MAJOR 1)
SET(SRWA_VERSION_MINOR 0)
SET(SRWA_VERSION_PATCH 0)
SET(SRWA_VERSION_NOTE "-development")
SET(SRWA_VERSION ${SRWA_VERSION_MAJOR}.${SRWA_VERSION_MINOR}.${SRWA_VERSION_PATCH}${SRWA_VERSION_NOTE})
SET(RRFS_VERSION_MAJOR 1)
SET(RRFS_VERSION_MINOR 0)
SET(RRFS_VERSION_PATCH 0)
SET(RRFS_VERSION_NOTE "-development")
SET(RRFS_VERSION ${RRFS_VERSION_MAJOR}.${RRFS_VERSION_MINOR}.${RRFS_VERSION_PATCH}${RRFS_VERSION_NOTE})

# A function used to create autotools-style 'yes/no' definitions.
# If a variable is set, it 'yes' is returned. Otherwise, 'no' is
# returned.
#
# If a variable is set, it 'yes' is returned. Otherwise, 'no' is returned.
# Also creates a version of the ret_val prepended with 'NC',
# when feature is true, which is used to generate ufs_srweather_app_meta.h.
# when feature is true, which is used to generate rrfs-worklfow_meta.h.
FUNCTION(is_disabled feature ret_val)
IF(${feature})
SET(${ret_val} "no" PARENT_SCOPE)
ELSE()
SET(${ret_val} "yes" PARENT_SCOPE)
SET("SRWA_${ret_val}" 1 PARENT_SCOPE)
SET("RRFS_${ret_val}" 1 PARENT_SCOPE)
ENDIF(${feature})
ENDFUNCTION()

# A function used to create autotools-style 'yes/no' definitions.
# If a variable is set, it 'yes' is returned. Otherwise, 'no' is
# returned.
#
# Also creates a version of the ret_val prepended with 'NC',
# when feature is true, which is used to generate ufs_srweather_app_meta.h.
FUNCTION(is_enabled feature ret_val)
IF(${feature})
SET(${ret_val} "yes" PARENT_SCOPE)
SET("SRWA_${ret_val}" 1 PARENT_SCOPE)
SET("RRFS_${ret_val}" 1 PARENT_SCOPE)
ELSE()
SET(${ret_val} "no" PARENT_SCOPE)
SET("SRWA_${ret_val}" 0 PARENT_SCOPE)
SET("RRFS_${ret_val}" 0 PARENT_SCOPE)
ENDIF(${feature})
ENDFUNCTION()

# Turn on testing.
enable_testing()
include(CTest)

# Build in this subdirectory.
#add_subdirectory(src)
# Default bin directory
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
set(CMAKE_INSTALL_BINDIR bin)
endif()

#####
# Configure and print the ufs-srweather-app.settings file.
# Configure and print the rrfs-workflow.settings file.
#####

# Determine the configure date.
Expand All @@ -69,7 +63,7 @@ ELSE()
)
ENDIF()
IF(CONFIG_DATE)
string(STRIP ${CONFIG_DATE} CONFIG_DATE)
string(STRIP ${CONFIG_DATE} CONFIG_DATE)
ENDIF()

# Get system configuration, Use it to determine osname, os release, cpu. These
Expand Down Expand Up @@ -105,29 +99,19 @@ is_enabled(BUILD_SHARED_LIBS enable_shared)
is_enabled(STATUS_PARALLEL HAS_PARALLEL)

# Generate file from template.
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/ufs_srweather_app.settings.in"
"${CMAKE_CURRENT_BINARY_DIR}/ufs_srweather_app.settings"
@ONLY)

# Read in settings file, print out.
# Avoid using system-specific calls so that this
# might also work on Windows.
FILE(READ "${CMAKE_CURRENT_BINARY_DIR}/ufs_srweather_app.settings"
UFS-SRWEATHER-APP_SETTINGS)
MESSAGE(${UFS-SRWEATHER-APP_SETTINGS})

# Install ufs_srweather_app.settings file into same location
# as the app.
INSTALL(FILES "${CMAKE_BINARY_DIR}/ufs_srweather_app.settings"
DESTINATION bin)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/rrfs-workflow.settings.in" "${CMAKE_CURRENT_BINARY_DIR}/rrfs-workflow.settings" @ONLY)

# Install rrfs-workflow.settings file into same location as the app.
INSTALL(FILES "${CMAKE_BINARY_DIR}/rrfs-workflow.settings"
DESTINATION ${CMAKE_INSTALL_BINDIR})

#####
# Create 'ufs_srweather_app_meta.h' include file.
# Create 'rrfs-workflow_meta.h' include file.
#####
configure_file(
ufs_srweather_app_meta.h.in
ufs_srweather_app_meta.h @ONLY)
configure_file(rrfs-workflow_meta.h.in rrfs-workflow_meta.h @ONLY)

FILE(COPY "${CMAKE_CURRENT_BINARY_DIR}/rrfs-workflow_meta.h" DESTINATION include)

FILE(COPY "${CMAKE_CURRENT_BINARY_DIR}/ufs_srweather_app_meta.h" DESTINATION include)
add_custom_target(build DEPENDS sorc/pbuild)

add_subdirectory(src)
add_subdirectory(sorc)
24 changes: 12 additions & 12 deletions Externals.cfg
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
[ufs_utils]
protocol = git
repo_url = https://github.com/ufs-community/UFS_UTILS.git
repo_url = https://github.com/ufs-community/UFS_UTILS
# Specify either a branch name or a hash but not both.
#branch = develop
hash = 1817f1d
local_path = src/UFS_UTILS
hash = ae483bd
local_path = sorc/UFS_UTILS
required = True

[ufs_weather_model]
[ufs-weather-model]
protocol = git
repo_url = https://github.com/ufs-community/ufs-weather-model.git
repo_url = https://github.com/ufs-community/ufs-weather-model
# Specify either a branch name or a hash but not both.
#branch = develop
hash = cbf1567
local_path = src/ufs_weather_model
local_path = sorc/ufs-weather-model
required = True

[EMC_post]
[UPP]
protocol = git
repo_url = https://github.com/NOAA-EMC/UPP
# Specify either a branch name or a hash but not both.
#branch = RRFS_dev
hash = 16331ae
local_path = src/EMC_post
local_path = sorc/UPP
required = True
externals = None

Expand All @@ -35,21 +35,21 @@ required = True

[GSI]
protocol = git
repo_url = https://github.com/NOAA-EMC/GSI.git
repo_url = https://github.com/NOAA-EMC/GSI
# Specify either a branch name or a hash but not both.
#branch = develop
hash = 4afe6ed
local_path = src/gsi
local_path = sorc/gsi
required = True
externals = None

[rrfs_utl]
protocol = git
repo_url = https://github.com/NOAA-GSL/rrfs_utl.git
repo_url = https://github.com/NOAA-GSL/rrfs_utl
# Specify either a branch name or a hash but not both.
# branch = develop
hash = 77cf7d0
local_path = src/rrfs_utl
local_path = sorc/rrfs_utl
required = True

[externals_description]
Expand Down
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,25 @@
# rrfs-workflow

Future home of the workflow for the Rapid Refresh Forecast System (RRFS)
Workflow for the Rapid Refresh Forecast System (RRFS)


## Build

1. Clone the `dev-sci` branch of the authoritative repository:
```
git clone -b dev-sci https://github.com/NOAA-EMC/rrfs-workflow
```

2. Check out the external components:
```
cd rrfs-workflow
./manage_externals/checkout_externals
```

3. Build the RRFS workflow:
```
./devbuild.sh -p=[machine]
```
where `[machine]` is `wcoss2`, `hera`, `orion`, or `jet`.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As can be seen in this new README file, this PR makes the build steps work up to Step 3 on wcoss2, hera and orion.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chan-hoo Thank you so much for working on this so quickly. Since dev-sci will be used by both GSL and EMC, I add @hu5970 as a reviewer so that GSL can get an understanding of how the modification will affect the future update of RRFS-B on JET.

Copy link
Contributor Author

@chan-hoo chan-hoo Jul 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. As described above, the rrfs-workflow does not work yet (even with this PR). This PR only makes the 'build' step work well. I've tested it on wcoss2, hera, and orion. I don't have access to Jet. Are there any other machines to be tested?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chan-hoo I think the RRFS workflow for operations will only need to be supported on WCOSS2, Hera, Jet, and Orion. So at some point we will want to remove the logic for the other non-supported platforms.



Loading