배열 배열을 Fortran에 만들려고합니다. 내가 할 수있는 포트란에서 익명 배열을 사용할 수 있습니까?
TYPE :: array_of_arrays
REAL, DIMENSION(:), POINTER :: p => NULL()
END TYPE
TYPE(array_of_arrays), DIMENSION(2) :: some_array
그래서 다음
같은뭔가 : 나 실제로 이러한 some_vector
배열의 각을 선언하는
REAL, DIMENSION(3), TARGET :: some_vector1 = (/1.0, 2.1, 4.3/)
REAL, DIMENSION(3), TARGET :: some_vector2 = (/3.0, 1.2, 9.6/)
some_array(1)%p => some_vector1
some_array(2)%p => some_vector2
WRITE(*,*) some_array(1)%p ! I see some_vector1
WRITE(*,*) some_array(2)%p ! I see some_vector2
은 이제 내 배열의 각 요소에 해당하는 성가신 배열.
임시 벡터가 대상으로 설정되어있는 별도의 서브 루틴을 갖고 싶습니다. 서브 루틴은 배열의 배열을 임시 벡터를 가리 키도록 설정합니다.
이렇게하면 익명 배열을 가질 수 있습니다.
그러나 이것이 작동하지 않는 것 같아서 처음으로 Fortran이 지원하지 않는 작업을 수행하고 있는지 궁금합니다.
Fortran은 익명 어레이를 지원합니까? (용어가 잘못되었을 경우를 대비하여) 참조를 통해서만 액세스 할 수있는 배열입니까?
을 제공합니다 실행. 격렬하게 추측 해 보면, 별도의 서브 루틴은 포인터 구성 요소를 "임시"저장 장치를 가리 키도록 할당 할 수 있습니다. 임시 저장소의 수명을 고려해야합니다. 아마도 "작동하지 않는 것"에 대한 코드를 표시하십시오. – IanH