fortran2003相关内容

在 Fortran 中将可分配字符传递给具有无限多态虚拟参数的子例程

我正在尝试编写一个例程,该例程能够基于无限多态性将字符串转换为不同类型的数据类型.这个想法是用户调用这个例程,将变量传递到它想要存储数据的位置,以及基于变量/参数类型定义转换的例程. 此例程的摘录如下: 子程序 GetAsScalar (this, value, status)!参数------------------------------------------------------ ..
发布时间:2022-01-24 16:52:46 其他开发

fortran 2003 中类型和类的区别

在攻读博士学位时,有人告诉我必须学习 fortran 2003 语言.我以前从未使用过 OOP 程序,也没有使用过 fortran.我试图了解类型和类之间的区别是什么.我知道类是用'TYPE'关键字声明的,但我也看到使用关键字'CLASS'的例子,所以我很困惑.希望这是有道理的. 解决方案 关键字type用来声明派生类型 -- 最好不要养成思考,也许是从外语导入的,type 用于声明称为 ..
发布时间:2022-01-14 10:23:54 其他开发

错误:如果 SELECT TYPE 中的选择器表达式不是命名变量,则 associate-name=>;会出现

我正在尝试在另一种类型中使用一种类型.但是,我就是不能让它编译.对我来说很奇怪:选择类型的东西在主程序中有效,但在类型的子程序中无效. 模块 ModBuffer隐式无私人的类型、抽象、公共 :: 缓冲区包含程序,公共 :: 构造函数endtype 缓冲区类型,扩展(缓冲区),公共 :: BufferR真实的(8),可分配的,公共的 :: BufData(:,:,:)端型缓冲器R类型,扩展(缓冲区 ..
发布时间:2022-01-14 10:15:04 其他开发

对 Fortran 中的实数同时使用科学记数法和下划线种类说明符

在 Fortran 中对浮点文字使用科学记数法很容易: 1.5d-10 表示双精度(无论在当前 Fortran 编译器设置下意味着什么)浮点值,近似于 1.5*10^-15. 但是,指数符号和浮点类型说明符的融合有点问题.当希望它具有 C_DOUBLE 类型时,如何声明这个浮点字面量? 我知道这有点吹毛求疵,但在某些情况下,双精度可能与 C_DOUBLE 不同. 解决 ..
发布时间:2022-01-14 09:49:55 其他开发

终结例程是否需要元素才能在超出范围的可分配数组的元素上调用?

如果我有一个可分配的可终结派生类型的数组,当数组超出范围时,是否会在每个单独的元素上调用终结器? 这是一个说明问题的小代码示例: 模块 LeakyTypeModule隐式无私人的类型,公共 :: LeakyType真实的,指针:: dontLeakMe(:) =>空值()包含程序 :: 新final :: 终结器端型包含子程序 New(self, n)类(LeakyType),意图(出): ..
发布时间:2022-01-14 09:40:49 其他开发

Fortran 中函数返回值的直接索引

是否有可能直接在函数的返回值上使用索引?像这样的: readStr()(2:5) 其中readStr() 是一个返回字符串或数组的函数.在许多其他语言中这是很有可能的,但是 Fortran 呢?我的示例中的语法当然无法编译.有没有其他语法可以使用? 解决方案 不,这在 Fortran 中是不可能的.但是,您可以更改您的函数以采用额外的索引数组来确定返回哪些元素.这个例子说明了这种可能性 ..
发布时间:2022-01-14 09:35:01 其他开发

错误:如果 SELECT TYPE 中的选择器表达式不是命名变量,则 associate-name=>将出现

我正在尝试使用另一种类型的类型.但是,我不能让它编译.我很奇怪:选择类型的东西在主程序中有效,但它在类型的子程序中不起作用. 模块 ModBuffer隐式无私人的类型、抽象、公共 :: 缓冲区包含过程,公共 :: 构造函数终端类型缓冲区类型,扩展(缓冲区),公共 :: BufferRreal(8), 可分配的, public :: BufData(:,:,:)结束类型 BufferR类型,扩展( ..
发布时间:2021-12-31 22:50:17 其他开发

在FORTRAN 2003中完成

根据 Fortran Wiki intel fortran 编译器版本14应该支持FORTRAN 2003标准中定义的完成.我尝试通过 ifort 14 使用此功能,但观察到了奇怪的行为.以下示例应显示以下内容: 模块mtypes隐式无输入mytype整数,私有:: ::包含最终:: delete_mytype程序:: print_mytype终端类型包含!>\ brief构造一个新的mytyp ..
发布时间:2021-05-09 19:18:37 其他开发

在Fortran2003中,一维假定形状数组是否可以与C互操作?

在Fortran 2003中,可分配数组不能与C互操作.我认为这与存储在内存中的其他数组信息有关,这些信息可能会干扰C的解释. 但是,如果我将虚拟参数声明为1D假定形状数组怎么办?例如 子例程outter_subroutine(ma,size_ma)整数:: size_ma整数:: ma(size_ma)呼叫fortran_subroutine(ma)结束子程序!------------- ..

编写一个接受任何两个数字(任何实数或任何整数)的函数

我有一个接受两个数字的函数,我不在乎它们是整数还是实数或32位或64位.对于下面的示例,我只是将其编写为简单的乘法.在Fortran 90中,您可以使用接口块来执行此操作,但是如果要涵盖将两个数字相乘的所有可能的交互,则必须编写16(!)函数,每个数字可以是int32,int64,real32或real64. 对于Fortran 2003,您还有其他一些选项,例如class(*)用于多态,我 ..
发布时间:2020-11-10 06:46:20 其他开发

十六进制常数

我想根据其十六进制表示形式声明一个整数参数.之间有什么区别 INTEGER(kind=int32), PARAMETER :: a = Z'FFFFFFFF' INTEGER(kind=int32), PARAMETER :: b = int(Z'FFFFFFFF', kind=int32) INTEGER(kind=int32), PARAMETER :: c = transfer(Z'F ..
发布时间:2020-11-10 06:10:56 其他开发

Fortran 2003-2008中是否有GETCWD()的替代方法

GNU Fortran编译器的GNU扩展提供了子例程GETCWD(),该子例程很好地获取了当前的工作目录.但是,我的代码也必须可移植到ifort和nagfor编译器中,并且使用F2003功能. 那么,对于F2003及更高版本,是否有GETCWD()的替代品? 我这里有标准,但是它相当大,我已经研究了一段时间了,没有发现任何有用的东西... 解决方案 您还可以使用ISO_C_Bi ..
发布时间:2020-11-10 06:08:40 其他开发

fortran 2003中类型和类之间的区别

有人告诉我要攻读博士学位,我必须学习fortran 2003语言.我之前从未使用过和OOP程序,也从未使用过fortran.我试图了解类型和类之间的区别是什么.我知道类是使用'TYPE'关键字声明的,但是我也看到了使用关键字'CLASS'的示例,因此我感到困惑.希望有道理. 解决方案 关键字type用于声明派生的类型-最好不要养成思考的习惯,也许是从外国语言,type用于声明称为class ..
发布时间:2020-11-10 06:05:13 其他开发

在Fortran中直接为函数返回值建立索引

是否可以直接在函数的返回值上使用索引?像这样: readStr()(2:5) 其中,readStr()是一个返回字符串的函数.在许多其他语言中,这是完全可能的,但是Fortran呢?我的示例中的语法当然不会编译.还有其他语法可以使用吗? 解决方案 否,在Fortran中是不可能的.但是,您可以更改函数以采用其他索引数组,该数组确定返回哪些元素.此示例说明了使用接口允许对索引进行可 ..
发布时间:2020-11-10 06:00:19 其他开发

在Fortran中读取整数列表文件

我想使用Fortran程序读取数据文件,其中每一行都是一个整数列表。 每行都有可变数量的整数,分开 示例输入: 1,7,3,2 2,8 12,44,13,11 我有一个解决方案,可以拆分行,但是我发现这很麻烦: 模块拆分 隐式无 包含 函数string_to_integers(str,sep)result(a) 整数,可分配的:: a(:) ..
发布时间:2020-10-16 20:43:03 其他开发

错误:如果SELECT TYPE中的选择器表达式不是命名变量,则associate-name =>应出现

我正在尝试使用其他类型的类型。但是,我只是无法使其编译。对我来说很奇怪:选择类型的东西在主程序中起作用,但在子例程中却不能工作。 模块ModBuffer 隐式无 私有 类型,抽象,公共::缓冲区 包含 过程,公共::构造函数 最终类型缓冲区 类型,extends(Buffer),公共:: BufferR real(8),可分配的,公共:: BufData(:,:,:) endt ..
发布时间:2020-10-06 22:15:47 其他开发

同时在Fortran中对真实文字使用科学计数法和下划线种类说明符

在Fortran中使用科学的浮点文字符号很容易: 1.5d-10 表示近似于1.5*10^-15的双精度浮点值(无论在当前的Fortran编译器设置下意味着什么). 但是,指数符号和浮点类型说明符的融合有点问题.想要一个具有C_DOUBLE类型的浮点文字时,该如何声明? 我知道这是一个挑剔的问题,但是在某些情况下,双精度可能与C_DOUBLE不同. 解决方案 真实的 ..
发布时间:2020-06-15 19:11:49 其他开发