File: read_arr.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 (44 lines) | stat: -rw-r--r-- 1,210 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
      PROGRAM FORMTST

      DOUBLE PRECISION D
      INTEGER I, IA(4), IM(2,2)
      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_arr_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
         IF (CTYPE.EQ.'A') THEN
            READ(77, INFORM, END=177, ERR=77) IA
            WRITE (*, '(A1''FORMAT''A40)') 'I', IFORM
            WRITE(*, IFORM) IA
         ELSE IF (CTYPE.EQ.'M') THEN
            READ(77, INFORM, END=177, ERR=77) IM
            WRITE (*, '(A1''FORMAT''A40)') 'I', IFORM
            WRITE(*, IFORM) IM
C           REMEMBER IT GOES 'VERTICALLY'!
C            WRITE(*, IFORM) IM(1,1), IM(1,2), IM(2,1), IM(2,2)
         ENDIF
         READ (77, *)
         WRITE (*, '()')
      GOTO 10
 77   CONTINUE
C        "HANDLE" ERROR
         WRITE (*, '(''ERROR!!'')')
         READ (77, *)
         WRITE (*, '()')
      GOTO 10
 177  CONTINUE
      WRITE (*, '(''END'')')

      END