File: arspc.f

package info (click to toggle)
x13as 1.1-b59-1
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm
  • size: 9,088 kB
  • sloc: fortran: 114,121; makefile: 14
file content (38 lines) | stat: -rw-r--r-- 1,398 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
C     Last change:  BCM  15 Jan 2008    12:40 pm
      SUBROUTINE arspc(Frq,Nfrq,Maxar,Bar,Var,Ldecbl,Sxx)
      IMPLICIT NONE
c-----------------------------------------------------------------------
      DOUBLE PRECISION PI,ONE,ZERO,TEN
      PARAMETER(PI=3.14159265358979D0,ONE=1D0,ZERO=0D0,TEN=10D0)
c-----------------------------------------------------------------------
      LOGICAL Ldecbl
      INTEGER Maxar,Nfrq,i,j
      DOUBLE PRECISION Frq,Bar,Var,Sxx,c2,s2,dj
c-----------------------------------------------------------------------
      DIMENSION Bar(*),Frq(*),Sxx(*)
c-----------------------------------------------------------------------
      DOUBLE PRECISION decibl
      EXTERNAL decibl
c-----------------------------------------------------------------------
      DO i=1,Nfrq
       c2=ZERO
       DO j=1,Maxar
        dj=dble(2*j)*PI*Frq(i)
        c2=c2+(Bar(j)*cos(dj))
       END DO
       s2=ZERO
       DO j=1,Maxar
        dj=dble(2*j)*PI*Frq(i)
        s2=s2+(Bar(j)*sin(dj))
       END DO
       Sxx(i)=Var/((1-c2)*(1-c2) + s2*s2)
c-----------------------------------------------------------------------
       IF(Ldecbl)THEN
        IF(Sxx(i).lt.ZERO)Sxx(i)=-Sxx(i)
        Sxx(i)=decibl(Sxx(i))
       END IF
c-----------------------------------------------------------------------
      END DO
      RETURN
      END