Skip to content

Commit

Permalink
Sync the RRFS hotfix NOAA-EMC#967 and NOAA-EMC#968.
Browse files Browse the repository at this point in the history
  • Loading branch information
WenMeng-NOAA committed Jun 17, 2024
1 parent a215c43 commit bd4f4f4
Show file tree
Hide file tree
Showing 11 changed files with 97 additions and 70 deletions.
3 changes: 0 additions & 3 deletions modulefiles/wcoss2.lua
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@ load(pathJoin("nemsio", nemsio_ver))
load(pathJoin("sigio", sigio_ver))
load(pathJoin("wrf_io", wrf_io_ver))

prepend_path("MODULEPATH"," /u/wen.meng/noscrub/ncep_post/g2tmpl/libs/modulefiles/compiler/intel/19.1.3.304")
load(pathJoin("g2tmpl", g2tmpl_ver))

setenv("CC","cc")
setenv("CXX","CC")
setenv("FC","ftn")
Expand Down
6 changes: 2 additions & 4 deletions parm/post_avblflds.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6996,11 +6996,10 @@

<param>
<post_avblfldidx>759</post_avblfldidx>
<shortname>AVE_SMOKE_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<shortname>AVE_PM25_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<pdstmpl>tmpl4_46</pdstmpl>
<pname>MASSDEN</pname>
<stats_proc>AVE</stats_proc>
<aerosol_type>particulate_org_matter_dry</aerosol_type>
<fixed_sfc1_type>spec_hgt_lvl_above_grnd</fixed_sfc1_type>
<typ_intvl_size>smaller_than_first_limit</typ_intvl_size>
<scale_fact_1st_size>7</scale_fact_1st_size>
Expand Down Expand Up @@ -7103,11 +7102,10 @@

<param>
<post_avblfldidx>771</post_avblfldidx>
<shortname>AVE_DUST_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<shortname>AVE_PM10_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<pdstmpl>tmpl4_46</pdstmpl>
<pname>MASSDEN</pname>
<stats_proc>AVE</stats_proc>
<aerosol_type>dust_dry</aerosol_type>
<fixed_sfc1_type>spec_hgt_lvl_above_grnd</fixed_sfc1_type>
<level>8.</level>
<typ_intvl_size>smaller_than_first_limit</typ_intvl_size>
Expand Down
8 changes: 4 additions & 4 deletions parm/postxconfig-NT-rrfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11360,7 +11360,7 @@ surface
?
?
759
AVE_SMOKE_ON_SPEC_HGT_LVL_ABOVE_GRND_8m
AVE_PM25_ON_SPEC_HGT_LVL_ABOVE_GRND_8m
?
1
tmpl4_46
Expand All @@ -11377,7 +11377,7 @@ spec_hgt_lvl_above_grnd
?
0
?
particulate_org_matter_dry
?
?
smaller_than_first_limit
7
Expand All @@ -11402,7 +11402,7 @@ smaller_than_first_limit
?
?
771
AVE_DUST_ON_SPEC_HGT_LVL_ABOVE_GRND_8m
AVE_PM10_ON_SPEC_HGT_LVL_ABOVE_GRND_8m
?
1
tmpl4_46
Expand All @@ -11419,7 +11419,7 @@ spec_hgt_lvl_above_grnd
?
0
?
dust_dry
?
?
smaller_than_first_limit
7
Expand Down
30 changes: 15 additions & 15 deletions parm/postxconfig-NT-rrfs_subh.txt
Original file line number Diff line number Diff line change
Expand Up @@ -352,9 +352,9 @@ surface
?
?
?
525
BUCKET1_ASNOW_ON_SURFACE
bucket Var density snowfall on surface
725
GSD_ACM_SNOD_ON_SURFACE
?
1
tmpl4_8
ASNOW
Expand Down Expand Up @@ -394,9 +394,9 @@ surface
?
?
?
526
BUCKET1_APCP_ON_SURFACE
bucket Total precipitation on surface
417
CACM_APCP_ON_SURFACE
?
1
tmpl4_8
APCP
Expand Down Expand Up @@ -436,9 +436,9 @@ surface
?
?
?
528
BUCKET1_TSNOWP_ON_SURFACE
bucket snow on surface
1004
ACM_SNOWFALL_ON_SURFACE
?
1
tmpl4_8
TSNOWP
Expand Down Expand Up @@ -478,9 +478,9 @@ surface
?
?
?
527
BUCKET1_FRZR_ON_SURFACE
bucket Freezing rain on surface
782
ACM_FRAIN_ON_SURFACE
?
1
tmpl4_8
FRZR
Expand Down Expand Up @@ -520,9 +520,9 @@ surface
?
?
?
530
BUCKET1_GRAUPEL_ON_SURFACE
bucket graupel precipitation on surface
746
ACM_GRAUPEL_ON_SURFACE
?
1
tmpl4_8
FROZR
Expand Down
4 changes: 2 additions & 2 deletions parm/rrfs_postcntrl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1755,12 +1755,12 @@
</param>

