5

我正在使用 GNU Fortran (GCC) 4.8.2

我想从名单中读取可分配数组。但是我事先不知道有多少元素必须读入可分配数组,所以我不能在读取名单之前分配它。

这是我的名单:namelist.nml:

&SECTION_1
    intList = 5,6,7
&END

这是我的程序:namelist.f08:

program namelist
    implicit none

    integer, allocatable    :: intList(:)
    integer                 :: U    ! Unit to read the namelist file

    namelist /SECTION_1/ intList

    !allocate(intList(3)) ! <-- If I uncomment this, the program works.
    open(NEWUNIT=U, file="namelist.nml", status='OLD', recl=80, delim='APOSTROPHE')
    rewind(U)
    read(U, nml=SECTION_1)
    close(U)

    write (*,*) intList
end program namelist

如果我取消注释标记的行,程序可以工作,但是,正如我之前所说,我不能在之前分配来读取名单。有谁知道如何做到这一点?

4

0 回答 0