File: weight.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 (123 lines) | stat: -rw-r--r-- 5,107 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
C     Last change:  BCM  21 Nov 97   10:42 pm
**==weight.f    processed by SPAG 4.03F  at 09:55 on  1 Mar 1994
      SUBROUTINE weight(A,B,I1,I2,Mq)
      IMPLICIT NONE
C*** Start of declarations inserted by SPAG
      DOUBLE PRECISION A,B,cent,endw,end10,end11,end12,end7,end8,end9,
     &                 qcent,qend,qend3,qend4
      INTEGER i,I1,I2,j,j1,j2,k,l1,l2,m1,m2,Mq
C*** End of declarations inserted by SPAG
C  THIS SUBROUTINE PRODUCES WEIGHTS FOR THE CENTERED 24-TERM (MONTHLY)
C  MOVING AVERAGE (CENTERED 8-TERM QUARTERLY MOVING AVERAGE)
C  FOR THE PRELIMINARY ESTIMATION OF THE TREND-CYCLE.
      INCLUDE 'srslen.prm'
      DIMENSION cent(25),A(PLEN),B(PLEN),endw(6,24)
      DIMENSION qcent(9),qend(2,8),qend4(8),qend3(8)
      DIMENSION end12(24),end11(24),end10(24),end9(24),end8(24),end7(24)
      DATA cent/
     & -0.0112773D0,-0.0273401D0,-0.0195570D0,-0.0053389D0, 0.0113162D0,
     &  0.0274075D0, 0.0416667D0, 0.0559258D0, 0.0720171D0, 0.0886723D0,
     &  0.1028903D0, 0.1106735D0, 0.1058879D0, 0.1106735D0, 0.1028903D0,
     &  0.0886723D0, 0.0720171D0, 0.0559258D0, 0.0416667D0, 0.0274075D0,
     &  0.0113162D0,-0.0053389D0,-0.0195570D0,-0.0273401D0,-0.0112773D0/
      DATA end12/
     & -0.0225546D0,-0.0234459D0,-0.0160151D0,-0.0026792D0, 0.0121628D0,
     &  0.0279138D0, 0.0413240D0, 0.0564321D0, 0.0728637D0, 0.0913320D0,
     &  0.1064322D0, 0.1145676D0, 0.1058879D0, 0.1067793D0, 0.0993484D0,
     &  0.0860125D0, 0.0711706D0, 0.0554195D0, 0.0420093D0, 0.0269012D0,
     &  0.0104697D0,-0.0079986D0,-0.0230988D0,-0.0312343D0/
      DATA end11/
     & -0.0106354D0,-0.0195678D0,-0.0208123D0,-0.0144215D0,-0.0026399D0,
     &  0.0121064D0, 0.0272793D0, 0.0432593D0, 0.0595187D0, 0.0811315D0,
     &  0.1018984D0, 0.1178834D0, 0.0939688D0, 0.1029011D0, 0.1041457D0,
     &  0.0977549D0, 0.0859732D0, 0.0712269D0, 0.0560541D0, 0.0400741D0,
     &  0.0238147D0, 0.0022018D0,-0.0185651D0,-0.0345500D0/
      DATA end10/
     &  0.0019024D0,-0.0124004D0,-0.0214279D0,-0.0229499D0,-0.0159235D0,
     & -0.0036926D0, 0.0116272D0, 0.0297519D0, 0.0471940D0, 0.0692546D0,
     &  0.0931847D0, 0.1151461D0, 0.0814309D0, 0.0957337D0, 0.1047612D0,
     &  0.1062832D0, 0.0992569D0, 0.0870260D0, 0.0717061D0, 0.0535814D0,
     &  0.0361393D0, 0.0140787D0,-0.0098514D0,-0.0318128D0/
      DATA end9/
     &  0.0121814D0,-0.0035929D0,-0.0177541D0,-0.0263876D0,-0.0255157D0,
     & -0.0176449D0,-0.0039735D0, 0.0141749D0, 0.0338072D0, 0.0566876D0,
     &  0.0805875D0, 0.1057635D0, 0.0711520D0, 0.0869263D0, 0.1010874D0,
     &  0.1097209D0, 0.1088491D0, 0.1009782D0, 0.0873068D0, 0.0691584D0,
     &  0.0495261D0, 0.0266457D0, 0.0027458D0,-0.0224301D0/
      DATA end8/
     &  0.0181990D0, 0.0047570D0,-0.0107207D0,-0.0239906D0,-0.0292988D0,
     & -0.0274358D0,-0.0176746D0,-0.0019316D0, 0.0172443D0, 0.0407996D0,
     &  0.0654582D0, 0.0895942D0, 0.0651343D0, 0.0785764D0, 0.0940541D0,
     &  0.1073239D0, 0.1126322D0, 0.1107692D0, 0.1010079D0, 0.0852650D0,
     &  0.0660891D0, 0.0425338D0, 0.0178751D0,-0.0062608D0/
      DATA end7/
     &  0.0192206D0, 0.0109225D0,-0.0021151D0,-0.0163613D0,-0.0263849D0,
     & -0.0309178D0,-0.0270820D0,-0.0170193D0,-0.0009008D0, 0.0188178D0,
     &  0.0438290D0, 0.0696580D0, 0.0641127D0, 0.0724108D0, 0.0854485D0,
     &  0.0996946D0, 0.1097182D0, 0.1142511D0, 0.1104153D0, 0.1003527D0,
     &  0.0842342D0, 0.0645156D0, 0.0395043D0, 0.0136754D0/
      DATA qcent/
     & -0.0258462D0,-0.0208718D0, 0.1250000D0, 0.2708718D0, 0.3016923D0,
     &  0.2708718D0, 0.1250000D0,-0.0208718D0,-0.0258462D0/
      DATA qend4/
     & -0.0516923D0, 0.0012821D0, 0.1323846D0, 0.2930256D0, 0.3016923D0,
     &  0.2487179D0, 0.1176154D0,-0.0430256D0/
      DATA qend3/
     & -0.0036410D0,-0.0579487D0, 0.0079487D0, 0.1786410D0, 0.2536410D0,
     &  0.3079487D0, 0.2420513D0, 0.0713590D0/
      DO i=I1,I2
       B(i)=0D0
      END DO
      IF(Mq.ne.2)THEN
       j1=I1+12
       j2=I2-12
       DO i=j1,j2
        B(i)=cent(13)*A(i)
        DO j=1,12
         B(i)=B(i)+cent(13-j)*A(i-j)+cent(13+j)*A(i+j)
        END DO
       END DO
       DO j=1,24
        endw(1,j)=end12(j)
        endw(2,j)=end11(j)
        endw(3,j)=end10(j)
        endw(4,j)=end9(j)
        endw(5,j)=end8(j)
        endw(6,j)=end7(j)
       END DO
       DO i=1,6
        l1=j1-i
        l2=j2+i
        DO k=1,24
         m1=l1+i+12-k
         m2=l2-i-12+k
         B(l1)=B(l1)+endw(i,k)*A(m1)
         B(l2)=B(l2)+endw(i,k)*A(m2)
        END DO
       END DO
       RETURN
      END IF
      j1=I1+4
      j2=I2-4
      DO i=j1,j2
       B(i)=qcent(5)*A(i)
       DO j=1,4
        B(i)=B(i)+qcent(5-j)*A(i-j)+qcent(5+j)*A(i+j)
       END DO
      END DO
      DO j=1,8
       qend(1,j)=qend4(j)
       qend(2,j)=qend3(j)
      END DO
      DO i=1,2
       l1=j1-i
       l2=j2+i
       DO k=1,8
        m1=l1+i+4-k
        m2=l2-i-4+k
        B(l1)=B(l1)+qend(i,k)*A(m1)
        B(l2)=B(l2)+qend(i,k)*A(m2)
       END DO
      END DO
      RETURN
      END