NADCON5-ng  0.0.1
NADCON5 Next Generation
gridstats.f
Go to the documentation of this file.
1 c> \ingroup core
2 c> Subroutine to print grid statistics to stdout
3 c>
4 c> \param[in] fname name of grid stat file
5 c> \param[out] ave average
6 c> \param[out] std standard deviatio
7 c> \param[out] median
8 c>
9  subroutine gridstats(fname,ave,std,med)
10  implicit real*8(a-h,o-z)
11  parameter(nmax = 1561*3541)
12  real*8 med
13  real*4 data(5000),s1,select2,arr(nmax)
14  integer*4 nla,nlo,ikind
15  character*200 fname
16  open(11,file=fname,status='old',form='unformatted')
17 
18  ave = 0.d0
19  rms = 0.d0
20 
21  read(11)glamn,glomn,dla,dlo,nla,nlo,ikind
22  if(ikind.eq.0)stop 20304
23 
24  ikt = 0
25  do 1 i=1,nla
26  if(ikind.eq.1)read(11)(data(j),j=1,nlo)
27  do 3 j=1,nlo
28  ikt = ikt + 1
29  arr(ikt) = data(j)
30  3 continue
31  do 2 j=1,nlo
32  ave = ave + dble(data(j))
33  rms = rms + dble(data(j))**2
34  2 continue
35  1 continue
36  fact = dble(nla*nlo) / dble(nla*nlo - 1)
37 
38  ave = ave / dble(nla*nlo)
39  rms = sqrt(rms / dble(nla*nlo))
40  std = dsqrt(fact*(rms**2 - ave**2))
41 
42  npts = ikt
43  nmed = 1+ ikt/2
44 
45  write(6,*) ' IN gridstats, npts = ',npts
46  write(6,*) ' IN gridstats, nmed = ',nmed
47 
48 c nmed = ikt/3
49  s1 = select2(nmed,npts,arr,nmax)
50 
51  write(6,*) ' IN gridstats, s1 = ',s1
52  med = s1
53  write(6,*) ' IN gridstats, med = ',med
54 
55  write(6,100)trim(fname),ave,std,med
56  100 format('gridstats for ',a,' = ',3f20.10)
57 
58  close(11)
59 
60  return
61  end
subroutine gridstats(fname, ave, std, med)
Subroutine to print grid statistics to stdout.
Definition: gridstats.f:10