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 CMEPS with upstream #109

Closed
wants to merge 547 commits into from
Closed

Conversation

uturuncoglu
Copy link
Collaborator

Description of changes

This PR aims to update CMPES with the upstream (ESCOMP) to bring recent developments such as CDEPS inline capability to UFS Weather Model.

Specific notes

Contributors other than yourself, if any: @DeniseWorthen @danrosen25 @binli2337 @BinLiu-NOAA

CMEPS Issues Fixed (include github issue #): N/A

Are changes expected to change answers? (specify if bfb, different at roundoff, more substantial) No

Any User Interface Changes (namelist or namelist defaults changes)?

The user need to add new phase (med_phases_cdeps_run) to the run sequence to activate the feature. Then, needs to provide stream.config configuration file.

Additional changes also made to allow filling exchange fields with all data in the first coupling time step. I introduce set of new mediator namelist option to make it configurable. So, for example I am setting following in the nems.configure for ocean and wave (in mediator section),

  ocn_use_data_first_import = .true.
  wav_use_data_first_import = .true.

By default the values are .false. and it is only usable when CDEPS Inline feature activated. I also modify the wave and ocean prep phases to get the data and pass it to the components.

Testing performed

Please describe the tests along with the target model and machine(s)
If possible, please also added hashes that were used in the testing
Both CESM (Derecho, Intel) and UFS Weather Model (Orion Intel and WCOSS2) head of develop tested on multiple machines.

jedwards4b and others added 30 commits January 10, 2023 08:29
replace use of master with main
update esmFldsExchange_nems for ungridded wave fields; fix incorrect units in mediator files
        modified:   cesm/nuopc_cap_share/shr_expr_parser_mod.F90
        modified:   cesm/nuopc_cap_share/shr_megan_mod.F90
        modified:   cesm/nuopc_cap_share/shr_megan_mod.F90
        modified:   cesm/nuopc_cap_share/shr_megan_mod.F90
Updates to the MEGAN specifier string parser
enable asyncio using pio
### Description of changes 
Allows IO tasks to be independent of compute tasks in cesm

### Specific notes
(testing in progress)
Contributors other than yourself, if any:
Depends on share (ESCOMP/CESM_share#37) and cime (ESMCI/cime#4340).  

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers? (specify if bfb, different at roundoff, more substantial) 

Any User Interface Changes (namelist or namelist defaults changes)?

### Testing performed

Testing performed if application target is CESM:
- [ ] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [X] (optional) CESM prealpha test
   - machines and compilers cheyenne intel 
   - details (e.g. failed tests): results consistant with cesm2_3_alpha10d
- [ ] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [X] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

### Hashes used for testing:

- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch/hash:
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch/hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch/hash:
fix the multi instance initialization
        new file:   cesm/nuopc_cap_share/shr_lightning_coupling_mod.F90
        modified:   cime_config/namelist_definition_drv_flds.xml
        modified:   mediator/esmFldsExchange_cesm_mod.F90
        modified:   mediator/fd_cesm.yaml
        modified:   cesm/nuopc_cap_share/shr_lightning_coupling_mod.F90
        modified:   cime_config/namelist_definition_drv_flds.xml
        modified:   cime_config/namelist_definition_drv_flds.xml
        modified:   mediator/esmFldsExchange_cesm_mod.F90
        modified:   mediator/fd_cesm.yaml
make xgrid default, handle main task for multidriver cases in esm_tim…
xgrid was causing restart problems; revert this until we can solve those
problems
Revert default aoflux_grid to ogrid
fieldNameList is not always allocated. We could wrap the deallocate in a
conditional, but since allocatable arrays are automatically deallocated
upon leaving a subroutine, this deallocate statement is unnecessary.
@DeniseWorthen DeniseWorthen changed the title Update CMPES with upstream Update CMEPS with upstream Jan 31, 2024
Copy link
Collaborator

@DeniseWorthen DeniseWorthen left a comment

Choose a reason for hiding this comment

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

Previously reviewed at ESCOMP.

Copy link
Collaborator

@binli2337 binli2337 left a comment

Choose a reason for hiding this comment

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

Looks good.

@BinLiu-NOAA
Copy link

@DeniseWorthen and @uturuncoglu, Just a note: if PR #107 got merged into NOAA-EMC/CMEPS:emc/develop branch first, then most likely, you will need recreate this PR by using another feature branch (unless you can sync ESCOMP: main with the latest NOAA-EMC/CMEPS:emc/develop right after PR #107). Thanks!

@BinLiu-NOAA
Copy link

@DeniseWorthen and @uturuncoglu, since PR #107 is merged, I believe we need sync this PR branch with the latest NOAA-EMC:emc/develop branch. Otherwise, ufs-community/ufs-weather-model/pull/2028 RTs will fail during compiling.

Again, if ESCOMP:main can not be synced at this moment, then will need recreate this PR from another branch. Thanks!

@DeniseWorthen
Copy link
Collaborator

@uturuncoglu @BinLiu-NOAA It is ESCOMP's call here....it should be safe (since #107) only changed ufs side, but I defer to them.

@uturuncoglu
Copy link
Collaborator Author

@DeniseWorthen I think I could create new branch from ESCOMP and then merge this to it. Then, update the UFS level PR by pointing it. That will solve the problem. Then, when we have another PR in the ESCOMP CMEPS side, we could push these changes. Let me know what you think?

@DeniseWorthen
Copy link
Collaborator

@uturuncoglu That is fine.

@uturuncoglu uturuncoglu mentioned this pull request Feb 1, 2024
@uturuncoglu
Copy link
Collaborator Author

@DeniseWorthen Closing this since we have updated branch and PR #110

@uturuncoglu uturuncoglu closed this Feb 1, 2024
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.