matrix in fortran

Fortran Matrix Operations

To perform matrix operations in Fortran, you can use arrays and built-in functions. Here's an example of how to create and manipulate matrices in Fortran:

program matrix_operations
  implicit none

  integer, parameter :: n = 3 ! size of the matrix

  real :: matrix(n, n) ! declare a 3x3 matrix

  ! initialize the matrix
  matrix = reshape([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], [n, n])

  ! print the matrix
  write(, ) "Matrix:"
  do i = 1, n
    write(, ) matrix(i, :)
  end do

  ! transpose the matrix
  matrix = transpose(matrix)

  ! print the transposed matrix
  write(, ) "Transposed Matrix:"
  do i = 1, n
    write(, ) matrix(i, :)
  end do

  ! calculate the determinant of the matrix
  write(, ) "Determinant:", determinant(matrix)


  ! function to calculate the determinant of a matrix
  real function determinant(mat)
    real, intent(in) :: mat(n, n)
    integer :: ipiv(n), info

    ! copy the matrix to a temporary variable
    real :: temp(n, n)
    temp = mat

    ! calculate the determinant using LAPACK routine
    call sgetrf(n, n, temp, n, ipiv, info)
    determinant = product(diag(temp))
  end function determinant

end program matrix_operations

This program demonstrates how to create a 3x3 matrix, print it, transpose it, and calculate its determinant using the LAPACK routine sgetrf. You can modify the size of the matrix by changing the value of n.

Please note that this is just a basic example to illustrate matrix operations in Fortran. There are many other operations and functions available for matrix manipulation in Fortran, depending on your specific requirements.