Skip to content

Update UPP (2026-01)#1060

Merged
FernandoAndrade-NOAA merged 7 commits intoNOAA-EMC:developfrom
NickSzapiro-NOAA:upp_202601
Feb 10, 2026
Merged

Update UPP (2026-01)#1060
FernandoAndrade-NOAA merged 7 commits intoNOAA-EMC:developfrom
NickSzapiro-NOAA:upp_202601

Conversation

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor

@NickSzapiro-NOAA NickSzapiro-NOAA commented Jan 28, 2026

Description

Update UPP to top of develop, including EE2 fixes for SWRF, SDEN to reproduce when threading. Also adds UPP unit testing. Bit-for-bit

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!)

Testing

How were these changes tested? UPP commit testing and UFS RTs on Ursa. Answers are bit-for-bit
See ufs-community/ufs-weather-model#3072

Dependencies

Commits already merged in UPP

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor Author

fyi @WenMeng-NOAA

@WenMeng-NOAA
Copy link
Copy Markdown
Contributor

@NickSzapiro-NOAA Thanks for working on upgrading upp hash.

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

Could we get reviews on this PR so that we can process WM parent PR 3072?

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor Author

@WenMeng-NOAA @AlysonStahl-NOAA I see this unit test failure in GCC / build_fv3atm (-D32BIT=ON, 12, openmpi):

 ZLCL Test failed at (           1 ,           1 ): Expected    486.870789      but got    486.878418    
 ZLCL Test failed at (           2 ,           2 ): Expected    385.382751      but got    385.390381 

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

@WenMeng-NOAA @AlysonStahl-NOAA I see this unit test failure in GCC / build_fv3atm (-D32BIT=ON, 12, openmpi):

 ZLCL Test failed at (           1 ,           1 ): Expected    486.870789      but got    486.878418    
 ZLCL Test failed at (           2 ,           2 ): Expected    385.382751      but got    385.390381 

@NickSzapiro-NOAA Should we hold off on processing WM PR 3072, or has this been resolved (or are we moving forward anyway?)?

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor Author

I would wait until we hear back @gspetro-NOAA, if possible. Please feel free to move onto another PR

@AlysonStahl-NOAA
Copy link
Copy Markdown
Collaborator

@NickSzapiro-NOAA At first glance, this appears to be related to small ulp differences in LOG() and EXP() across environments. I'll probably have to make some small changes to the test and possibly others to make sure they pass consistently.

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

@AlysonStahl-NOAA So would you say that these results are normal/expected, and it's okay to proceed with the PR? Or do you think some more checking is necessary to be certain there's no error/issue?

@AlysonStahl-NOAA
Copy link
Copy Markdown
Collaborator

@gspetro-NOAA In my opinion, yes. The same unit tests are passing in UPP's CI, which is where we intend to run them. I don't believe there have been any fundamental changes to the subroutine being tested, but if there were then that would be cause for concern since that is what the tests are meant to catch.

I'm not too familiar with this repository, just that it uses UPP. Do you intend on running UPP's unit tests with the fv3atm tests? We would like the tests to pass on every environment we intend to use UPP, so it's good we caught it here. The test should be fixed, but the issue is just that the difference between the calculated and expected values in the test fall outside a somewhat arbitrarily selected tolerance.

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor Author

@AlysonStahl-NOAA You know better than me, but the difference in values is ~O(0.01), which does not seem too small.

Gemini AI does flag an issue that the test should allocate and fill like sorc/ncep_post.fd/ALLOCATE_ALL.f

allocate(alpint(1:npts,1:npts,nlevs+1))
allocate(zint(1:npts,1:npts,nlevs+1))

instead of nlevs

In the test, lmh = nlevs . Then in CALLCL (note L+1):

      DO 20 L=LLMH,1,-1
      IF(ALPINT(I,J,L) < ALPLCL)THEN
        DLPLCL    = ALPLCL        - ALPINT(I,J,L+1)
        DALP      = ALPINT(I,J,L) - ALPINT(I,J,L+1)
        DZ        = ZINT(I,J,L)   - ZINT(I,J,L+1)
        ZLCL(I,J) = max(D00, ZINT(I,J,L+1) + DZ*DLPLCL/DALP - ZSFC)
        EXIT
      ENDIF

so I don't know where values for ALPINT(I,J,61), ZINT(I,J,61) are coming from

@AlysonStahl-NOAA
Copy link
Copy Markdown
Collaborator

Ok, I see what's happening now. Thanks for catching that. I'm fixing it right now.

@WenMeng-NOAA
Copy link
Copy Markdown
Contributor

@AlysonStahl-NOAA Thanks for submitting the fix in UPP.
@NickSzapiro-NOAA @gspetro-NOAA The UPP develop branch has committed at @7d9597c with Alyson's fix. Please test for upp hash upgrading.

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor Author

Tests pass now. Thanks @AlysonStahl-NOAA and UPP team!

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

@NickSzapiro-NOAA The CCPP PR has been merged. You can revert .gitmodules and update the CCPP hash to b73b97b.

@NickSzapiro-NOAA
Copy link
Copy Markdown
Contributor Author

Thanks! git clone isn't working for me at the moment ... "Could not resolve host: github.com"

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

Testing for WM PR 2072 has completed successfully, CCPP PR 343 has been merged, and Nick has reverted .gitmodules and updated the CCPP hash. This PR can be merged.

@gspetro-NOAA
Copy link
Copy Markdown
Collaborator

@DusanJovic-NOAA Could you merge this PR?

@FernandoAndrade-NOAA FernandoAndrade-NOAA merged commit 30b6019 into NOAA-EMC:develop Feb 10, 2026
8 checks passed
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.

8 participants