Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement