da_oi_stats_satem.inc

References to this file elsewhere.
1 subroutine da_oi_stats_satem (stats_unit, iv)
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
6 
7    implicit none
8 
9    integer,        intent (in) :: stats_unit    ! Output unit for stats.
10    type (iv_type), intent (in) :: iv            ! OI
11 
12    type (stats_satem_type) :: stats
13    integer                 :: nthickness
14    integer                 :: n, k
15 
16    if (trace_use_dull) call da_trace_entry("da_oi_stats_satem")
17 
18    nthickness = 0
19 
20    stats%maximum%thickness = maxmin_type(missing_r, 0, 0)
21    stats%minimum%thickness = maxmin_type(-missing_r, 0, 0)
22 
23    stats%average = residual_satem1_type(0.0)
24    stats%rms_err = stats%average
25 
26    do n=1, iv%info(satem)%nlocal
27       if (iv%info(satem)%proc_domain(1,n)) then
28          do k=1, iv%info(satem)%levels(n)
29             call da_stats_calculate(iv%info(satem)%obs_global_index(n), &
30                k, iv%satem(n)%thickness(k)%qc, &
31                iv%satem(n)%thickness(k)%inv, nthickness, &
32                stats%minimum%thickness, stats%maximum%thickness, &
33                stats%average%thickness, stats%rms_err%thickness)
34          end do
35       end if
36    end do
37 
38    ! Do inter-processor communication to gather statistics.
39    call da_proc_sum_int(nthickness)
40 
41    call da_proc_stats_combine(stats%average%thickness, stats%rms_err%thickness, &
42       stats%minimum%thickness%value, stats%maximum%thickness%value, &
43       stats%minimum%thickness%n, stats%maximum%thickness%n, &
44       stats%minimum%thickness%l, stats%maximum%thickness%l)
45 
46    if (rootproc) then
47       if (nthickness /= 0) then
48          write(unit=stats_unit, fmt='(/a/)') ' Diagnostics of OI for satem'
49          call da_print_stats_satem(stats_unit, nthickness, stats)
50       end if
51    end if
52 
53    if (trace_use_dull) call da_trace_exit("da_oi_stats_satem")
54 
55 end subroutine da_oi_stats_satem
56 
57