标签: fortran2018

如何在Fortran中使用bignum

对于一种专为科学计算而设计的语言-甚至是50年前,我惊讶地发现Fortran 2018没有针对bignum或bigInt类型的本机类型以实现任意精度,并且怀疑我做错了什么。这是什么标准流程?

我在想:

program toosmall
  ! compile with:
  ! gfortran -fno-range-check -o toosmall toosmall.f90 

  implicit none

  integer :: base, pow, res

  base = 1000
  pow  = 100000

  res= base**pow

  print *,res

end program toosmall
Run Code Online (Sandbox Code Playgroud)

这产生了

$ ./toosmall 
           0
Run Code Online (Sandbox Code Playgroud)

fortran bignum bigint fortran2018

6
推荐指数
0
解决办法
179
查看次数

创建单独的模块过程时,在什么情况下会在子模块中使用“模块过程”?

我了解 Fortran 2008+ 中子模块的一般好处,但我无法理解其中一种语法选项的好处。

如果我想创建单独的模块过程(其中过程主体位于子模块中),我需要在父模块中创建一个接口。该接口必须包含子例程或函数标识符以及参数列表和意图。这都是有道理的。

然后子模块包含过程的实现,但可以选择语法:我可以重复子例程或函数的签名,或者,我可以简单地使用“模块过程”之后的接口中的名称。我本来想打出一个例子,但Fortran wiki完美地展示了它。

我的问题是:使用“模块过程”而不是“模块函数”或“模块子例程”的替代语法有什么好处,即过程类型、参数和意图在子模块文件中不重复?看来这只会使代码维护变得复杂,因为现在需要打开两个文件才能理解子例程或函数。我在这里错过了一些隐藏的好处吗(除了保存复制/粘贴之外)?

fortran module fortran2008 fortran2018

5
推荐指数
1
解决办法
302
查看次数

标签 统计

fortran ×2

fortran2018 ×2

bigint ×1

bignum ×1

fortran2008 ×1

module ×1