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

[develop] Add Community Fire Behavior Model #1139

Merged
Merged
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
cd6635c
Checkout ufs-weather-model from ESMF for fire comp
danrosen25 Mar 28, 2023
389a865
First hooks for UFS FIRE added to workflow. Generates experiment succ…
mkavulich Sep 6, 2023
42996cb
Add capability to specify YAML config file name in generate function
mkavulich Sep 18, 2023
035282d
Implement better/more concise jinja templating for nems.configure file,
mkavulich Sep 18, 2023
1a5785d
Almost there!
mkavulich Sep 19, 2023
a19c632
Some fixes up through the run_fcst step:
mkavulich Sep 19, 2023
865c997
In the final stretch I think! Edits to run_fcst script:
mkavulich Sep 19, 2023
5156f49
Fire capability should be False by default
mkavulich Sep 21, 2023
87040c8
Forgot to commit namelist.fire parm file
mkavulich Sep 22, 2023
8b80ff5
Better error (FileNotFoundError) for set_namelist.py if the provided …
mkavulich Sep 22, 2023
7d58fdd
- Weather model has been updated, need to remove deprecated options
mkavulich Oct 4, 2023
efbf66e
Almost there...
mkavulich Oct 4, 2023
d4e3af0
Fire run is working! Add some fixes for non-fire runs
mkavulich Oct 6, 2023
901479f
QOL improvements for WE2E_summary file
mkavulich Oct 7, 2023
9fa7fcc
Fix crontab bug
mkavulich Oct 7, 2023
48b67c6
Better defaults for config.fire.yaml
mkavulich Oct 7, 2023
d34d69d
First attempt at two-way coupling workflow
mkavulich Nov 9, 2023
daf4e0c
Update nems.configure for new FIRE settings
mkavulich Dec 9, 2023
6a6acba
Update field_table for fire-specific tracer fsmoke
mkavulich Dec 9, 2023
624a221
Update weather model branch
mkavulich Dec 9, 2023
5574530
Reference config dictionary, not exported variables
mkavulich Dec 12, 2023
95d2a7d
Updates for weather model hash 75d28a14:
mkavulich Jan 3, 2024
6f956b4
Better default values in config.fire.yaml
mkavulich Jan 3, 2024
aa93142
Merge remote-tracking branch 'upstream/develop' into feature/ufs_fire…
mkavulich Mar 29, 2024
7f15940
Fix merge problems
mkavulich Mar 29, 2024
0da4606
Fix bug in &time namelist section setup: didn't move temporary file b…
mkavulich Apr 19, 2024
7585150
*ACTUALLY* fix bug in &time namelist section setup
mkavulich Apr 22, 2024
5286612
Merge remote-tracking branch 'upstream/develop' into feature/ufs_fire…
mkavulich Aug 27, 2024
7ba2734
Fix merge issues
mkavulich Aug 29, 2024
14a0f89
Cutting the fat out of base utilities boolify and create_symlink_to_f…
mkavulich Aug 29, 2024
c0ddb1a
More merge corrections
mkavulich Aug 29, 2024
e508aa9
Fix problem with uw namelist update
mkavulich Aug 30, 2024
904b1da
Add ability in retrieve_data.py to use forecast hour templates as wel…
mkavulich Sep 2, 2024
b66988d
Fix fire default filenames
mkavulich Sep 3, 2024
c740fe2
Remove mentions of Cheyenne from comments
mkavulich Sep 12, 2024
af63887
Merge remote-tracking branch 'upstream/develop' into feature/ufs_fire…
mkavulich Sep 26, 2024
11fdd1c
Update WM to point to main repo and newer hash; this requires an upda…
mkavulich Sep 27, 2024
71b9653
Need new version of UPP as well to correspond with updated WM hash
mkavulich Sep 27, 2024
9a48261
Okay, about time we put these build-time settings to use....
mkavulich Sep 27, 2024
6ff7a10
Dont use pregenerated ICs in sample case since it needs to work on al…
mkavulich Oct 8, 2024
3582c68
Add FC definition to build modulefiles to fix fire module build issue
mkavulich Oct 8, 2024
bae50a3
Fix syntax warning for bad regular expression in WE2E test script
mkavulich Oct 13, 2024
235cbf6
Fix problems with non-fire cases; opened issue about non-functional t…
mkavulich Oct 14, 2024
e9d8832
Fixes for OMP threading problem from Michael
mkavulich Oct 15, 2024
ec9839a
Merge remote-tracking branch 'upstream/develop' into feature/ufs_fire…
mkavulich Oct 15, 2024
0ab8f02
Move new build_settings_template to sorc/ directory
mkavulich Oct 15, 2024
55f06c3
Move ufs_srweather_app_meta.h.in to sorc/
mkavulich Oct 15, 2024
513160d
Update instructions for custom vertical levels; I completely forgot I…
mkavulich Oct 15, 2024
36df95b
Update fire case for shorter forecast, and to use new variable syntax
mkavulich Oct 15, 2024
6dd02bb
Additional consistency checks in setup.py, remove set -x from run_fcst
mkavulich Oct 15, 2024
a92133b
Make the linter happy
mkavulich Oct 16, 2024
4076da5
Fix long line in create diag table script, set build settings to only…
mkavulich Oct 16, 2024
683eba0
Fix linting for generate_FV3LAM_wflow.py. Really wish there was a way…
mkavulich Oct 16, 2024
997c097
Manage externals takes forever and rarely fails, so run that test last
mkavulich Oct 16, 2024
0042f6c
Update diag_table test
mkavulich Oct 16, 2024
c4f0fff
We don't want to hide output from CI unit tests in case there's a fai…
mkavulich Oct 16, 2024
b63514c
Need dummy build settings file for test_generate_FV3LAM_wflow.py now
mkavulich Oct 16, 2024
32eee72
Fix the linter for the test. This is an extremely annoying process!
mkavulich Oct 16, 2024
0b2dd99
Forgot you need externals for the unit tests
mkavulich Oct 16, 2024
c101eb0
Add new fire WE2E test; will only work on Derecho for now. Also move …
mkavulich Nov 1, 2024
eca0ec4
Fix error introduced when trying to please linter
mkavulich Nov 1, 2024
1191be3
Add Fire documentation to Users Guide
mkavulich Nov 1, 2024
610f04c
Details about output; having trouble embedding image though
mkavulich Nov 1, 2024
0203069
Merge remote-tracking branch 'upstream/develop' into feature/ufs_fire…
mkavulich Nov 4, 2024
227edf6
Fix default number of cores; fire cores should not be multiplied by OMP
mkavulich Nov 4, 2024
65ffd9f
Don't specify locations of data for WE2E test
mkavulich Nov 4, 2024
01aefef
Fix merge for ufs.configure file
mkavulich Nov 4, 2024
061ffd5
Add broken image for demonstration
mkavulich Nov 1, 2024
28c19e5
Minor fixes to FIRE chapter: Remove irrelevant sentence about tasks, …
mkavulich Nov 4, 2024
124cebc
Fixed image of fire output
mkavulich Nov 4, 2024
3e5fa8f
Apply suggestions from code review
mkavulich Nov 5, 2024
ef72765
Make the linter happy;
mkavulich Nov 5, 2024
becf0e7
Better description for -a build flag
mkavulich Nov 5, 2024
7937dde
Revert move of aqm test directory, make new "fire" test directory, re…
mkavulich Nov 5, 2024
85ca43e
Consistent order in PE_MEMBER01 definition
mkavulich Nov 5, 2024
cf429cb
Instead of a separate entry for all these duplicated namelist setting…
mkavulich Nov 5, 2024
b51d1cd
Update build_settings to include "Machine" value, add check for machi…
mkavulich Nov 6, 2024
6029253
- Update fire test for new setting names; add new multi-fire test
mkavulich Nov 6, 2024
d4043bd
Need to convert fire namelist settings to a list if not provided as a…
mkavulich Nov 7, 2024
5aa39cd
Update fire instructions in users guide for latest commits; add descr…
mkavulich Nov 7, 2024
f445566
Initial commit of fire capability does not support two-way coupling
mkavulich Nov 7, 2024
c77770f
Add LEVP setting documentation
mkavulich Nov 7, 2024
49ee2c6
Remove default time values from namelist.fire
mkavulich Nov 7, 2024
feed835
Fix generate workflow unit test
mkavulich Nov 7, 2024
f1b721b
Fix test description and running instructions
mkavulich Nov 7, 2024
8240549
Update config.fire.yaml
mkavulich Nov 7, 2024
a124714
Update config.UFS_FIRE_multifire_one-way-coupled.yaml
mkavulich Nov 7, 2024
e67173f
Update config.UFS_FIRE_one-way-coupled.yaml
mkavulich Nov 7, 2024
966326e
Point to official CFBM users guide location now that its published
mkavulich Nov 8, 2024
a12b8e1
Final updates for fire tests
mkavulich Nov 8, 2024
c2c48f7
Fix for jenkins test exec directory location
mkavulich Nov 12, 2024
e179a80
Merge branch 'develop' into feature/ufs_fire_workflow
mkavulich Nov 13, 2024
543f584
Fix link to fire UG
mkavulich Nov 13, 2024
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
13 changes: 7 additions & 6 deletions .github/workflows/python_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,6 @@ jobs:
cache-downloads: true
cache-environment: true

