【发布时间】:2015-09-24 05:35:10
【问题描述】:
我已经下载了一个 Fortran 90/95 自适应网格细化库 (Paramesh),现在我正在尝试编译一个随附的示例程序。在此过程中,我修改了 Makefile 以使用 gfortran 而不是 Intel Fortran 编译器。
在库代码中,有一个包含这个sn-p的模块:
module physicaldata
! Many many lines of variable definitions here
!....
Public :: nfluxvar
Integer,Save :: nfluxvar
! Many many lines of variable definitions here
!....
end module physicaldata
其他地方
module flux_assign
use physicaldata
integer :: iflux_target(nfluxvar)
end module flux_assign
这是导致this error:
advance_soln_vdt.F90:16.40:
Included at amr_main_prog.F90:29:
integer :: iflux_target(nfluxvar)
1
Error: The module or main program array 'iflux_target' at (1) must have constant shape
如果使用其他编译器编译该代码会起作用吗?我知道,对于标准 Fortran,或者至少是 gfortran 使用的,要求用于表示数组大小的整数变量应该附加 parameter 关键字。其他 Fortran 编译器不是这样吗?其他编译器是否包含诸如此类的非标准功能?
【问题讨论】:
标签: arrays fortran gfortran intel-fortran fortran95