Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Section Arrays: Matrix

---
jupytext:
  formats: md:myst
  text_representation:
    extension: .md
    format_name: myst
kernelspec:
  display_name: Python 3
  language: python
  name: python3
---

Section Arrays: Matrix

This program demonstrates a 2D matrix in Fortran.

program matrix
  implicit none
  integer, parameter :: ROWS = 3, COLS = 5
  real, dimension(ROWS, COLS) :: A
  integer :: i, j
  real :: total

  A = reshape([ (((i - 1)*size(A, 2) + j, j=1,size(A, 2)), i=1,size(A, 1)) ], &
              shape(A))
  do i = 1, size(A, 1)
      print *, A(i, :)
  end do
  total = 0.0
  do j = 1, size(A, 2)
      do i = 1, size(A, 1)
          total = total + A(i, j)**2
      end do
  end do
  print '(/, A, F10.2)', 'total = ', total
end program matrix

The above program is compiled and run using Fortran Package Manager (fpm):

Build the Program using FPM (Fortran Package Manager)

import os
root_dir = os.getcwd()
code_dir = root_dir + "/" + "Fortran_Code/Section_Arrays_Matrix"
os.chdir(code_dir)
build_status = os.system("fpm build 2>/dev/null")

Run the Program using FPM (Fortran Package Manager)

exec_status = os.system("fpm run 2>/dev/null")
   1.00000000       4.00000000       7.00000000       10.0000000       13.0000000    
   2.00000000       5.00000000       8.00000000       11.0000000       14.0000000    
   3.00000000       6.00000000       9.00000000       12.0000000       15.0000000    

total =    1240.00