- name: Checkout externals
run: |
./manage_externals/checkout_externals ufs-weather-model

- name: Lint the python code
run: |
micromamba activate srw_app
Expand All @@ -44,17 +40,22 @@ jobs:
pylint ush/set_fv3nml*.py
pylint ush/update_input_nml.py

- name: Checkout externals
run: |
./manage_externals/checkout_externals ufs-weather-model

- name: Run python unittests
run: |
# exclude test_retrieve_data that is tested in functional test
micromamba activate srw_app
export UNIT_TEST=True
export PYTHONPATH=$(pwd)/ush
python -m unittest -b tests/test_python/*.py
python -m unittest tests/test_python/*.py

- name: Run python functional tests
run: |
micromamba activate srw_app
export CI=true
export PYTHONPATH=${PWD}/ush
python3 -m unittest -b tests/test_python/test_retrieve_data.py
python3 -m unittest tests/test_python/test_retrieve_data.py

30 changes: 20 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,20 @@ project(ufs-srweather-app 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_MAJOR 2)
SET(SRWA_VERSION_MINOR 2)
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})

# Get the latest abbreviated commit hash of the working branch
execute_process(
COMMAND git log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)

# A function used to create autotools-style 'yes/no' definitions.
# If a variable is set, it 'yes' is returned. Otherwise, 'no' is
# returned.
Expand Down Expand Up @@ -55,7 +63,7 @@ if(NOT DEFINED CMAKE_INSTALL_BINDIR)
endif()

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

# Determine the configure date.
Expand Down Expand Up @@ -92,10 +100,12 @@ SET(host_vendor "${osname}")
SET(host_os "${osrel}")
SET(abs_top_builddir "${CMAKE_CURRENT_BINARY_DIR}")
SET(abs_top_srcdir "${CMAKE_CURRENT_SOURCE_DIR}")
SET(application "${APP}")
SET(machine "${BUILD_MACHINE}")

SET(CC_VERSION "${CMAKE_C_COMPILER}")

# Set values for .settings file.
# Set values for build settings file.
SET(CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}}")
SET(CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${CMAKE_BUILD_TYPE}}")
SET(LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILD_TYPE}}")
Expand All @@ -107,27 +117,27 @@ 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"
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/sorc/build_settings_template.yaml"
"${CMAKE_CURRENT_BINARY_DIR}/build_settings.yaml"
@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"
FILE(READ "${CMAKE_CURRENT_BINARY_DIR}/build_settings.yaml"
UFS-SRWEATHER-APP_SETTINGS)
MESSAGE(${UFS-SRWEATHER-APP_SETTINGS})

# Install ufs_srweather_app.settings file into same location
# Install build settings file into same location
# as the app.
INSTALL(FILES "${CMAKE_BINARY_DIR}/ufs_srweather_app.settings"
INSTALL(FILES "${CMAKE_BINARY_DIR}/build_settings.yaml"
DESTINATION ${CMAKE_INSTALL_BINDIR})

#####
# Create 'ufs_srweather_app_meta.h' include file.
#####
configure_file(
ufs_srweather_app_meta.h.in
sorc/ufs_srweather_app_meta.h.in
ufs_srweather_app_meta.h @ONLY)

FILE(COPY "${CMAKE_CURRENT_BINARY_DIR}/ufs_srweather_app_meta.h" DESTINATION include)
Expand Down
7 changes: 5 additions & 2 deletions devbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ OPTIONS
compiler to use; default depends on platform
(e.g. intel | gnu | cray | gccgfortran)
-a, --app=APPLICATION
weather model application to build; for example, ATMAQ for Online-CMAQ
(e.g. ATM | ATMAQ | ATMW | S2S | S2SW)
weather model application to build; supported SRW options are
ATM (default) Atmosphere only
ATMAQ Online-CMAQ (air quality)
ATMF UFS_FIRE (coupled Community Fire Behavior Model)
--ccpp="CCPP_SUITE1,CCPP_SUITE2..."
CCPP suites (CCPP_SUITES) to include in build; delimited with ','
--enable-options="OPTION1,OPTION2,..."
Expand Down Expand Up @@ -363,6 +365,7 @@ fi

# cmake settings
CMAKE_SETTINGS="\
-DBUILD_MACHINE=${MACHINE}\
-DCMAKE_BUILD_TYPE=${BUILD_TYPE}\
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}\
-DCMAKE_INSTALL_BINDIR=${BIN_DIR}\
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Table of Variables in ``config_defaults.yaml``
TEST_VX_FCST_INPUT_BASEDIR, FIXgsm, FIXaer, FIXlut, FIXorg, FIXsfc, FIXshp, FIXcrtm, FIXcrtmupp, EXTRN_MDL_DATA_STORES
* - Workflow
- WORKFLOW_ID, RELATIVE_LINK_FLAG, USE_CRON_TO_RELAUNCH, CRON_RELAUNCH_INTVL_MNTS, CRONTAB_LINE, LOAD_MODULES_RUN_TASK_FP, EXPT_BASEDIR, EXPT_SUBDIR, EXEC_SUBDIR,
EXPTDIR, DOT_OR_USCORE, EXPT_CONFIG_FN, CONSTANTS_FN, RGNL_GRID_NML_FN, FV3_NML_FN, FV3_NML_BASE_SUITE_FN, FV3_NML_YAML_CONFIG_FN, FV3_NML_BASE_ENS_FN,
EXPTDIR, DOT_OR_USCORE, CONSTANTS_FN, RGNL_GRID_NML_FN, FV3_NML_FN, FV3_NML_BASE_SUITE_FN, FV3_NML_YAML_CONFIG_FN, FV3_NML_BASE_ENS_FN,
FV3_EXEC_FN, DATA_TABLE_FN, DIAG_TABLE_FN, FIELD_TABLE_FN, DIAG_TABLE_TMPL_FN, FIELD_TABLE_TMPL_FN, MODEL_CONFIG_FN, NEMS_CONFIG_FN, AQM_RC_FN, AQM_RC_TMPL_FN,
FV3_NML_BASE_SUITE_FP, FV3_NML_YAML_CONFIG_FP, FV3_NML_BASE_ENS_FP, DATA_TABLE_TMPL_FP, DIAG_TABLE_TMPL_FP, FIELD_TABLE_TMPL_FP,
MODEL_CONFIG_TMPL_FP, NEMS_CONFIG_TMPL_FP, AQM_RC_TMPL_FP, DATA_TABLE_FP, FIELD_TABLE_FP, NEMS_CONFIG_FP, FV3_NML_FP,
Expand Down
Loading
Loading