Skip to content

Commit

Permalink
Bug fix for HRRR IFI: Use ifi_apcp if it is 0 (#1127)
Browse files Browse the repository at this point in the history
* ifi-only post control file

* dev jobs for ci tests, including new ifi jobs

* rt.sh gets scripts from svndir and runs ifi tests

* copy orion tests to jobs-dev; hercules tests are only accessible to epic

* tell git to ignore emacs autosave files

* more hercules jobs-dev scripts

* new scripts for IFI tests on Hera

* add IFI to raphrrr available fields

* RRFS ifi test

* add ifi regtests to rt.sh

* remove unneeded file

* hera test results

* separate baseline for fv3r_ifi

* messages for BUILD_IFI_EXECUTABLES option

* fv3r_ifi_missing regtest checks if ifi has "missing" data when libifi is absent

* script and resource corrections in ci/jobs-dev/run_ifi_standalone_hrrr_HERA.sh

* use the ifi-only NT file for hrrr_ifi test

* Bug fix for HRRR IFI: Use ifi_apcp if it is 0; does not change FV3R regression test

* mkdir should be mkdir -p

* revert accidental change

* avoid syntax error on non-ifi platforms

* Add the "ifi_missing" tests for hercules and orion

* move hera rundir and homedir to sensible locations

* revert post_avblflds_raphrrr.xml changes

* rt.sh detects when a test could not run

* update ci scripts for ifi_missing on orion and hercules

* copy regtest data on msstate to test area

* hera test logs

* hercules logs

* orion test log

* add hercules rt log

* add orion rt log

* bug fix to runtime detection

* typo fix: rtma_test_pe_test -> rtma_pe_test

* rt.sh: move test_suite, and detect failures better

* add hera rt log

* ifi jobs should not link crtm fix files

* update orion rt log

* update orion rt log

* update hera rt log

* Update ci/rt.sh

* Update ci/rt.sh

* Update ci/rt.sh

* update hercules rt log

* update orion rt

* update hera rt log

* enable ifi_standalone_hrrr test

* remove unneeded fix file copy

* hera rt log

* hercules rt log

* orion rt log

---------

Co-authored-by: gspetro-NOAA <[email protected]>
Co-authored-by: WenMeng-NOAA <[email protected]>
  • Loading branch information
3 people authored Mar 1, 2025
1 parent c6f039b commit f82b5cf
Show file tree
Hide file tree
Showing 7 changed files with 185 additions and 180 deletions.
3 changes: 0 additions & 3 deletions ci/jobs-dev/run_post_hrrr_ifi_HERA.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,6 @@ write_ifi_debug_files=.true.
EOF
#FMIN

#copy fix data
cp $homedir/fix/fix_2.3.0/*bin .

#copy xml
cp ${svndir}/parm/params_grib2_tbl_new params_grib2_tbl_new
cp ${svndir}/parm/postxconfig-NT-ifi.txt postxconfig-NT.txt
Expand Down
2 changes: 1 addition & 1 deletion ci/rt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ run_rtma=yes
# Tests with IFI enabled only work if libIFI is present.
if [[ "$have_ifi" == yes && "$disable_ifi" == no ]] ; then
run_hrrr_ifi=yes
run_ifi_standalone_hrrr=no # turned off by default because it doesn't match UPP output yet
run_ifi_standalone_hrrr=yes
run_fv3r_ifi=yes
run_ifi_standalone_fv3r=yes
else
Expand Down
9 changes: 8 additions & 1 deletion sorc/ncep_post.fd/IFI.F
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
!> @file
!> @brief upp_ifi_mod declares variables used in the in-flight icing (IFI) routines.
!>
!> ### Program history log:
!> Date | Programmer | Comments
!> -----|------------|---------
!> ca 2023-2025 | Sam Trahan and UCAR collaborators | Initial
!> 2025-02-27 | Sam Trahan | Bugfix: Reject IFI_APCP only where it is spval

module upp_ifi_mod

#ifdef USE_IFI
Expand Down Expand Up @@ -792,7 +799,7 @@ END SUBROUTINE EXCH_c_float
!$OMP PARALLEL DO COLLAPSE(2)
do j=jsta,jend
do i=ista,iend
if(ifi_apcp(i,j)>9e9 .or. ifi_apcp(i,j)<-9e9 .or. ifi_apcp(i,j)==0) then
if(ifi_apcp(i,j) == spval) then
ifi_apcp(i,j) = avgprec_cont(i,j)*to_hourly
else if(ITPREC>1e-5) then
ifi_apcp(i,j) = ifi_apcp(i,j)/itprec
Expand Down
3 changes: 2 additions & 1 deletion sorc/ncep_post.fd/SURFCE.f
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
!> 2024-06-11 | E James | Modifying RRFS hourly average smoke/dust fields to be PM2.5 and PM20
!> 2024-08-26 | K Asmar | Modify max winds at 10m agl for UFS time buckets
!> 2024-10-29 | W Meng | Unify iSF_SURFACE_PHYSICS as:1 for NOHA,2 for NOAH MP,3 for RUC
!> 2025-02-27 | S Trahan | Update comment to match new use of IFI_APCP in IFI.F
!>
!> @note
!> USAGE: CALL SURFCE
Expand Down Expand Up @@ -4048,7 +4049,7 @@ SUBROUTINE SURFCE
ENDIF
ENDDO
ENDDO
! Note: IFI.F may replace IFI_APCP with other values where it is spval or 0
! Note: IFI.F may replace IFI_APCP=spval with other values
ENDIF
IF (IGET(434)>0.) THEN
Expand Down
116 changes: 58 additions & 58 deletions tests/logs/rt.log.HERA
Original file line number Diff line number Diff line change
@@ -1,71 +1,71 @@
===== Start of UPP Regression Testing Log =====
UPP Hash Tested:
5e4f57ec890d0a950ab0b6bd67932a9e381b0c2e
96444385c11c2c318e1853e06bab0eabcc3e6ae5

Submodule hashes:
-179cae1dd84401cf25d250bd9102e66560a9d328 sorc/libIFI.fd
-529f870d33b65c3b6c1aa3c3236b94efc3bd336d sorc/ncep_post.fd/post_gtg.fd

Run directory: /scratch2/NAGAPE/epic/Gillian.Petro/RTs/upp-rts/1153b/ci/rundir/upp-HERA
Run directory: /scratch2/NAGAPE/epic/Gillian.Petro/RTs/upp-rts/1127/ci/rundir/upp-HERA
Baseline directory: /scratch2/NAGAPE/epic/UPP/test_suite

Total runtime: 00h:12m:44s
Test Date: 20250228 15:23:20
Total runtime: 00h:12m:05s
Test Date: 20250228 21:56:56
Summary Results:

02/28 15:14:56Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
02/28 15:14:56Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
02/28 15:15:02Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
02/28 15:15:25Z -fv3r_ifi_missing test: your new post executable generates bit-identical IFIFIP10.tm00 as the trunk
02/28 15:15:41Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
02/28 15:15:48Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
02/28 15:16:03Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
02/28 15:16:03Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
02/28 15:16:11Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
02/28 15:16:14Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
02/28 15:16:14Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
02/28 15:16:15Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
02/28 15:16:18Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
02/28 15:16:30Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
02/28 15:16:31Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
02/28 15:16:33Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
02/28 15:16:34Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
02/28 15:16:37Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
02/28 15:16:43Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
02/28 15:16:50Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
02/28 15:16:54Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
02/28 15:16:56Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
02/28 15:17:01Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
02/28 15:17:04Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
02/28 15:17:04Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
02/28 15:17:33Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
02/28 15:17:37Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
02/28 15:17:37Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
02/28 15:17:38Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
02/28 15:17:41Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
02/28 15:17:42Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
02/28 15:22:29Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
02/28 15:22:34Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
02/28 15:22:34Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
02/28 15:23:05Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
02/28 15:23:10Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
02/28 15:23:10Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
02/28 15:17:42Z -Runtime: nmmb_test 00:02:19 -- baseline 00:01:00
02/28 15:17:43Z -Runtime: nmmb_pe_test 00:02:10 -- baseline 00:01:00
02/28 15:17:43Z -Runtime: fv3gefs_test 00:00:29 -- baseline 00:40:00
02/28 15:17:43Z -Runtime: fv3gefs_pe_test 00:00:21 -- baseline 00:40:00
02/28 15:17:44Z -Runtime: rap_test 00:01:31 -- baseline 00:02:00
02/28 15:17:44Z -Runtime: rap_pe_test 00:01:25 -- baseline 00:02:00
02/28 15:17:44Z -Runtime: hrrr_test 00:02:34 -- baseline 00:02:00
02/28 15:17:45Z -Runtime: hrrr_pe_test 00:02:19 -- baseline 00:02:00
02/28 15:22:47Z -Runtime: fv3gfs_test 00:07:40 -- baseline 00:15:00
02/28 15:23:18Z -Runtime: fv3gfs_pe_test 00:08:12 -- baseline 00:15:00
02/28 15:23:18Z -Runtime: fv3r_test 00:01:53 -- baseline 00:03:00
02/28 15:23:18Z -Runtime: fv3r_pe_test 00:01:47 -- baseline 00:03:00
02/28 15:23:18Z -Runtime: fv3r_ifi_missing 00:00:27 -- baseline 00:03:00
02/28 15:23:19Z -Runtime: fv3hafs_test 00:00:39 -- baseline 00:03:00
02/28 15:23:19Z -Runtime: fv3hafs_pe_test 00:00:47 -- baseline 00:03:00
02/28 15:23:20Z -Runtime: rtma_test 00:02:06 -- baseline 00:03:00
02/28 15:23:20Z -Runtime: rtma_pe_test 00:02:04 -- baseline 00:03:00
02/28 21:48:45Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
02/28 21:48:49Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
02/28 21:49:10Z -fv3r_ifi_missing test: your new post executable generates bit-identical IFIFIP10.tm00 as the trunk
02/28 21:49:13Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
02/28 21:49:17Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
02/28 21:49:17Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
02/28 21:49:26Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
02/28 21:49:28Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
02/28 21:49:28Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
02/28 21:49:36Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
02/28 21:49:37Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
02/28 21:49:48Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
02/28 21:49:49Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
02/28 21:50:01Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
02/28 21:50:06Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
02/28 21:50:09Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
02/28 21:50:24Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
02/28 21:50:25Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
02/28 21:50:27Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
02/28 21:50:28Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
02/28 21:50:31Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
02/28 21:50:31Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
02/28 21:50:33Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
02/28 21:50:33Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
02/28 21:50:33Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
02/28 21:50:38Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
02/28 21:50:41Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
02/28 21:50:42Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
02/28 21:51:02Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
02/28 21:51:05Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
02/28 21:51:06Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
02/28 21:56:10Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
02/28 21:56:13Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
02/28 21:56:13Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
02/28 21:56:48Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
02/28 21:56:52Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
02/28 21:56:52Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
02/28 21:49:32Z -Runtime: nmmb_test 00:01:46 -- baseline 00:01:00
02/28 21:51:18Z -Runtime: nmmb_pe_test 00:01:54 -- baseline 00:01:00
02/28 21:51:18Z -Runtime: fv3gefs_test 00:00:25 -- baseline 00:40:00
02/28 21:51:19Z -Runtime: fv3gefs_pe_test 00:00:16 -- baseline 00:40:00
02/28 21:51:19Z -Runtime: rap_test 00:01:08 -- baseline 00:02:00
02/28 21:51:19Z -Runtime: rap_pe_test 00:01:21 -- baseline 00:02:00
02/28 21:51:20Z -Runtime: hrrr_test 00:02:37 -- baseline 00:02:00
02/28 21:51:20Z -Runtime: hrrr_pe_test 00:02:18 -- baseline 00:02:00
02/28 21:56:23Z -Runtime: fv3gfs_test 00:07:40 -- baseline 00:15:00
02/28 21:56:54Z -Runtime: fv3gfs_pe_test 00:08:15 -- baseline 00:15:00
02/28 21:56:54Z -Runtime: fv3r_test 00:01:50 -- baseline 00:03:00
02/28 21:56:54Z -Runtime: fv3r_pe_test 00:01:50 -- baseline 00:03:00
02/28 21:56:54Z -Runtime: fv3r_ifi_missing 00:00:25 -- baseline 00:03:00
02/28 21:56:55Z -Runtime: fv3hafs_test 00:00:33 -- baseline 00:03:00
02/28 21:56:55Z -Runtime: fv3hafs_pe_test 00:00:39 -- baseline 00:03:00
02/28 21:56:55Z -Runtime: rtma_test 00:01:57 -- baseline 00:03:00
02/28 21:56:56Z -Runtime: rtma_pe_test 00:01:54 -- baseline 00:03:00
No changes in test results detected.
===== End of UPP Regression Testing Log =====
Loading

0 comments on commit f82b5cf

Please sign in to comment.