我是 Fortran 的新手,但我通常发现我可以用 C 或 Matlab 做大部分事情,只要我了解模块和类型。但是,我对结果的这种差异感到困惑,这取决于我使用的是 gfortran(gcc 版本 4.6.2)还是 ifort(13.0.2)。Gfortran 给了我预期的结果,但 ifort 给了我 3 个空白行!任何想法为什么?
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 个空行,尽管它编译得很好!!
提前致谢。