1 subroutine da_qc_crtm (it, ob, iv)
3 !---------------------------------------------------------------------------
4 ! Purpose: perform quality control for radiance data.
6 ! METHOD: seperated QC for each sensor
7 !---------------------------------------------------------------------------
11 integer , intent(in) :: it
12 type (y_type), intent(in) :: ob ! Observation structure.
13 type (iv_type), intent(inout) :: iv ! O-B structure.
16 logical :: amsua, amsub, hirs, msu,airs,hsb, ssmis, mhs
18 if (trace_use) call da_trace_entry("da_qc_crtm")
23 !if (iv%instid(i)%info%n2 < iv%instid(i)%info%n1) cycle
25 nchan = iv%instid(i)%nchan
27 amsua = trim(rttov_inst_name(rtminit_sensor(i))) == 'amsua'
28 amsub = trim(rttov_inst_name(rtminit_sensor(i))) == 'amsub'
29 hirs = trim(rttov_inst_name(rtminit_sensor(i))) == 'hirs'
30 msu = trim(rttov_inst_name(rtminit_sensor(i))) == 'msu'
31 airs = trim(rttov_inst_name(rtminit_sensor(i))) == 'airs'
32 hsb = trim(rttov_inst_name(rtminit_sensor(i))) == 'hsb'
33 ssmis = trim(rttov_inst_name(rtminit_sensor(i))) == 'ssmis'
34 mhs = trim(rttov_inst_name(rtminit_sensor(i))) == 'mhs'
37 call da_qc_hirs(it, i,nchan,ob,iv)
39 call da_qc_airs(it, i,nchan,ob,iv)
41 ! call da_qc_hsb(it, i,nchan,ob,iv)
42 call da_warning(__FILE__,__LINE__,(/'QC Not implemented for HSB'/))
44 call da_qc_amsua(it,i,nchan,ob,iv)
45 else if ( amsub ) then
46 call da_qc_amsub(it,i,nchan,ob,iv)
48 ! call da_qc_msu(it, i,nchan, ob,iv)
49 call da_warning(__FILE__,__LINE__,(/'QC Not implemented for MSU'/))
51 call da_qc_ssmis(it, i,nchan,ob,iv)
53 call da_qc_mhs(it,i,nchan,ob,iv)
55 write(unit=message(1),fmt='(A,A)') &
56 "Unrecognized instrument",trim(rttov_inst_name(rtminit_sensor(i)))
57 call da_error(__FILE__,__LINE__,message(1:1))
63 if (trace_use) call da_trace_exit("da_qc_crtm")
65 end subroutine da_qc_crtm