<param>
<shortname>AVE_SMOKE_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<shortname>AVE_PM25_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<scale>6.0</scale>
</param>

<param>
<shortname>AVE_DUST_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<shortname>AVE_PM10_ON_SPEC_HGT_LVL_ABOVE_GRND_8m</shortname>
<scale>6.0</scale>
</param>

Expand Down
10 changes: 5 additions & 5 deletions parm/rrfs_postcntrl_subh.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,27 +71,27 @@
</param>

<param>
<shortname>BUCKET1_ASNOW_ON_SURFACE</shortname>
<shortname>GSD_ACM_SNOD_ON_SURFACE</shortname>
<scale>9.0</scale>
</param>

<param>
<shortname>BUCKET1_APCP_ON_SURFACE</shortname>
<shortname>CACM_APCP_ON_SURFACE</shortname>
<scale>-4.0</scale>
</param>

<param>
<shortname>BUCKET1_TSNOWP_ON_SURFACE</shortname>
<shortname>ACM_SNOWFALL_ON_SURFACE</shortname>
<scale>6.0</scale>
</param>

<param>
<shortname>BUCKET1_FRZR_ON_SURFACE</shortname>
<shortname>ACM_FRAIN_ON_SURFACE</shortname>
<scale>6.0</scale>
</param>

<param>
<shortname>BUCKET1_GRAUPEL_ON_SURFACE</shortname>
<shortname>ACM_GRAUPEL_ON_SURFACE</shortname>
<scale>6.0</scale>
</param>

