---
jupytext:
formats: md:myst
text_representation:
extension: .md
format_name: myst
kernelspec:
display_name: Python 3
language: python
name: python3
---Section Arrays: Elemental Subroutine¶
This program demonstrates elemental subroutines in Fortran.¶
program elemental_subroutine
implicit none
real, dimension(3, 4) :: A, B, C
integer :: i
A = reshape([ (i, i=1, 12) ], shape(A))
call compute(A, B, C)
print '(A)', 'A'
do i = 1, 3
print '(*(F7.2))', A(i, :)
end do
print '(A)', 'B'
do i = 1, 3
print '(*(F7.2))', B(i, :)
end do
print '(A)', 'C'
do i = 1, 3
print '(*(F7.2))', C(i, :)
end do
contains
elemental subroutine compute(A, B, C)
implicit none
real, intent(in) :: A
real, intent(out) :: B
real, intent(out) :: C
B = 2*A
C = 3*A
end subroutine compute
end program elemental_subroutineThe 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_Elemental_Subroutine"os.chdir(code_dir)build_status = os.system("fpm build 2>/dev/null")exec_status = os.system("fpm run 2>/dev/null")A
1.00 4.00 7.00 10.00
2.00 5.00 8.00 11.00
3.00 6.00 9.00 12.00
B
2.00 8.00 14.00 20.00
4.00 10.00 16.00 22.00
6.00 12.00 18.00 24.00
C
3.00 12.00 21.00 30.00
6.00 15.00 24.00 33.00
9.00 18.00 27.00 36.00