home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l292 / 1.ddi / CMMATHDE.FOR < prev    next >
Encoding:
Text File  |  1989-10-10  |  2.4 KB  |  82 lines

  1.       PROGRAM cmmathde
  2.       INCLUDE 'STDHDR.FOR'
  3.       COMPLEX mat1(0:maxr, 0:maxc), mat2(0:maxr, 0:maxc)
  4.       COMPLEX mat3(0:maxr, 0:maxc), vm
  5.       CHARACTER * 80 message
  6.  
  7.  
  8.       !!!!  cmatmath demo main
  9.  
  10.       mat1(0, 0) = CMPLX(13.0, 1.0 )
  11.       mat1(0, 1) = CMPLX(-8.0, 2.0 )
  12.       mat1(0, 2) = CMPLX(-3.0, 3.0 )
  13.       mat1(1, 0) = CMPLX(-8.0, 2.0 )
  14.       mat1(1, 1) = CMPLX(10.0, 2.0 )
  15.       mat1(1, 2) = CMPLX(-1.0, 2.0 )
  16.       mat1(2, 0) = CMPLX(-3.0, 3.0 )
  17.       mat1(2, 1) = CMPLX(-1.0, 2.0)
  18.       mat1(2, 2) = CMPLX(11.0, 3.0)
  19.  
  20.  
  21.       mat2(0, 0) = CMPLX(1.0, 4.0 )
  22.       mat2(0, 1) = CMPLX(5.0, 2.0 )
  23.       mat2(0, 2) = CMPLX(1.0, 3.0 )
  24.       mat2(1, 0) = CMPLX(3.0, 4.0 )
  25.       mat2(1, 1) = CMPLX(6.0, 3.0 )
  26.       mat2(1, 2) = CMPLX(3.0, 1.0 )
  27.       mat2(2, 0) = CMPLX(0.0, 0.0 )
  28.       mat2(2, 1) = CMPLX(1.0, 3.0 )
  29.       mat2(2, 2) = CMPLX(-9.0, -6.0)
  30.  
  31.  
  32.       message = 'Original mat1 = '
  33.       CALL CMatPrint(mat1, 3, 3, message)
  34.       message = 'Original mat2 = '
  35.       CALL CMatPrint(mat2, 3, 3, message)
  36.       READ (*,*)
  37.  
  38.       CALL CMatProd(mat1, mat2, 3, 3, 3, mat3)
  39.       message = 'matrix product mat1 x mat2 = '
  40.       CALL CMatPrint(mat3, 3, 3, message)
  41.       PRINT *, 'press carriage return to advance to next procedure '
  42.       READ (*,*)
  43.  
  44.       vm = CMPLX(11.0, 0.0)
  45.       CALL CMatScalarProd(mat1, vm, 3, 3, mat3)
  46.       message = 'matrix scalar product mat1 x 11.0  = '
  47.       CALL CMatPrint(mat3, 3, 3, message)
  48.       PRINT *, 'press carriage return to advance to next procedure '
  49.       READ (*,*)
  50.  
  51.  
  52.       CALL CMatAdd(mat1, mat2, 3, 3, mat3)
  53.       message = 'matrix add mat1 + mat2 = '
  54.       CALL CMatPrint(mat3, 3, 3, message)
  55.       PRINT *, 'press carriage return to advance to next procedure '
  56.       READ (*,*)
  57.  
  58.  
  59.       CALL CMatTranspose(mat1, 3, 3, mat3)
  60.       message = 'matrix transpose of mat1  = '
  61.       CALL CMatPrint(mat3, 3, 3, message)
  62.       PRINT *, 'press carriage return to advance to next procedure '
  63.       READ (*,*)
  64.  
  65.  
  66.       CALL CMatInvert(mat1, 3, det, mat3)
  67.       message = 'inverse of matrix mat1  = '
  68.       CALL CMatPrint(mat3, 3, 3, message)
  69.       READ (*,*)
  70.  
  71.       CALL CMatProd(mat1, mat3, 3, 3, 3, mat2)
  72.       message = 'matrix product mat1 x inverse(mat1) = '
  73.  
  74.       CALL CMatPrint(mat2, 3, 3, message)
  75.       PRINT *, 'press carriage return to END Program '
  76.       READ (*,*)
  77.  
  78.       end
  79.  
  80.  
  81.  
  82.