diff --git a/parm/hfip_postcntrl.xml b/parm/hfip_postcntrl.xml
index e2de5b25a..370282e85 100755
--- a/parm/hfip_postcntrl.xml
+++ b/parm/hfip_postcntrl.xml
@@ -971,15 +971,19 @@
TSOIL_ON_DEPTH_BEL_LAND_SFC
+ 2
0. 1. 4. 10. 30. 60. 100. 160. 300.
+ 2
0. 1. 4. 10. 30. 60. 100. 160. 300.
4.0
SOILW_ON_DEPTH_BEL_LAND_SFC
+ 2
0. 1. 4. 10. 30. 60. 100. 160. 300.
- 0. 1. 4. 10. 30. 60. 100. 160. 300.
+ 2
+ 0. 1. 4. 10. 30. 60. 100. 160. 300.
3.0
@@ -1185,7 +1189,9 @@
SOILW_ON_DEPTH_BEL_LAND_SFC
+ 2
0. 1.
+ 2
0. 1.
3.0
diff --git a/parm/postxconfig-NT-hfip.txt b/parm/postxconfig-NT-hfip.txt
index 4728ef24c..0f98590a3 100644
--- a/parm/postxconfig-NT-hfip.txt
+++ b/parm/postxconfig-NT-hfip.txt
@@ -6133,13 +6133,13 @@ TSOIL
?
?
depth_bel_land_sfc
-0
-?
+1
+2
9
0. 1. 4. 10. 30. 60. 100. 160. 300.
depth_bel_land_sfc
-0
-?
+1
+2
9
0. 1. 4. 10. 30. 60. 100. 160. 300.
?
@@ -6175,13 +6175,13 @@ SOILW
NCEP
?
depth_bel_land_sfc
-0
-?
+1
+2
9
0. 1. 4. 10. 30. 60. 100. 160. 300.
depth_bel_land_sfc
-0
-?
+1
+2
9
0. 1. 4. 10. 30. 60. 100. 160. 300.
?
@@ -6947,13 +6947,13 @@ SOILW
NCEP
?
depth_bel_land_sfc
-0
-?
+1
+2
2
0. 1.
depth_bel_land_sfc
-0
-?
+1
+2
2
0. 1.
?
diff --git a/parm/postxconfig-NT-rrfs_mpas.txt b/parm/postxconfig-NT-rrfs_mpas.txt
index 3b4abb8fc..7573f5dd3 100644
--- a/parm/postxconfig-NT-rrfs_mpas.txt
+++ b/parm/postxconfig-NT-rrfs_mpas.txt
@@ -1,6 +1,6 @@
3
-17
-12
+18
+14
143
WRFTWO
4
@@ -6544,6 +6544,90 @@ isobaric_sfc
?
?
?
+116
+TSOIL_ON_DEPTH_BEL_LAND_SFC
+?
+1
+tmpl4_0
+TSOIL
+?
+?
+depth_bel_land_sfc
+1
+2
+9
+0. 1. 4. 10. 30. 60. 100. 160. 300.
+depth_bel_land_sfc
+1
+2
+9
+0. 1. 4. 10. 30. 60. 100. 160. 300.
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+0
+0.0
+0
+0.0
+1
+4.0
+0
+0
+0
+?
+?
+?
+117
+SOILW_ON_DEPTH_BEL_LAND_SFC
+?
+1
+tmpl4_0
+SOILW
+NCEP
+?
+depth_bel_land_sfc
+1
+2
+9
+0. 1. 4. 10. 30. 60. 100. 160. 300.
+depth_bel_land_sfc
+1
+2
+9
+0. 1. 4. 10. 30. 60. 100. 160. 300.
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
WRFNAT
4
ncep_emc
@@ -7274,3 +7358,45 @@ smaller_than_first_limit
?
?
?
+117
+SOILW_ON_DEPTH_BEL_LAND_SFC
+?
+1
+tmpl4_0
+SOILW
+NCEP
+?
+depth_bel_land_sfc
+1
+2
+2
+0. 1.
+depth_bel_land_sfc
+1
+2
+2
+0. 1.
+?
+?
+?
+0
+0.0
+0
+0.0
+?
+0
+0.0
+0
+0.0
+0
+0.0
+0
+0.0
+1
+3.0
+0
+0
+0
+?
+?
+?
diff --git a/parm/rrfs_mpas_postcntrl.xml b/parm/rrfs_mpas_postcntrl.xml
index bc9f433df..376b8367f 100644
--- a/parm/rrfs_mpas_postcntrl.xml
+++ b/parm/rrfs_mpas_postcntrl.xml
@@ -967,7 +967,7 @@
77500. 80000. 82500. 85000. 87500. 90000. 92500. 95000. 97500. 100000. 101320.
3.0
-
+
@@ -1166,7 +1166,7 @@
40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
6.0
-
+
diff --git a/sorc/ncep_post.fd/INITPOST_MPAS.F b/sorc/ncep_post.fd/INITPOST_MPAS.F
index b6935e8f5..c70354260 100644
--- a/sorc/ncep_post.fd/INITPOST_MPAS.F
+++ b/sorc/ncep_post.fd/INITPOST_MPAS.F
@@ -1,28 +1,27 @@
!> @file
-!> @brief initpost() initializes post for run.
+!> @brief initpost_mpas() initializes UPP for MPAS / MPASSIT output
!>
-!> @author Russ Treadon W/NP2 @date 1993-11-10
-
-!> This routine initializes constants and
-!> variables at the start of an ETA model or post
-!> processor run.
-!>
-!> This routine assumes that integers and reals are the same size.
+!> @author Jaymes Kenyon (GSL) @date 2024-08-30
+!
+!> This routine initializes constants and variables
+!> when using UPP on MPAS model output. Specifcally,
+!> it processes output from netCDF files that have been
+!> generated by MPASSIT. MPASSIT reads MPAS output
+!> from an unstructured mesh and interpolates the output onto
+!> a structured grid. Since many MPASSIT array names
+!> follow WRF-ARW conventions, this routine (INITPOST_MPAS)
+!> was adapted from INITPOST, which was used to process
+!> WRF-ARW output.
!>
!> ### Program History Log
!> Date | Programmer | Comments
!> -----|------------|---------
-!> 1993-11-10 | Russ Treadon | Initial. Added DOCBLOC
-!> 1998-05-29 | T Black | Conversion from 1-D to 2-D
-!> 1999-01-20 | Jim Tuccillo | MPI Version
-!> 2001-10-25 | H CHuang | Modified to process hybrid model output
-!> 2002-06-19 | Mike Baldwin | WRF Version
-!> 2002-08-15 | H CHuang | Unit correction and generalize projection options
-!> 2021-03-11 | Bo Cui | Change local arrays to dimension (im,jsta:jend)
-!> 2023-01-24 | Sam Trahan | Comment-out wordy debug writes
-!> 2024-08-14 | Jaymes Kenyon| Copied INITPOST as INITPOST_MPAS
+!> 2024-08-14 | Jaymes Kenyon| Copied INITPOST as INITPOST_MPAS (reference INITPOST history prior to this date)
+!> 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
!>
-!> @author Russ Treadon W/NP2 @date 1993-11-10
+!> @author Jaymes Kenyon (GSL) @date 2024-08-14
+
SUBROUTINE INITPOST_MPAS
use vrbls4d, only: dust, smoke
@@ -126,7 +125,7 @@ SUBROUTINE INITPOST_MPAS
!
ALLOCATE ( THV(IM,JSTA_2L:JEND_2U,LM) )
ALLOCATE ( DUM3D ( IM+1, JM+1, LM+1 ) )
- WRITE(6,*)'INITPOST_MPAS: ENTER INITPOST_MPAS'
+ if (me==0) WRITE(6,*)'INITPOST_MPAS: ENTER INITPOST_MPAS'
!
gridtype='A'
hbotd=0
@@ -167,18 +166,18 @@ SUBROUTINE INITPOST_MPAS
! DateStr = '2002-03-05_18:00:00'
! how do I get the filename?
call ext_ncd_ioinit(SysDepInfo,Status)
- print*,'called ioinit', Status
+! print*,'called ioinit', Status
call ext_ncd_open_for_read( trim(fileName), 0, 0, " ", &
DataHandle, Status)
- print*,'called open for read', Status
- if ( Status /= 0 ) then
+! print*,'called open for read', Status
+ if ( Status /= 0 .and. me == 0 ) then
print*,'error opening ',fileName, ' Status = ', Status ; stop
endif
! get date/time info
! this routine will get the next time from the file, not using it
- print *,'DateStr before calling ext_ncd_get_next_time=',DateStr
+! print *,'DateStr before calling ext_ncd_get_next_time=',DateStr
! call ext_ncd_get_next_time(DataHandle, DateStr, Status)
- print *,'DateStri,Status,DataHandle = ',DateStr,Status,DataHandle
+! print *,'DateStri,Status,DataHandle = ',DateStr,Status,DataHandle
! The end j row is going to be jend_2u for all variables except for V.
JS=JSTA_2L
@@ -197,14 +196,16 @@ SUBROUTINE INITPOST_MPAS
call ext_ncd_get_dom_ti_char(DataHandle,'START_DATE',startdate, &
status )
#endif
- print*,'startdate= ',startdate
+ if (me==0) print*,'startdate= ',startdate
jdate=0
idate=0
read(startdate,15)iyear,imn,iday,ihrst,imin
15 format(i4,1x,i2,1x,i2,1x,i2,1x,i2)
- print*,'start yr mo day hr min=',iyear,imn,iday,ihrst,imin
- print*,'processing yr mo day hr min=' &
- ,idat(3),idat(1),idat(2),idat(4),idat(5)
+ if (me==0) then
+ print*,'start yr mo day hr min=',iyear,imn,iday,ihrst,imin
+ print*,'processing yr mo day hr min=' &
+ ,idat(3),idat(1),idat(2),idat(4),idat(5)
+ endif
idate(1)=iyear
idate(2)=imn
idate(3)=iday
@@ -223,7 +224,7 @@ SUBROUTINE INITPOST_MPAS
CALL W3DIFDAT(JDATE,IDATE,0,RINC)
ifhr=nint(rinc(2)+rinc(1)*24.)
ifmin=nint(rinc(3))
- print*,' in INITPOST_MPAS ifhr ifmin fileName=',ifhr,ifmin,fileName
+ if (me==0) print*,' in INITPOST_MPAS ifhr ifmin fileName=',ifhr,ifmin,fileName
! OK, since all of the variables are dimensioned/allocated to be
! the same size, this means we have to be careful int getVariable
! to not try to get too much data. For example,
@@ -233,7 +234,7 @@ SUBROUTINE INITPOST_MPAS
call ext_ncd_get_dom_ti_integer(DataHandle,'MP_PHYSICS' &
,itmp,1,ioutcount,istatus)
imp_physics=itmp
- print*,'MP_PHYSICS= ',itmp
+ if (me==0) print*,'MP_PHYSICS= ',itmp
! Initializes constants for Ferrier microphysics
if(imp_physics==5 .or. imp_physics==85 .or. imp_physics==95)then
@@ -242,11 +243,11 @@ SUBROUTINE INITPOST_MPAS
call ext_ncd_get_dom_ti_integer(DataHandle,'CU_PHYSICS' &
,itmp,1,ioutcount,istatus)
- icu_physics=itmp
- print*,'CU_PHYSICS= ',icu_physics
+ icu_physics=itmp
+ if (me==0) print*,'CU_PHYSICS= ',icu_physics
! get 3-D variables
- print*,'im,jm,lm= ',im,jm,lm
+ if (me==0) print*,'im,jm,lm= ',im,jm,lm
ii=im/2
jj=(jsta+jend)/2
ll=lm
@@ -322,7 +323,7 @@ SUBROUTINE INITPOST_MPAS
ENDDO
ENDDO
ENDDO
- print*,'finish reading W'
+ !print*,'finish reading W'
VarName='QVAPOR'
call getVariable(fileName,DateStr,DataHandle,VarName,DUM3D, &
@@ -337,7 +338,7 @@ SUBROUTINE INITPOST_MPAS
end do
end do
end do
- print*,'finish reading mixing ratio'
+ !print*,'finish reading mixing ratio'
! if(jj>= jsta .and. jj<=jend)print*,'sample Q= ',Q(ii,jj,ll)
! DCD 4/3/13
@@ -592,8 +593,8 @@ SUBROUTINE INITPOST_MPAS
do j = jsta_2l, jend_2u
do i = 1, im
qqni ( i, j, l ) = dum3d ( i, j, l )
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNI= ', &
- i,j,l,QQNI ( i, j, l )
+ !if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNI= ', &
+ ! i,j,l,QQNI ( i, j, l )
end do
end do
end do
@@ -604,8 +605,8 @@ SUBROUTINE INITPOST_MPAS
do j = jsta_2l, jend_2u
do i = 1, im
qqnr ( i, j, l ) = dum3d ( i, j, l )
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNR= ', &
- i,j,l,QQNR ( i, j, l )
+ !if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNR= ', &
+ ! i,j,l,QQNR ( i, j, l )
end do
end do
end do
@@ -620,8 +621,8 @@ SUBROUTINE INITPOST_MPAS
do j = jsta_2l, jend_2u
do i = 1, im
qqnw ( i, j, l ) = dum3d ( i, j, l )
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNW= ', &
- i,j,l,QQNW ( i, j, l )
+ !if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNW= ', &
+ ! i,j,l,QQNW ( i, j, l )
end do
end do
end do
@@ -632,8 +633,8 @@ SUBROUTINE INITPOST_MPAS
do j = jsta_2l, jend_2u
do i = 1, im
qqnwfa ( i, j, l ) = dum3d ( i, j, l )
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNWFA= ', &
- i,j,l,QQNWFA ( i, j, l )
+ !if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNWFA= ', &
+ ! i,j,l,QQNWFA ( i, j, l )
end do
end do
end do
@@ -644,8 +645,8 @@ SUBROUTINE INITPOST_MPAS
do j = jsta_2l, jend_2u
do i = 1, im
qqnifa ( i, j, l ) = dum3d ( i, j, l )
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNIFA= ', &
- i,j,l,QQNIFA ( i, j, l )
+ !if(i==im/2.and.j==(jsta+jend)/2)print*,'sample QQNIFA= ', &
+ ! i,j,l,QQNIFA ( i, j, l )
end do
end do
end do
@@ -833,7 +834,7 @@ SUBROUTINE INITPOST_MPAS
call getVariable(fileName,DateStr,DataHandle,VarName,DUM3D, &
IM+1,1,JM+1,LM+1,IM,JS,JE,LM+1)
- print*,'finish reading geopotential'
+ !print*,'finish reading geopotential'
! ph/phb are geopotential z=(ph+phb)/9.801
DO L=1,LM+1
DO I=1,IM
@@ -971,9 +972,9 @@ SUBROUTINE INITPOST_MPAS
do i = 1, im
ZINT(I,J,LM+1)=FIS(I,J)/G
DUMMY(I,J)=FIS(I,J)
- if(i==im/2.and.j==(jsta+jend)/2) &
- print*,'i,j,L,ZINT from unipost= ',i,j,LM+1,ZINT(I,J,LM+1) &
- , ALPINT(I,J,LM+1),ALPINT(I,J,LM)
+ !if(i==im/2.and.j==(jsta+jend)/2) &
+ ! print*,'i,j,L,ZINT from unipost= ',i,j,LM+1,ZINT(I,J,LM+1)&
+ ! ,ALPINT(I,J,LM+1),ALPINT(I,J,LM)
end do
end do
DO L=LM,1,-1
@@ -985,24 +986,24 @@ SUBROUTINE INITPOST_MPAS
DUM3D(I,J,L)=ZINT(I,J,L)-DUMMY2(I,J)/g
! now replace model heights with unipost heights
ZINT(I,J,L)=DUMMY2(I,J)/G
- if(i==im/2.and.j==(jsta+jend)/2) &
- print*,'i,j,L,ZINT from unipost= ',i,j,l,ZINT(I,J,L)
+ !if(i==im/2.and.j==(jsta+jend)/2) &
+ ! print*,'i,j,L,ZINT from unipost= ',i,j,l,ZINT(I,J,L)
DUMMY(I,J)=DUMMY2(I,J)
ENDDO
ENDDO
END DO
- DO L=LM,1,-1
- do j = js, je
- do i = 1, im
- if(i==im/2.and.j==(jsta+jend)/2) then
- print*,'DIFF heights model-unipost= ', &
- i,j,l,DUM3D(I,J,L)
- endif
- ENDDO
- ENDDO
- END DO
-
- print*,'finish deriving geopotential in ARW'
+ !DO L=LM,1,-1
+ ! do j = js, je
+ ! do i = 1, im
+ ! if(i==im/2.and.j==(jsta+jend)/2) then
+ ! print*,'DIFF heights model-unipost= ', &
+ ! i,j,l,DUM3D(I,J,L)
+ ! endif
+ ! ENDDO
+ ! ENDDO
+ !END DO
+
+ if (me==0) print*,'Finished deriving geopotential in RAPR application'
ENDIF ! IF(MODELNAME == 'RAPR')THEN
@@ -1022,7 +1023,7 @@ SUBROUTINE INITPOST_MPAS
! i,j,l,ALPINT(I,J,L+1),ALPINT(I,J,L),ZMID(I,J,L)
ENDDO
ENDDO
- print*,'max/min ZMID= ',l,maxval(dummy),minval(dummy)
+ !print*,'max/min ZMID= ',l,maxval(dummy),minval(dummy)
ENDDO
DO I=1,IM
@@ -1034,8 +1035,8 @@ SUBROUTINE INITPOST_MPAS
dummy(i,j)=ZMID(I,J,LM)
ENDDO
ENDDO
- print*,'max/min ZMID= ',lm,maxval(ZMID(1:im,js:je,lm)), &
- minval(ZMID(1:im,js:je,lm))
+ !print*,'max/min ZMID= ',lm,maxval(ZMID(1:im,js:je,lm)), &
+ ! minval(ZMID(1:im,js:je,lm))
ELSE
DO L=1,LM
@@ -1064,12 +1065,12 @@ SUBROUTINE INITPOST_MPAS
taod5503d ( i, j, l ) = dum3d ( i, j, l )
dz = ZINT( i, j, l ) - ZINT( i, j, l+1 )
aextc55 ( i, j, l ) = taod5503d ( i, j, l ) / dz
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample TAOD5503D= ', &
- i,j,l,TAOD5503D ( i, j, l )
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample dz= ', &
- dz
- if(i==im/2.and.j==(jsta+jend)/2)print*,'sample AEXTC55= ', &
- i,j,l,AEXTC55 ( i, j, l )
+
+ if( me==0 .and. i==im/2 .and. j==(jsta+jend)/2 ) then
+ print*,'sample TAOD5503D= ',i,j,l,TAOD5503D( i, j, l )
+ print*,'sample dz= ',dz
+ print*,'sample AEXTC55= ',i,j,l,AEXTC55( i, j, l )
+ endif
end do
end do
end do
@@ -1188,10 +1189,6 @@ SUBROUTINE INITPOST_MPAS
end do
end do
- call ext_ncd_get_dom_ti_real(DataHandle,'DX',tmp, &
- 1,ioutcount,istatus)
- dxval=nint(tmp)
- write(6,*) 'dxval= ', dxval
#ifdef COMMCODE
IF(MODELNAME == 'NCAR' .OR. MODELNAME == 'RAPR')THEN
if(imp_physics/=5 .and. imp_physics/=0)then
@@ -1373,13 +1370,18 @@ SUBROUTINE INITPOST_MPAS
! RUC LSM - use depths of center of soil layer
IF(iSF_SURFACE_PHYSICS==3)then ! RUC LSM
- call getVariable(fileName,DateStr,DataHandle,'ZS',SLLEVEL, &
- NSOIL,1,1,1,NSOIL,1,1,1)
- print*,'SLLEVEL= ',(SLLEVEL(N),N=1,NSOIL)
+ ! call getVariable(fileName,DateStr,DataHandle,'ZS',SLLEVEL, &
+ ! NSOIL,1,1,1,NSOIL,1,1,1)
+ ! print*,'SLLEVEL= ',(SLLEVEL(N),N=1,NSOIL)
+
+ ! J. Kenyon / 23 Aug 2024: Assign depths of soil levels for
+ ! RUC LSM until the 'ZS' array (from MPASSIT) can be correctly read.
+ ! A similar hard-coding approach is also used in INITPOST_NETCDF.
+ SLLEVEL = (/ 0.0, 0.01, 0.04, 0.1, 0.3, 0.6, 1.0, 1.6, 3.0 /)
ELSE
call getVariable(fileName,DateStr,DataHandle,'DZS',SLDPTH, &
NSOIL,1,1,1,NSOIL,1,1,1)
- print*,'SLDPTH= ',(SLDPTH(N),N=1,NSOIL)
+ if (me==0) print*,'SLDPTH= ',(SLDPTH(N),N=1,NSOIL)
END IF
! SRD
@@ -1930,7 +1932,7 @@ SUBROUTINE INITPOST_MPAS
VEGFRC ( i, j ) = dummy ( i, j )/100.
end do
end do
- print*,'VEGFRC at ',ii,jj,' = ',VEGFRC(ii,jj)
+ if (me==0) print*,'VEGFRC at ',ii,jj,' = ',VEGFRC(ii,jj)
VarName='SHDMIN'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -1940,7 +1942,7 @@ SUBROUTINE INITPOST_MPAS
shdmin ( i, j ) = dummy ( i, j )/100.
end do
end do
- print*,'SHDMIN at ',ii,jj,' = ',SHDMIN(ii,jj)
+ if (me==0) print*,'SHDMIN at ',ii,jj,' = ',SHDMIN(ii,jj)
VarName='SHDMAX'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -1950,7 +1952,7 @@ SUBROUTINE INITPOST_MPAS
shdmax ( i, j ) = dummy ( i, j )/100.
end do
end do
- print*,'SHDMAX at ',ii,jj,' = ',SHDMAX(ii,jj)
+ if (me==0) print*,'SHDMAX at ',ii,jj,' = ',SHDMAX(ii,jj)
VarName='LAI'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -1960,7 +1962,7 @@ SUBROUTINE INITPOST_MPAS
lai ( i, j ) = dummy ( i, j )
end do
end do
- print*,'LAI at ',ii,jj,' = ',LAI(ii,jj)
+ if (me==0) print*,'LAI at ',ii,jj,' = ',LAI(ii,jj)
VarName='ACSNOW'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -1970,7 +1972,7 @@ SUBROUTINE INITPOST_MPAS
ACSNOW ( i, j ) = dummy ( i, j )
end do
end do
- print*,'maxval ACSNOW: ', maxval(ACSNOW)
+ if (me==0) print*,'maxval ACSNOW: ', maxval(ACSNOW)
VarName='ACSNOM'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2132,7 +2134,7 @@ SUBROUTINE INITPOST_MPAS
!C RAINC is "ACCUMULATED TOTAL CUMULUS PRECIPITATION"
!C RAINNC is "ACCUMULATED TOTAL GRID SCALE PRECIPITATION"
- write(6,*) 'getting RAINC'
+ if (me==0) write(6,*) 'getting RAINC'
VarName='RAINC'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2142,7 +2144,7 @@ SUBROUTINE INITPOST_MPAS
end do
end do
! print*,'CUPREC at ',ii,jj,' = ',CUPREC(ii,jj)
- write(6,*) 'getting RAINNC'
+ if (me==0) write(6,*) 'getting RAINNC'
VarName='RAINNC'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2152,7 +2154,7 @@ SUBROUTINE INITPOST_MPAS
end do
end do
! print*,'ANCPRC at ',ii,jj,' = ',ANCPRC(ii,jj)
- write(6,*) 'past getting RAINNC'
+ if (me==0) write(6,*) 'past getting RAINNC'
do j = jsta_2l, jend_2u
do i = 1, im
@@ -2162,7 +2164,7 @@ SUBROUTINE INITPOST_MPAS
!-- RAINC_bucket is "ACCUMULATED CUMULUS PRECIPITATION OVER BUCKET_DT PERIODS OF TIME"
- write(6,*) 'getting PREC_ACC_C, [mm] '
+ if (me==0) write(6,*) 'getting PREC_ACC_C, [mm] '
! VarName='RAINC_BUCKET'
VarName='PREC_ACC_C'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -2175,7 +2177,7 @@ SUBROUTINE INITPOST_MPAS
!-- RAINC_bucket1 is "ACCUMULATED CUMULUS PRECIPITATION OVER BUCKET_DT1 PERIODS OF TIME"
- write(6,*) 'getting PREC_ACC_C1, [mm] '
+ if (me==0) write(6,*) 'getting PREC_ACC_C1, [mm] '
VarName='PREC_ACC_C1'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2187,7 +2189,7 @@ SUBROUTINE INITPOST_MPAS
!-- RAINNC_bucket is "ACCUMULATED GRID SCALE PRECIPITATION OVER BUCKET_DT PERIODS OF TIME"
- write(6,*) 'getting PREC_ACC_NC, [mm]'
+ if (me==0) write(6,*) 'getting PREC_ACC_NC, [mm]'
! VarName='RAINNC_BUCKET'
VarName='PREC_ACC_NC'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -2200,7 +2202,7 @@ SUBROUTINE INITPOST_MPAS
!-- RAINNC_bucket1 is "ACCUMULATED GRID SCALE PRECIPITATION OVER BUCKET_DT1 PERIODS OF TIME"
- write(6,*) 'getting PREC_ACC_NC1, [mm]'
+ if (me==0) write(6,*) 'getting PREC_ACC_NC1, [mm]'
VarName='PREC_ACC_NC1'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2252,7 +2254,7 @@ SUBROUTINE INITPOST_MPAS
!-- SNOW_bucket is "ACCUMULATED GRID SCALE SNOW OVER BUCKET_DT PERIODS OF TIME"
- write(6,*) 'getting SNOW_ACC_NC, [mm] '
+ if (me==0) write(6,*) 'getting SNOW_ACC_NC, [mm] '
! VarName='SNOW_BUCKET'
VarName='SNOW_ACC_NC'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
@@ -2265,7 +2267,7 @@ SUBROUTINE INITPOST_MPAS
!-- SNOW_bucket1 is "ACCUMULATED GRID SCALE SNOW OVER BUCKET_DT1 PERIODS OF TIME"
- write(6,*) 'getting SNOW_ACC_NC1, [mm] '
+ if (me==0) write(6,*) 'getting SNOW_ACC_NC1, [mm] '
VarName='SNOW_ACC_NC1'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2277,7 +2279,7 @@ SUBROUTINE INITPOST_MPAS
!-- GRAUP_bucket is "ACCUMULATED GRID SCALE GRAUPEL OVER BUCKET_DT PERIODS OF TIME"
- write(6,*) 'getting GRAUP_ACC_NC, [mm] '
+ if (me==0) write(6,*) 'getting GRAUP_ACC_NC, [mm] '
VarName='GRAUP_ACC_NC'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2289,7 +2291,7 @@ SUBROUTINE INITPOST_MPAS
!-- GRAUP_bucket1 is "ACCUMULATED GRID SCALE GRAUPEL OVER BUCKET_DT1 PERIODS OF TIME"
- write(6,*) 'getting GRAUP_ACC_NC1, [mm] '
+ if (me==0) write(6,*) 'getting GRAUP_ACC_NC1, [mm] '
VarName='GRAUP_ACC_NC1'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2504,7 +2506,7 @@ SUBROUTINE INITPOST_MPAS
SWRADmean ( i, j ) = dummy ( i, j )
end do
end do
- print*,'SWRADmean at ',ii,jj,' = ',SWRADmean(ii,jj)
+ if (me==0) print*,'SWRADmean at ',ii,jj,' = ',SWRADmean(ii,jj)
! time_averaged SWNORM
VarName='SWNORMMEAN'
@@ -2516,7 +2518,7 @@ SUBROUTINE INITPOST_MPAS
SWNORMmean ( i, j ) = dummy ( i, j )
end do
end do
- print*,'SWNORMmean at ',ii,jj,' = ',SWNORMmean(ii,jj)
+ if (me==0) print*,'SWNORMmean at ',ii,jj,' = ',SWNORMmean(ii,jj)
VarName='GLW'
! Downwelling longwave flux at surface
@@ -2664,7 +2666,7 @@ SUBROUTINE INITPOST_MPAS
SNO ( i, j ) = dummy ( i, j )
elseif( dummy ( i, j ) > 5000.0) then
SNO ( i, j ) = 5000.0
- write(*,*) 'too large SNOW=',i,j,dummy ( i, j )
+ !write(*,*) 'too large SNOW=',i,j,dummy ( i, j )
elseif( dummy ( i, j ) < 0.0 ) then
SNO ( i, j ) = 0.0
write(*,*) 'negative SNOW=',i,j,dummy ( i, j )
@@ -2684,7 +2686,7 @@ SUBROUTINE INITPOST_MPAS
SI ( i, j ) = dummy ( i, j ) * 1000.
elseif( dummy ( i, j ) > 50.0) then
SI ( i, j ) = 50.0 * 1000.
- write(*,*) 'too large SNOWH=',i,j,dummy ( i, j )
+ !write(*,*) 'too large SNOWH=',i,j,dummy ( i, j )
elseif( dummy ( i, j ) < 0.0 ) then
SI ( i, j ) = 0.0
write(*,*) 'negative SNOWH=',i,j,dummy ( i, j )
@@ -2724,7 +2726,7 @@ SUBROUTINE INITPOST_MPAS
SNFDEN ( i, j ) = max(0.,dummy ( i, j ))
end do
end do
- print *,' MIN/MAX SNFDEN ',minval(SNFDEN),maxval(SNFDEN)
+ if (me==0) print *,' MIN/MAX SNFDEN ',minval(SNFDEN),maxval(SNFDEN)
! snowfall accumulation
VarName='SNOWFALLAC'
@@ -2735,7 +2737,7 @@ SUBROUTINE INITPOST_MPAS
SNDEPAC ( i, j ) = dummy ( i, j )
end do
end do
- print *,' MIN/MAX SNDEPAC ',minval(SNDEPAC),maxval(SNDEPAC)
+ if (me==0) print *,' MIN/MAX SNDEPAC ',minval(SNDEPAC),maxval(SNDEPAC)
! snow temperature at the interface of 2 snow layers
VarName='SOILT1'
@@ -2766,7 +2768,7 @@ SUBROUTINE INITPOST_MPAS
ISLTYP ( i, j ) = idummy ( i, j )
end do
end do
- print*,'MAX ISLTYP=', maxval(idummy)
+ if (me==0) print*,'MAX ISLTYP=', maxval(idummy)
! VarName='ISLOPE'
! call getIVariableN(fileName,DateStr,DataHandle,VarName,IDUMMY, &
@@ -2840,7 +2842,7 @@ SUBROUTINE INITPOST_MPAS
end do
! pos north
! print*,'GDLAT at ',ii,jj,' = ',GDLAT(ii,jj)
- print*,'read past GDLAT'
+! print*,'read past GDLAT'
VarName='XLONG'
call getVariable(fileName,DateStr,DataHandle,VarName,DUMMY, &
IM,1,JM,1,IM,JS,JE,1)
@@ -2854,7 +2856,7 @@ SUBROUTINE INITPOST_MPAS
end do
end do
! print*,'GDLON at ',ii,jj,' = ',GDLON(ii,jj)
- print*,'read past GDLON'
+! print*,'read past GDLON'
! pos east
call collect_loc(gdlat,dummy)
if(me==0)then
@@ -2905,8 +2907,6 @@ SUBROUTINE INITPOST_MPAS
1,1,1,1,1,1,1,1)
-! ncdump -h
-
! ncar wrf does not output zenith angle so make czen=czmean so that
! RSWIN can be output normally in SURFCE
IF(MODELNAME /= 'RAPR')THEN
@@ -2928,14 +2928,11 @@ SUBROUTINE INITPOST_MPAS
CZMEAN ( i, j ) = CZEN ( i, j )
end do
end do
- print*,'sample RAPR zenith angle=',acos(czen(ii,jj))*rtd
+ if (me==0) print*,'sample RAPR zenith angle=',acos(czen(ii,jj))*rtd
ENDIF
-!!
-!!
-!!
- write(6,*) 'filename in INITPOST_MPAS=', filename,' is'
+ write(6,*) 'filename in INITPOST_MPAS=', filename,' is'
! status=nf_open(filename,NF_NOWRITE,ncid)
! write(6,*) 'returned ncid= ', ncid
@@ -2955,81 +2952,125 @@ SUBROUTINE INITPOST_MPAS
! maptype=int(tmp)
! status=nf_close(ncid)
-! dxval=30000.
-! dyval=30000.
-!
-! write(6,*) 'dxval= ', dxval
-! write(6,*) 'dyval= ', dyval
-! write(6,*) 'cenlat= ', cenlat
-! write(6,*) 'cenlon= ', cenlon
-! write(6,*) 'truelat1= ', truelat1
-! write(6,*) 'truelat2= ', truelat2
-! write(6,*) 'maptype is ', maptype
-!
-!tgs call ext_ncd_get_dom_ti_real(DataHandle,'DX',tmp, &
-! 1,ioutcount,istatus)
-! dxval=nint(tmp)
-! write(6,*) 'dxval= ', dxval
+
+ call ext_ncd_get_dom_ti_integer(DataHandle,'MAP_PROJ',itmp, &
+ 1,ioutcount,istatus)
+ maptype=itmp
+ write(6,*) 'maptype is ', maptype
+
+ call ext_ncd_get_dom_ti_real(DataHandle,'DX',tmp, &
+ 1,ioutcount,istatus)
+ if(maptype==0)then
+ dxval=tmp*gdsdegr ! grid length in degrees for lat-lon proj
+ write(6,*) 'dxval= ',tmp
+ else
+ dxval=nint(tmp)
+ write(6,*) 'dxval= ',dxval
+ endif
+
call ext_ncd_get_dom_ti_real(DataHandle,'DY',tmp, &
1,ioutcount,istatus)
- dyval=nint(tmp)
- write(6,*) 'dyval= ', dyval
+ if(maptype==0)then
+ dyval=tmp*gdsdegr ! grid length in degrees for lat-lon proj
+ write(6,*) 'dyval= ',tmp
+ else
+ dyval=nint(tmp)
+ write(6,*) 'dyval= ',dyval
+ endif
+
call ext_ncd_get_dom_ti_real(DataHandle,'CEN_LAT',tmp, &
1,ioutcount,istatus)
cenlat=nint(gdsdegr*tmp)
write(6,*) 'cenlat= ', cenlat
+
call ext_ncd_get_dom_ti_real(DataHandle,'CEN_LON',tmp, &
1,ioutcount,istatus)
if(tmp < 0) tmp=360.0 + tmp
cenlon=nint(gdsdegr*tmp)
write(6,*) 'cenlon= ', cenlon
+
call ext_ncd_get_dom_ti_integer(DataHandle,'MAP_PROJ',itmp, &
1,ioutcount,istatus)
maptype=itmp
write(6,*) 'maptype is ', maptype
+
if(maptype/=6)then
- call ext_ncd_get_dom_ti_real(DataHandle,'TRUELAT1',tmp, &
- 1,ioutcount,istatus)
- truelat1=nint(gdsdegr*tmp)
- write(6,*) 'truelat1= ', truelat1
- if(maptype/=2)then !PS projection excluded
- call ext_ncd_get_dom_ti_real(DataHandle,'TRUELAT2',tmp, &
+ call ext_ncd_get_dom_ti_real(DataHandle,'TRUELAT1',tmp, &
1,ioutcount,istatus)
- truelat2=nint(gdsdegr*tmp)
- write(6,*) 'truelat2= ', truelat2
- endif
+ truelat1=nint(gdsdegr*tmp)
+ write(6,*) 'truelat1= ', truelat1
+
+ if(maptype/=2)then !PS projection excluded
+ call ext_ncd_get_dom_ti_real(DataHandle,'TRUELAT2',tmp, &
+ 1,ioutcount,istatus)
+ truelat2=nint(gdsdegr*tmp)
+ write(6,*) 'truelat2= ', truelat2
+ endif
endif
+
call ext_ncd_get_dom_ti_real(DataHandle,'STAND_LON',tmp, &
1,ioutcount,istatus)
if(tmp < 0) tmp=360.0 + tmp
STANDLON=nint(gdsdegr*tmp)
write(6,*) 'STANDLON= ', STANDLON
-!MEB not sure how to get these
+! Calculate DX and DY arrays
do j = jsta_2l, jend_2u
do i = 1, im
- DX ( i, j ) = dxval/MSFT(I,J)
- DY ( i, j ) = dyval/MSFT(I,J)
+ if(maptype==0)then
+ ! obatin DX and DY lengths from lat and lon
+ DX(i,j) = ERAD*COS(GDLAT(i,j)*DTR)*(GDLON(i+1,j)-GDLON(i,j))*DTR
+ DY(i,j) = ERAD*(GDLAT(i,j+1)-GDLAT(i,j))*DTR
+ else
+ ! obatin DX and DY lengths from scale factor
+ DX(i,j) = dxval/MSFT(i,j)
+ DY(i,j) = dyval/MSFT(i,j)
+ end if
end do
end do
ii=im/2
jj=(jend+jsta)/2
- print*,'sample dx,dy,msft=',ii,jj,dx(ii,jj),dy(ii,jj) &
- ,msft(ii,jj)
-
+ if (me==0) print*,'Sample dx,dy(meters),msft=',dx(ii,jj),dy(ii,jj),msft(ii,jj)
! Convert DXVAL and DYVAL for ARW rotated latlon from meters to radian
if(maptype==6)then
dxval=(DXVAL * 360.)/(ERAD*2.*pi)*gdsdegr
dyval=(DYVAL * 360.)/(ERAD*2.*pi)*gdsdegr
- print*,'dx and dy for arw rotated latlon= ', &
+ if (me==0) print*,'dx and dy for rotated latlon= ', &
dxval,dyval
end if
-
+
!tgs Define smoothing flag for isobaric output
IF(MODELNAME == 'RAPR')THEN
- SMFLAG=.TRUE.
+ SMFLAG=.FALSE.
+ ! J. Kenyon (28 Aug 2024): smoothing is disabled for RAPR.
+ ! Note that this smoothing flag is present in several
+ ! subroutines (e.g., MDL2P, MDLFLD, and MAPSSLP). The
+ ! smoothing operation is formulated using "dxval", which
+ ! is a domain constant (e.g., 3000 m) that depends on
+ ! the grid length. The "dxval" value should not be
+ ! confused with the spatially varying "DX(i,j)" array.
+ !
+ ! If smoothing is reactivated, "dxval" will likely
+ ! already be correctly specified for some projections
+ ! (e.g., Lambert conformal). However, "dxval" for
+ ! other projections (e.g., lat-lon) is expressed as an
+ ! angular width (in degrees). Accordingly, a suitable
+ ! "dxval" (distance) will need to be specified for
+ ! these smoothing instances, or these instances
+ ! will need to be reformulated without a dependence
+ ! on "dxval".
+ !
+ ! For the lat-lon projection (maptype=0), the following
+ ! relationships should convert dxval and dyval from
+ ! angular (deg) to linear (m) widths and may be useful:
+ !
+ ! if(maptype==0)then
+ ! dyval=ERAD*dyval/gdsdegr*dtr
+ ! dxval=ERAD*dxval/gdsdegr*dtr*COS(abs(cenlat/gdsdegr*dtr))
+ ! print*,'For lat-lon: using dxval,dyval (meters)=',dxval,dyval
+ ! endif
ELSE
SMFLAG=.FALSE.
ENDIF
@@ -3058,18 +3099,18 @@ SUBROUTINE INITPOST_MPAS
!need to get DT
call ext_ncd_get_dom_ti_real(DataHandle,'DT',tmp,1,ioutcount,istatus)
DT=abs(tmp)
- print*,'DT= ',DT
+ if (me==0) print*,'DT= ',DT
!need to get period of time for precipitation buckets
- call ext_ncd_get_dom_ti_real(DataHandle,'PREC_ACC_DT',tmp,1,ioutcount,istatus)
+ !call ext_ncd_get_dom_ti_real(DataHandle,'PREC_ACC_DT',tmp,1,ioutcount,istatus)
!prec_acc_dt=abs(tmp)
- prec_acc_dt=60.0 ! temporary hard-coding for MPAS
- print*,'PREC_ACC_DT= ',prec_acc_dt
+ prec_acc_dt=360.0 ! temporary hard-coding for MPAS
+ if (me==0) print*,'PREC_ACC_DT= ',prec_acc_dt
!need to get period of time for precipitation bucket 1 (15-min precip)
!talk to Tanya about getting this output in wrfout file
prec_acc_dt1=15.0
- print*,'PREC_ACC_DT1= ',prec_acc_dt1
+ if (me==0) print*,'PREC_ACC_DT1= ',prec_acc_dt1
! DT = 120. !MEB need to get DT
NPHS = 1 !CHUANG SET IT TO 1 BECAUSE ALL THE INST PRECIP ARE ACCUMULATED 1 TIME STEP
@@ -3087,7 +3128,7 @@ SUBROUTINE INITPOST_MPAS
TPREC=float(NPREC)/TSPH
IF(NPREC==0)TPREC=float(ifhr) !in case buket does not get emptied
- print*,'NPREC,TPREC = ',NPREC,TPREC
+ if (me==0) print*,'NPREC,TPREC = ',NPREC,TPREC
!tgs TPREC=float(ifhr) ! WRF EM does not empty precip buket at all
@@ -3097,7 +3138,7 @@ SUBROUTINE INITPOST_MPAS
! THEAT=float(NHEAT)/TSPH
! TCLOD=float(NCLOD)/TSPH
! TPREC=float(NPREC)/TSPH
- print*,'TSRFC TRDLW TRDSW= ',TSRFC, TRDLW, TRDSW
+ if (me==0) print*,'TSRFC TRDLW TRDSW= ',TSRFC, TRDLW, TRDSW
!MEB need to get DT
!how am i going to get this information?
@@ -3127,120 +3168,34 @@ SUBROUTINE INITPOST_MPAS
! end do
-
! COMPUTE DERIVED MAP OUTPUT CONSTANTS.
DO L = 1,LSM
ALSL(L) = ALOG(SPL(L))
END DO
-! close up shop
- call ext_ncd_ioclose ( DataHandle, Status )
-!
-!HC WRITE IGDS OUT FOR WEIGHTMAKER TO READ IN AS KGDSIN
- if(me==0)then
- print*,'writing out igds'
- igdout=110
-! open(igdout,file='griddef.out',form='unformatted'
-! + ,status='unknown')
- if(maptype == 1)THEN ! Lambert conformal
- WRITE(igdout)3
- WRITE(6,*)'igd(1)=',3
- WRITE(igdout)im
- WRITE(igdout)jm
- WRITE(igdout)LATSTART
- WRITE(igdout)LONSTART
- WRITE(igdout)8
-! WRITE(igdout)CENLON
- WRITE(igdout)STANDLON
- WRITE(igdout)DXVAL
- WRITE(igdout)DYVAL
- WRITE(igdout)0
- WRITE(igdout)64
- WRITE(igdout)TRUELAT2
- WRITE(igdout)TRUELAT1
- WRITE(igdout)255
- ELSE IF(MAPTYPE == 2)THEN !Polar stereographic
- WRITE(igdout)5
- WRITE(igdout)im
- WRITE(igdout)jm
- WRITE(igdout)LATSTART
- WRITE(igdout)LONSTART
- WRITE(igdout)8
- WRITE(igdout)CENLON
- WRITE(igdout)DXVAL
- WRITE(igdout)DYVAL
- WRITE(igdout)0
- WRITE(igdout)64
- WRITE(igdout)TRUELAT2 !Assume projection at +-90
- WRITE(igdout)TRUELAT1
- WRITE(igdout)255
- ! Note: The calculation of the map scale factor at the standard
- ! lat/lon and the PSMAPF
- ! Get map factor at 60 degrees (N or S) for PS projection, which will
- ! be needed to correctly define the DX and DY values in the GRIB GDS
- if (TRUELAT1 < 0.) THEN
- LAT = -60.
- else
- LAT = 60.
- end if
-
- CALL MSFPS (LAT,TRUELAT1*0.001,PSMAPF)
-
- ELSE IF(MAPTYPE == 3)THEN !Mercator
- WRITE(igdout)1
- WRITE(igdout)im
- WRITE(igdout)jm
- WRITE(igdout)LATSTART
- WRITE(igdout)LONSTART
- WRITE(igdout)8
- WRITE(igdout)latlast
- WRITE(igdout)lonlast
- WRITE(igdout)TRUELAT1
- WRITE(igdout)0
- WRITE(igdout)64
- WRITE(igdout)DXVAL
- WRITE(igdout)DYVAL
- WRITE(igdout)255
- ELSE IF(MAPTYPE==6 )THEN ! ARW rotated lat/lon grid
- WRITE(igdout)205
- WRITE(igdout)im
- WRITE(igdout)jm
- WRITE(igdout)LATSTART
- WRITE(igdout)LONSTART
- WRITE(igdout)136
- WRITE(igdout)CENLAT
- WRITE(igdout)CENLON
- WRITE(igdout)DXVAL
- WRITE(igdout)DYVAL
- WRITE(igdout)64
- WRITE(igdout)LATLAST
- WRITE(igdout)LONLAST
- WRITE(igdout)0
-
- END IF
! following for hurricane wrf post
- open(10,file='copygb_hwrf.txt',form='formatted',status='unknown')
- idxvald = abs(LONLAST-LONSTART)/(im-2)
- idyvald = abs(LATLAST-LATSTART)/(jm-2)
- print*,'dxval,dyval in degree',dxval/107000.,dyval/107000.
- print*,'idxvald,idyvald,LATSTART,LONSTART,LATLAST,LONLAST= ', &
- idxvald,idyvald,LATSTART,LONSTART,LATLAST,LONLAST
- write(10,1010) IM-1,JM-1,LATSTART,LONSTART,LATLAST,LONLAST, &
- idxvald,idyvald
-
-1010 format('255 0 ',2(I4,x),I8,x,I9,x,'136 ',I8,x,I9,x, &
- 2(I8,x),'0')
- close (10)
- end if
+! open(10,file='copygb_hwrf.txt',form='formatted',status='unknown')
+! idxvald = abs(LONLAST-LONSTART)/(im-2)
+! idyvald = abs(LATLAST-LATSTART)/(jm-2)
+! print*,'dxval,dyval in degree',dxval/107000.,dyval/107000.
+! print*,'idxvald,idyvald,LATSTART,LONSTART,LATLAST,LONLAST= ', &
+! idxvald,idyvald,LATSTART,LONSTART,LATLAST,LONLAST
+! write(10,1010) IM-1,JM-1,LATSTART,LONSTART,LATLAST,LONLAST, &
+! idxvald,idyvald
+!
+!1010 format('255 0 ',2(I4,x),I8,x,I9,x,'136 ',I8,x,I9,x, &
+! 2(I8,x),'0')
+! close (10)
!
DEALLOCATE (THV)
deallocate (msft)
!
-! convert dxval, dyval from mtere to mm
-!
- if (grib=="grib2" )then
+! convert dxval, dyval from meters to millimeters
+! (except for lat-lon grids; refer to explantion near the SMFLAG
+! specification)
+ if ((grib=="grib2") .and. (maptype/=0)) then
dxval=dxval*1000.
dyval=dyval*1000.
endif
diff --git a/sorc/ncep_post.fd/WRFPOST.F b/sorc/ncep_post.fd/WRFPOST.F
index 975733e2d..c8e9f09b5 100644
--- a/sorc/ncep_post.fd/WRFPOST.F
+++ b/sorc/ncep_post.fd/WRFPOST.F
@@ -38,6 +38,7 @@
!> 2023-08-16 | Yali Mao | Add gtg_on logical option
!> 2023-11-29 | Eric James | Add method_blsn logical option
!> 2024-08-19 | Jaymes Kenyon | Adding a call to INITPOST_MPAS
+!> 2024-08-30 | Jaymes Kenyon | Hard coding iSF_SURFACE_PHYSICS=3 when modelname=RAPR and submodelname=MPAS
!> @author Mike Bladwin NSSL/SPC @date 2002-06-18
!---------------------------------------------------------------------
!> @return wrfpost
@@ -384,6 +385,12 @@ PROGRAM WRFPOST
! Read and set global value for surface physics scheme
call ext_ncd_get_dom_ti_integer(DataHandle &
,'SF_SURFACE_PHYSICS',itmp,1,ioutcount, status )
+
+ ! J. Kenyon / 23 Aug 2024: GSL MPAS output erroneously
+ ! indicates SF_SURFACE_PHYSICS = 0 (should be 3), so overwrite
+ ! here:
+ if (modelname == 'RAPR' .and. submodelname == 'MPAS') itmp = 3
+
iSF_SURFACE_PHYSICS = itmp
! set NSOIL to 4 as default for NOAH but change if using other
! SFC scheme
diff --git a/sorc/ncep_post.fd/getIVariableN.f b/sorc/ncep_post.fd/getIVariableN.f
index b338b1f51..5366b3073 100644
--- a/sorc/ncep_post.fd/getIVariableN.f
+++ b/sorc/ncep_post.fd/getIVariableN.f
@@ -13,6 +13,11 @@ subroutine getIVariableN(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,
!
! PROGRAM HISTORY LOG:
!
+! Date | Programmer | Comments
+! -----------|---------------|---------
+! 2024-08-06 | Jaymes Kenyon | Read-in netCDF fill values for MPAS applications
+! 2024-09-05 | Jaymes Kenyon | Limiting write statements to process 0 only
+!
! USAGE: CALL getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM,IM1,JS,JE,LM1)
!
! INPUT ARGUMENT LIST:
@@ -51,7 +56,7 @@ subroutine getIVariableN(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,
! the portion of VarBuff that is needed for this task.
use wrf_io_flags_mod
- use ctlblk_mod, only: spval, submodelname
+ use ctlblk_mod, only: me, spval, submodelname
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
implicit none
!
@@ -81,12 +86,12 @@ subroutine getIVariableN(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,
end_index = 1
call ext_ncd_get_var_info(dh,TRIM(VarName),ndim,ordering,Stagger,start_index,end_index,WrfType,ierr)
IF ( ierr /= 0 ) THEN
- write(*,*)'Error: ',ierr,TRIM(VarName),' not found in ',fileName
+ if (me==0) write(*,*)'Error: ',ierr,TRIM(VarName),' not found in ',fileName
VarBuff=0.
return
ENDIF
allocate(data (end_index(1), end_index(2), end_index(3), 1))
- write(*,*)'WrfType in getIVariable= ',WrfType
+ if (me==0) write(*,*)'WrfType in getIVariable= ',WrfType
! if( WrfType /= WRF_REAL .AND. WrfType /= WRF_REAL8 ) then !Ignore if not a real variable
! write(*,*) 'Error: Not a real variable',WrfType
! return
@@ -104,23 +109,29 @@ subroutine getIVariableN(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,
start_index,end_index, & !pat
ierr)
IF ( ierr /= 0 ) THEN
- write(*,*)'Error reading ',Varname,' from ',fileName
- write(*,*)' ndim = ', ndim
- write(*,*)' end_index(1) ',end_index(1)
- write(*,*)' end_index(2) ',end_index(2)
- write(*,*)' end_index(3) ',end_index(3)
+ if (me==0) then
+ write(*,*)'Error reading ',Varname,' from ',fileName
+ write(*,*)' ndim = ', ndim
+ write(*,*)' end_index(1) ',end_index(1)
+ write(*,*)' end_index(2) ',end_index(2)
+ write(*,*)' end_index(3) ',end_index(3)
+ write(*,*)'Error reading ',Varname,' from ',fileName
+ endif
VarBuff = 0.0
return
ENDIF
- if (im1>end_index(1)) write(*,*) 'Err:',Varname,' IM1=',im1,&
- ' but data dim=',end_index(1)
- if (je>end_index(2)) write(*,*) 'Err:',Varname,' JE=',je,&
- ' but data dim=',end_index(2)
- if (lm1>end_index(3)) write(*,*) 'Err:',Varname,' LM1=',lm1,&
- ' but data dim=',end_index(3)
- if (ndim>3) then
- write(*,*) 'Error: ndim = ',ndim
- endif
+
+ if (me==0) then
+ if (im1>end_index(1)) write(*,*) 'Err:',Varname,' IM1=',im1,&
+ ' but data dim=',end_index(1)
+ if (je>end_index(2)) write(*,*) 'Err:',Varname,' JE=',je,&
+ ' but data dim=',end_index(2)
+ if (lm1>end_index(3)) write(*,*) 'Err:',Varname,' LM1=',lm1,&
+ ' but data dim=',end_index(3)
+ if (ndim>3) then
+ write(*,*) 'Error: ndim = ',ndim
+ endif
+ endif
if (SUBMODELNAME=='MPAS') then
! For MPAS: determine the fill value associated with the variable
diff --git a/sorc/ncep_post.fd/getVariable.f b/sorc/ncep_post.fd/getVariable.f
index a5dad4141..15d3a9920 100644
--- a/sorc/ncep_post.fd/getVariable.f
+++ b/sorc/ncep_post.fd/getVariable.f
@@ -13,6 +13,11 @@ subroutine getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM
!
! PROGRAM HISTORY LOG:
!
+! Date | Programmer | Comments
+! -----------|---------------|---------
+! 2024-08-06 | Jaymes Kenyon | Read-in netCDF fill values for MPAS applications
+! 2024-09-05 | Jaymes Kenyon | Limiting write statements to process 0 only
+!
! USAGE: CALL getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM,IM1,JS,JE,LM1)
!
! INPUT ARGUMENT LIST:
@@ -51,7 +56,7 @@ subroutine getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM
! the portion of VarBuff that is needed for this task.
! use mpi
use wrf_io_flags_mod, only: wrf_real, wrf_real8
- use ctlblk_mod, only: spval, submodelname
+ use ctlblk_mod, only: me, spval, submodelname
!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
implicit none
@@ -84,13 +89,13 @@ subroutine getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM
! print*,'SPVAL in getVariable = ',SPVAL
call ext_ncd_get_var_info(dh,TRIM(VarName),ndim,ordering,Stagger,start_index,end_index,WrfType,ierr)
IF ( ierr /= 0 ) THEN
- write(*,*)'Error: ',ierr,TRIM(VarName),' not found in ',fileName
+ if (me==0) write(*,*)'Error: ',ierr,TRIM(VarName),' not found in ',fileName
VarBuff=0.
return
ENDIF
allocate(data (end_index(1), end_index(2), end_index(3), 1))
if( WrfType /= WRF_REAL .AND. WrfType /= WRF_REAL8 ) then !Ignore if not a real variable
- write(*,*) 'Error: Not a real variable',WrfType
+ if (me==0) write(*,*) 'Error: Not a real variable',WrfType
return
endif
! write(*,'(A9,1x,I1,3(1x,I3),1x,A,1x,A)')&
@@ -99,7 +104,7 @@ subroutine getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM
! allocate(data (end_index(1), end_index(2), end_index(3), 1))
! call ext_ncd_read_field(dh,DateStr,TRIM(VarName),data,WrfType,0,0,0,ordering,&
! CHANGE WrfType to WRF_REAL BECAUSE THIS TELLS WRF IO API TO CONVERT TO REAL
- print *,' GWVX XT_NCD GET FIELD',size(data), size(varbuff),mype
+! print *,' GWVX XT_NCD GET FIELD',size(data), size(varbuff),mype
idsize=size(data)
if(mype == 0) then
call ext_ncd_read_field(dh,DateStr,TRIM(VarName),data,WrfType,0,0,0,ordering,&
@@ -111,22 +116,27 @@ subroutine getVariable(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM
endif
call MPI_BCAST(data,idsize,MPI_real,0,MPI_COMM_WORLD,ierr)
IF ( ierr /= 0 ) THEN
- write(*,*)'Error reading ',Varname,' from ',fileName
- write(*,*)' ndim = ', ndim
- write(*,*)' end_index(1) ',end_index(1)
- write(*,*)' end_index(2) ',end_index(2)
- write(*,*)' end_index(3) ',end_index(3)
+ if (me==0) then
+ write(*,*)'Error reading ',Varname,' from ',fileName
+ write(*,*)' ndim = ', ndim
+ write(*,*)' end_index(1) ',end_index(1)
+ write(*,*)' end_index(2) ',end_index(2)
+ write(*,*)' end_index(3) ',end_index(3)
+ endif
VarBuff = 0.0
return
ENDIF
- if (im1>end_index(1)) write(*,*) 'Err:',Varname,' IM1=',im1,&
- ' but data dim=',end_index(1)
- if (je>end_index(2)) write(*,*) 'Err:',Varname,' JE=',je,&
- ' but data dim=',end_index(2)
- if (lm1>end_index(3)) write(*,*) 'Err:',Varname,' LM1=',lm1,&
- ' but data dim=',end_index(3)
- if (ndim>3) then
- write(*,*) 'Error: ndim = ',ndim
+
+ if (me==0) then
+ if (im1>end_index(1)) write(*,*) 'Err:',Varname,' IM1=',im1,&
+ ' but data dim=',end_index(1)
+ if (je>end_index(2)) write(*,*) 'Err:',Varname,' JE=',je,&
+ ' but data dim=',end_index(2)
+ if (lm1>end_index(3)) write(*,*) 'Err:',Varname,' LM1=',lm1,&
+ ' but data dim=',end_index(3)
+ if (ndim>3) then
+ write(*,*) 'Error: ndim = ',ndim
+ endif
endif
if (SUBMODELNAME=='MPAS') then
diff --git a/tests/logs/rt.log.HERA b/tests/logs/rt.log.HERA
index fe190de81..0746b6e80 100644
--- a/tests/logs/rt.log.HERA
+++ b/tests/logs/rt.log.HERA
@@ -1,69 +1,69 @@
===== Start of UPP Regression Testing Log =====
UPP Hash Tested:
-d0567960a57752b4d3a8539cd87bbadfab1b9797
+e8197c41f54a5a85e663d21c0d71b5acf8e4d1da
Submodule hashes:
-1ba8270870947b583cd51bc72ff8960f4c1fb36e sorc/libIFI.fd
-567edcc94bc418d0dcd6cdaafed448eeb5aab570 sorc/ncep_post.fd/post_gtg.fd
-Run directory: /scratch2/NAGAPE/epic/Fernando.Andrade-maldonado/regression-tests/upp/1019/UPP/ci/rundir/upp-HERA
+Run directory: /scratch2/NAGAPE/epic/Fernando.Andrade-maldonado/regression-tests/upp/1029/UPP/ci/rundir/upp-HERA
Baseline directory: /scratch2/NAGAPE/epic/UPP/test_suite
-Total runtime: 00h:12m:07s
-Test Date: 20240829 14:55:06
+Total runtime: 00h:12m:02s
+Test Date: 20240906 15:35:42
Summary Results:
-08/29 14:46:02Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
-08/29 14:46:24Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
-08/29 14:46:25Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
-08/29 14:46:56Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
-08/29 14:47:04Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
-08/29 14:47:07Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
-08/29 14:47:24Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
-08/29 14:47:24Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
-08/29 14:47:24Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
-08/29 14:47:28Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
-08/29 14:47:28Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
-08/29 14:47:28Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
-08/29 14:47:29Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
-08/29 14:47:31Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
-08/29 14:47:31Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
-08/29 14:47:31Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
-08/29 14:47:31Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
-08/29 14:47:32Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
-08/29 14:47:34Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
-08/29 14:47:35Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
-08/29 14:47:39Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
-08/29 14:47:40Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
-08/29 14:47:40Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
-08/29 14:47:40Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
-08/29 14:48:09Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
-08/29 14:48:11Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
-08/29 14:48:15Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
-08/29 14:48:33Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
-08/29 14:48:34Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
-08/29 14:48:36Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
-08/29 14:54:12Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
-08/29 14:54:16Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
-08/29 14:54:16Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
-08/29 14:54:51Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
-08/29 14:54:54Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
-08/29 14:54:54Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
-08/29 14:47:42Z -Runtime: nmmb_test 00:02:02 -- baseline 00:01:00
-08/29 14:47:43Z -Runtime: nmmb_pe_test 00:02:00 -- baseline 00:01:00
-08/29 14:47:43Z -Runtime: fv3gefs_test 00:01:27 -- baseline 00:40:00
-08/29 14:47:43Z -Runtime: fv3gefs_pe_test 00:00:33 -- baseline 00:40:00
-08/29 14:47:44Z -Runtime: rap_test 00:01:38 -- baseline 00:02:00
-08/29 14:47:44Z -Runtime: rap_pe_test 00:01:59 -- baseline 00:02:00
-08/29 14:48:45Z -Runtime: hrrr_test 00:03:07 -- baseline 00:02:00
-08/29 14:48:45Z -Runtime: hrrr_pe_test 00:02:46 -- baseline 00:02:00
-08/29 14:54:19Z -Runtime: fv3gfs_test 00:08:47 -- baseline 00:15:00
-08/29 14:55:04Z -Runtime: fv3gfs_pe_test 00:09:25 -- baseline 00:15:00
-08/29 14:55:05Z -Runtime: fv3r_test 00:02:02 -- baseline 00:03:00
-08/29 14:55:05Z -Runtime: fv3r_pe_test 00:02:06 -- baseline 00:03:00
-08/29 14:55:05Z -Runtime: fv3hafs_test 00:00:56 -- baseline 00:03:00
-08/29 14:55:05Z -Runtime: fv3hafs_pe_test 00:00:55 -- baseline 00:03:00
-08/29 14:55:06Z -Runtime: rtma_test 00:02:11 -- baseline 00:03:00
-08/29 14:55:06Z -Runtime: rtma_test_pe_test 00:02:11 -- baseline
+09/06 15:27:43Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
+09/06 15:27:51Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
+09/06 15:28:10Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
+09/06 15:28:13Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
+09/06 15:28:13Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
+09/06 15:28:40Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
+09/06 15:28:41Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
+09/06 15:28:49Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
+09/06 15:28:50Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
+09/06 15:28:52Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
+09/06 15:28:55Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
+09/06 15:28:59Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
+09/06 15:28:59Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
+09/06 15:29:02Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
+09/06 15:29:03Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
+09/06 15:29:12Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
+09/06 15:29:20Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
+09/06 15:29:45Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
+09/06 15:29:47Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
+09/06 15:29:47Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
+09/06 15:29:49Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
+09/06 15:29:49Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
+09/06 15:29:51Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
+09/06 15:29:53Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
+09/06 15:29:54Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
+09/06 15:29:55Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
+09/06 15:29:55Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
+09/06 15:29:56Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
+09/06 15:29:57Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
+09/06 15:29:58Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
+09/06 15:34:48Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
+09/06 15:34:49Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
+09/06 15:34:50Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
+09/06 15:35:26Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
+09/06 15:35:29Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
+09/06 15:35:29Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
+09/06 15:30:04Z -Runtime: nmmb_test 00:01:16 -- baseline 00:01:00
+09/06 15:30:05Z -Runtime: nmmb_pe_test 00:01:12 -- baseline 00:01:00
+09/06 15:30:05Z -Runtime: fv3gefs_test 00:00:16 -- baseline 00:40:00
+09/06 15:30:05Z -Runtime: fv3gefs_pe_test 00:00:22 -- baseline 00:40:00
+09/06 15:30:06Z -Runtime: rap_test 00:00:57 -- baseline 00:02:00
+09/06 15:30:06Z -Runtime: rap_pe_test 00:01:13 -- baseline 00:02:00
+09/06 15:30:06Z -Runtime: hrrr_test 00:02:18 -- baseline 00:02:00
+09/06 15:30:07Z -Runtime: hrrr_pe_test 00:02:06 -- baseline 00:02:00
+09/06 15:34:55Z -Runtime: fv3gfs_test 00:07:35 -- baseline 00:15:00
+09/06 15:35:41Z -Runtime: fv3gfs_pe_test 00:08:14 -- baseline 00:15:00
+09/06 15:35:41Z -Runtime: fv3r_test 00:01:38 -- baseline 00:03:00
+09/06 15:35:41Z -Runtime: fv3r_pe_test 00:01:33 -- baseline 00:03:00
+09/06 15:35:41Z -Runtime: fv3hafs_test 00:00:34 -- baseline 00:03:00
+09/06 15:35:42Z -Runtime: fv3hafs_pe_test 00:00:42 -- baseline 00:03:00
+09/06 15:35:42Z -Runtime: rtma_test 00:01:42 -- baseline 00:03:00
+09/06 15:35:42Z -Runtime: rtma_test_pe_test 00:01:43 -- 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 d48ebae54..61b10455b 100644
--- a/tests/logs/rt.log.HERCULES
+++ b/tests/logs/rt.log.HERCULES
@@ -1,69 +1,69 @@
===== Start of UPP Regression Testing Log =====
UPP Hash Tested:
-d0567960a57752b4d3a8539cd87bbadfab1b9797
+e8197c41f54a5a85e663d21c0d71b5acf8e4d1da
Submodule hashes:
-1ba8270870947b583cd51bc72ff8960f4c1fb36e sorc/libIFI.fd
-567edcc94bc418d0dcd6cdaafed448eeb5aab570 sorc/ncep_post.fd/post_gtg.fd
-Run directory: /work2/noaa/epic/nandoam/regression-testing/upp/hercules/1019/UPP/ci/rundir/upp-HERCULES
+Run directory: /work2/noaa/epic/nandoam/regression-testing/upp/hercules/1029/UPP/ci/rundir/upp-HERCULES
Baseline directory: /work/noaa/epic/UPP
-Total runtime: 00h:12m:03s
-Test Date: 20240829 09:56:32
+Total runtime: 00h:11m:50s
+Test Date: 20240906 10:37:08
Summary Results:
-08/29 14:47:58Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
-08/29 14:47:59Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
-08/29 14:48:10Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
-08/29 14:48:11Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
-08/29 14:48:11Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
-08/29 14:48:17Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
-08/29 14:48:18Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
-08/29 14:48:18Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
-08/29 14:48:41Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
-08/29 14:48:42Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
-08/29 14:48:43Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
-08/29 14:48:46Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
-08/29 14:48:48Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
-08/29 14:48:54Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
-08/29 14:48:54Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
-08/29 14:48:56Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
-08/29 14:49:12Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
-08/29 14:49:15Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
-08/29 14:49:23Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
-08/29 14:49:42Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
-08/29 14:49:43Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
-08/29 14:51:09Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
-08/29 14:51:11Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
-08/29 14:51:12Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
-08/29 14:51:14Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
-08/29 14:51:16Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
-08/29 14:51:16Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
-08/29 14:53:19Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
-08/29 14:53:20Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
-08/29 14:53:21Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
-08/29 14:53:45Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
-08/29 14:53:47Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
-08/29 14:53:47Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
-08/29 14:56:25Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
-08/29 14:56:25Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
-08/29 14:56:25Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
-08/29 14:48:29Z -Runtime: nmmb_test 00:01:19 -- baseline 00:03:00
-08/29 14:48:29Z -Runtime: nmmb_pe_test 00:01:12 -- baseline 00:03:00
-08/29 14:49:14Z -Runtime: fv3gefs_test 00:00:17 -- baseline 01:20:00
-08/29 14:49:29Z -Runtime: fv3gefs_pe_test 00:00:20 -- baseline 01:20:00
-08/29 14:49:44Z -Runtime: rap_test 00:00:48 -- baseline 00:02:00
-08/29 14:49:45Z -Runtime: rap_pe_test 00:01:00 -- baseline 00:02:00
-08/29 14:53:30Z -Runtime: hrrr_test 00:04:26 -- baseline 00:02:00
-08/29 14:53:30Z -Runtime: hrrr_pe_test 00:01:44 -- baseline 00:02:00
-08/29 14:56:31Z -Runtime: fv3gfs_test 00:09:26 -- baseline 00:18:00
-08/29 14:56:31Z -Runtime: fv3gfs_pe_test 00:06:48 -- baseline 00:18:00
-08/29 14:56:31Z -Runtime: fv3r_test 00:01:49 -- baseline 00:03:00
-08/29 14:56:31Z -Runtime: fv3r_pe_test 00:01:57 -- baseline 00:03:00
-08/29 14:56:31Z -Runtime: fv3hafs_test 00:00:32 -- baseline 00:00:40
-08/29 14:56:31Z -Runtime: fv3hafs_pe_test 00:00:29 -- baseline 00:00:40
-08/29 14:56:32Z -Runtime: rtma_test 00:02:21 -- baseline 00:04:00
-08/29 14:56:32Z -Runtime: rtma_pe_test 00:02:17 -- baseline 00:04:00
+09/06 15:27:50Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
+09/06 15:27:53Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
+09/06 15:28:03Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
+09/06 15:28:04Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
+09/06 15:28:23Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
+09/06 15:28:24Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
+09/06 15:28:29Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
+09/06 15:28:30Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
+09/06 15:28:36Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
+09/06 15:28:37Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
+09/06 15:28:37Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
+09/06 15:28:43Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
+09/06 15:28:44Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
+09/06 15:28:44Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
+09/06 15:29:09Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
+09/06 15:29:10Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
+09/06 15:29:11Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
+09/06 15:29:21Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
+09/06 15:29:23Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
+09/06 15:29:27Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
+09/06 15:29:28Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
+09/06 15:29:48Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
+09/06 15:29:49Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
+09/06 15:29:50Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
+09/06 15:29:51Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
+09/06 15:29:52Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
+09/06 15:29:52Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
+09/06 15:32:01Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
+09/06 15:32:01Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
+09/06 15:32:03Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
+09/06 15:34:17Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
+09/06 15:34:19Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
+09/06 15:34:19Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
+09/06 15:36:54Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
+09/06 15:36:55Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
+09/06 15:36:55Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
+09/06 15:28:47Z -Runtime: nmmb_test 00:01:12 -- baseline 00:03:00
+09/06 15:28:47Z -Runtime: nmmb_pe_test 00:01:06 -- baseline 00:03:00
+09/06 15:28:47Z -Runtime: fv3gefs_test 00:00:18 -- baseline 01:20:00
+09/06 15:28:47Z -Runtime: fv3gefs_pe_test 00:00:21 -- baseline 01:20:00
+09/06 15:28:47Z -Runtime: rap_test 00:00:52 -- baseline 00:02:00
+09/06 15:28:47Z -Runtime: rap_pe_test 00:00:58 -- baseline 00:02:00
+09/06 15:32:07Z -Runtime: hrrr_test 00:04:31 -- baseline 00:02:00
+09/06 15:32:07Z -Runtime: hrrr_pe_test 00:01:39 -- baseline 00:02:00
+09/06 15:37:08Z -Runtime: fv3gfs_test 00:09:23 -- baseline 00:18:00
+09/06 15:37:08Z -Runtime: fv3gfs_pe_test 00:06:47 -- baseline 00:18:00
+09/06 15:37:08Z -Runtime: fv3r_test 00:01:51 -- baseline 00:03:00
+09/06 15:37:08Z -Runtime: fv3r_pe_test 00:01:56 -- baseline 00:03:00
+09/06 15:37:08Z -Runtime: fv3hafs_test 00:00:31 -- baseline 00:00:40
+09/06 15:37:08Z -Runtime: fv3hafs_pe_test 00:00:29 -- baseline 00:00:40
+09/06 15:37:08Z -Runtime: rtma_test 00:02:17 -- baseline 00:04:00
+09/06 15:37:08Z -Runtime: rtma_pe_test 00:02:15 -- 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 96b9f159c..9ff05e035 100644
--- a/tests/logs/rt.log.ORION
+++ b/tests/logs/rt.log.ORION
@@ -1,69 +1,69 @@
===== Start of UPP Regression Testing Log =====
UPP Hash Tested:
-d0567960a57752b4d3a8539cd87bbadfab1b9797
+e8197c41f54a5a85e663d21c0d71b5acf8e4d1da
Submodule hashes:
-1ba8270870947b583cd51bc72ff8960f4c1fb36e sorc/libIFI.fd
-567edcc94bc418d0dcd6cdaafed448eeb5aab570 sorc/ncep_post.fd/post_gtg.fd
-Run directory: /work2/noaa/epic/nandoam/regression-testing/upp/orion/1019/UPP/ci/rundir/upp-ORION
+Run directory: /work2/noaa/epic/nandoam/regression-testing/upp/orion/1029/UPP/ci/rundir/upp-ORION
Baseline directory: /work/noaa/epic/UPP
-Total runtime: 00h:14m:13s
-Test Date: 20240829 11:21:13
+Total runtime: 00h:16m:46s
+Test Date: 20240906 10:41:22
Summary Results:
-08/29 16:10:33Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
-08/29 16:10:37Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
-08/29 16:10:47Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
-08/29 16:10:47Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
-08/29 16:11:34Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
-08/29 16:11:35Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
-08/29 16:11:37Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
-08/29 16:11:38Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
-08/29 16:11:45Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
-08/29 16:11:45Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
-08/29 16:11:46Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
-08/29 16:11:55Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
-08/29 16:11:56Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
-08/29 16:11:57Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
-08/29 16:12:15Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
-08/29 16:12:18Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
-08/29 16:12:22Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
-08/29 16:12:26Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
-08/29 16:12:56Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
-08/29 16:12:58Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
-08/29 16:12:58Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
-08/29 16:12:59Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
-08/29 16:12:59Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
-08/29 16:13:00Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
-08/29 16:13:02Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
-08/29 16:13:02Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
-08/29 16:13:03Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
-08/29 16:17:29Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
-08/29 16:17:29Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
-08/29 16:17:31Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
-08/29 16:19:08Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
-08/29 16:19:10Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
-08/29 16:19:10Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
-08/29 16:21:01Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
-08/29 16:21:02Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
-08/29 16:21:02Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
-08/29 16:12:11Z -Runtime: nmmb_test 00:01:46 -- baseline 00:03:00
-08/29 16:12:11Z -Runtime: nmmb_pe_test 00:01:35 -- baseline 00:03:00
-08/29 16:12:11Z -Runtime: fv3gefs_test 00:00:22 -- baseline 01:20:00
-08/29 16:12:11Z -Runtime: fv3gefs_pe_test 00:00:26 -- baseline 01:20:00
-08/29 16:12:11Z -Runtime: rap_test 00:01:27 -- baseline 00:02:00
-08/29 16:12:11Z -Runtime: rap_pe_test 00:01:25 -- baseline 00:02:00
-08/29 16:17:42Z -Runtime: hrrr_test 00:07:20 -- baseline 00:02:00
-08/29 16:17:42Z -Runtime: hrrr_pe_test 00:02:51 -- baseline 00:02:00
-08/29 16:21:12Z -Runtime: fv3gfs_test 00:10:51 -- baseline 00:18:00
-08/29 16:21:12Z -Runtime: fv3gfs_pe_test 00:08:59 -- baseline 00:18:00
-08/29 16:21:12Z -Runtime: fv3r_test 00:02:07 -- baseline 00:03:00
-08/29 16:21:13Z -Runtime: fv3r_pe_test 00:02:15 -- baseline 00:03:00
-08/29 16:21:13Z -Runtime: fv3hafs_test 00:00:36 -- baseline 00:00:40
-08/29 16:21:13Z -Runtime: fv3hafs_pe_test 00:00:36 -- baseline 00:00:40
-08/29 16:21:13Z -Runtime: rtma_test 00:02:52 -- baseline 00:04:00
-08/29 16:21:13Z -Runtime: rtma_pe_test 00:02:48 -- baseline 00:04:00
+09/06 15:29:04Z -nmmb pe test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
+09/06 15:29:05Z -nmmb pe test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
+09/06 15:29:05Z -nmmb pe test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
+09/06 15:29:14Z -nmmb test: your new post executable generates bit-identical BGDAWP03.tm00.Grib2 as the trunk
+09/06 15:29:15Z -nmmb test: your new post executable generates bit-identical BGRD3D03.tm00.Grib2 as the trunk
+09/06 15:29:15Z -nmmb test: your new post executable generates bit-identical BGRDSF03.tm00.Grib2 as the trunk
+09/06 15:30:39Z -fv3gefs test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
+09/06 15:30:43Z -fv3gefs pe test: your new post executable generates bit-identical geaer.t00z.master.grb2f060 as the trunk
+09/06 15:30:54Z -fv3hafs pe test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
+09/06 15:30:55Z -fv3hafs test: your new post executable generates bit-identical HURPRS09.tm00 as the trunk
+09/06 15:31:43Z -rap pe test: your new post executable did generate changed results in WRFPRS.GrbF16
+09/06 15:31:44Z -rap pe test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
+09/06 15:31:45Z -rap test: your new post executable generates bit-identical WRFPRS.GrbF16 as the trunk
+09/06 15:31:46Z -rap test: your new post executable generates bit-identical WRFNAT.GrbF16 as the trunk
+09/06 15:32:24Z -fv3r test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
+09/06 15:32:28Z -fv3r test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
+09/06 15:32:31Z -fv3r pe test: your new post executable generates bit-identical PRSLEV10.tm00 as the trunk
+09/06 15:32:35Z -fv3r pe test: your new post executable generates bit-identical NATLEV10.tm00 as the trunk
+09/06 15:32:59Z -rtma pe test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
+09/06 15:33:01Z -hrrr pe test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
+09/06 15:33:01Z -rtma pe test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
+09/06 15:33:02Z -hrrr pe test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
+09/06 15:33:02Z -rtma pe test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
+09/06 15:33:02Z -rtma test: your new post executable generates bit-identical NATLEV00.tm00 as the trunk
+09/06 15:33:04Z -hrrr pe test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
+09/06 15:33:05Z -rtma test: your new post executable generates bit-identical PRSLEV00.tm00 as the trunk
+09/06 15:33:06Z -rtma test: your new post executable generates bit-identical IFIFIP00.tm00 as the trunk
+09/06 15:37:29Z -hrrr test: your new post executable generates bit-identical WRFTWO.GrbF04 as the trunk
+09/06 15:37:30Z -hrrr test: your new post executable generates bit-identical WRFPRS.GrbF04 as the trunk
+09/06 15:37:32Z -hrrr test: your new post executable generates bit-identical WRFNAT.GrbF04 as the trunk
+09/06 15:39:08Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
+09/06 15:39:10Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
+09/06 15:39:10Z -fv3gfs pe test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
+09/06 15:41:05Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.master.grb2f006 as the trunk
+09/06 15:41:07Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.sfluxgrbf006.grib2 as the trunk
+09/06 15:41:07Z -fv3gfs test: your new post executable generates bit-identical gfs.t00z.special.grb2f006 as the trunk
+09/06 15:29:19Z -Runtime: nmmb_test 00:01:26 -- baseline 00:03:00
+09/06 15:29:19Z -Runtime: nmmb_pe_test 00:01:17 -- baseline 00:03:00
+09/06 15:30:49Z -Runtime: fv3gefs_test 00:00:22 -- baseline 01:20:00
+09/06 15:30:49Z -Runtime: fv3gefs_pe_test 00:00:26 -- baseline 01:20:00
+09/06 15:31:49Z -Runtime: rap_test 00:01:29 -- baseline 00:02:00
+09/06 15:31:49Z -Runtime: rap_pe_test 00:01:27 -- baseline 00:02:00
+09/06 15:37:35Z -Runtime: hrrr_test 00:07:15 -- baseline 00:02:00
+09/06 15:37:35Z -Runtime: hrrr_pe_test 00:02:47 -- baseline 00:02:00
+09/06 15:41:21Z -Runtime: fv3gfs_test 00:10:50 -- baseline 00:18:00
+09/06 15:41:21Z -Runtime: fv3gfs_pe_test 00:08:53 -- baseline 00:18:00
+09/06 15:41:21Z -Runtime: fv3r_test 00:02:11 -- baseline 00:03:00
+09/06 15:41:21Z -Runtime: fv3r_pe_test 00:02:18 -- baseline 00:03:00
+09/06 15:41:21Z -Runtime: fv3hafs_test 00:00:38 -- baseline 00:00:40
+09/06 15:41:21Z -Runtime: fv3hafs_pe_test 00:00:37 -- baseline 00:00:40
+09/06 15:41:21Z -Runtime: rtma_test 00:02:49 -- baseline 00:04:00
+09/06 15:41:21Z -Runtime: rtma_pe_test 00:02:45 -- baseline 00:04:00
No changes in test results detected.
===== End of UPP Regression Testing Log =====