da_print_be_stats_h_global.inc

References to this file elsewhere.
1 subroutine da_print_be_stats_h_global(outunit, variable, k, max_wavenumber, &
2   total_power)
3 
4    !-----------------------------------------------------------------------
5    ! Purpose: TBD
6    !-----------------------------------------------------------------------
7 
8    implicit none 
9 
10    integer,      intent(inout) :: outunit        ! Output file unit.
11    character*10, intent(in)    :: variable       ! Variable name.
12    integer,      intent(in)    :: k              ! Vertical index.
13    integer,      intent(in)    :: max_wavenumber ! Smallest scale required (ni/2-1)
14 
15    ! Total Power spectrum (averaged over time/members)
16    real,         intent(in) :: total_power(0:max_wavenumber)
17 
18    integer :: n                     ! Loop counter.
19    real    :: accum_power, variance ! Accumulated power, variance.
20 
21    if (trace_use) call da_trace_entry("da_print_be_stats_h_global")
22 
23    accum_power = 0.0
24    variance = sum(total_power(0:max_wavenumber))
25 
26    write(unit=stdout,fmt='(3a,i5,a,i5)')' Power spectra for variable ', trim(variable), &
27                           ' and level ', k, ' in unit ', outunit
28 
29    do n = 0, max_wavenumber
30       accum_power = accum_power + total_power(n)
31       write(unit=outunit,fmt='(2i4,2f18.5,f8.3)')k, n, total_power(n), accum_power, &
32                                         accum_power / variance
33    end do
34 
35    outunit = outunit + 1
36    write(unit=stdout,fmt=*) ''
37 
38    if (trace_use) call da_trace_exit("da_print_be_stats_h_global")
39 
40 end subroutine da_print_be_stats_h_global
41 
42