File: mlist.f

package info (click to toggle)
x13as 1.1-B39-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bullseye
  • size: 8,700 kB
  • sloc: fortran: 110,641; makefile: 14
file content (129 lines) | stat: -rw-r--r-- 4,985 bytes parent folder | download | duplicates (2)
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
124
125
126
127
128
129
C     Last change:  BCM  26 Feb 1999    3:40 pm
**==mlist.f    processed by SPAG 4.03F  at 12:23 on 21 Jun 1994
      SUBROUTINE mlist(X,Nopt,Nop2,Dmax,N48,Iagr,Ext,Eststr,Nstr,Ncol,Y,
     &                 Period,Ssdiff)
      IMPLICIT NONE
c-----------------------------------------------------------------------
C  *****  PRINTS OUT EACH OBSERVATION IN SLIDING SPANS ANALYSIS, WITH
C  *****  DATE, ESTIMATES (EXAMPLE, SEASONAL FACTORS) FOR EACH SPAN,
C  *****  MAXIMUM PERCENTAGE DIFFERENCE (DMAX), AND AN INDICATION OF
C  *****  WHETHER THE OBSERVATION WAS FLAGGED AS AN EXTREME (PER)
C  *****  OR CHANGED DIRECTION (CSIGN).
c-----------------------------------------------------------------------
      INCLUDE 'srslen.prm'
      INCLUDE 'notset.prm'
      INCLUDE 'ssap.prm'
      INCLUDE 'ssap.cmn'
      INCLUDE 'sspvec.cmn'
      INCLUDE 'units.cmn'
      INCLUDE 'title.cmn'
c-----------------------------------------------------------------------
      DOUBLE PRECISION Dmax,X
      LOGICAL Ssdiff,l2Big
      CHARACTER cagr*(31),dash*(1),Eststr*(45),Ext*(2),f*(7),blank8*(8),
     &          cfirst*(11),fnotvc*(10)
      INTEGER i,Iagr,iy,l,l0,l1,l2,Nstr,m,N48,Nop2,Nopt,Y,Period,nagr,
     &        Ncol,nfirst,nc,nt,fnotky,nssky
      DIMENSION dash(3),X(MXLEN,MXCOL),Dmax(MXLEN,NEST),f(3),Y(2*MXCOL),
     &          Period(2*MXCOL),nfirst(2),cfirst(2),fnotvc(MXLEN),
     &          fnotky(7)
c-----------------------------------------------------------------------
      LOGICAL dpeq
      EXTERNAL dpeq
c-----------------------------------------------------------------------
      DATA dash/'-','/',' '/
      DATA f/'MAXIMUM',' % DIFF','   DIFF'/
      DATA cfirst/'seasonal','trading day'/
      DATA nfirst/8,11/
c-----------------------------------------------------------------------
      iy=Iyr
      m=Im-1
      IF(Iagr.eq.5)THEN
       cagr=': Direct seasonal adjustment.'
       nagr=29
      ELSE IF(Iagr.eq.6)THEN
       cagr=': Indirect seasonal adjustment.'
       nagr=31
      ELSE
       cagr='.'
       nagr=1
      END IF
      blank8='        '
c-----------------------------------------------------------------------
c  Check to see if series is too large to be printed - if so,
c  switch to scientific format.
c  added by BCM Dec 2005
c-----------------------------------------------------------------------
      l2Big=.false.
      IF(Nopt.ge.3.or.Ssdiff)THEN
       DO l1=1,Ncol
        DO l2=Im,Sslen+Im-1
         IF(.not.dpeq(X(l2,l1),DNOTST))THEN
          IF(X(l2,l1).gt.999999.99 .or. X(l2,l1).lt.-99999.99)
     &       l2Big=.true.
          IF(l2Big)GO TO 1000
         END IF
        END DO
       END DO
      END IF
 1000 CONTINUE
c-----------------------------------------------------------------------
c     Generate footnotes for table (BCM, December 2006)
c-----------------------------------------------------------------------
      CALL ssfnot(Nopt,Nop2,fnotvc,fnotky,nssky)
c-----------------------------------------------------------------------
c     Print out complete sliding spans information, with up to 48
c     observations on a page.
c-----------------------------------------------------------------------
      DO l0=1,N48
       l1=(l0-1)*48+Im
       l2=l0*48+Im-1
       IF(l0.eq.N48)l2=Sslen+Im-1
       IF(Lpage)THEN
        WRITE(Mt1,Ttlfmt)Newpg,Title(1:Ntitle),Kpage,Serno(1:Nser)
        Kpage=Kpage+1
       END IF
       WRITE(Mt1,1020)Ext,Eststr(1:Nstr),Serno(1:Nser),cagr(1:nagr)
 1020  FORMAT(' S  7.',a2,'  Sliding spans analysis of ',a,' for ',a,a)
       WRITE(Mt1,1030)
       WRITE(Mt1,F2)(Period(i),dash(2),Y(i),dash(1),i=1,Ncol),f(1),
     &               blank8
       IF(Nop2.eq.0.AND.(.not.Ssdiff))THEN
        WRITE(Mt1,F2)(Period(Ncol+i),dash(2),Y(Ncol+i),dash(3),
     &                i=1,Ncol),f(2),'Footnote'
       ELSE
        WRITE(Mt1,F2)(Period(Ncol+i),dash(2),Y(Ncol+i),dash(3),
     &                i=1,Ncol),f(3),'Footnote'
       END IF
       WRITE(Mt1,1030)
 1030  FORMAT(' ')
       nc=0
       nt=0
       DO l=l1,l2
        m=m+1
        IF(m.gt.Nsea)THEN
         m=1
         iy=iy+1
        END IF
        CALL wrtmss(m,iy,X,Dmax,Ncol,Nopt,l,fnotvc(l),l2big)
       END DO
      END DO
c-----------------------------------------------------------------------
      IF(nssky.gt.0)THEN
c-----------------------------------------------------------------------
c  Print header for footnotes on separate page
c-----------------------------------------------------------------------
       IF(Lpage)THEN
        WRITE(Mt1,Ttlfmt)Newpg,Title(1:Ntitle),Kpage,Serno(1:Nser)
        Kpage=Kpage+1
       END IF
       WRITE(Mt1,1040)Ext,Eststr(1:Nstr),Serno(1:Nser),cagr(1:nagr)
 1040  FORMAT('  Footnotes for Table S7.',a2,':',/,
     &        '  Sliding spans analysis of ',a,' for ',a,a,/)
       CALL mkssky(fnotky,nssky,Nopt,Nop2)
       WRITE(Mt1,1030)
      END IF
c-----------------------------------------------------------------------
      RETURN
      END