passing pointer arguments in fortran
问题 I am wondering what is the proper way to write the following code? PROGRAM foo INTEGER :: x REAL(KIND=8), TARGET, DIMENSION(0: 10) :: array REAL(KIND=8), POINTER, DIMENSION(:) :: ptr ptr => array CALL bar(ptr) END PROGRAM foo SUBROUTINE bar (ptr) REAL(KIND=8), POINTER, DIMENSION(:) :: ptr INTEGER x DO x =0, 10 ptr(x) = 2 // seg faults ENDDO END SUBROUTINE bar It works if I declare ptr in bar as REAL(KIND=8), DIMENSION(0:10) . But in general I might not know the size of the passed-in array, so