Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_statistics / da_stats_calculate.inc
blobd124ef95bfe02b2a7bd7bbb98838b9e774963b09
1 subroutine da_stats_calculate(n, k, qc_flag, x, nn, minimum, maximum, &
2    average, rms_err)
4    !-----------------------------------------------------------------------
5    ! Purpose: TBD
6    !-----------------------------------------------------------------------
8    implicit none
10    integer,            intent(in)    :: n             ! Sequence number of ob.
11    integer,            intent(in)    :: k             ! Level of ob.
12    integer,            intent(in)    :: qc_flag       ! QC flag.
13    real,               intent(in)    :: x             ! Value.
14    integer,            intent(inout) :: nn            ! Number of ok obs.
15    type (maxmin_type), intent(inout) :: minimum, maximum
16    real,               intent(inout) :: average, rms_err
18    if (trace_use_dull) call da_trace_entry("da_stats_calculate")
20    if (qc_flag >= obs_qc_pointer) then
21       nn = nn + 1
23       if (x < minimum%value) then
24          minimum%value = x
25          minimum%n     = n
26          minimum%l     = k
27       end if
29       if (x > maximum%value) then
30          maximum%value = x
31          maximum%n     = n
32          maximum%l     = k
33       end if
35       average = average + x
36       rms_err = rms_err + x * x
37    end if
39    if (trace_use_dull) call da_trace_exit("da_stats_calculate")
41 end subroutine da_stats_calculate