Skip to content

Commit

Permalink
Updates and bugs fixed for GEFSv12.3 (#484)
Browse files Browse the repository at this point in the history
* Updates and bugs fixed for GEFSv12.2
Include surface dust PM10
author: Kate.Zhang <[email protected]>

* updated codes based on Xianwu's code review comments

* remove #if and #endif
  • Loading branch information
lipan-NOAA committed Apr 28, 2022
1 parent 6737e7e commit 4b10df4
Show file tree
Hide file tree
Showing 11 changed files with 217 additions and 160 deletions.
5 changes: 3 additions & 2 deletions parm/post_avblflds.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5992,10 +5992,11 @@

<param>
<post_avblfldidx>685</post_avblfldidx>
<shortname>DU_CR_AER_SFC_MASS_CON</shortname>
<shortname>DUST10_SFC_MASS_CON</shortname>
<stats_proc>AVE</stats_proc>
<pdstmpl>tmpl4_48</pdstmpl>
<pname>MASSDEN</pname>
<pname>PMTC</pname>
<fixed_sfc1_type>surface</fixed_sfc1_type>
<aerosol_type>dust_dry</aerosol_type>
<typ_intvl_size>smaller_than_first_limit</typ_intvl_size>
<scale_fact_1st_size>6</scale_fact_1st_size>
Expand Down
6 changes: 6 additions & 0 deletions parm/postcntrl_gefs_chem.xml
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,12 @@
<scale>9.0</scale>
</param>

<param>
<shortname>DUST10_SFC_MASS_CON</shortname>
<table_info>NCEP</table_info>
<scale>9.0</scale>
</param>

<param>
<shortname>DUST25_SFC_MASS_CON</shortname>
<table_info>NCEP</table_info>
Expand Down
39 changes: 38 additions & 1 deletion parm/postxconfig-NT-GEFS-CHEM.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
1
46
47
GFSPRS
0
ncep_nco
Expand Down Expand Up @@ -1311,6 +1311,43 @@ between_first_second_limit
?
?
?
685
DUST10_SFC_MASS_CON
?
1
tmpl4_48
PMTC
NCEP
AVE
surface
0
?
0
?
?
0
?
0
?
dust_dry
smaller_than_first_limit
6
10
0
0.0
?
0
0.0
0
0.0
1
9.0
0
0
0
?
?
?
686
DUST25_SFC_MASS_CON
?
Expand Down
2 changes: 2 additions & 0 deletions sorc/ncep_post.fd/ALLOCATE_ALL.f
Original file line number Diff line number Diff line change
Expand Up @@ -525,7 +525,9 @@ SUBROUTINE ALLOCATE_ALL()
allocate(dustallcb(im,jsta_2l:jend_2u))
allocate(ssallcb(im,jsta_2l:jend_2u))
allocate(dustpm(im,jsta_2l:jend_2u))
allocate(dustpm10(im,jsta_2l:jend_2u))
allocate(sspm(im,jsta_2l:jend_2u))
allocate(maod(im,jsta_2l:jend_2u))
endif
! HWRF RRTMG output
allocate(acswupt(im,jsta_2l:jend_2u))
Expand Down
7 changes: 3 additions & 4 deletions sorc/ncep_post.fd/CALPW.f
Original file line number Diff line number Diff line change
Expand Up @@ -289,12 +289,11 @@ SUBROUTINE CALPW(PW,IDECID)
DO J=JSTA,JEND
DO I=1,IM
DP = PINT(I,J,L+1) - PINT(I,J,L)
PW(I,J) = PW(I,J) + Qdum(I,J)*DP*GI*HTM(I,J,L)
IF (IDECID == 17 .or. IDECID == 20 .or. IDECID == 21) THEN
PW(I,J) = PW(I,J) + Qdum(I,J)*MAX(DP,0.)*GI*HTM(I,J,L)
ENDIF
IF (IDECID == 19) THEN
PW(I,J) = PW(I,J) + Qdum(I,J)
ELSE
PW(I,J) = PW(I,J) + Qdum(I,J)*MAX(DP,0.)*GI*HTM(I,J,L)
ENDIF
IF (IDECID == 14) PWS(I,J) = PWS(I,J) + QS(I,J)*DP*GI*HTM(I,J,L)
ENDDO
Expand Down
49 changes: 34 additions & 15 deletions sorc/ncep_post.fd/CLDRAD.f
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ SUBROUTINE CLDRAD
SWDDIFC, SWUPBC, LWDNBC, LWUPBC, SWUPT, &
TAOD5502D, AERSSA2D, AERASY2D, MEAN_FRP, LWP, IWP, &
TAOD5502D, AERSSA2D, AERASY2D, &
DUSTCB,SSCB,BCCB,OCCB,SULFCB,DUSTPM,SSPM
DUSTCB,SSCB,BCCB,OCCB,SULFCB,DUSTPM,DUSTPM10,SSPM,MAOD
use masks, only: LMH, HTM
use params_mod, only: TFRZ, D00, H99999, QCLDMIN, SMALL, D608, H1, ROG, &
GI, RD, QCONV, ABSCOEFI, ABSCOEF, STBOL, PQ0, A2, &
Expand Down Expand Up @@ -5137,50 +5137,49 @@ SUBROUTINE CLDRAD
ENDIF ! END OF LAEROPT IF-BLOCK
!#if 0
!! Multiply by 1.E-6 to revert these fields back
IF (IGET(659).GT.0) THEN
IF (IGET(667).GT.0) THEN
GRID1=SPVAL
!$omp parallel do private(i,j)
DO J = JSTA,JEND
DO I = 1,IM
GRID1(I,J) = DUEM(I,J,1)*1.E-6
DO K=2,NBIN_DU
GRID1(I,J) = GRID1(I,J) + DUEM(I,J,K)*1.E-6
GRID1(I,J) = BCEM(I,J,1)
DO K=2,NBIN_BC
GRID1(I,J) = GRID1(I,J) + BCEM(I,J,K)
END DO
END DO
END DO
ID(1:25) = 0
ID(02)=141
if(grib=='grib1') then
CALL GRIBIT(IGET(659),LVLS(1,IGET(659)),GRID1,IM,JM)
CALL GRIBIT(IGET(667),LVLS(1,IGET(667)),GRID1,IM,JM)
elseif(grib=='grib2') then
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(659))
fld_info(cfld)%ifld=IAVBLFLD(IGET(667))
datapd(1:im,1:jend-jsta+1,cfld)=GRID1(1:im,jsta:jend)
endif
ENDIF
IF (IGET(660).GT.0) THEN
IF (IGET(699).GT.0) THEN
GRID1=SPVAL
!$omp parallel do private(i,j)
DO J = JSTA,JEND
DO I = 1,IM
GRID1(I,J) = DUSD(I,J,1)*1.E-6
DO K=2,NBIN_DU
GRID1(I,J) = GRID1(I,J)+ DUSD(I,J,K)*1.E-6
END DO
GRID1(I,J) = MAOD(I,J)
END DO
END DO
ID(1:25) = 0
ID(02)=141
if(grib=='grib1') then
CALL GRIBIT(IGET(660),LVLS(1,IGET(660)),GRID1,IM,JM)
CALL GRIBIT(IGET(699),LVLS(1,IGET(699)),GRID1,IM,JM)
elseif(grib=='grib2') then
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(660))
fld_info(cfld)%ifld=IAVBLFLD(IGET(699))
datapd(1:im,1:jend-jsta+1,cfld)=GRID1(1:im,jsta:jend)
endif
ENDIF
!#endif
!! ADD DUST DRY DEPOSITION FLUXES (kg/m2/sec)
!
! IF (IGET(661).GT.0) THEN
Expand Down Expand Up @@ -5208,7 +5207,6 @@ SUBROUTINE CLDRAD
!$omp parallel do private(i,j)
DO J = JSTA,JEND
DO I = 1,IM
!GRID1(I,J) = DUSMASS(I,J) * 1.E-6
GRID1(I,J) = DUSTPM(I,J) !ug/m3
END DO
END DO
Expand All @@ -5223,6 +5221,24 @@ SUBROUTINE CLDRAD
endif
ENDIF
IF (IGET(685).GT.0 ) THEN
!$omp parallel do private(i,j)
DO J = JSTA,JEND
DO I = 1,IM
GRID1(I,J) = DUSTPM10(I,J) !ug/m3
END DO
END DO
ID(1:25) = 0
ID(02)=129
if(grib=='grib1') then
CALL GRIBIT(IGET(685),LVLS(1,IGET(685)),GRID1,IM,JM)
elseif(grib=='grib2') then
cfld=cfld+1
fld_info(cfld)%ifld=IAVBLFLD(IGET(685))
datapd(1:im,1:jend-jsta+1,cfld)=GRID1(1:im,jsta:jend)
endif
ENDIF
!! ADD DUST WET DEPOSITION FLUXES (kg/m2/sec)
! IF (IGET(662).GT.0) THEN
! DO J = JSTA,JEND
Expand Down Expand Up @@ -5469,6 +5485,9 @@ SUBROUTINE CLDRAD
IF (IGET(674).GT.0) call wrt_aero_diag(674,nbin_oc,ocwt)
IF (IGET(682).GT.0) call wrt_aero_diag(682,nbin_oc,ocsv)
print *,'aft wrt disg ocwt'
!! wrt MIE AOD at 550nm
IF (IGET(699).GT.0) call wrt_aero_diag(699,1,maod)
print *,'aft wrt disg maod'
!! wrt SU diag field
! IF (IGET(675).GT.0) call wrt_aero_diag(675,nbin_su,suem)
Expand Down
2 changes: 2 additions & 0 deletions sorc/ncep_post.fd/DEALLOCATE.f
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,9 @@ SUBROUTINE DE_ALLOCATE
deallocate(dustallcb)
deallocate(ssallcb)
deallocate(dustpm)
deallocate(dustpm10)
deallocate(sspm)
deallocate(maod)
endif
!
! HWRF RRTMG output
Expand Down
Loading

0 comments on commit 4b10df4

Please sign in to comment.