1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
program ptr
implicit none
integer, pointer, dimension(:) :: a, b
integer, pointer :: p
integer, target :: i
allocate (a(1:6))
a = (/ 1, 2, 3, 4, 5, 6 /)
b => a
if (any (b .ne. (/ 1, 2, 3, 4, 5, 6 /))) call abort
b => a(1:6:2)
if (any (b .ne. (/ 1, 3, 5/))) call abort
p => i
i = 42
if (p .ne. 42) call abort
p => a(4)
if (p .ne. 4) call abort
end program
|