da_check_max_iv_qscat.inc

References to this file elsewhere.
1 subroutine da_check_max_iv_qscat(it, qscat, itu, itvv, ituf, itvvf)
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
6 
7    implicit none
8 
9    integer,           intent (in)         :: it
10    integer,           intent (inout)      :: itu, itvv, ituf, itvvf
11    type (qscat_type), intent(inout)       :: qscat
12 
13    logical                                :: failed
14 
15    !---------------------------------------------------------------------------
16    ! [1.0] Open diagnostic file:
17    !---------------------------------------------------------------------------
18 
19    if (rootproc .and. check_max_iv_print) then
20       write (check_max_iv_unit,'(A)')  &
21          '----------------------------------------------------------------'
22       write (unit = check_max_iv_unit, fmt = '(A,/)') 'MAX ERROR TEST QC:'
23 
24       write (unit = check_max_iv_unit, fmt = '(/,9(A,F3.0,/))')  &
25          'Error max test ratio for Qscat_U   = ',max_error_uv, &
26          'Error max test ratio for Qscat_V   = ',max_error_uv
27    end if
28 
29    !---------------------------------------------------------------------------
30    ! [2.0] Perform maximum innovation vector check:
31    !---------------------------------------------------------------------------
32 
33    failed = .false.
34 
35    ! U-wind
36 
37    call da_max_error_qc(it, qscat % info, qscat % u, &
38               max_error_uv, itu, ituf, check_max_iv_unit, 'U    ', &
39                             failed, check_max_iv_print)
40    ! V-wind
41 
42    call da_max_error_qc (it, qscat % info, qscat % v,&
43               max_error_uv, itvv, itvvf, check_max_iv_unit, 'V    ', &
44                              failed, check_max_iv_print)                           
45 
46    !---------------------------------------------------------------------------
47    ! [3.0] Output test failed results:
48    !---------------------------------------------------------------------------
49  
50    if (rootproc .and. check_max_iv_print .and. failed) then
51       write (unit = check_max_iv_unit, fmt = '(/,10(2(A,I6),/))') & 
52          'Number of failed qscat u-wind observations:       ', &
53          ituf,  ' on ',itu,   &
54          'Number of failed qscat v-wind observations:       ', &
55          itvvf,  ' on ',itvv
56    end if
57 
58 end subroutine da_check_max_iv_qscat
59 
60