对于一种专为科学计算而设计的语言-甚至是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 2008+ 中子模块的一般好处,但我无法理解其中一种语法选项的好处。
如果我想创建单独的模块过程(其中过程主体位于子模块中),我需要在父模块中创建一个接口。该接口必须包含子例程或函数标识符以及参数列表和意图。这都是有道理的。
然后子模块包含过程的实现,但可以选择语法:我可以重复子例程或函数的签名,或者,我可以简单地使用“模块过程”之后的接口中的名称。我本来想打出一个例子,但Fortran wiki完美地展示了它。
我的问题是:使用“模块过程”而不是“模块函数”或“模块子例程”的替代语法有什么好处,即过程类型、参数和意图在子模块文件中不重复?看来这只会使代码维护变得复杂,因为现在需要打开两个文件才能理解子例程或函数。我在这里错过了一些隐藏的好处吗(除了保存复制/粘贴之外)?