gpt4 book ai didi

fortran - 派生类型的空数组

转载 作者:行者123 更新时间:2023-12-03 23:06:39 27 4
gpt4 key购买 nike

如何正确编写用户派生类型的空数组文字?

以下适用于 GFortran,但不适用于 IFort 版本 19.1.1.217

 type(SpinOrbIdx_t), allocatable :: det_I(:)
det_I = [SpinOrbIdx_t::]

这是 ifort 中的错误,还是 GFortran 的不符合标准的行为?

最佳答案

这确实是声明构造(零大小)数组类型的正确语法。英特尔 Fortran 拒绝将此作为 Fortran 2003+ 语法是错误的:您应该将此报告给英特尔支持。

在 Fortran 2018 中,这是语法规则 R770(带有 R769 和其他上下文)。

作为解决方法,您可以分配 det_I大小为零或使用没有元素的结构构造函数的数组构造函数:

allocate(det_I(0))
det_I = [(SpinOrbIdx(...),i=1,0)] ! For appropriate structure constructor, etc.

关于fortran - 派生类型的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62174055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com