This question already has an answer here:
Can the shape of an array in an interface match multiple fixed array size?
(1个答案)
3年前关闭。
我正在尝试使用radford
为了完全(并简单地)重现此内容,我编写了一个小脚本,该脚本将下载,提取和编译源代码:
由于我认为这些文件被编写为“拖放”示例,因此我认为这可能是我的环境存在问题,或者我编译不正确。
我的编译方式是否有问题?如果不是,我可以对(1)驱动程序代码(
代替
在DDES的接口(interface)块中。祝好运。
(1个答案)
3年前关闭。
我正在尝试使用radford
ex4p4p1.f90
将DDE求解器用于Fortran90 source中的dde_solver_m_unix.f90
。我相信我应该能够简单地下载并进行零更改编译,但是却出现以下错误:ex4p4p1.f90:107:8:
SOL = DDE_SOLVER(NVAR,DDES,DELAYS,HISTORY,TSPAN=(/ 0D0,350D0 /))
1
Error: There is no specific function for the generic ‘dde_solver’ at (1)
为了完全(并简单地)重现此内容,我编写了一个小脚本,该脚本将下载,提取和编译源代码:
#!/usr/bin/env bash
### Download and extract solver
dde_solver_url=http://www.radford.edu/~thompson/ffddes/dde_solver_m.zip
wget $dde_solver_url
unzip dde_solver_m.zip
### Download main routine
example_code_url=http://www.radford.edu/~thompson/ffddes/ex4p4p1.f90
wget $example_code_url
### Compile
gfortran dde_solver_m_unix.f90 ex4p4p1.f90
由于我认为这些文件被编写为“拖放”示例,因此我认为这可能是我的环境存在问题,或者我编译不正确。
我的编译方式是否有问题?如果不是,我可以对(1)驱动程序代码(
ex4p4p1.f90
)进行最小的更改以使其正常工作,或者(不太希望)(2)求解程序代码(dde_solver_m_unix.f90
)? 最佳答案
在DKL_ *函数定义期间使用的INTERFACE块指定应将DDES的参数2、3和4假定为形状数组。但是ex4p4p1定义了DDES,其参数2、3和4是在编译时固定的数组。这会导致与Intel编译器的混淆,也可能是gfortran发生的情况。
尝试使用
DOUBLE PRECISION, DIMENSION(:) :: Y,DY
DOUBLE PRECISION, DIMENSION(:,:) :: Z
代替
DOUBLE PRECISION, DIMENSION(NEQN) :: Y,DY
DOUBLE PRECISION, DIMENSION(NEQN,NLAGS) :: Z
在DDES的接口(interface)块中。祝好运。
关于compiler-errors - 通用 'dde_solver'没有特定功能。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46756638/
10-11 16:57