File: array_op_10.f90

package info (click to toggle)
lfortran 0.58.0-6
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 54,512 kB
  • sloc: cpp: 162,179; f90: 68,251; python: 17,476; ansic: 6,278; yacc: 2,334; sh: 1,317; fortran: 892; makefile: 37; javascript: 15
file content (27 lines) | stat: -rw-r--r-- 615 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module linalg_mod_array_op_10

contains

function solve(x) result(y)
real :: y(5), x(5)
integer :: P(5)
P = [3, 4, 1, 2, 5] ! Example permutation array

y(P) = x ! Handle the permutation.
end function solve

end module linalg_mod_array_op_10

program array_op_10
use linalg_mod_array_op_10
implicit none
real :: x(5)
x = [1.0, 2.0, 3.0, 4.0, 5.0] ! Example initialization
x = solve(x) ! Call the solve function
print *, x
if ( abs(x(1) - 3.0) > 1e-8 .or. &
     abs(x(2) - 4.0) > 1e-8 .or. &
     abs(x(3) - 1.0) > 1e-8 .or. &
     abs(x(4) - 2.0) > 1e-8 .or. &
     abs(x(5) - 5.0) > 1e-8 ) error stop
end program