代码之家  ›  专栏  ›  技术社区  ›  youpilat13 Ty Petrice

fortran90或gfortran的约定-整数、实数、双精度和数组的声明

  •  1
  • youpilat13 Ty Petrice  · 技术社区  · 7 年前

    首先,对于声明整数和double,约定似乎是:

    ! i is an integer
    integer::i 
    

    然而,我也看到了一个简单的声明,如(在我的代码中,我使用这个):

    ! i is an integer
    integer i 
    

    i、 e,没有' :: '符号。

    integer, real, double

    声明数组也一样吗?i、 e,是符号' ::

    ! 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

    1 回复  |  直到 7 年前
        1
  •  3
  •   francescalus    7 年前

    在变量声明中, :: 出于以下两个原因之一需要:

    • 语句中有显式初始化。

    首先,我们看到

    integer, dimension(5) :: i
    integer, target :: j
    

    第二次

    integer :: k=1
    

    使用它无害 :: 可选/不需要时。虽然令牌在F90之前的Fortran标准中无效。

    integer i(5) 不需要 :: :: 始终保持一致性并节省学习/应用规则的工作量。