Okay. Here's an update with no question of data conversion:
complex, save, target :: a(4) = [(1.,0.),(2.,0.),(3.,0.),(4.,0)]
real, pointer :: p(:) => a(1:3:2)%re
print *, p
end
The results, anonymized:
One compiler compiles it without complaint and then it crashes at runtime with SIGSEGV.
Two compilers complain about line 2: "When the target is an expression it must deliver a pointer result." -- which makes no sense to me.
Another compiler complains: "Syntax error at or near integer constant 1" on line 2.
Yet another compiler: "P dereferenced or deallocated but not pointer-assigned or allocated" on line 4.
Moving on, another says: "Syntax is incorrect." on line 2.
A compiler in development says: "Variable 'end' is not declared" on line 4, which seems like a misparse.