我想了解以下 fortran 代码是否符合 Fortran-2008 标准。 上面的代码适用于gfortran-9.4.0并生成预期的 output。 由于我是 Fortran 的初学者,我对方括号表达式(在代码中标记)感到困惑。 在 function tt内部, a和b都是t类型的数组。 在这个 ...
我想了解以下 fortran 代码是否符合 Fortran-2008 标准。 上面的代码适用于gfortran-9.4.0并生成预期的 output。 由于我是 Fortran 的初学者,我对方括号表达式(在代码中标记)感到困惑。 在 function tt内部, a和b都是t类型的数组。 在这个 ...
如果我们有三个具有不同派生类型的不同文件, MyTypeMod.f90: MyType1Mod.f90 MyType2Mod.f90 在这里,在这种情况下,由于模块文件相互依赖,我无法编译程序。 我可以使用 SubModules 来解决问题吗? ...
在此模块和程序中,我们可以修改可访问性状态“IsNum”类型绑定程序吗? 我们可以在 testMyTypeMod PROGRAM 中将“IsNum”过程设为私有吗? ...
我可以通过这种方式创建没有指针的 Fortran 链表吗: 列表: 链接列表: 这个列表在用于创建链接列表时会起作用吗? 可能会出现什么问题,有什么缺点吗? 指针相对于可分配对象有哪些优势? ...
在我看来,子模块的一个不错的特性是您可以在子模块中创建一个帮助程序 function,而程序员的成本非常低; 您不会触发编译级联,不会弄乱命名空间或文档,并且可以立即清楚 function 可以在哪里使用和不能在哪里使用。 它们就像private函数的更好版本。 但是,子模块中的函数不能use d. ...
考虑以下代码。 用gfortran编译时如下: 我收到以下警告: 请注意, gfortran对前两次转换感到满意,但对最后一次不满意。 问题:上面说明的警告是gfortran的预期行为吗? 我认为在这三种情况中的任何一种情况下都不应该产生警告,因为转换是由REAL( , INT64)明 ...
Fortran 无法将派生类型的成员变量作为目标。 (我想这与未指定派生类型如何存储在 memory 中的标准有关?)但是,我可以将指针作为成员变量并将指针与指针相关联。 就像我在下面的例子中所做的那样。 在 set 例程中,我使用一个 if 语句来设置一个指针,以决定它是否应该将传入的矩阵转储 ...
我了解 Fortran 2008+ 中子模块的一般好处,但我无法理解其中一种语法选项的好处。 如果我想创建单独的模块过程(过程主体在子模块中),我需要在父模块中创建一个接口。 该接口必须包含子例程或 function 标识符以及参数列表和意图。 这一切都说得通。 然后子模块包含过程的实现,但可以选 ...
在这个问题中: Fortran Functions with a pointer result in a normal assignment ,声明不推荐函数返回指针。 我的问题涉及用户定义类型的构造函数。 考虑下面的代码: 在代码中,我定义了一个带有构造函数的类型,该构造函数分配对象,然后 ...
我有一个名为“mainmodule.f08”的模块和两个模块“module1.f08”和“module2.f08”。 在“mainmodule.f08”中,我有: 我可以使用“module1”和“module2”中的程序,只说明在我的程序中use mainmodule 。 使用子模块可以做同样的事 ...
我创建了一个名为“ element”的类,它具有多个属性和类型绑定过程。 属性之一是抽象类类型“ kin”,它具有两个继承的类型“ kin1”和“ kin2”。 我希望能够在运行时使用构造函数根据输入将'kin1'或'kin2'作为属性分配给对象'element'。 目的是要有一个元素列表 ...
我正在学习Fortran08,并对为什么不能执行以下操作感到困惑 ,但以下工作正常 ...
我有类似的代码: 我不确定在子例程set_Ao中,应该像这样保留type(Ao),intent(in):: Ao或改为在class(Ao),intent(in):: Ao中放置。 我知道class(Ao)使变量多态并访问A的数据类型。但是我不知道何时必须使用它。 谢谢。 ...
考虑以下类结构,其中涉及三个单独的模块: !-----------------------在文件af中 !------------------------在文件bf中 !---------------------------在cf文件中 !------------- ...
我正在尝试编写一个简单的代码,该代码将具有相同父级抽象类的某些对象带入一个二进制文件中,然后将它们读回。 我的代码如下所示: 问题是,在读取o1 ,它的类型为b ,即该对象具有两个组件num和num2 。 我存储了它,我自然希望读取的值与写入的值相同。 但是我得到了与在Fo ...
我有以下代码,具有抽象类型,继承的类型和简短的程序,在其中创建对象并将其存储在数组中。 问题是,输出看起来像这样: 可以看出,存储在数组中的相同变量使第二个变量无效。 为什么会这样呢? 是否因为数组的类型为a ,而该数组仅包含第一个变量? 我正在使用ifort vers ...
我正在尝试创建一个类型,它可以作为任意其他类型的包装器,因此我可以创建一个异构数组,因为它建议在Fortran类的异构数组和Fortran中 创建异构数组 。 所以,我试图像这样实现它: 现在我收到了错误 所以我尝试像这样实现I / O: 但即使在我的新方法中也会出 ...
我有一个抽象类型和几个继承自他的类型。 现在我需要制作这些继承类型的实例数组,但我不确定,在 Fortran 中是否可能。 我尝试制作一些包装器类型,例如在 Fortran中创建异构数组。 但我收到此错误: 我究竟做错了什么? 或者有没有其他正确的方法来做到这一点? 尝试 2 我根据 ...
我有以下课程,需要在其中存储neuron_t和connection_t类型的对象。 我试图像这样初始化数组 但出现以下错误: 你知道吗,我做错了什么? mock_neuron_t扩展型neuron_t ,所以应该没问题。 编辑: neuron_t和conne ...
如何使用ISO Fortran Env的内在函数以一种Fortran 2008惯用的方式设置函数的返回KIND值? 通常在主程序中,我可以使用ISO Fortran内部函数,如下所示: 但是似乎没有一种方便的方法将这些内在函数用于外部函数,因为REAL64和double都只能在上述 ...