1
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
C.IDENTIFICATION ISTFHD.FOR
3
C.AUTHOR: J.D.PONZ ESA-VILSPA
4
C.KEYWORDS IUE, GO FORMAT, FILE HEADER
7
C Reads from 2nd record until the end of the IUE GO file header.
8
C The routine performs the following functions (routine names in brackets)
10
C \item Reads record record (ISTREC)
11
C \item Translates EBCDIC into ASCII (ISTEAS)
12
C \item Displays the header according to the argument DSPFLG (STTPUT)
13
C \item If it is not the last header record go to 1.
20
C The following extensions are used:
23
C \item INCLUDE statement
24
C \item long variable names
25
C \item underscore character
28
C.VERSION: 1.0 INITIAL CODING 09 JUL 1990
29
C.VERSION:1.1 REMOVE VMS EXTENSIONS 14 APR 1992
30
C------------------------------------------------------------------
31
SUBROUTINE ISTFHD(CHANL,BUFF,DSPFLG,STATUS)
34
INTEGER CHANL ! IN: tape channel number
35
CHARACTER*(*) BUFF ! IN: buffer with the ascii header
36
INTEGER DSPFLG ! IN: display flag
37
INTEGER STATUS ! OUT: status
39
INTEGER I, NLEN, LEN, ICOUNT
40
CHARACTER*72 TEXT2, TEXT3, TEXT4
45
./'.........1.........2.........3.........4.........5.........6....
48
./'1234567890123456789012345678901234567890123456789012345678901234
51
./'----------------------------------------------------------------
57
CALL STTPUT(TEXT2,STATUS)
58
CALL STTPUT(TEXT3,STATUS)
59
CALL STTPUT(TEXT4,STATUS)
62
C ... writes the first header lines
65
DO 10 I = 72, NLEN, 72
66
IF (DSPFLG.GE.1) CALL STTPUT(BUFF(I-71:I),STATUS)
67
IF (BUFF(I:I).EQ.'L') LAST = .TRUE.
70
IF (DSPFLG.GE.1) CALL STTPUT(TEXT4,STATUS)
77
15 CALL ISTREC(CHANL,CBUFF,NLEN,LEN,STATUS)
78
IF (NLEN.NE.LEN .OR. STATUS.NE.0) RETURN
79
DO 20 I = 72, NLEN, 72
80
IF (DSPFLG.GE.2 .AND. .NOT.LAST .AND.
81
. (ICOUNT.LT.38 .OR. ICOUNT.GT.100))
82
. CALL STTPUT(CBUFF(I-71:I),STATUS)
85
IF (CC.EQ.'L') LAST = .TRUE.
87
IF (.NOT.LAST) GOTO 15