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

MPAS applications: fixes for absolute vorticity and surface latent-heat flux #1069

Merged
merged 9 commits into from
Oct 22, 2024
23 changes: 10 additions & 13 deletions sorc/ncep_post.fd/INITPOST_MPAS.F
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
!> 2024-08-30 | Jaymes Kenyon| Add processing for lat-lon projection
!> 2024-08-30 | Jaymes Kenyon| Add temporary hard coding of SLLEVEL (for RUC LSM) and PREC_ACC_DT
!> 2024-09-09 | Eric James | Add checks for missing values before entering some computations
!> 2024-10-16 | Jaymes Kenyon| Missing-value checks for wind interp, fix to LH flux
!>
!> @author Jaymes Kenyon (GSL) @date 2024-08-14

Expand Down Expand Up @@ -287,7 +288,11 @@ SUBROUTINE INITPOST_MPAS
! fill up UH which is U at P-points including 2 row halo
do j = jsta_2l, jend_2u
do i = 1, im
UH (I,J,L) = (dum3d(I,J,L)+dum3d(I+1,J,L))*0.5
if (dum3d(I,J,L) < SPVAL .AND. dum3d(I+1,J,L) < SPVAL) then
UH (I,J,L) = (dum3d(I,J,L)+dum3d(I+1,J,L))*0.5
else
UH (I,J,L) = SPVAL
endif
end do
end do
end do
Expand All @@ -304,7 +309,11 @@ SUBROUTINE INITPOST_MPAS
! fill up VH which is V at P-points including 2 row halo
do j = jsta_2l, jend_2u
do i = 1, im
if (dum3d(I,J,L) < SPVAL .AND. dum3d(I,J+1,L) < SPVAL) then
VH(I,J,L) = (dum3d(I,J,L)+dum3d(I,J+1,L))*0.5
else
VH(I,J,L) = SPVAL
endif
end do
end do
end do
Expand Down Expand Up @@ -2624,26 +2633,14 @@ SUBROUTINE INITPOST_MPAS
end do

! latent heat flux
IF(iSF_SURFACE_PHYSICS/=3) then
VarName='LH'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
do j = jsta_2l, jend_2u
do i = 1, im
QWBS(I,J) = dummy ( i, j )
! SFCLHX ( i, j ) = dummy ( i, j )
end do
end do
else
VarName='QFX'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
do j = jsta_2l, jend_2u
do i = 1, im
QWBS(I,J) = dummy ( i, j ) * LHEAT
end do
end do
ENDIF

! ground heat fluxes
VarName='GRDFLX'
Expand Down
5 changes: 3 additions & 2 deletions sorc/ncep_post.fd/UPP_PHYSICS.f
Original file line number Diff line number Diff line change
Expand Up @@ -1737,6 +1737,7 @@ end function TVIRTUAL
!> 2019-10-17 | Y Mao | Skip calculation when U/V is SPVAL
!> 2020-11-06 | J Meng | Use UPP_MATH Module
!> 2022-05-26 | H Chuang | Use GSL approach for FV3R
!> 2024-10-16 | J Kenyon | Initialize ABSV as SPVAL for MPAS applications
!>
!> @author Russ Treadon W/NP2 @date 1992-12-22

Expand All @@ -1746,7 +1747,7 @@ SUBROUTINE CALVOR(UWND,VWND,ABSV)
use vrbls2d, only: f
use masks, only: gdlat, gdlon, dx, dy
use params_mod, only: d00, dtr, small, erad
use ctlblk_mod, only: jsta_2l, jend_2u, spval, modelname, global, &
use ctlblk_mod, only: jsta_2l, jend_2u, spval, modelname, submodelname, global, &
jsta, jend, im, jm, jsta_m, jend_m, gdsdegr,&
ista, iend, ista_m, iend_m, ista_2l, iend_2u, me, num_procs
use gridspec_mod, only: gridtype, dyval
Expand All @@ -1773,7 +1774,7 @@ SUBROUTINE CALVOR(UWND,VWND,ABSV)
!
! LOOP TO COMPUTE ABSOLUTE VORTICITY FROM WINDS.
!
IF(MODELNAME == 'RAPR') then
WenMeng-NOAA marked this conversation as resolved.
Show resolved Hide resolved
IF(MODELNAME == 'RAPR' .AND. SUBMODELNAME /= 'MPAS') then ! for RAP / HRRR only
!$omp parallel do private(i,j)
DO J=JSTA_2L,JEND_2U
DO I=ISTA_2L,IEND_2U
Expand Down
112 changes: 56 additions & 56 deletions tests/logs/rt.log.HERA
Original file line number Diff line number Diff line change
@@ -1,69 +1,69 @@
===== Start of UPP Regression Testing Log =====
UPP Hash Tested:
5f50ba05502fa9e0ff28d76d61ee03396f794cb6
e0e6e6025ea3e2ed2ee79ac69d4923501f1254cc

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

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

Total runtime: 00h:12m:34s
Test Date: 20241018 14:17:47
Total runtime: 00h:10m:39s
Test Date: 20241022 14:08:04
Summary Results:

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