Skip to content

Commit

Permalink
Refine use of PM2.5 for RRFS-SD;
Browse files Browse the repository at this point in the history
Add namelist pm2_5_innov_threshold
  • Loading branch information
hongli-wang committed Oct 18, 2022
1 parent cbe5180 commit fb7d5bf
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
5 changes: 4 additions & 1 deletion src/gsi/chemmod.f90
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ module chemmod
public :: naero_cmaq_fv3,aeronames_cmaq_fv3,imodes_cmaq_fv3

! fv3smoke
public :: naero_smoke_fv3,aeronames_smoke_fv3
public :: naero_smoke_fv3,aeronames_smoke_fv3,pm2_5_innov_threshold

public :: naero_gocart_wrf,aeronames_gocart_wrf

Expand Down Expand Up @@ -79,6 +79,8 @@ module chemmod
integer(i_kind) :: icvt_cmaq_fv3
real(r_kind) :: raod_radius_mean_scale,raod_radius_std_scale
real(r_kind) :: ppmv_conv = 96.06_r_kind/28.964_r_kind*1.0e+3_r_kind
real(r_kind) :: pm2_5_innov_threshold

logical :: wrf_pm2_5

logical :: lread_ext_aerosol ! if true, will read in aerosols from aerfXX rather than from sigfXX
Expand Down Expand Up @@ -305,6 +307,7 @@ subroutine init_chem
laeroana_gocart = .false.
laeroana_fv3cmaq = .false. ! .true. for performing aerosol analysis for regional FV3-CMAQ model(Please other parameters requred in gsimod.F90)
laeroana_fv3smoke = .false.
pm2_5_innov_threshold = 20.0_r_kind
l_aoderr_table = .false.
icvt_cmaq_fv3 = 1 ! 1. Control variable is individual aerosol specie; 2: CV is total mass per I,J,K mode
raod_radius_mean_scale = 1.0_r_kind ! Tune radius of particles when calculating AOD using CRTM
Expand Down
4 changes: 2 additions & 2 deletions src/gsi/gsimod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ module gsimod
oblon_chem,obpres_chem,diag_incr,elev_tolerance,tunable_error,&
in_fname,out_fname,incr_fname, &
laeroana_gocart, l_aoderr_table, aod_qa_limit, luse_deepblue, lread_ext_aerosol, &
laeroana_fv3cmaq,laeroana_fv3smoke,crtm_aerosol_model,crtm_aerosolcoeff_format,crtm_aerosolcoeff_file, &
laeroana_fv3cmaq,laeroana_fv3smoke,pm2_5_innov_threshold,crtm_aerosol_model,crtm_aerosolcoeff_format,crtm_aerosolcoeff_file, &
icvt_cmaq_fv3, raod_radius_mean_scale,raod_radius_std_scale

use chemmod, only : wrf_pm2_5,aero_ratios
Expand Down Expand Up @@ -1540,7 +1540,7 @@ module gsimod
in_fname,out_fname,incr_fname,&
laeroana_gocart, laeroana_fv3cmaq,laeroana_fv3smoke,l_aoderr_table, aod_qa_limit, &
crtm_aerosol_model,crtm_aerosolcoeff_format,crtm_aerosolcoeff_file, &
icvt_cmaq_fv3, &
icvt_cmaq_fv3,pm2_5_innov_threshold, &
raod_radius_mean_scale,raod_radius_std_scale, luse_deepblue,&
aero_ratios,wrf_pm2_5, lread_ext_aerosol

Expand Down
8 changes: 4 additions & 4 deletions src/gsi/setuppm2_5.f90
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ subroutine setuppm2_5(obsLL,odiagLL,lunin,mype,nreal,nobs,isis,is,conv_diagsave)
use chemmod, only: naero_gocart_wrf,aeronames_gocart_wrf,&
upper2lower,lower2upper,laeroana_gocart,wrf_pm2_5
use chemmod, only: naero_cmaq_fv3,aeronames_cmaq_fv3,imodes_cmaq_fv3,laeroana_fv3cmaq
use chemmod, only: naero_smoke_fv3,aeronames_smoke_fv3,laeroana_fv3smoke
use chemmod, only: naero_smoke_fv3,aeronames_smoke_fv3,laeroana_fv3smoke,pm2_5_innov_threshold
use gridmod, only : cmaq_regional,wrf_mass_regional,fv3_cmaq_regional
implicit none

Expand Down Expand Up @@ -737,9 +737,9 @@ subroutine setuppm2_5(obsLL,odiagLL,lunin,mype,nreal,nobs,isis,is,conv_diagsave)
mype,nfldsig)
innov = conc - pm2_5ges
if (laeroana_fv3smoke) then
if ( -1.0*innov >= 5.0_r_kind .or. &
(innov > 15.0_r_kind .and. pm2_5ges >=1.0_r_kind).or. &
(conc >= 60.0_r_kind .and. pm2_5ges >=1.0_r_kind).or. &
if ( -1.0*innov >= pm2_5_innov_threshold .or. &
(innov > pm2_5_innov_threshold .and. pm2_5ges >=1.0_r_kind).or. &
(conc >= 40.0_r_kind .and. pm2_5ges >=1.0_r_kind).or. &
conc >= 100.0_r_kind ) then
innov = innov
else
Expand Down

0 comments on commit fb7d5bf

Please sign in to comment.