EgorYankovsky

Generator

Apr 4th, 2022 (edited)
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.       PROGRAM MAIN
  2.       COMMON /VALUES/ M_SIZE
  3.       CALL ENTER_SIZE
  4.       CALL GENERATE_MATRIX
  5.  
  6.       END
  7.      
  8.       SUBROUTINE ENTER_SIZE
  9.       COMMON /VALUES/ M_SIZE
  10.  
  11.       PRINT *, 'ENTER SIZE OR TAB 0 TO READ SIZE OF MATRIX FROM FILE'
  12.       READ *, M_SIZE
  13.  
  14.       IF(M_SIZE.GT.0) GOTO 5
  15.       OPEN(1, FILE = 'N1N2.txt', ERR = 9)
  16.       READ(1,*) M_SIZE
  17.     5 PRINT *, M_SIZE
  18.  
  19.       CLOSE(1)
  20.       GOTO 1
  21.     9 STOP 'ERROR: SOMETHING WENT WRONG WITH N1N2.txt'
  22.     1 END
  23.  
  24.       SUBROUTINE GENERATE_MATRIX
  25.       COMMON /VALUES/ M_SIZE
  26.  
  27. C     ================= GENERATE VECTOR & DIAG =================
  28.       OPEN(1, FILE = 'vec.txt', ERR = 99)
  29.       OPEN(2, FILE = 'di.txt', ERR = 99)
  30.       DO I = 1, M_SIZE
  31.         WRITE(1, 3) MOD(I, 3)
  32.         WRITE(2, 3) MOD(I, 10)
  33.       ENDDO
  34.       CLOSE(1)
  35.       CLOSE(2)
  36.  
  37. C     ================= GENERATE PROFILE AND LT =================
  38.       OPEN(3, FILE = 'ia.txt')
  39.       OPEN(4, FILE = 'al.txt')
  40.       WRITE(3, 3) 1
  41.       IT = 1
  42.       IK = 1
  43.       DO WHILE (IK .LT. M_SIZE)
  44.         IF (MOD(IT,3) .EQ. 0) GOTO 33
  45.         WRITE(3, 3) IT
  46.         IK = IK + 1
  47. 33      IT = IT + 1
  48.       ENDDO
  49.       WRITE(3, 3) IT
  50.  
  51.       DO I = 1, IT
  52.         WRITE(4, 3) MOD(I, 10)
  53.       ENDDO
  54.       CLOSE(3)
  55.       CLOSE(4)
  56.      
  57.       GOTO 11
  58. C     ===============================================================
  59.     3 FORMAT(I2)
  60.    99 STOP 'ERROR: SOMETHING WENT WRONG WITH INPUT FILE'  
  61.    11 END
  62.  
Add Comment
Please, Sign In to add comment