c Main part
PROGRAM main
COMMON /input/ Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
c PRINT *, rad
CALL inputf
CALL outputf
END
c Input values from file
SUBROUTINE inputf
COMMON /input/ Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
OPEN (1, FILE='input.txt', ACTION='READ', STATUS='OLD', ERR=1)
READ (1, *, ERR=1) Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
CLOSE (1)
IF (Xmin .GT. Xmax .OR. Ymin .GT. Ymax) GOTO 1
GOTO 2
1 PAUSE 'Error: please check the input file'
STOP
2 END
c Write cosec(x+y) result in output file
SUBROUTINE outputf
COMMON /input/ Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
PARAMETER (rad = 3.1415927 / 180)
COSEC(t) = 1 / SIN(t * rad)
OPEN (2, FILE='output.txt', ACTION='WRITE', ERR=3)
c Peredelat'
OPEN (5, FILE='temp.txt', ACTION='WRITE', ERR=3)
c temp
IF(MOD((Xmax - Xmin),Xstep).EQ.0)THEN
iXparts = (Xmax - Xmin) / Xstep + 1
ELSE
iXparts = (Xmax - Xmin) / Xstep + 2
END IF
IF(MOD((Ymax - Ymin),Ystep).EQ.0)THEN
iYparts = (Ymax - Ymin) / Ystep + 1
ELSE
iYparts = (Ymax - Ymin) / Ystep + 2
END IF
c Peredelat'
c Draw the table top
WRITE (2, 13) '| y\x '
ri = Xmin
DO i = 0, iXparts - 2
WRITE (2, 10) ri
ri = ri + Xstep
END DO
WRITE (2, 10) Xmax
WRITE (2, 14)
DO i = 0, iXparts
WRITE (2, 12)
END DO
WRITE (2, 14)
ry = Ymin
DO i = 0, iYparts - 2
rx = Xmin
WRITE(2, 10) ry
c temp TEST 2!!!!!!!!
c WRITE (5, 22) ry
c WRITE (5, 22) rx
c WRITE (5, 22) rx + ry
c WRITE (5, 14)
c temp
DO j = 0, iXparts - 2
c temp
WRITE (5, 22) ry
WRITE (5, 22) rx
WRITE (5, 22) rx + ry
WRITE (5, 14)
22 FORMAT (F12.7' '\)
c temp
IF(MOD((rx + ry), 180.0) .EQ. 0) THEN
WRITE (2, 15) 'undefined'
ELSE
WRITE (2, 10) COSEC(rx + ry)
END IF
rx = rx + Xstep
END DO
IF(MOD((ry + Xmax), 180.0) .EQ. 0) THEN
WRITE (2, 15) 'undefined'
ELSE
WRITE (2, 10) COSEC(ry + Xmax)
END IF
WRITE (2, 14)
ry = ry + Ystep
DO j = 0, iXparts
WRITE (2, 12)
END DO
WRITE (2, 14)
END DO
WRITE(2, 10) Ymax
rx = Xmin
DO i = 0, iXparts - 2
IF(MOD((rx + Ymax), 180.0) .EQ. 0) THEN
WRITE(2, 15) 'undefined'
ELSE
WRITE(2, 10) COSEC(rx + Ymax)
rx = rx + Xstep
END IF
END DO
IF(MOD((Xmax + Ymax), 180.0) .EQ. 0) THEN
WRITE(2, 15) 'undefined'
ELSE
WRITE (2, 10) COSEC(Xmax + Ymax)
END IF
WRITE (2, 14)
GOTO 4
3 PAUSE 'Error: please check the output file'
STOP
10 FORMAT ('|'E11.4' '\)
11 FORMAT ('|'F11.4' '\)
12 FORMAT ('|'12('—')\)
13 FORMAT (A\)
14 FORMAT ('|'1x)
15 FORMAT ('| 'A9' '\)
4 END