da_check_max_iv_radar.inc
References to this file elsewhere.
1 subroutine da_check_max_iv_radar(it, Radar, irv, irf, irvf, irff)
2
3 !-----------------------------------------------------------------------
4 ! Purpose: TBD
5 !-----------------------------------------------------------------------
6
7 implicit none
8
9 integer, intent(in) :: it
10 integer, intent(inout) :: irv, irf, irvf, irff
11 type (radar_type), intent(inout) :: Radar
12
13 integer :: k
14
15 logical :: failed
16
17 !---------------------------------------------------------------------------
18 ! [1.0] Open diagnostic file:
19 !---------------------------------------------------------------------------
20
21 if (rootproc .and. check_max_iv_print) then
22 write (check_max_iv_unit,'(a)') &
23 '----------------------------------------------------------------'
24 write (unit = check_max_iv_unit, fmt = '(A,/)') 'MAX ERROR TEST QC:'
25
26 write (unit = check_max_iv_unit, fmt = '(/,9(A,F3.0,/))') &
27 'Error max test ratio for Radar_rv = ',max_error_rv, &
28 'Error max test ratio for Radar_rf = ',max_error_rf
29 endif
30
31 !------------------------------------------------------------------------
32 ! [2.0] Perform maximum innovation vector check:
33 !------------------------------------------------------------------------
34
35 failed = .false.
36
37 do k = 1, Radar % info % levels
38
39 if (Radar % height_qc(k) /= far_below_model_surface .and. &
40 Radar % height_qc(k) /= above_model_lid) then
41
42 ! rv
43 if (use_Radar_rv) then
44 call da_max_error_qc_Radar(it, Radar % info, Radar % rv(k), &
45 max_error_rv, irv, irvf, check_max_iv_unit, 'rv ', &
46 failed, check_max_iv_print)
47 endif
48
49 ! rf
50 if (use_Radar_rf) then
51 call da_max_error_qc_Radar(it, Radar % info, Radar % rf(k),&
52 max_error_rf, irf, irff, check_max_iv_unit, 'rf ', &
53 failed, check_max_iv_print)
54 endif
55 end if
56 end do
57
58 end subroutine da_check_max_iv_radar
59
60
61