Macos gfortran是否可以配置模具?

Macos gfortran是否可以配置模具?,macos,gfortran,allocation,Macos,Gfortran,Allocation,我正试图用gfortran在Mac上编译一个相当现代的fortran代码。像这样的台词 allocate(sce, mold=sct) 获取如下错误: Error: Array specification or array-valued SOURCE= expression required in ALLOCATE statement 那么,gfortran似乎理解源代码,但不理解模具。但是,我的gfortran是最近的: gcc version 8.2.0 (MacPorts gcc8

我正试图用gfortran在Mac上编译一个相当现代的fortran代码。像这样的台词

allocate(sce, mold=sct)
获取如下错误:

Error: Array specification or array-valued SOURCE= expression required in ALLOCATE statement
那么,gfortran似乎理解
源代码
,但不理解
模具
。但是,我的gfortran是最近的:

 gcc version 8.2.0 (MacPorts gcc8 8.2.0_3)
我看到一些网页声称gfortran从7.0版开始就能够支持
MOLD
。因此,它应该能够用8.2.0实现这一点。这不是真的吗?Mac版本有什么有趣的地方吗?有人能告诉我还有什么问题吗

编辑:如果有人还在,这个玩具代码可以正常工作:

program awm

integer, dimension(:), allocatable :: sct,sce

integer :: nspec = 100

allocate(sct(nspec))
allocate(sce, mold=sct)

end program
但是,当sct和sce是派生类型时,它会分开:

program awm

type :: r1d
    real, allocatable :: a(:)
end type

type(r1d), dimension(:), allocatable :: sct,sce

integer :: nspec = 100

allocate(sct(nspec))
do i = 1,nspec
  allocate(sct(i)%a(10))
enddo 
allocate(sce, mold=sct)

end program

这将返回我在上面遇到的错误。您可能认为派生类型的定义有点奇怪,甚至没有必要。好的,从中获取的原始代码不是我的代码,我也不能对它做太多的修改,实际上,这种结构确实有它的用途,因为我没有时间去讨论。谢谢。

我确信这是这个GCC错误的重复,或者是非常密切相关的。你必须等待修复。我将把你的代码放在这个bug的注释中,而不是打开一个新的。

这不是关于supooting mold,而是关于缺少的数组规范。这是一个已知的bug,但现在应该已经修复了。我写的测试程序或我的测试程序都没有问题(在Linux上使用7.3)。因此,请提供一个完整的示例(代码中可能有问题),供我们进一步探讨。您的代码(带有明显的必要扩展)在GCC 6和GCC 7中编译正常,这会导致GCC 5中提到的错误。在Linux.GCC 8上测试过,也可以编译。@VladimirF但是AFAICT,我自己也有GCC 8。那么,不知何故,我的版本有什么错误/过时的地方吗?你是不是碰巧在Mac电脑上测试?谢谢