da_print_be_stats_p.inc
References to this file elsewhere.
1 subroutine da_print_be_stats_p(outunit, ni, nj, nk, num_bins, num_bins2d, bin, &
2 bin2d, regcoeff1, regcoeff2, regcoeff3)
3
4 !----------------------------------------------------------------------------
5 ! Purpose: To print out the regression coefficients for the physical
6 ! transform.
7 !
8 ! Input : outunit --- Fortran unit for writing out
9 ! ni,nj,nk --- Dimensions
10 ! num_bins, num_bins2d --- Number of the 3d and 2d bins
11 ! bin, bin2d --- bin index for the gridpoints
12 ! regcoeff1 --- Reg coefs for chi = regcoeff1 * psi
13 ! regcoeff2 --- Reg coefs for Ps = sum(regcoeff2(1:k)*psi(1:k))
14 ! regcoeff3 --- Reg coefs for T(k)= sum(regcoeff3(k,1:k)*psi(1:k))
15 !
16 ! Output : fort.171 --- regcoef1
17 ! fort.172 --- regcoeff2
18 ! fort.173 --- regcoeff3
19 !----------------------------------------------------------------------------
20
21 implicit none
22
23 integer, intent(inout) :: outunit ! Output file unit.
24 integer, intent(in) :: ni, nj, nk ! Grid dimensions.
25 integer, intent(in) :: num_bins ! Number of 3D field bins.
26 integer, intent(in) :: num_bins2d ! Number of 2D field bins.
27 integer, intent(in) :: bin(1:ni,1:nj,1:nk) ! Bin assigned to each 3D point.
28 integer, intent(in) :: bin2d(1:ni,1:nj) ! Bin assigned to each 3D point.
29 real, intent(in) :: regcoeff1(1:num_bins) ! psi/chi regression cooefficient.
30 real, intent(in) :: regcoeff2(1:nk,1:num_bins2d) ! psi/ps regression cooefficient.
31 real, intent(in) :: regcoeff3(1:nk,1:nk,1:num_bins2d) ! psi/T regression cooefficient.
32
33 integer :: k1, k2, i, k, j, b, number ! Loop counters.
34
35 if (trace_use) call da_trace_entry("da_print_be_stats_p")
36
37 write(unit=stdout,fmt='(a,i5)')' psi/chi regression coefficient in unit ', outunit
38
39 open(unit=outunit)
40 write(unit=outunit,fmt='(a,i5)')' psi/chi regression coefficient in unit ', outunit
41 do b = 1, num_bins
42 number = 0
43 do i = 1,ni
44 do j = 1,nj
45 do k = 1,nk
46 if (bin(i,j,k) == b) then
47 number = number + 1
48 end if
49 end do
50 end do
51 end do
52 write(unit=outunit,fmt='("bin=",i6," number_in_bin=",i6,5X,1pE12.5)') &
53 b, number, regcoeff1(b)
54 end do
55 close(unit=outunit)
56
57 outunit = outunit + 1
58
59 write(unit=stdout,fmt='(a,i5)') &
60 ' psi/ps regression coefficient in unit ', outunit
61
62 open(unit=outunit)
63 write(unit=outunit,fmt='(a,i5)') &
64 ' psi/ps regression coefficient in unit ', outunit
65
66 do b = 1, num_bins2d
67 number = 0
68 do i = 1,ni
69 do j = 1,nj
70 if (bin2d(i,j) == b) then
71 number = number + 1
72 end if
73 end do
74 end do
75 write(unit=outunit,fmt='(/"bin=",i6," number_in_bin=",i6)') b, number
76 write(unit=outunit,fmt='((2X,9(i3,2x,1pE12.5)))') (k,regcoeff2(k,b), k=1,nk)
77 end do
78 close(unit=outunit)
79
80 outunit = outunit + 1
81
82 write(unit=stdout,fmt='(a,i5)') &
83 ' psi/T regression coefficient in unit ', outunit
84
85 open(unit=outunit)
86 write(unit=outunit,fmt='(a,i5)') &
87 ' psi/T regression coefficient in unit ', outunit
88 do b = 1, num_bins2d
89 number = 0
90 do i = 1,ni
91 do j = 1,nj
92 if (bin2d(i,j) == b) then
93 number = number + 1
94 end if
95 end do
96 end do
97
98 write(unit=outunit,fmt='(/"bin=",i6," number_in_bin=",i6)') b, number
99 do k1 = 1,nk
100 write(unit=outunit,fmt='(2X,"Temperature at k1=",i3)') k1
101 write(unit=outunit,fmt='((2X,9(i3,2x,1pE12.5)))') (k2,regcoeff3(k1,k2,b), k2=1,nk)
102 end do
103 end do
104 close(unit=outunit)
105
106 write(unit=stdout,fmt=*) ' '
107
108 outunit = outunit + 1
109
110 if (trace_use) call da_trace_exit("da_print_be_stats_p")
111
112 end subroutine da_print_be_stats_p
113
114