From 4b5da802996357eef1aa30e66867f31548504d78 Mon Sep 17 00:00:00 2001 From: KarinaAsmar-NOAA <148993962+KarinaAsmar-NOAA@users.noreply.github.com> Date: Fri, 10 Jan 2025 09:10:15 -0500 Subject: [PATCH] New Velocity Potential and Stream Function Calculations (#1072) * add spectral strm and vpot at 200mb for SFS * replace full domain spectral with parallelized numerical computation for strm and vpot * add modelname==GFS condition and update author documentation * add authors calchipsi * add endif for GFS model block * remove uslp/vslp * add j kenyon log * fix: add submodelname to calvor parameters * remove deallocate from calvor * uncomment deallocate in calvor * comment out smoothing of strm/vpot * add modelname=GFS for 1021/1022 variables * fix space typo in . and. * remove smoothing function for strm/vpot * remove modelname==GFS if block from calchipsi * remove commented lines for npass and j loop * fix comments, indentations for standardized format * compute absv and div factors before poisson loops * remove if lvls block for psichi * clean up debugging code: remove timers and prints for poisson solver * restore if lvls block for psichi * add omp parallel for ATMP,DTMP loops * remove mpi_allreduce, reduce poisson loops and parallelize them * remove omp parallel for psi/chi blocks, change blocks to lowercase * add REALX times print after chi loop, with mpi_wtime() calls * restore mpi_allreduce with mpi_comm_comp (replacing mpi_comm_world) * fixes: restore err=0, pval initialized, fix psi-to-chi typo * change to all lowercase * typo fix * fix lowecase * change var names to ISOBARIC_SFC * comment out debug code * comment out mpi timers * add hera RT log * add hercules rt log * add orion rt log --------- Co-authored-by: WenMeng-NOAA <48260754+WenMeng-NOAA@users.noreply.github.com> Co-authored-by: FernandoAndrade-NOAA Co-authored-by: gspetro-NOAA --- parm/post_avblflds.xml | 16 ++ parm/sfs/postcntrl_sfs.xml | 12 + parm/sfs/postxconfig-NT-sfs.txt | 128 ++++++++- sorc/ncep_post.fd/MDL2P.f | 63 ++++- sorc/ncep_post.fd/UPP_PHYSICS.f | 476 +++++++++++++++++++++++++++++++- tests/logs/rt.log.HERA | 120 ++++---- tests/logs/rt.log.HERCULES | 120 ++++---- tests/logs/rt.log.ORION | 120 ++++---- 8 files changed, 862 insertions(+), 193 deletions(-) diff --git a/parm/post_avblflds.xml b/parm/post_avblflds.xml index ac518b3aa..d53017a81 100755 --- a/parm/post_avblflds.xml +++ b/parm/post_avblflds.xml @@ -8479,5 +8479,21 @@ 3.0 + + 1021 + VPOT_ON_ISOBARIC_SFC + VPOT + isobaric_sfc + 3.0 + + + + 1022 + STRM_ON_ISOBARIC_SFC + STRM + isobaric_sfc + 3.0 + + diff --git a/parm/sfs/postcntrl_sfs.xml b/parm/sfs/postcntrl_sfs.xml index 00dd6acb8..60b6afaaf 100644 --- a/parm/sfs/postcntrl_sfs.xml +++ b/parm/sfs/postcntrl_sfs.xml @@ -68,6 +68,18 @@ 5.0 + + VPOT_ON_ISOBARIC_SFC + 20000. + 3.0 + + + + STRM_ON_ISOBARIC_SFC + 20000. + 3.0 + + MSLET_ON_MEAN_SEA_LVL 6.0 diff --git a/parm/sfs/postxconfig-NT-sfs.txt b/parm/sfs/postxconfig-NT-sfs.txt index 9dd920d84..938f838e3 100644 --- a/parm/sfs/postxconfig-NT-sfs.txt +++ b/parm/sfs/postxconfig-NT-sfs.txt @@ -1,5 +1,5 @@ 1 -114 +117 GFSPRS 0 ncep_nco @@ -352,6 +352,132 @@ isobaric_sfc ? ? ? +1021 +VPOT_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +VPOT +? +? +isobaric_sfc +0 +? +1 +20000. +? +0 +? +0 +? +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +1022 +STRM_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +STRM +? +? +isobaric_sfc +0 +? +1 +20000. +? +0 +? +0 +? +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? +1022 +STRM_ON_ISOBARIC_SFC +? +1 +tmpl4_0 +STRM +? +? +isobaric_sfc +0 +? +1 +20000. +? +0 +? +0 +? +? +? +? +0 +0.0 +0 +0.0 +? +0 +0.0 +0 +0.0 +0 +0.0 +0 +0.0 +1 +3.0 +0 +0 +0 +? +? +? 23 MSLET_ON_MEAN_SEA_LVL ? diff --git a/sorc/ncep_post.fd/MDL2P.f b/sorc/ncep_post.fd/MDL2P.f index ef228bf79..a4a850be3 100644 --- a/sorc/ncep_post.fd/MDL2P.f +++ b/sorc/ncep_post.fd/MDL2P.f @@ -39,6 +39,7 @@ !> 2023-08-24 | Y Mao | Add gtg_on option for GTG interpolation !> 2023-09-12 | J Kenyon | Prevent spurious supercooled rain and cloud water !> 2024-04-23 | E James | Adding smoke emissions (ebb) from RRFS +!> 2024-09-23 | K Asmar | Add velocity potential and streamfunction from wind vectors !> 2024-12-12 | J Meng | Adding UUtah 2024 SLR algorithm !> !> @author T Black W/NP2 @date 1999-09-23 @@ -77,7 +78,7 @@ SUBROUTINE MDL2P(iostatusD3D) use rqstfld_mod, only: IGET, LVLS, ID, IAVBLFLD, LVLSXML use gridspec_mod, only: GRIDTYPE, MAPTYPE, DXVAL use upp_physics, only: FPVSNEW, CALRH, CALVOR, CALSLR_ROEBBER, CALSLR_UUTAH, & - CALSLR_UUTAH2 + CALSLR_UUTAH2, CALCHIPSI !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ! @@ -109,6 +110,7 @@ SUBROUTINE MDL2P(iostatusD3D) INTEGER, dimension(ista_2l:iend_2u,jsta_2l:jend_2u) :: NL1X, NL1XF real, dimension(ISTA_2L:IEND_2U,JSTA_2L:JEND_2U,LSM) :: TPRS, QPRS, FPRS real, dimension(ISTA_2L:IEND_2U,JSTA_2L:JEND_2U,LSM) :: RHPRS + real, dimension(ista_2l:iend_2u,jsta_2l:jend_2u) :: CHI, PSI ! INTEGER K, NSMOOTH ! @@ -230,6 +232,7 @@ SUBROUTINE MDL2P(iostatusD3D) (IGET(257) > 0) .OR. (IGET(258) > 0) .OR. & (IGET(294) > 0) .OR. (IGET(268) > 0) .OR. & (IGET(331) > 0) .OR. (IGET(326) > 0) .OR. & + (IGET(1021) > 0) .OR. (IGET(1022) > 0) .OR. & ! add D3D fields (IGET(354) > 0) .OR. (IGET(355) > 0) .OR. & (IGET(356) > 0) .OR. (IGET(357) > 0) .OR. & @@ -1818,6 +1821,64 @@ SUBROUTINE MDL2P(iostatusD3D) ENDIF ENDIF ! +!*** STREAMFUNCTION (PSI) AND VELOCITY POTENTIAL (CHI) +! + IF ( (IGET(1021) > 0 .or. IGET(1022) > 0) .and. MODELNAME == 'GFS' ) THEN + IF (LVLS(LP,IGET(1021)) > 0 .or. LVLS(LP,IGET(1022)) > 0) THEN + CALL CALCHIPSI(USL,VSL,CHI,PSI) +! print *,'me=',me,'EGRID1=',EGRID1(1:10,JSTA) +! +!*** CHI +! + IF (LVLS(LP,IGET(1021)) > 0) THEN +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ISTA,IEND + GRID1(I,J) = CHI(I,J) + ENDDO + ENDDO + if(grib == 'grib2')then + cfld = cfld + 1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(1021)) + fld_info(cfld)%lvl=LVLSXML(LP,IGET(1021)) +!$omp parallel do private(i,j,ii,jj) + do j=1,jend-jsta+1 + jj = jsta+j-1 + do i=1,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,jj) + enddo + enddo + endif + ENDIF !CHI +! +!*** PSI +! + IF (LVLS(LP,IGET(1022)) > 0) THEN +!$omp parallel do private(i,j) + DO J=JSTA,JEND + DO I=ISTA,IEND + GRID1(I,J) = PSI(I,J) + ENDDO + ENDDO + if(grib == 'grib2')then + cfld = cfld + 1 + fld_info(cfld)%ifld=IAVBLFLD(IGET(1022)) + fld_info(cfld)%lvl=LVLSXML(LP,IGET(1022)) +!$omp parallel do private(i,j,ii,jj) + do j=1,jend-jsta+1 + jj = jsta+j-1 + do i=1,iend-ista+1 + ii=ista+i-1 + datapd(i,j,cfld) = GRID1(ii,jj) + enddo + enddo + endif + ENDIF !PSI + ENDIF !LVLS(CHIPSI) + ENDIF !CHIPSI +! +! ! GEOSTROPHIC STREAMFUNCTION. IF (IGET(086) > 0) THEN IF (LVLS(LP,IGET(086)) > 0) THEN diff --git a/sorc/ncep_post.fd/UPP_PHYSICS.f b/sorc/ncep_post.fd/UPP_PHYSICS.f index 6cdeaea7f..b4fdc069b 100644 --- a/sorc/ncep_post.fd/UPP_PHYSICS.f +++ b/sorc/ncep_post.fd/UPP_PHYSICS.f @@ -28,6 +28,8 @@ !> !> tvirtual() computes virtual temperature. !> +!> calchipsi() computes streamfunction and velocity potential. +!> !> ### Program history log: !> Date | Programmer | Comments !> -----|------------|--------- @@ -35,6 +37,7 @@ !> 2022-07-11 | Jesse Meng | CALSLR_ROEBBER !> 2023-02-14 | Jesse Meng | CALSLR_UUTAH !> 2023-03-22 | Sam Trahan | Fix out-of-bounds access by not calling BOUND +!> 2024-11-21 | K. Asmar, J. Meng, G. Vandenberghe | CALCHIPSI !> 2024-12-12 | Jesse Meng | CALSLR_UUTAH2 !> !> @author Jesse Meng @date 2020-05-20 @@ -52,7 +55,7 @@ module upp_physics public :: CALRH_GFS, CALRH_GSD, CALRH_NAM public :: CALRH_PW public :: CALSLR_ROEBBER, CALSLR_UUTAH, CALSLR_UUTAH2 - public :: CALVOR + public :: CALVOR, CALCHIPSI public :: FPVSNEW public :: TVIRTUAL @@ -4501,6 +4504,476 @@ END SUBROUTINE CALSLR_UUTAH ! !------------------------------------------------------------------------------------- ! +!> Computes streamfunction and velocity potential from absolute vorticity +!> and divergence (computed as in calvor subroutine). +!> +!> Applies a poisson solver with 100,000 iterations to solve for +!> streamfunction and velocity potential from absolute vorticity +!> and divergence. +!> +!> @param[in] uwnd u-wind (m/s) at mass-points +!> @param[in] vwnd v-wind (m/s) at mass-points +!> @param[out] chi velocity potential (m^2/s) at mass-points +!> @param[out] psi streamfunction (m^2/s) at mass-points +!> +!> ### Program history log: +!> Date | Programmer | Comments +!> -----|------------|--------- +!> 2024-10-28 | K. Asmar and J. Meng | Initial +!> 2024-11-21 | George Vandenberghe | Add convergence condition +!> +!> @author(s) K. Asmar, J. Meng, G. Vandenberghe @date 2024-11-21 + subroutine calchipsi (uwnd,vwnd,chi,psi) +! + 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, & + jsta, jend, im, jm, jsta_m, jend_m, gdsdegr,& + ista, iend, ista_m, iend_m, ista_2l, iend_2u, & + me, num_procs, mpi_comm_comp + use gridspec_mod, only: gridtype, dyval + use upp_math, only: dvdxdudy, ddvdx, ddudy, uuavg + use mpi +! + implicit none +! +! declare variables. +! + real, dimension(ista_2l:iend_2u,jsta_2l:jend_2u), intent(in) :: uwnd, vwnd + real, dimension(ista_2l:iend_2u,jsta_2l:jend_2u) :: absv, div + real, dimension(ista_2l:iend_2u,jsta_2l:jend_2u), intent(inout) :: chi, psi + real, dimension(ista_2l:iend_2u,jsta_2l:jend_2u) :: ptmp, atmp, dtmp + real, dimension(im,2) :: glatpoles, coslpoles, upoles, vpoles, avpoles + real, dimension(im,jsta:jend) :: cosltemp, avtemp +! + real, allocatable :: wrk1(:,:), wrk2(:,:), wrk3(:,:), cosl(:,:) + integer, allocatable :: ihe(:),ihw(:), ie(:),iw(:) +! + integer, parameter :: npass2=2, npass3=3 + integer I,J,ip1,im1,ii,iir,iil,jj,jjk,JMT2,imb2, npass, nn, jtem, ier + real rtmp, rerr, err,pval,errmax,errmin,edif + real r2dx,r2dy,dvdx,dudy,uavg,tph1,tphi, tx1(im+2), tx2(im+2) + real*8 ta,tb,tc +! +!*************************************************************************** +! start calchipsi here. +! +! loop to compute absolute vorticity from winds. +! +!$omp parallel do private(i,j) + do j=jsta_2l,jend_2u + do i=ista_2l,iend_2u + absv(i,j) = spval + div(i,j) = spval + chi(i,j) = spval + psi(i,j) = spval + enddo + enddo +! + call exch(uwnd) + call exch(vwnd) +! + call exch(gdlat(ista_2l,jsta_2l)) + call exch(gdlon(ista_2l,jsta_2l)) +! + allocate (wrk1(ista:iend,jsta:jend), wrk2(ista:iend,jsta:jend), & + & wrk3(ista:iend,jsta:jend), cosl(ista_2l:iend_2u,jsta_2l:jend_2u)) + allocate(iw(im),ie(im)) + + imb2 = im/2 +!$omp parallel do private(i) + do i=ista,iend + ie(i) = i+1 + iw(i) = i-1 + enddo +! iw(1) = im +! ie(im) = 1 +! +! if(1>=jsta .and. 1<=jend)then +! if(cos(gdlat(1,1)*dtr)= small) then + wrk1(i,j) = 1.0 / (erad*cosl(i,j)) + else + wrk1(i,j) = 0. + end if + if(i == im .or. i == 1) then + wrk2(i,j) = 1.0 / ((360.+gdlon(ip1,J)-gdlon(im1,J))*dtr) !1/dlam + else + wrk2(i,j) = 1.0 / ((gdlon(ip1,J)-gdlon(im1,J))*dtr) !1/dlam + end if + enddo + enddo + call exch(cosl) +! + call fullpole( cosl(ista_2l:iend_2u,jsta_2l:jend_2u),coslpoles) + call fullpole(gdlat(ista_2l:iend_2u,jsta_2l:jend_2u),glatpoles) +! +!$omp parallel do private(i,j,ii) + do j=jsta,jend + if (j == 1) then + if(gdlat(ista,j) > 0.) then ! count from north to south + do i=ista,iend + ii = i + imb2 + if (ii > im) ii = ii - im + ! wrk3(i,j) = 1.0 / ((180.-gdlat(i,J+1)-gdlat(II,J))*dtr) !1/dphi + wrk3(i,j) = 1.0 / ((180.-gdlat(i,J+1)-glatpoles(ii,1))*dtr) !1/dphi + enddo + else ! count from south to north + do i=ista,iend + ii = i + imb2 + if (ii > im) ii = ii - im + ! wrk3(i,j) = 1.0 / ((180.+gdlat(i,J+1)+gdlat(II,J))*dtr) !1/dphi + wrk3(i,j) = 1.0 / ((180.+gdlat(i,J+1)+glatpoles(ii,1))*dtr) !1/dphi +! + enddo + end if + elseif (j == jm) then + if(gdlat(ista,j) < 0.) then ! count from north to south + do i=ista,iend + ii = i + imb2 + if (ii > im) ii = ii - im + ! wrk3(i,j) = 1.0 / ((180.+gdlat(i,J-1)+gdlat(II,J))*dtr) + wrk3(i,j) = 1.0 / ((180.+gdlat(i,J-1)+glatpoles(ii,2))*dtr) + enddo + else ! count from south to north + do i=ista,iend + ii = i + imb2 + if (ii > im) ii = ii - im + ! wrk3(i,j) = 1.0 / ((180.-gdlat(i,J-1)-gdlat(II,J))*dtr) + wrk3(i,j) = 1.0 / ((180.-gdlat(i,J-1)-glatpoles(ii,2))*dtr) + enddo + end if + else + do i=ista,iend + wrk3(i,j) = 1.0 / ((gdlat(I,J-1)-gdlat(I,J+1))*dtr) !1/dphi + enddo + endif + enddo +! + npass = 0 +! + jtem = jm / 18 + 1 +! + call fullpole(uwnd(ista_2l:iend_2u,jsta_2l:jend_2u),upoles) + call fullpole(vwnd(ista_2l:iend_2u,jsta_2l:jend_2u),vpoles) +! +!$omp parallel do private(i,j,ip1,im1,ii,jj,tx1,tx2) + do j=jsta,jend + if(j == 1) then ! near north or south pole + if(gdlat(ista,j) > 0.) then ! count from north to south + if(cosl(ista,j) >= small) then !not a pole point + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + ii = i + imb2 + if (ii > im) ii = ii - im + if(vwnd(ip1,j)==spval .or. vwnd(im1,j)==spval .or. & +! uwnd(ii,j)==spval .or. uwnd(i,j+1)==spval) cycle + upoles(ii,1)==spval .or. uwnd(i,j+1)==spval) cycle + absv(i,j) = ((vwnd(ip1,j)-vwnd(im1,j))*wrk2(i,j) & + & + (upoles(ii,1)*coslpoles(ii,1) & + & + uwnd(i,j+1)*cosl(i,j+1))*wrk3(i,j)) * wrk1(i,j) & + & + f(i,j) + div(i,j) = ((uwnd(ip1,j)-uwnd(im1,j))*wrk2(i,j) & + & - (vpoles(ii,1)*coslpoles(ii,1) & + & + vwnd(i,j+1)*cosl(i,j+1))*wrk3(i,j)) * wrk1(i,j) + enddo + else !pole point, compute at j=2 + jj = 2 + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + if(vwnd(ip1,jj)==spval .or. vwnd(im1,jj)==spval .or. & + uwnd(i,j)==spval .or. uwnd(i,jj+1)==spval) cycle + absv(i,j) = ((vwnd(ip1,jj)-vwnd(im1,jj))*wrk2(i,jj) & + & - (uwnd(i,j)*cosl(i,j) & + - uwnd(i,jj+1)*cosl(i,jj+1))*wrk3(i,jj)) * wrk1(i,jj) & + & + f(i,jj) + div(i,j) = ((uwnd(ip1,jj)-uwnd(im1,jj))*wrk2(i,jj) & + & + (vwnd(i,j)*cosl(i,j) & + - vwnd(i,jj+1)*cosl(i,jj+1))*wrk3(i,jj)) * wrk1(i,jj) + enddo + endif + else + if(cosl(ista,j) >= small) then !not a pole point + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + ii = i + imb2 + if (ii > im) ii = ii - im + if(vwnd(ip1,j)==spval .or. vwnd(im1,j)==spval .or. & +! uwnd(ii,j)==spval .or. uwnd(i,j+1)==spval) cycle + upoles(ii,1)==spval .or. uwnd(i,j+1)==spval) cycle + absv(i,j) = ((vwnd(ip1,j)-vwnd(im1,j))*wrk2(i,j) & + & - (upoles(ii,1)*coslpoles(ii,1) & + & + uwnd(i,j+1)*cosl(i,j+1))*wrk3(i,j)) * wrk1(i,j) & + & + f(i,j) + div(i,j) = ((uwnd(ip1,j)-uwnd(im1,j))*wrk2(i,j) & + & + (vpoles(ii,1)*coslpoles(ii,1) & + & + vwnd(i,j+1)*cosl(i,j+1))*wrk3(i,j)) * wrk1(i,j) + enddo + else !pole point, compute at j=2 + jj = 2 + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + if(vwnd(ip1,jj)==spval .or. vwnd(im1,jj)==spval .or. & + uwnd(i,j)==spval .or. uwnd(i,jj+1)==spval) cycle + absv(i,j) = ((vwnd(ip1,jj)-vwnd(im1,jj))*wrk2(i,jj) & + & + (uwnd(i,j)*cosl(i,j) & + - uwnd(i,jj+1)*cosl(i,jj+1))*wrk3(i,jj)) * wrk1(i,jj) & + & + f(i,jj) + div(i,j) = ((uwnd(ip1,jj)-uwnd(im1,jj))*wrk2(i,jj) & + & - (vwnd(i,j)*cosl(i,j) & + - vwnd(i,jj+1)*cosl(i,jj+1))*wrk3(i,jj)) * wrk1(i,jj) + enddo + endif + endif + else if(j == jm) then ! near north or south pole + if(gdlat(ista,j) < 0.) then ! count from north to south + if(cosl(ista,j) >= small) then !not a pole point + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + ii = i + imb2 + if (ii > im) ii = ii - im + if(vwnd(ip1,j)==spval .or. vwnd(im1,j)==spval .or. & +! uwnd(i,j-1)==spval .or. uwnd(ii,j)==spval) cycle + uwnd(i,j-1)==spval .or. upoles(ii,2)==spval) cycle + absv(i,j) = ((vwnd(ip1,j)-vwnd(im1,j))*wrk2(i,j) & + & - (uwnd(i,j-1)*cosl(i,j-1) & + & + upoles(ii,2)*coslpoles(ii,2))*wrk3(i,j)) * wrk1(i,j) & + & + f(i,j) + div(i,j) = ((uwnd(ip1,j)-uwnd(im1,j))*wrk2(i,j) & + & + (vwnd(i,j-1)*cosl(i,j-1) & + & + vpoles(ii,2)*coslpoles(ii,2))*wrk3(i,j)) * wrk1(i,j) + enddo + else !pole point,compute at jm-1 + jj = jm-1 + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + if(vwnd(ip1,jj)==spval .or. vwnd(im1,jj)==spval .or. & + uwnd(i,jj-1)==spval .or. uwnd(i,j)==spval) cycle + absv(i,j) = ((vwnd(ip1,jj)-vwnd(im1,jj))*wrk2(i,jj) & + & - (uwnd(i,jj-1)*cosl(i,jj-1) & + & - uwnd(i,j)*cosl(i,j))*wrk3(i,jj)) * wrk1(i,jj) & + & + f(i,jj) + div(i,j) = ((uwnd(ip1,jj)-uwnd(im1,jj))*wrk2(i,jj) & + & + (vwnd(i,jj-1)*cosl(i,jj-1) & + & - vwnd(i,j)*cosl(i,j))*wrk3(i,jj)) * wrk1(i,jj) + enddo + endif + else + if(cosl(ista,j) >= small) then !not a pole point + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + ii = i + imb2 + if (ii > im) ii = ii - im + if(vwnd(ip1,j)==spval .or. vwnd(im1,j)==spval .or. & +! uwnd(i,j-1)==spval .or. uwnd(ii,j)==spval) cycle + uwnd(i,j-1)==spval .or. upoles(ii,2)==spval) cycle + absv(i,j) = ((vwnd(ip1,j)-vwnd(im1,j))*wrk2(i,j) & + & + (uwnd(i,j-1)*cosl(i,j-1) & + & + upoles(ii,2)*coslpoles(ii,2))*wrk3(i,j)) * wrk1(i,j) & + & + f(i,j) + div(i,j) = ((uwnd(ip1,j)-uwnd(im1,j))*wrk2(i,j) & + & - (vwnd(i,j-1)*cosl(i,j-1) & + & + vpoles(ii,2)*coslpoles(ii,2))*wrk3(i,j)) * wrk1(i,j) + enddo + else !pole point,compute at jm-1 + jj = jm-1 + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + if(vwnd(ip1,jj)==spval .or. vwnd(im1,jj)==spval .or. & + uwnd(i,jj-1)==spval .or. uwnd(i,j)==spval) cycle + absv(i,j) = ((vwnd(ip1,jj)-vwnd(im1,jj))*wrk2(i,jj) & + & + (uwnd(i,jj-1)*cosl(i,jj-1) & + & - uwnd(i,j)*cosl(i,j))*wrk3(i,jj)) * wrk1(i,jj) & + & + f(i,jj) + div(i,j) = ((uwnd(ip1,jj)-uwnd(im1,jj))*wrk2(i,jj) & + & - (vwnd(i,jj-1)*cosl(i,jj-1) & + & - vwnd(i,j)*cosl(i,j))*wrk3(i,jj)) * wrk1(i,jj) + enddo + endif + endif + else + do i=ista,iend + ip1 = ie(i) + im1 = iw(i) + if(vwnd(ip1,j)==spval .or. vwnd(im1,j)==spval .or. & + uwnd(i,j-1)==spval .or. uwnd(i,j+1)==spval) cycle + absv(i,j) = ((vwnd(ip1,j)-vwnd(im1,j))*wrk2(i,j) & + & - (uwnd(i,j-1)*cosl(i,j-1) & + - uwnd(i,j+1)*cosl(i,j+1))*wrk3(i,j)) * wrk1(i,j) & + + f(i,j) + div(i,j) = ((uwnd(ip1,j)-uwnd(im1,j))*wrk2(i,j) & + & + (vwnd(i,j-1)*cosl(i,j-1) & + - vwnd(i,j+1)*cosl(i,j+1))*wrk3(i,j)) * wrk1(i,j) + enddo + end if + if (npass > 0) then + do i=ista,iend + tx1(i) = absv(i,j) + enddo + do nn=1,npass + do i=ista,iend + tx2(i+1) = tx1(i) + enddo + tx2(1) = tx2(im+1) + tx2(im+2) = tx2(2) + do i=2,im+1 + tx1(i-1) = 0.25 * (tx2(i-1) + tx2(i+1)) + 0.5*tx2(i) + enddo + enddo + do i=ista,iend + absv(i,j) = tx1(i) + enddo + endif + end do ! end of j loop + +! deallocate (wrk1, wrk2, wrk3, cosl) +! gfs use lon avg as one scaler value for pole point +! + ! call poleavg(im,jm,jsta,jend,small,cosl(1,jsta),spval,absv(1,jsta)) +! + call exch(absv(ista_2l:iend_2u,jsta_2l:jend_2u)) + call fullpole(absv(ista_2l:iend_2u,jsta_2l:jend_2u),avpoles) +! + cosltemp=spval + if(jsta== 1) cosltemp(1:im, 1)=coslpoles(1:im,1) + if(jend==jm) cosltemp(1:im,jm)=coslpoles(1:im,2) + avtemp=spval + if(jsta== 1) avtemp(1:im, 1)=avpoles(1:im,1) + if(jend==jm) avtemp(1:im,jm)=avpoles(1:im,2) +! + call poleavg(im,jm,jsta,jend,small,cosltemp(1,jsta),spval,avtemp(1,jsta)) +! + if(jsta== 1) absv(ista:iend, 1)=avtemp(ista:iend, 1) + if(jend==jm) absv(ista:iend,jm)=avtemp(ista:iend,jm) +! +! deallocate (wrk1, wrk11, wrk2, wrk3, cosl, iw, ie) +! + call exch(absv(ista_2l:iend_2u,jsta_2l:jend_2u)) + call exch(div(ista_2l:iend_2u,jsta_2l:jend_2u)) +! +! store absv and div factors before poisson loops +!$omp parallel do private(i,j) + do j=jsta,jend + do i=ista,iend + atmp(i,j)=0.25*(absv(i,j)-f(i,j))/(wrk2(i,j)*wrk1(i,j)*wrk3(i,j)*wrk1(i,j)*cosl(i,j)*4.) + dtmp(i,j)=0.25*div(i,j)/(wrk2(i,j)*wrk1(i,j)*wrk3(i,j)*wrk1(i,j)*cosl(i,j)*4.) + enddo + enddo +! +! poisson solver for psi and chi + psi=0. +! ta=mpi_wtime() + do jjk=1,1000 + do jj=1,300 + call exch(psi(ista_2l:iend_2u,jsta_2l:jend_2u)) + ptmp=psi + err=0 + do j=jsta,jend + do i=ista,iend + if (j>1 .and. j1 .and. j Computes snow solid-liquid-ratio slr using the Steenburgh 2024 algorithm. !> !> Obtained the code and data from U of Utah Jim Steenburgh, @@ -4718,4 +5191,3 @@ end subroutine calslr_uutah2 !------------------------------------------------------------------------------------- ! end module upp_physics - diff --git a/tests/logs/rt.log.HERA b/tests/logs/rt.log.HERA index 46861970f..c87b497dd 100644 --- a/tests/logs/rt.log.HERA +++ b/tests/logs/rt.log.HERA @@ -1,75 +1,69 @@ ===== Start of UPP Regression Testing Log ===== UPP Hash Tested: -6f373c84a5e96eb5596c816cf00f0771cd43d8af +d29834b59c0e0978e4b21da2c275453d35466eca Submodule hashes: -179cae1dd84401cf25d250bd9102e66560a9d328 sorc/libIFI.fd -529f870d33b65c3b6c1aa3c3236b94efc3bd336d sorc/ncep_post.fd/post_gtg.fd -Run directory: /scratch2/NAGAPE/epic/Gillian.Petro/RTs/upp-rts/1104/ci/rundir/upp-HERA +Run directory: /scratch2/NAGAPE/epic/Fernando.Andrade-maldonado/regression-tests/upp/1072/UPP/ci/rundir/upp-HERA Baseline directory: /scratch2/NAGAPE/epic/UPP/test_suite -Total runtime: 00h:13m:56s -Test Date: 20241223 15:19:18 +Total runtime: 00h:10m:45s +Test Date: 20250108 20:23:33 Summary Results: -12/23 15:08:58Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk -12/23 15:09:17Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk -12/23 15:09:34Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk -12/23 15:09:37Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk -12/23 15:09:38Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk -12/23 15:09:53Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk -12/23 15:10:09Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk -12/23 15:10:11Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk -12/23 15:10:12Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk -12/23 15:10:17Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk -12/23 15:10:18Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk -12/23 15:10:19Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk -12/23 15:10:31Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16 -12/23 15:10:32Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk -12/23 15:10:47Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk -12/23 15:10:49Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk -12/23 15:10:49Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk -12/23 15:10:50Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk -12/23 15:10:51Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk -12/23 15:10:52Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk -12/23 15:10:55Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk -12/23 15:11:09Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk -12/23 15:12:27Z -rtma pe test: your new post executable did not generate bit-identical NATLEV00.tm00 as the trunk -12/23 15:12:30Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk -12/23 15:12:30Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk -12/23 15:13:23Z -fv3r test: your new post executable did not generate bit-identical NATLEV10.tm00 as the trunk -12/23 15:13:28Z -rtma test: your new post executable did not generate bit-identical NATLEV00.tm00 as the trunk -12/23 15:13:32Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk -12/23 15:13:32Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk -12/23 15:13:39Z -fv3r pe test: your new post executable did not generate bit-identical NATLEV10.tm00 as the trunk -12/23 15:18:20Z -fv3gfs test: your new post executable did not generate bit-identical gfs.t00z.master.grb2f006 as the trunk -12/23 15:18:23Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk -12/23 15:18:24Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk -12/23 15:19:05Z -fv3gfs pe test: your new post executable did not generate bit-identical gfs.t00z.master.grb2f006 as the trunk -12/23 15:19:08Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk -12/23 15:19:08Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk -12/23 15:10:53Z -Runtime: nmmb_test 00:00:59 -- baseline 00:01:00 -12/23 15:10:54Z -Runtime: nmmb_pe_test 00:01:07 -- baseline 00:01:00 -12/23 15:10:54Z -Runtime: fv3gefs_test 00:00:26 -- baseline 00:40:00 -12/23 15:10:54Z -Runtime: fv3gefs_pe_test 00:00:30 -- baseline 00:40:00 -12/23 15:10:54Z -Runtime: rap_test 00:01:02 -- baseline 00:02:00 -12/23 15:10:55Z -Runtime: rap_pe_test 00:01:13 -- baseline 00:02:00 -12/23 15:10:55Z -Runtime: hrrr_test 00:02:26 -- baseline 00:02:00 -12/23 15:10:56Z -Runtime: hrrr_pe_test 00:01:57 -- baseline 00:02:00 -12/23 15:18:31Z -Runtime: fv3gfs_test 00:09:01 -- baseline 00:15:00 -12/23 15:19:16Z -Runtime: fv3gfs_pe_test 00:09:45 -- baseline 00:15:00 -12/23 15:19:17Z -Runtime: fv3r_test 00:04:00 -- baseline 00:03:00 -12/23 15:19:17Z -Runtime: fv3r_pe_test 00:04:00 -- baseline 00:03:00 -12/23 15:19:17Z -Runtime: fv3hafs_test 00:00:34 -- baseline 00:03:00 -12/23 15:19:18Z -Runtime: fv3hafs_pe_test 00:00:32 -- baseline 00:03:00 -12/23 15:19:18Z -Runtime: rtma_test 00:04:09 -- baseline 00:03:00 -12/23 15:19:18Z -Runtime: rtma_test_pe_test 00:04:06 -- baseline -There are changes in results for case fv3r_pe_test in NATLEV10.tm00 -There are changes in results for case fv3r in NATLEV10.tm00 -There are changes in results for case gfs_pe_test in gfs.t00z.master.grb2f006 -There are changes in results for case gfs in gfs.t00z.master.grb2f006 -There are changes in results for case rtma_pe_test in NATLEV00.tm00 -There are changes in results for case rtma in NATLEV00.tm00 -Refer to .diff files in rundir: /scratch2/NAGAPE/epic/Gillian.Petro/RTs/upp-rts/1104/ci/rundir/upp-HERA for details on differences in results for each case. +01/08 20:16:09Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk +01/08 20:16:12Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk +01/08 20:16:30Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk +01/08 20:16:35Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk +01/08 20:16:36Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk +01/08 20:16:53Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16 +01/08 20:16:54Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk +01/08 20:16:54Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk +01/08 20:16:54Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk +01/08 20:16:56Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk +01/08 20:16:57Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk +01/08 20:16:59Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk +01/08 20:17:01Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk +01/08 20:17:02Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk +01/08 20:17:14Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk +01/08 20:17:16Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk +01/08 20:17:19Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk +01/08 20:17:20Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk +01/08 20:17:22Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk +01/08 20:17:24Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk +01/08 20:17:25Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk +01/08 20:17:25Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk +01/08 20:17:27Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk +01/08 20:17:28Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk +01/08 20:17:45Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk +01/08 20:17:46Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk +01/08 20:17:48Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk +01/08 20:18:10Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk +01/08 20:18:11Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk +01/08 20:18:12Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk +01/08 20:22:43Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk +01/08 20:22:47Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk +01/08 20:22:47Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk +01/08 20:23:26Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk +01/08 20:23:30Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk +01/08 20:23:30Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk +01/08 20:17:10Z -Runtime: nmmb_test 00:01:36 -- baseline 00:01:00 +01/08 20:17:11Z -Runtime: nmmb_pe_test 00:01:31 -- baseline 00:01:00 +01/08 20:17:11Z -Runtime: fv3gefs_test 00:01:28 -- baseline 00:40:00 +01/08 20:17:11Z -Runtime: fv3gefs_pe_test 00:01:04 -- baseline 00:40:00 +01/08 20:17:12Z -Runtime: rap_test 00:01:10 -- baseline 00:02:00 +01/08 20:17:12Z -Runtime: rap_pe_test 00:01:28 -- baseline 00:02:00 +01/08 20:18:13Z -Runtime: hrrr_test 00:02:46 -- baseline 00:02:00 +01/08 20:18:13Z -Runtime: hrrr_pe_test 00:02:22 -- baseline 00:02:00 +01/08 20:23:00Z -Runtime: fv3gfs_test 00:07:21 -- baseline 00:15:00 +01/08 20:23:31Z -Runtime: fv3gfs_pe_test 00:08:04 -- baseline 00:15:00 +01/08 20:23:31Z -Runtime: fv3r_test 00:01:53 -- baseline 00:03:00 +01/08 20:23:32Z -Runtime: fv3r_pe_test 00:01:54 -- baseline 00:03:00 +01/08 20:23:32Z -Runtime: fv3hafs_test 00:00:43 -- baseline 00:03:00 +01/08 20:23:32Z -Runtime: fv3hafs_pe_test 00:00:46 -- baseline 00:03:00 +01/08 20:23:33Z -Runtime: rtma_test 00:02:02 -- baseline 00:03:00 +01/08 20:23:33Z -Runtime: rtma_test_pe_test 00:01:59 -- baseline +No changes in test results detected. ===== End of UPP Regression Testing Log ===== diff --git a/tests/logs/rt.log.HERCULES b/tests/logs/rt.log.HERCULES index 6bb869605..b9e2fdd38 100644 --- a/tests/logs/rt.log.HERCULES +++ b/tests/logs/rt.log.HERCULES @@ -1,75 +1,69 @@ ===== Start of UPP Regression Testing Log ===== UPP Hash Tested: -6f373c84a5e96eb5596c816cf00f0771cd43d8af +d29834b59c0e0978e4b21da2c275453d35466eca Submodule hashes: -179cae1dd84401cf25d250bd9102e66560a9d328 sorc/libIFI.fd -529f870d33b65c3b6c1aa3c3236b94efc3bd336d sorc/ncep_post.fd/post_gtg.fd -Run directory: /work/noaa/epic/gpetro/hercules/RTs/upp-rts/1104/ci/rundir/upp-HERCULES +Run directory: /work/noaa/epic/gpetro/hercules/RTs/upp-rts/1072/ci/rundir/upp-HERCULES Baseline directory: /work/noaa/epic/UPP -Total runtime: 00h:14m:52s -Test Date: 20241223 09:20:17 +Total runtime: 00h:11m:22s +Test Date: 20250108 14:13:00 Summary Results: -12/23 15:08:36Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk -12/23 15:08:37Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk -12/23 15:08:37Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk -12/23 15:08:42Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16 -12/23 15:08:42Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk -12/23 15:08:49Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk -12/23 15:08:50Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk -12/23 15:08:50Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk -12/23 15:08:59Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk -12/23 15:09:02Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk -12/23 15:09:08Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk -12/23 15:09:08Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk -12/23 15:09:12Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk -12/23 15:09:13Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk -12/23 15:09:14Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk -12/23 15:09:32Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk -12/23 15:09:32Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk -12/23 15:09:34Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk -12/23 15:10:20Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk -12/23 15:11:40Z -fv3r pe test: your new post executable did not generate bit-identical NATLEV10.tm00 as the trunk -12/23 15:12:37Z -fv3r test: your new post executable did not generate bit-identical NATLEV10.tm00 as the trunk -12/23 15:13:00Z -rtma test: your new post executable did not generate bit-identical NATLEV00.tm00 as the trunk -12/23 15:13:02Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk -12/23 15:13:02Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk -12/23 15:13:02Z -rtma pe test: your new post executable did not generate bit-identical NATLEV00.tm00 as the trunk -12/23 15:13:04Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk -12/23 15:13:04Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk -12/23 15:13:28Z -fv3gfs pe test: your new post executable did not generate bit-identical gfs.t00z.master.grb2f006 as the trunk -12/23 15:13:29Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk -12/23 15:13:29Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk -12/23 15:16:56Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk -12/23 15:16:56Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk -12/23 15:16:58Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk -12/23 15:20:06Z -fv3gfs test: your new post executable did not generate bit-identical gfs.t00z.master.grb2f006 as the trunk -12/23 15:20:07Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk -12/23 15:20:07Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk -12/23 15:09:01Z -Runtime: nmmb_test 00:01:18 -- baseline 00:03:00 -12/23 15:09:01Z -Runtime: nmmb_pe_test 00:01:05 -- baseline 00:03:00 -12/23 15:09:01Z -Runtime: fv3gefs_test 00:00:18 -- baseline 01:20:00 -12/23 15:09:16Z -Runtime: fv3gefs_pe_test 00:00:21 -- baseline 01:20:00 -12/23 15:09:46Z -Runtime: rap_test 00:00:51 -- baseline 00:02:00 -12/23 15:09:46Z -Runtime: rap_pe_test 00:01:09 -- baseline 00:02:00 -12/23 15:17:01Z -Runtime: hrrr_test 00:08:17 -- baseline 00:02:00 -12/23 15:17:01Z -Runtime: hrrr_pe_test 00:01:41 -- baseline 00:02:00 -12/23 15:20:17Z -Runtime: fv3gfs_test 00:12:34 -- baseline 00:18:00 -12/23 15:20:17Z -Runtime: fv3gfs_pe_test 00:05:56 -- baseline 00:18:00 -12/23 15:20:17Z -Runtime: fv3r_test 00:05:04 -- baseline 00:03:00 -12/23 15:20:17Z -Runtime: fv3r_pe_test 00:04:07 -- baseline 00:03:00 -12/23 15:20:17Z -Runtime: fv3hafs_test 00:00:27 -- baseline 00:00:40 -12/23 15:20:17Z -Runtime: fv3hafs_pe_test 00:00:27 -- baseline 00:00:40 -12/23 15:20:17Z -Runtime: rtma_test 00:04:21 -- baseline 00:04:00 -12/23 15:20:17Z -Runtime: rtma_pe_test 00:04:23 -- baseline 00:04:00 -There are changes in results for case rtma_pe_test in NATLEV00.tm00 -There are changes in results for case gfs in gfs.t00z.master.grb2f006 -There are changes in results for case fv3r in NATLEV10.tm00 -There are changes in results for case rtma in NATLEV00.tm00 -There are changes in results for case fv3r_pe_test in NATLEV10.tm00 -There are changes in results for case gfs_pe_test in gfs.t00z.master.grb2f006 -Refer to .diff files in rundir: /work/noaa/epic/gpetro/hercules/RTs/upp-rts/1104/ci/rundir/upp-HERCULES for details on differences in results for each case. +01/08 20:04:01Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk +01/08 20:04:03Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk +01/08 20:04:11Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk +01/08 20:04:11Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk +01/08 20:04:37Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk +01/08 20:04:38Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk +01/08 20:04:38Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16 +01/08 20:04:39Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk +01/08 20:04:43Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk +01/08 20:04:44Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk +01/08 20:04:44Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk +01/08 20:04:51Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk +01/08 20:04:52Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk +01/08 20:04:52Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk +01/08 20:05:21Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk +01/08 20:05:22Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk +01/08 20:05:23Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk +01/08 20:05:23Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk +01/08 20:05:26Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk +01/08 20:05:50Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk +01/08 20:05:53Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk +01/08 20:06:00Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk +01/08 20:06:00Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk +01/08 20:06:01Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk +01/08 20:06:01Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk +01/08 20:06:02Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk +01/08 20:06:02Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk +01/08 20:08:09Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk +01/08 20:08:10Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk +01/08 20:08:11Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk +01/08 20:10:08Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk +01/08 20:10:09Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk +01/08 20:10:09Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk +01/08 20:12:51Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk +01/08 20:12:51Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk +01/08 20:12:51Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk +01/08 20:04:58Z -Runtime: nmmb_test 00:01:08 -- baseline 00:03:00 +01/08 20:04:58Z -Runtime: nmmb_pe_test 00:01:01 -- baseline 00:03:00 +01/08 20:04:59Z -Runtime: fv3gefs_test 00:00:17 -- baseline 01:20:00 +01/08 20:04:59Z -Runtime: fv3gefs_pe_test 00:00:19 -- baseline 01:20:00 +01/08 20:04:59Z -Runtime: rap_test 00:00:54 -- baseline 00:02:00 +01/08 20:04:59Z -Runtime: rap_pe_test 00:00:55 -- baseline 00:02:00 +01/08 20:08:14Z -Runtime: hrrr_test 00:04:27 -- baseline 00:02:00 +01/08 20:08:14Z -Runtime: hrrr_pe_test 00:01:39 -- baseline 00:02:00 +01/08 20:12:59Z -Runtime: fv3gfs_test 00:09:07 -- baseline 00:18:00 +01/08 20:12:59Z -Runtime: fv3gfs_pe_test 00:06:25 -- baseline 00:18:00 +01/08 20:12:59Z -Runtime: fv3r_test 00:01:42 -- baseline 00:03:00 +01/08 20:12:59Z -Runtime: fv3r_pe_test 00:02:09 -- baseline 00:03:00 +01/08 20:12:59Z -Runtime: fv3hafs_test 00:00:27 -- baseline 00:00:40 +01/08 20:12:59Z -Runtime: fv3hafs_pe_test 00:00:27 -- baseline 00:00:40 +01/08 20:12:59Z -Runtime: rtma_test 00:02:17 -- baseline 00:04:00 +01/08 20:13:00Z -Runtime: rtma_pe_test 00:02:18 -- baseline 00:04:00 +No changes in test results detected. ===== End of UPP Regression Testing Log ===== diff --git a/tests/logs/rt.log.ORION b/tests/logs/rt.log.ORION index e1d2d6038..d9feabcd2 100644 --- a/tests/logs/rt.log.ORION +++ b/tests/logs/rt.log.ORION @@ -1,75 +1,69 @@ ===== Start of UPP Regression Testing Log ===== UPP Hash Tested: -6f373c84a5e96eb5596c816cf00f0771cd43d8af +d29834b59c0e0978e4b21da2c275453d35466eca Submodule hashes: -179cae1dd84401cf25d250bd9102e66560a9d328 sorc/libIFI.fd -529f870d33b65c3b6c1aa3c3236b94efc3bd336d sorc/ncep_post.fd/post_gtg.fd -Run directory: /work/noaa/epic/gpetro/orion/RTs/upp-rts/1104/ci/rundir/upp-ORION +Run directory: /work/noaa/epic/gpetro/orion/RTs/upp-rts/1072/ci/rundir/upp-ORION Baseline directory: /work/noaa/epic/UPP -Total runtime: 00h:13m:00s -Test Date: 20241223 09:18:28 +Total runtime: 00h:13m:13s +Test Date: 20250108 14:14:59 Summary Results: -12/23 15:09:03Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk -12/23 15:09:07Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk -12/23 15:09:13Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk -12/23 15:09:13Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk -12/23 15:09:55Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk -12/23 15:09:56Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk -12/23 15:09:56Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk -12/23 15:10:04Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16 -12/23 15:10:05Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk -12/23 15:10:06Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk -12/23 15:10:07Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk -12/23 15:10:07Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk -12/23 15:10:29Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk -12/23 15:10:29Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk -12/23 15:10:45Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk -12/23 15:10:50Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk -12/23 15:11:19Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk -12/23 15:11:20Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk -12/23 15:11:21Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk -12/23 15:15:53Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk -12/23 15:15:54Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk -12/23 15:15:55Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk -12/23 15:15:56Z -fv3r test: your new post executable did not generate bit-identical NATLEV10.tm00 as the trunk -12/23 15:15:58Z -fv3r pe test: your new post executable did not generate bit-identical NATLEV10.tm00 as the trunk -12/23 15:16:21Z -rtma pe test: your new post executable did not generate bit-identical NATLEV00.tm00 as the trunk -12/23 15:16:23Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk -12/23 15:16:24Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk -12/23 15:16:30Z -rtma test: your new post executable did not generate bit-identical NATLEV00.tm00 as the trunk -12/23 15:16:32Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk -12/23 15:16:33Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk -12/23 15:16:37Z -fv3gfs pe test: your new post executable did not generate bit-identical gfs.t00z.master.grb2f006 as the trunk -12/23 15:16:37Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk -12/23 15:16:38Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk -12/23 15:18:16Z -fv3gfs test: your new post executable did not generate bit-identical gfs.t00z.master.grb2f006 as the trunk -12/23 15:18:17Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk -12/23 15:18:17Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk -12/23 15:10:10Z -Runtime: nmmb_test 00:01:26 -- baseline 00:03:00 -12/23 15:10:11Z -Runtime: nmmb_pe_test 00:01:15 -- baseline 00:03:00 -12/23 15:10:11Z -Runtime: fv3gefs_test 00:00:22 -- baseline 01:20:00 -12/23 15:10:11Z -Runtime: fv3gefs_pe_test 00:00:26 -- baseline 01:20:00 -12/23 15:10:41Z -Runtime: rap_test 00:01:48 -- baseline 00:02:00 -12/23 15:10:41Z -Runtime: rap_pe_test 00:01:24 -- baseline 00:02:00 -12/23 15:15:56Z -Runtime: hrrr_test 00:07:14 -- baseline 00:02:00 -12/23 15:15:57Z -Runtime: hrrr_pe_test 00:02:40 -- baseline 00:02:00 -12/23 15:18:27Z -Runtime: fv3gfs_test 00:09:36 -- baseline 00:18:00 -12/23 15:18:27Z -Runtime: fv3gfs_pe_test 00:07:57 -- baseline 00:18:00 -12/23 15:18:27Z -Runtime: fv3r_test 00:07:15 -- baseline 00:03:00 -12/23 15:18:27Z -Runtime: fv3r_pe_test 00:07:17 -- baseline 00:03:00 -12/23 15:18:27Z -Runtime: fv3hafs_test 00:00:32 -- baseline 00:00:40 -12/23 15:18:27Z -Runtime: fv3hafs_pe_test 00:00:32 -- baseline 00:00:40 -12/23 15:18:27Z -Runtime: rtma_test 00:07:52 -- baseline 00:04:00 -12/23 15:18:27Z -Runtime: rtma_pe_test 00:07:43 -- baseline 00:04:00 -There are changes in results for case rtma_pe_test in NATLEV00.tm00 -There are changes in results for case gfs in gfs.t00z.master.grb2f006 -There are changes in results for case fv3r in NATLEV10.tm00 -There are changes in results for case rtma in NATLEV00.tm00 -There are changes in results for case fv3r_pe_test in NATLEV10.tm00 -There are changes in results for case gfs_pe_test in gfs.t00z.master.grb2f006 -Refer to .diff files in rundir: /work/noaa/epic/gpetro/orion/RTs/upp-rts/1104/ci/rundir/upp-ORION for details on differences in results for each case. +01/08 20:05:23Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk +01/08 20:05:29Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk +01/08 20:05:29Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk +01/08 20:05:37Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk +01/08 20:06:14Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk +01/08 20:06:16Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk +01/08 20:06:16Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk +01/08 20:06:20Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16 +01/08 20:06:21Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk +01/08 20:06:23Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk +01/08 20:06:23Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk +01/08 20:06:24Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk +01/08 20:06:24Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk +01/08 20:06:25Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk +01/08 20:07:01Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk +01/08 20:07:05Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk +01/08 20:07:09Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk +01/08 20:07:13Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk +01/08 20:07:37Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk +01/08 20:07:37Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk +01/08 20:07:39Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk +01/08 20:07:39Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk +01/08 20:07:40Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk +01/08 20:07:41Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk +01/08 20:07:42Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk +01/08 20:07:42Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk +01/08 20:07:42Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk +01/08 20:12:05Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk +01/08 20:12:06Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk +01/08 20:12:07Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk +01/08 20:12:55Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk +01/08 20:12:56Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk +01/08 20:12:56Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk +01/08 20:14:51Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk +01/08 20:14:52Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk +01/08 20:14:52Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk +01/08 20:06:27Z -Runtime: nmmb_test 00:01:28 -- baseline 00:03:00 +01/08 20:06:27Z -Runtime: nmmb_pe_test 00:01:20 -- baseline 00:03:00 +01/08 20:06:27Z -Runtime: fv3gefs_test 00:00:40 -- baseline 01:20:00 +01/08 20:06:27Z -Runtime: fv3gefs_pe_test 00:00:26 -- baseline 01:20:00 +01/08 20:06:27Z -Runtime: rap_test 00:01:27 -- baseline 00:02:00 +01/08 20:06:27Z -Runtime: rap_pe_test 00:01:24 -- baseline 00:02:00 +01/08 20:12:13Z -Runtime: hrrr_test 00:07:10 -- baseline 00:02:00 +01/08 20:12:13Z -Runtime: hrrr_pe_test 00:02:42 -- baseline 00:02:00 +01/08 20:14:58Z -Runtime: fv3gfs_test 00:09:55 -- baseline 00:18:00 +01/08 20:14:58Z -Runtime: fv3gfs_pe_test 00:07:59 -- baseline 00:18:00 +01/08 20:14:58Z -Runtime: fv3r_test 00:02:08 -- baseline 00:03:00 +01/08 20:14:58Z -Runtime: fv3r_pe_test 00:02:16 -- baseline 00:03:00 +01/08 20:14:58Z -Runtime: fv3hafs_test 00:00:32 -- baseline 00:00:40 +01/08 20:14:58Z -Runtime: fv3hafs_pe_test 00:00:32 -- baseline 00:00:40 +01/08 20:14:58Z -Runtime: rtma_test 00:02:45 -- baseline 00:04:00 +01/08 20:14:59Z -Runtime: rtma_pe_test 00:02:45 -- baseline 00:04:00 +No changes in test results detected. ===== End of UPP Regression Testing Log =====