File: read.f

package info (click to toggle)
libfortran-format-perl 0.90-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 264 kB
  • sloc: perl: 968; fortran: 192; makefile: 2
file content (52 lines) | stat: -rw-r--r-- 1,516 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
      PROGRAM FORMTST

      DOUBLE PRECISION D
      INTEGER I
      CHARACTER*40 INFORM, C, IFORM, CFORM, DFORM, LFORM, LINE
      CHARACTER*1  CTYPE
      LOGICAL L

      DATA IFORM /'(I10)'/
      DATA DFORM /'(E16.3)'/
      DATA LFORM /'(L1)'/
      DATA CFORM /'(A40)'/

      OPEN (UNIT=77,FILE='read_tests.txt' )

C     READ TEST FILE
 10   CONTINUE
         READ(77, '(A1,6X,A40)', END=177, ERR=77) CTYPE, INFORM
         WRITE (*, '(A1''FORMAT''A40)') CTYPE, INFORM
         READ(77, '(A)', END=177, ERR=77) LINE
         WRITE (*, '(A40)') LINE
         IF (CTYPE.EQ.'I') THEN
            READ (LINE, INFORM, END=177, ERR=77) I
            WRITE (*, '(A1''FORMAT''A40)') CTYPE, IFORM
            WRITE (*, IFORM) I
         ELSE IF (CTYPE.EQ.'D') THEN
            READ(LINE, INFORM, END=177, ERR=77) D
            WRITE (*, '(A1''FORMAT''A40)') CTYPE, DFORM
            WRITE(*, DFORM) D
         ELSE IF (CTYPE.EQ.'L') THEN
            READ(LINE, INFORM, END=177, ERR=77) L
            WRITE (*, '(A1''FORMAT''A40)') CTYPE, LFORM
            WRITE(*, LFORM) L
         ELSE IF (CTYPE.EQ.'C') THEN
            READ(LINE, INFORM, END=177, ERR=77) C
            WRITE (*, '(A1''FORMAT''A40)') CTYPE, CFORM
            WRITE(*, CFORM) C
         ENDIF
         READ (77, *)
         WRITE (*, '()')
      GOTO 10
 77   CONTINUE
C        "HANDLE" ERROR
         WRITE (*, '(''ERROR!!'')')
         READ (77, *)
         WRITE (*, '()')
      GOTO 10
 177  CONTINUE
C      WRITE (*, '(''END'')')

      END