我可以用Fortran创建没有变量赋值的数组吗?

我可以用Fortran创建没有变量赋值的数组吗?,fortran,Fortran,我想创建一个NxN数组,其大小是我输入的N个值的数量 您是否可以创建一个数组,其大小与我输入的数字相同,而与现有Fortran变量声明real*8矩阵(100100)不同?可分配数组就是为了这个 program allocate_test use iso_fortran_env, only: real64 implicit none real(kind=real64), allocatable :: Matrix(:,:) integer :: N pr

我想创建一个NxN数组,其大小是我输入的N个值的数量


您是否可以创建一个数组,其大小与我输入的数字相同,而与现有Fortran变量声明real*8矩阵(100100)不同?

可分配数组就是为了这个

program allocate_test
    use iso_fortran_env, only: real64
    implicit none
    real(kind=real64), allocatable :: Matrix(:,:)
    integer :: N

    print *, "Enter size of square array: "
    read(*, *) N
    allocate(Matrix(N, N))
    ! Now you have an NxN Matrix.
    deallocate(Matrix)
    ! Now you can select a new size of the Matix
end program allocate_test
有几件事:

  • real*8
    不是标准Fortran。我介绍了一种使用Fortran 2008(或更高版本)兼容编译器的方法。对Fortran 90/95使用固有函数
    selected\u real\u kind

  • 你可以用它来创建一个不同长度的数组,但是你不能改变它的等级(维度)。例如,在我上面的代码中,
    allocate(矩阵(N,N,N))
    不起作用


  • 是的,你可以。找一本描述Fortran语言的书。它会告诉你怎么做。你知道Fortran
    可分配数组吗?我敢肯定它是复制品,但我还是找不到好的