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
|