File: prttd.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 (79 lines) | stat: -rw-r--r-- 3,798 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
C     Last change:  BCM  28 Sep 1998   11:09 am
      SUBROUTINE prttd(Td,Td1,Ctype,Tdzero,Tddate,Lrgmtd,Fulltd,Tdfmt,
     &                 Ny,Mq)
      IMPLICIT NONE
c-----------------------------------------------------------------------
      INCLUDE 'units.cmn'
c-----------------------------------------------------------------------
      DOUBLE PRECISION Td,Td1
      CHARACTER Ctype*(*),Tdfmt*(50),datstr*(10),daylbl*(15),Mq*(7)
      LOGICAL Lrgmtd,Fulltd
      INTEGER i,j,Tdzero,Tddate,nchdat,Ny
      DIMENSION daylbl(2,4),Tddate(2),Td(*),Td1(*)
c-----------------------------------------------------------------------
      INTEGER nblank
      EXTERNAL nblank
c-----------------------------------------------------------------------
      DATA (daylbl(1,j),j=1,4)/'92-day quarters','91-day quarters',
     &                         'Leap year Q1   ','Non-Leap Q1    '/
      DATA (daylbl(2,j),j=1,4)/'31-day months  ','30-day months  ',
     &                         'Leap year Feb. ','Non-Leap Feb.  '/
c-----------------------------------------------------------------------
      j=1
      IF(Ny.eq.12)j=2
      IF(Lrgmtd)THEN
       CALL wrtdat(Tddate,Ny,datstr,nchdat)
       IF(Fulltd.or.Tdzero.gt.0)THEN
        WRITE(Mt1,1010)Ctype,datstr(1:nchdat)
 1010   FORMAT(//,6x,'Day of Week Component for ',a,' Trading Day ',
     &         'Factors (before ',a,'):',/)
       ELSE
        WRITE(Mt1,1020)Ctype,datstr(1:nchdat)
 1020   FORMAT(//,6x,'Day of Week Component for ',a,' Trading Day ',
     &         'Factors (starting ',a,'):',/)
       END IF
      ELSE
       WRITE(Mt1,1030)Ctype
 1030  FORMAT(//,6x,'Day of Week Component for ',a,' Trading Day ',
     &        'Factors:',/)
      END IF
      WRITE(Mt1,1040)Mq(1:nblank(Mq))
 1040 FORMAT(39x,a,'s starting on:',/,21x,'Mon      Tue      Wed',
     &       '      Thu      Fri      Sat      Sun')
c-----------------------------------------------------------------------
c     Print trading day factors for each type of month/quarter.  Print 
c     out results for 31/92 day months/quarters first.
c-----------------------------------------------------------------------
      WRITE(Mt1,Tdfmt)daylbl(j,1),(Td(i),i=8,14)
c-----------------------------------------------------------------------
c     Print out results for 30 day months (90 day quarters)
c-----------------------------------------------------------------------
      WRITE(Mt1,Tdfmt)daylbl(j,2),(Td(i),i=1,7)
c-----------------------------------------------------------------------
c     Print out results for Leap year Februaries (First Quarters)
c-----------------------------------------------------------------------
      WRITE(Mt1,Tdfmt)daylbl(j,3),(Td(i),i=22,28)
c-----------------------------------------------------------------------
c     Print out results for Leap year First Quarters
c-----------------------------------------------------------------------
      IF(Ny.eq.4)WRITE(Mt1,Tdfmt)daylbl(j,4),(Td(i),i=15,21)
c-----------------------------------------------------------------------
c     IF Change of Regime trading day variables were used,
c     print out trading day from change of regime here.
c-----------------------------------------------------------------------
      IF((Fulltd.or.Tdzero.eq.2).and.Lrgmtd)THEN
       IF(Tdzero.eq.1)THEN
        WRITE(Mt1,1010)Ctype,datstr(1:nchdat)
       ELSE
        WRITE(Mt1,1020)Ctype,datstr(1:nchdat)
       END IF
       WRITE(Mt1,1040)Mq(1:nblank(Mq))
       WRITE(Mt1,Tdfmt)daylbl(j,1),(Td1(i),i=8,14)
       WRITE(Mt1,Tdfmt)daylbl(j,2),(Td1(i),i=1,7)
       WRITE(Mt1,Tdfmt)daylbl(j,3),(Td1(i),i=22,28)
       IF(Ny.eq.4)WRITE(Mt1,Tdfmt)daylbl(j,4),(Td1(i),i=15,21)
      END IF
c-----------------------------------------------------------------------
      RETURN
      END