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
|
program arrays_33
implicit none
type d
real(8), dimension(:), pointer :: r
end type
type(d) :: objd
real(8), target :: array(10)
array = 24.0
call f(array, objd)
objd%r => array ! TODO: Remove
array = 25.0
print *, objd%r
if( any(objd%r /= 25.0) ) error stop
contains
subroutine f(array, objd)
real(8), intent(out), target :: array(:)
type(d), intent(out) :: objd
real(8), target :: array1(size(array))
objd%r => array1
array1 = array
if( any(objd%r /= 24.0) ) error stop
! objd%r => array TODO: Uncomment
end subroutine
end program
|