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 28 29 30 31 32 33
|
program main
implicit none
real :: z(2)
print *, solution()
z = solution()
print *, z
call compare_solutions(z)
contains
subroutine compare_solutions(x)
real, dimension(:), intent(in) :: x
real, dimension(size(x)) :: diff
diff = solution() - x
if (diff(1) /= 0.0) error stop
if (diff(2) /= 0.0) error stop
diff = x - solution()
if (diff(1) /= 0.0) error stop
if (diff(2) /= 0.0) error stop
end subroutine
pure function solution() result(x)
real, dimension(:), allocatable :: x
x = [1.0, 2.0]
end function solution
end program main
|