2
저는 Fortran을 처음 접했지만 일반적으로 모듈이나 타입에 대해 머리 숙여지면 C 나 Matlab에서 할 수있는 대부분의 일을 할 수 있습니다. 그러나 gfortran (gcc 버전 4.6.2) 또는 ifort (13.0.2) 중 어떤 것을 사용 하느냐에 따라 결과의 차이에 의해 난처한 편입니다. Gfortran은 내가 예상 한 결과를 제공하지만, ifort는 3 개의 빈 줄을 제공합니다! 어떤 아이디어?ifort와 gfortran이 서로 다른 타입을 정의 할 때
module define_structures
implicit none
private
public modelling_params
type modelling_params
real, dimension(:), allocatable :: freqs
real, dimension(:), allocatable :: offsets
complex, dimension(:), allocatable :: data
end type modelling_params
end module define_structures
program main
use define_structures
implicit none
type (modelling_params) :: S
S%data = [(1,1) ,(2,3), (3,1)]
S%freqs = [1, 3, 7]
S%offsets = [100, 200, 300]
print *,S%data
print *,S%freqs
print *,S%offsets
end program main
여기
( 1.0000000 , 1.0000000 ) ( 2.0000000 , 3.0000000 ) ( 3.0000000 , 1.0000000 )
1.0000000 3.0000000 7.0000000
100.00000 200.00000 300.00000
그리고 ifort와 gfortran
컴파일의 출력을, 난 그냥 3 개 빈 줄을 얻을 그것을 잘 컴파일하지만!미리 감사드립니다.
정확히 말하면, Hristo. '-assume realloc_lhs'를 컴파일러 옵션으로 추가하면 예상대로 작동합니다. 컴파일러에서 경고 메시지를받지 못한 이유에 대해 궁금합니다. –
런타임 검사를 활성화 한 상태에서 실행하려고하면 할당되지 않은 배열에 할당 할 때 오류가 발생합니다. –