fortran90 或 gfortran 的约定 - 整数、实数、双精度和数组的声明
Conventions for fortran90 or gfortran - Declaration of integer, real, double and array
我想获得有关 Fortran90 或 gfortran 声明的说明。
首先,对于声明整数和双精度,似乎约定是:
! i is an integer
integer::i
而我也看到了一个简单的声明(在我的代码中,我使用了这个):
! i is an integer
integer i
即没有“::
”符号。
这个声明的标准是什么(integer, real, double
)?
声明数组也一样吗?即,符号 '::
' 是否像以下声明中那样是必需的:
! declaration of array "list" with 10 elements
double precision,dimension(10)::list
我寻找一个更简单的数组声明,但没有成功。
最后,我还对可分配数组使用了以下语法:
! Arrays
double precision, allocatable :: x(:,:)
! Allocation of 2D Array
allocate(x(1:size_x,1:size_y))
这是声明可分配数组的最新方法(我指的是 Fortran 中的最新约定或规范)吗?
此致
ps:不太了解fortran不同版本的演进(比如fortran90
和gfortran
的区别)
在变量声明中,出于以下两个原因之一,需要 ::
:
- 声明语句中有属性列表;
- 语句中有显式初始化。
首先我们看到如
integer, dimension(5) :: i
integer, target :: j
第二次
integer :: k=1
在需要 optional/not 时使用 ::
是无害的。虽然令牌在 F90 之前的 Fortran 标准中无效。
最后,请注意 integer i(5)
不需要 ::
。我看到有人建议始终使用 ::
以保持一致性和节省工作量 learning/applying 规则。
我想获得有关 Fortran90 或 gfortran 声明的说明。
首先,对于声明整数和双精度,似乎约定是:
! i is an integer
integer::i
而我也看到了一个简单的声明(在我的代码中,我使用了这个):
! i is an integer
integer i
即没有“::
”符号。
这个声明的标准是什么(integer, real, double
)?
声明数组也一样吗?即,符号 '::
' 是否像以下声明中那样是必需的:
! declaration of array "list" with 10 elements
double precision,dimension(10)::list
我寻找一个更简单的数组声明,但没有成功。
最后,我还对可分配数组使用了以下语法:
! Arrays
double precision, allocatable :: x(:,:)
! Allocation of 2D Array
allocate(x(1:size_x,1:size_y))
这是声明可分配数组的最新方法(我指的是 Fortran 中的最新约定或规范)吗?
此致
ps:不太了解fortran不同版本的演进(比如fortran90
和gfortran
在变量声明中,出于以下两个原因之一,需要 ::
:
- 声明语句中有属性列表;
- 语句中有显式初始化。
首先我们看到如
integer, dimension(5) :: i
integer, target :: j
第二次
integer :: k=1
在需要 optional/not 时使用 ::
是无害的。虽然令牌在 F90 之前的 Fortran 标准中无效。
最后,请注意 integer i(5)
不需要 ::
。我看到有人建议始终使用 ::
以保持一致性和节省工作量 learning/applying 规则。