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
下面是從gfortran
( 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編譯輸出,我只是得到3個空行,儘管它編譯罰款!
在此先感謝。
正如你所說,Hristo。將'-assume realloc_lhs'添加爲編譯器選項使其按預期工作。不過,我很好奇爲什麼我沒有從編譯器那裏得到這個警告。 – 2013-04-25 00:37:32
如果您嘗試在啓用運行時檢查的情況下運行,則在分配給未分配的陣列時應該會出錯。 – 2013-04-25 09:16:50