Advertisement
Wolfed_7

PZ2 PV

Feb 23rd, 2022
1,663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. c     Main part
  2.       PROGRAM main
  3.  
  4.       COMMON /input/ Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
  5.  
  6. c     PRINT *, rad
  7.  
  8.       CALL inputf
  9.       CALL outputf
  10.       END
  11.  
  12. c     Input values from file
  13.       SUBROUTINE inputf
  14.  
  15.       COMMON /input/ Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
  16.  
  17.       OPEN (1, FILE='input.txt', ACTION='READ', STATUS='OLD', ERR=1)
  18.       READ (1, *, ERR=1) Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
  19.       CLOSE (1)
  20.       IF (Xmin .GT. Xmax .OR. Ymin .GT. Ymax) GOTO 1
  21.       GOTO 2
  22.          
  23.     1 PAUSE 'Error: please check the input file'
  24.       STOP
  25.     2 END
  26.  
  27. c     Write cosec(x+y) result in output file
  28.       SUBROUTINE outputf
  29.  
  30.       COMMON /input/ Xmin, Xmax, Xstep, Ymin, Ymax, Ystep
  31.  
  32.       PARAMETER (rad = 3.1415927 / 180)
  33.       COSEC(t) = 1 / SIN(t * rad)
  34.  
  35.       OPEN (2, FILE='output.txt', ACTION='WRITE', ERR=3)
  36.  
  37. c     Peredelat'
  38.       OPEN (5, FILE='temp.txt', ACTION='WRITE', ERR=3)
  39. c temp
  40.       IF(MOD((Xmax - Xmin),Xstep).EQ.0)THEN
  41.         iXparts = (Xmax - Xmin) / Xstep + 1
  42.       ELSE
  43.         iXparts = (Xmax - Xmin) / Xstep + 2
  44.       END IF
  45.  
  46.       IF(MOD((Ymax - Ymin),Ystep).EQ.0)THEN
  47.         iYparts = (Ymax - Ymin) / Ystep + 1
  48.       ELSE
  49.         iYparts = (Ymax - Ymin) / Ystep + 2
  50.       END IF
  51. c     Peredelat'
  52.  
  53. c     Draw the table top
  54.       WRITE (2, 13) '|     y\x    '
  55.       ri = Xmin
  56.       DO i = 0, iXparts - 2
  57.          WRITE (2, 10) ri
  58.          ri = ri + Xstep
  59.       END DO
  60.       WRITE (2, 10) Xmax
  61.       WRITE (2, 14)
  62.      
  63.       DO i = 0, iXparts
  64.         WRITE (2, 12)
  65.       END DO
  66.       WRITE (2, 14)
  67.      
  68.       ry = Ymin
  69.       DO i = 0, iYparts - 2
  70.         rx = Xmin
  71.         WRITE(2, 10) ry
  72. c temp TEST 2!!!!!!!!
  73. c        WRITE (5, 22) ry
  74. c        WRITE (5, 22) rx
  75. c        WRITE (5, 22) rx + ry
  76. c        WRITE (5, 14)
  77. c temp
  78.         DO j = 0, iXparts - 2
  79. c temp
  80.         WRITE (5, 22) ry
  81.         WRITE (5, 22) rx
  82.         WRITE (5, 22) rx + ry
  83.         WRITE (5, 14)
  84.    22   FORMAT (F12.7' '\)
  85. c temp  
  86.           IF(MOD((rx + ry), 180.0) .EQ. 0) THEN
  87.             WRITE (2, 15) 'undefined'
  88.           ELSE
  89.             WRITE (2, 10) COSEC(rx + ry)
  90.           END IF
  91.           rx = rx + Xstep
  92.         END DO
  93.         IF(MOD((ry + Xmax), 180.0) .EQ. 0) THEN
  94.           WRITE (2, 15) 'undefined'
  95.         ELSE
  96.           WRITE (2, 10) COSEC(ry + Xmax)
  97.         END IF
  98.         WRITE (2, 14)
  99.         ry = ry + Ystep
  100.         DO j = 0, iXparts
  101.           WRITE (2, 12)
  102.         END DO
  103.         WRITE (2, 14)
  104.       END DO
  105.      
  106.       WRITE(2, 10) Ymax
  107.       rx = Xmin
  108.         DO i = 0, iXparts - 2
  109.           IF(MOD((rx + Ymax), 180.0) .EQ. 0) THEN
  110.             WRITE(2, 15) 'undefined'
  111.           ELSE
  112.             WRITE(2, 10) COSEC(rx + Ymax)
  113.           rx = rx + Xstep
  114.           END IF
  115.         END DO
  116.       IF(MOD((Xmax + Ymax), 180.0) .EQ. 0) THEN
  117.         WRITE(2, 15) 'undefined'
  118.       ELSE
  119.         WRITE (2, 10) COSEC(Xmax + Ymax)
  120.       END IF
  121.       WRITE (2, 14)
  122.  
  123.       GOTO 4
  124.     3 PAUSE 'Error: please check the output file'
  125.       STOP
  126.  
  127.    10 FORMAT ('|'E11.4' '\)
  128.    11 FORMAT ('|'F11.4' '\)
  129.    12 FORMAT ('|'12('—')\)
  130.    13 FORMAT (A\)
  131.    14 FORMAT ('|'1x)
  132.    15 FORMAT ('|  'A9' '\)
  133.     4 END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement