Skip to content

Define applications but provide flexibility to build applications#473

Closed
aerorahul wants to merge 27 commits into
ufs-community:developfrom
NOAA-EMC:feature/compsets
Closed

Define applications but provide flexibility to build applications#473
aerorahul wants to merge 27 commits into
ufs-community:developfrom
NOAA-EMC:feature/compsets

Conversation

@aerorahul
Copy link
Copy Markdown
Contributor

@aerorahul aerorahul commented Mar 12, 2021

Description

As the number of applications within the UFS grows, this PR collects the applications and re-defines it in terms of components that need to be enabled/disabled for the application. It also allows the user the ability to define their own application based on a unique App Name.

The currently supported valid applications are:

App Name App Description Components this App will turn ON
ATM Atmosphere Only FMS, FV3
ATMW Atmosphere with Waves FMS, FV3, WW3
S2S Coupled model FMS, FV3, MOM6, CICE6, CMEPS
S2SW Coupled model with Waves FMS, FV3, MOM6, CICE6, WW3, CMEPS
DATM Coupled Model with (CDEPS) Data atmosphere FMS, MOM6, CICE6, CMEPS, CDEPS
DATM_NEMS Coupled Model with (NEMS) Data atmosphere FMS, MOM6, CICE6, CMEPS, NEMSdatm

CMake expects an option -DAPP=<APP_NAME>, where APP_NAME is the item in the 1st column from the above table.
Without a valid application, the configuration will exit with a message.

To add new applications, the user will define a unique application name in the list defined as VALID_APPS in CMakeLists.txt and proceed to enable the components for the new application in cmake/configure_apps.cmake.

What bug does it fix, or what feature does it add?
Checks for valid applications as well as allows the user to define their own unique application with user choice of combination of components.

Is a change of answers expected from this PR?
No

Are any library updates included in this PR (modulefiles etc.)?
No

Issue(s) addressed

Link the issues to be closed with this PR, whether in this repository, or in another repository.
(Remember, issues should always be created before starting work on a PR branch!)
Furthers the discussion in #416
Possibly closes #416

Testing

On-going. Hera and Orion are very unresponsive!
How were these changes tested?
What compilers / HPCs was it tested with?
Are the changes covered by regression tests? (If not, why? Do new tests need to be added?)
Have regression tests and unit tests (utests) been run? On which platforms and with which compilers? (Note that unit tests can only be run on tier-1 platforms)

Dependencies

If testing this branch requires non-default branches in other repositories, list them.
None.

Do PRs in upstream repositories need to be merged first?
No

@DeniseWorthen
Copy link
Copy Markdown
Collaborator

The DATM is also a coupled model (MOM6-CICE6-CMEPS) using a DATM (NEMSdatm, replaced by CDEPS).

@aerorahul
Copy link
Copy Markdown
Contributor Author

The DATM is also a coupled model (MOM6-CICE6-CMEPS) using a DATM (NEMSdatm, replaced by CDEPS).

Thanks @DeniseWorthen I updated the App Description in the table and made it explicit.

Do note that all these apps are in current develop. I have not made an attempt to define what's coming or in various forks.

@aerorahul aerorahul marked this pull request as ready for review March 20, 2021 02:27
@aerorahul aerorahul self-assigned this Mar 20, 2021
@aerorahul
Copy link
Copy Markdown
Contributor Author

aerorahul commented Mar 20, 2021

I do not now why the indicated files changed in this PR is 204.
8 source code files have been changed in this branch as seen here

@aerorahul
Copy link
Copy Markdown
Contributor Author

closing. Merged via #477

@aerorahul aerorahul closed this Mar 24, 2021
@aerorahul aerorahul deleted the feature/compsets branch March 27, 2021 03:05
epic-cicd-jenkins pushed a commit that referenced this pull request Apr 17, 2023
## DESCRIPTION OF CHANGES: 
Currently, the workflow variables EXTRN_MDL_SYSBASEDIR_ICS and EXTRN_MDL_SYSBASEDIR_LBCS cannot be specified by the user.  They get set according to the platform and external model (for ICSs and LBCs, respecitively) specified by the user.

@chunhuazhou requested that these be user-specifiable.  Thus, this PR modifies the script set_extrn_mdl_params.sh such that if one or both of these are specified by the user in the experiment configuration file (config.sh), then those values are used, and if they are not, default values based on the platform and external model are used (as is currently the case).

This PR also adds a new WE2E test named specify_EXTRN_MDL_SYSBASEDIR_ICS_LBCS in which EXTRN_MDL_SYSBASEDIR_ICS and EXTRN_MDL_SYSBASEDIR_LBCS get set to user-specified directories rather than the default system directory for the machine and the specified external models.  The specific test added uses the FV3GFS for both the external models (i.e. the one for ICs and the one for LBCs), and the user-specified directory it specifies (which is the same for ICs and LBCs) via the run_experiments.sh script is on Hera and contains files (for a single starting date and hour) from the FV3GFS external model in the same format as on the system directory on Hera (which is at /scratch1/NCEPDEV/rstprod/com/gfs/prod).

Note that this PR modifies the testing script (run_experiments.sh) to enable it to handle the case of user-specified values for EXTRN_MDL_SYSBASEDIR_ICS and EXTRN_MDL_SYSBASEDIR_LBCS.

## TESTS CONDUCTED:
The newly added WE2E test (named specify_EXTRN_MDL_SYSBASEDIR_ICS_LBCS) was successfully run on Hera.

## CONTRIBUTORS (optional): 
@chunhuazhou
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Having more flexible Cmake build system

2 participants