首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gfortran可以与模具一起配置吗?

gfortran可以与模具一起配置吗?
EN

Stack Overflow用户
提问于 2019-01-25 07:18:22
回答 1查看 786关注 0票数 3

我正在尝试用gfortran在Mac上编译一个相当现代的fortran代码。像这样的线..。

代码语言:javascript
复制
allocate(sce, mold=sct)

得到类似如下的错误:

代码语言:javascript
复制
Error: Array specification or array-valued SOURCE= expression required in ALLOCATE statement

看来,gfortran能理解SOURCE,但不能理解MOLD。然而,我的gfortran是最近的:

代码语言:javascript
复制
 gcc version 8.2.0 (MacPorts gcc8 8.2.0_3)

我看过一些网页声称gfortran从版本7开始就可以支持MOLD了。因此,毫无疑问,它应该能够在8.2.0中做到这一点。这不是真的吗?Mac版有什么好笑的吗?有没有人能建议一下其他问题呢?

编辑:如果有人还在那里,这个玩具代码工作得很好:

代码语言:javascript
复制
program awm

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

integer :: nspec = 100

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

end program

但是当sct和sce是派生类型时,它就会分崩离析:

代码语言:javascript
复制
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

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

EN

回答 1

Stack Overflow用户

发布于 2019-01-25 23:32:32

我确信这是这个GCC漏洞https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80708的复制品,或者是非常密切的联系。你必须等待一个解决方案。我会把你的代码放在这个bug的注释中,而不是打开一个新的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54356803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档