Update version info for release v4.6.1 (#2122)
[WRF.git] / var / da / da_radiance / da_qc_crtm.inc
blob5874d15a960800f34f252a4ae8c85b4226c113a6
1 subroutine da_qc_crtm (it, ob, iv)
3    !---------------------------------------------------------------------------
4    ! Purpose: perform quality control for radiance data.
5    !
6    ! METHOD:  seperated QC for each sensor
7    !---------------------------------------------------------------------------
9    implicit none
11    integer      ,  intent(in)      :: it
12    type (y_type),  intent(in)      :: ob         ! Observation structure.
13    type (iv_type), intent(inout)   :: iv         ! O-B structure.
15    integer :: i, nchan
16    logical   :: amsua, amsub, hirs, msu,airs,hsb, ssmis, mhs
18    if (trace_use) call da_trace_entry("da_qc_crtm")
19 #ifdef CRTM
21    do i = 1, iv%num_inst
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'
36       if (hirs) then
37          call da_qc_hirs(it, i,nchan,ob,iv)
38       else if (airs) then
39          call da_qc_airs(it, i,nchan,ob,iv)
40       else if ( hsb ) then
41          ! call da_qc_hsb(it, i,nchan,ob,iv)
42          call da_warning(__FILE__,__LINE__,(/'QC Not implemented for HSB'/))
43       else if (amsua) then
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)
47       else if (msu) then
48          ! call da_qc_msu(it, i,nchan, ob,iv)
49          call da_warning(__FILE__,__LINE__,(/'QC Not implemented for MSU'/))
50       else if (ssmis) then
51          call da_qc_ssmis(it, i,nchan,ob,iv)
52       else if (mhs) then
53          call da_qc_mhs(it,i,nchan,ob,iv)
54       else
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))
58       end if
60    end do
61 #endif
63    if (trace_use) call da_trace_exit("da_qc_crtm")
65 end subroutine da_qc_crtm