Expand Down
12 changes: 1 addition & 11 deletions sorc/ncep_post.fd/CALPW.f
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
!> 2021-09-02 | Bo Cui | Decompose UPP in X direction
!> 2022-11-16 | Eric James | Adding calculation of vertically integrated dust from RRFS
!> 2023-02-23 | Eric James | Adding vertically integrated coarse PM from RRFS
!> 2024-04-23 | Eric James | Adding vertically integrated smoke emissions (ebb)
!>
!> @author Russ Treadon W/NP2 @date 1992-12-24
!-----------------------------------------------------------------------
Expand All @@ -55,7 +54,7 @@ SUBROUTINE CALPW(PW,IDECID)
use vrbls3d, only: q, qqw, qqi, qqr, qqs, cwm, qqg, t, rswtt, &
train, tcucn, mcvg, pmid, o3, ext, pint, rlwtt, &
taod5503d,sca, asy
use vrbls4d, only: smoke, fv3dust, coarsepm, ebb
use vrbls4d, only: smoke, fv3dust, coarsepm
use masks, only: htm
use params_mod, only: tfrz, gi
use ctlblk_mod, only: lm, jsta, jend, im, spval, ista, iend
Expand Down Expand Up @@ -298,15 +297,6 @@ SUBROUTINE CALPW(PW,IDECID)
Qdum(I,J) = COARSEPM(I,J,L,1)/(1E9)
ENDDO
END DO
! EBB (from RRFS)
ELSE IF (IDECID == 24) THEN
!$omp parallel do private(i,j)
DO J=JSTA,JEND
DO I=ISTA,IEND
Qdum(I,J) = EBB(I,J,L,1)/(1E9)
ENDDO
END DO
ENDIF
!
!$omp parallel do private(i,j,dp)
Expand Down
19 changes: 16 additions & 3 deletions sorc/ncep_post.fd/CLDRAD.f
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
!> 2023-09-26 | Jaymes Kenyon | For RRFS, use cloud fraction to diagnose cloud base/top (height and pressure)
!> 2024-04-23 | Eric James | Adding smoke emissions (ebb) from RRFS
!> 2024-05-01 | Jaymes Kenyon | Updates to the GSL exp-1 ceiling diagnostic
!> 2024-05-24 | Eric James | Correcting the vertical summing of biomass burning emissions (EBB)
!>
!> @author Russ Treadon W/NP2 @date 1993-08-30
!---------------------------------------------------------------------------------
Expand All @@ -86,7 +87,7 @@
SUBROUTINE CLDRAD
!
use vrbls4d, only: DUST,SUSO, SALT, SOOT, WASO,NO3,NH4
use vrbls4d, only: DUST,SUSO, SALT, SOOT, WASO,NO3,NH4,EBB
use vrbls3d, only: QQW, QQR, T, ZINT, CFR, QQI, QQS, Q, EXT, ZMID,PMID,&
PINT, DUEM, DUSD, DUDP, DUWT, DUSV, SSEM, SSSD,SSDP,&
SSWT, SSSV, BCEM, BCSD, BCDP, BCWT, BCSV, OCEM,OCSD,&
Expand Down Expand Up @@ -533,8 +534,20 @@ SUBROUTINE CLDRAD
! TOTAL COLUMN EBB (BIOMASS BURNING EMISSIONS)
!
IF (IGET(745) > 0) THEN
CALL CALPW(GRID1(ista:iend,jsta:iend),24)
CALL BOUND(GRID1,D00,H99999)
!$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
GRID1(ii,jj) = 0.0
do k=1,lm
LL=LM-k+1
if(EBB(ii,jj,k,1)/=spval)then
GRID1(ii,jj) = GRID1(ii,jj) + EBB(ii,jj,k,1)/(1E9)
endif
enddo
enddo
enddo
if(grib == "grib2" )then
cfld = cfld + 1
fld_info(cfld)%ifld = IAVBLFLD(IGET(745))
Expand Down
55 changes: 43 additions & 12 deletions sorc/ncep_post.fd/SURFCE.f
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@
!> 2024-04-03 | E James | Enabling output of hourly average smoke PM2.5 and dust PM10
!> 2024-04-23 | E James | Adding smoke emissions (ebb) from RRFS
!> 2024-05-01 | E James | Adapt the BUCKET1 type fields (15-min acc) for use in RRFS
!> 2024-05-24 | E James | Modify the run total acc precip fields for 15-min output
!> 2024-06-11 | E James | Modifying RRFS hourly average smoke/dust fields to be PM2.5 and PM20
!>
!> @note
!> USAGE: CALL SURFCE
Expand Down Expand Up @@ -482,7 +484,11 @@ SUBROUTINE SURFCE
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(725))
fld_info(cfld)%ntrange=1
fld_info(cfld)%tinvstat=IFHR
if(ifmin>1)then
fld_info(cfld)%tinvstat=IFHR*60+IFMIN
else
fld_info(cfld)%tinvstat=IFHR
endif
!$omp parallel do private(i,j,ii,jj)
do j=1,jend-jsta+1
jj = jsta+j-1
Expand Down Expand Up @@ -2211,14 +2217,14 @@ SUBROUTINE SURFCE
endif
ENDIF
!
! Hourly averaged surface smoke
! Hourly averaged surface PM2.5
!
IF (IGET(759)>0) THEN
GRID1=SPVAL
DO J=JSTA,JEND
DO I=ISTA,IEND
if(T(I,J,LM)/=spval.and.PMID(I,J,LM)/=spval.and.SMOKE_AVE(I,J)/=spval)&
GRID1(I,J) = (1./RD)*(PMID(I,J,LM)/T(I,J,LM))*SMOKE_AVE(I,J)/(1E9)
GRID1(I,J) = (1./RD)*(PMID(I,J,LM)/T(I,J,LM))*(SMOKE_AVE(I,J)+DUST_AVE(I,J))/(1E9)
ENDDO
ENDDO
ID(1:25) = 0
Expand Down Expand Up @@ -2259,7 +2265,7 @@ SUBROUTINE SURFCE
DO J=JSTA,JEND
DO I=ISTA,IEND
if(T(I,J,LM)/=spval.and.PMID(I,J,LM)/=spval.and.DUST_AVE(I,J)/=spval)&
GRID1(I,J) = (1./RD)*(PMID(I,J,LM)/T(I,J,LM))*(DUST_AVE(I,J)+COARSEPM_AVE(I,J))/(1E9)
GRID1(I,J) = (1./RD)*(PMID(I,J,LM)/T(I,J,LM))*(SMOKE_AVE(I,J)+DUST_AVE(I,J)+COARSEPM_AVE(I,J))/(1E9)
ENDDO
ENDDO
ID(1:25) = 0
Expand Down Expand Up @@ -3128,7 +3134,7 @@ SUBROUTINE SURFCE
DO J=JSTA,JEND
DO I=ISTA,IEND
IF(AVGPREC_CONT(I,J) < SPVAL)THEN
GRID2(I,J) = AVGPREC_CONT(I,J)*FLOAT(IFHR)*3600.*1000./DTQ2
GRID2(I,J) = AVGPREC_CONT(I,J)*((3600.*FLOAT(IFHR))+(60.*FLOAT(IFMIN)))*1000./DTQ2
ELSE
GRID2(I,J) = SPVAL
END IF
Expand All @@ -3142,7 +3148,11 @@ SUBROUTINE SURFCE
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(417))
fld_info(cfld)%ntrange=1
fld_info(cfld)%tinvstat=IFHR
if(ifmin>1)then
fld_info(cfld)%tinvstat=IFHR*60+IFMIN
else
fld_info(cfld)%tinvstat=IFHR
endif
! print*,'tinvstat in cont bucket= ',fld_info(cfld)%tinvstat
!$omp parallel do private(i,j,ii,jj)
do j=1,jend-jsta+1
Expand Down Expand Up @@ -3572,8 +3582,15 @@ SUBROUTINE SURFCE
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(746))
fld_info(cfld)%ntrange=1
fld_info(cfld)%tinvstat=IFHR-ID(18)
if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')fld_info(cfld)%tinvstat=IFHR
if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')then
if(ifmin>1)then
fld_info(cfld)%tinvstat=IFHR*60+IFMIN
else
fld_info(cfld)%tinvstat=IFHR
endif
else
fld_info(cfld)%tinvstat=IFHR-ID(18)
endif
!$omp parallel do private(i,j,ii,jj)
do j=1,jend-jsta+1
jj = jsta+j-1
Expand Down Expand Up @@ -3618,8 +3635,15 @@ SUBROUTINE SURFCE
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(782))
fld_info(cfld)%ntrange=1
fld_info(cfld)%tinvstat=IFHR-ID(18)
if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')fld_info(cfld)%tinvstat=IFHR
if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')then
if(ifmin>1)then
fld_info(cfld)%tinvstat=IFHR*60+IFMIN
else
fld_info(cfld)%tinvstat=IFHR
endif
else
fld_info(cfld)%tinvstat=IFHR-ID(18)
endif
!$omp parallel do private(i,j,ii,jj)
do j=1,jend-jsta+1
jj = jsta+j-1
Expand Down Expand Up @@ -3664,8 +3688,15 @@ SUBROUTINE SURFCE
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(1004))
fld_info(cfld)%ntrange=1
fld_info(cfld)%tinvstat=IFHR-ID(18)
if(MODELNAME=='FV3R' .or. MODELNAME=='GFS')fld_info(cfld)%tinvstat=IFHR
if(MODELNAME=='FV3R' .OR. MODELNAME=='GFS')then
if(ifmin>1)then
fld_info(cfld)%tinvstat=IFHR*60+IFMIN
else
fld_info(cfld)%tinvstat=IFHR
endif
else
fld_info(cfld)%tinvstat=IFHR-ID(18)
endif
! print*,'id(18),tinvstat in acgraup= ',ID(18),fld_info(cfld)%tinvstat
!$omp parallel do private(i,j,ii,jj)
do j=1,jend-jsta+1
Expand Down
Loading

0 comments on commit bd4f4f4

Please sign in to comment.