Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/gsi/qcmod.f90
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ module qcmod
public :: npres_print,nlnqc_iter,varqc_iter,pbot,ptop,c_varqc,njqc,vqc,nvqc,hub_norm
public :: use_poq7,noiqc,vadfile,dfact1,dfact,erradar_inflate,gps_jacqc
public :: pboto3,ptopo3,pbotq,ptopq,newvad,tdrerr_inflate
public :: igood_qc,ifail_crtm_qc,ifail_satinfo_qc,ifail_interchan_qc,&
public :: igood_qc,ifail_crtm_qc,ifail_crtm_nan,ifail_satinfo_qc,ifail_interchan_qc,&
ifail_gross_qc,ifail_cloud_qc,ifail_outside_range,&
ifail_scanedge_qc, ifail_emiss_qc, ifail_cao_qc
public :: ifail_iland_det, ifail_isnow_det, ifail_iice_det, ifail_iwater_det,&
Expand Down Expand Up @@ -268,6 +268,8 @@ module qcmod
integer(i_kind),parameter:: ifail_outside_range=11
! Reject due to cold-air outbreak area check in setuprad
integer(i_kind),parameter:: ifail_cao_qc=12
! Reject due to NaN in the CRTM calculation
integer(i_kind),parameter:: ifail_crtm_nan=13
! Failures specific to qc routine start at 50 and the numbers overlap
! QC_SSMI failures
! Reject due to krain type not equal to 0 in subroutine qc_ssmi
Expand Down
17 changes: 17 additions & 0 deletions src/gsi/setuprad.f90
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,&
use crtm_interface, only: ilzen_ang2,iscan_ang2,iszen_ang2,isazi_ang2
use clw_mod, only: calc_clw, ret_amsua, gmi_37pol_diff
use qcmod, only: igood_qc,ifail_gross_qc,ifail_interchan_qc,ifail_crtm_qc,ifail_satinfo_qc,qc_noirjaco3,ifail_cloud_qc
use qcmod, only: ifail_crtm_nan
use qcmod, only: ifail_cao_qc,cao_check
use qcmod, only: ifail_iland_det, ifail_isnow_det, ifail_iice_det, ifail_iwater_det, ifail_imix_det, &
ifail_iomg_det, ifail_isst_det, ifail_itopo_det,ifail_iwndspeed_det
Expand All @@ -307,6 +308,8 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,&
use radiance_mod, only: radiance_ex_obserr_gmi,radiance_ex_biascor_gmi
use cads, only: cads_imager_calc

use, intrinsic :: ieee_arithmetic

implicit none

! Declare passed variables
Expand Down Expand Up @@ -997,6 +1000,20 @@ subroutine setuprad(obsLL,odiagLL,lunin,mype,aivals,stats,nchanl,nreal,nobs,&
varinv(1:nchanl) = zero
endif

! Include a separate check for NaNs in CRTM calculations. These are not always caught by other tests

if (ANY(ieee_is_nan(tsim(1:nchanl)))) then
write(*,*) 'WARNING: NaN found in CRTM simulated radiance output'
do i = 1, nchanl
if (ieee_is_nan(tsim(i))) then
write(*,*) 'NaN for ',trim(isis),' channel ', sc_index(i), ' at latitude = ', &
cenlat,' longitude = ',cenlon
end if
end do
id_qc(1:nchanl) = ifail_crtm_nan
varinv(1:nchanl) = zero
endif

! For SST retrieval, use interpolated NCEP SST analysis
if (retrieval) then
if( avhrr_navy )then
Expand Down