Section Arrays: Assumed#
Adapted from: gjbex/Fortran-MOOC
This program demonstrates a Fortran technique.#
program assumed
implicit none
integer :: i
integer, dimension(5) :: array1d = [ 2, 3, 5, 7, 11 ]
print *, array1d
call factorial(array1d)
print *, array1d
contains
integer function fac(n)
implicit none
integer, value :: n
integer :: i
fac = 1
do i = 2, n
fac = fac*i
end do
end function fac
subroutine factorial(A)
implicit none
integer, dimension(:), intent(inout) :: A
integer :: i
do i = 1, size(A)
A(i) = fac(A(i))
end do
end subroutine factorial
end program assumed
The above program is compiled and run using Fortran Package Manager (fpm):
import os
root_dir = os.getcwd()
code_dir = root_dir + "/" + "Fortran_Code/Section_Arrays_Assumed"
os.chdir(code_dir)
build_status = os.system("fpm build 2>/dev/null")
exec_status = os.system("fpm run 2>/dev/null")
2 3 5 7 11
2 6 120 5040 39916800