da_check_max_iv_geoamv.inc
References to this file elsewhere.
1 subroutine da_check_max_iv_geoamv(it, geoamv, &
2 itu,ituf,itvv,itvvf)
3
4 !-------------------------------------------------------------------------
5 ! Purpose: Innovation vector check for Geo. AMVs
6 !-------------------------------------------------------------------------
7
8 implicit none
9
10 integer, intent (in) :: it ! Outer iteration
11 type (geoamv_type), intent(inout) :: geoamv
12 integer, intent(inout) :: itu,ituf,itvv,itvvf
13 integer :: k
14 logical :: failed
15
16 !---------------------------------------------------------------------------
17 ! [1.0] Open diagnostic file:
18 !---------------------------------------------------------------------------
19
20 if (rootproc .and. check_max_iv_print) then
21 write (check_max_iv_unit,'(A)') &
22 '----------------------------------------------------------------'
23 write (unit = check_max_iv_unit, fmt = '(A,/)') 'MAX ERROR TEST QC:'
24 write (unit = check_max_iv_unit, fmt = '(/,9(A,F3.0,/))') &
25 'Error max test ratio for GeoAMV_U = ',max_error_uv, &
26 'Error max test ratio for GeoAMV_V = ',max_error_uv
27 end if
28
29 !---------------------------------------------------------------------------
30 ! [2.0] Perform maximum innovation vector check:
31 !---------------------------------------------------------------------------
32
33 failed = .false.
34
35 do k = 1, geoamv % info % levels
36 ! U-wind
37 call da_max_error_qc(it, geoamv % info, geoamv % u(k), &
38 max_error_uv, itu, ituf, check_max_iv_unit, 'U ', &
39 failed, check_max_iv_print)
40 ! V-wind
41 call da_max_error_qc (it, geoamv % info, geoamv % v(k),&
42 max_error_uv, itvv, itvvf, check_max_iv_unit, 'V ', &
43 failed, check_max_iv_print)
44 end do
45
46 end subroutine da_check_max_iv_geoamv
47
48