FORTRAN 中的维度语句
DIMENSION statement in FORTRAN
我正在将FORTRAN代码转换为C++。在理解FORTRAN代码时,我在FORTRAN中遇到了以下代码片段。
DIMENSION X(50),Y(50),PARA(6,9)
DIMENSION AMPA(12),FCUR(20),VER(20),AMPS(20)
我知道 DIMENSION 在 FORTRAN 中不需要任何数据类型。但是我无法理解 X、Y、PARA 等的默认数据类型是什么。默认情况下是整数吗?
经典地,名称以 [I-N]
开头的 Fortran 变量是INTEGER
的,其他一切都REAL
。 因此,这些变量在C++中最可能的类型是 float
。
float X[50], Y[50], PARA[6][9];
float AMPA[12], FCUR[20], VER[20], AMPS[20];
但是,对于 2D 数组,Fortran 使用列主顺序,而 C 和 C++ 使用行主顺序。 对于 2D 阵列,您可能需要担心这一点。 您也可以决定将名称转换为小写。
在 Fortran 中,名称以字母表中从 I 到 N 的字符开头的变量(记住 Fortran 不区分大小写)是隐式integer
的,除非另有说明,否则其他所有内容都是隐式real
的——这可能对应于C++中的int
和float
。
早在 FORTRAN 77 中,这就被视为不好的做法,今天通常以语句开始每个 Fortran 程序和模块,implicit none
要求每个变量都声明为显式类型。
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- 为什么是0;C++中的有效语句
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 我似乎对if/else的基本语句有问题:/
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- "类模板示例<int>;"语句对 C++11 是什么意思?
- FORTRAN 中的维度语句
- 编译C++包括带有 COMMON 语句的 Fortran 库
- Fortran 的参数语句是否与 C/C++ 的 #define 语句相似?