0

我在获取一些我工作的 fortran 代码时遇到了一些麻烦。此代码使用 Rogue Wave 的外部库 NUMERICAL_LIBRARIES 来实现具有复杂参数的贝塞尔函数。我曾尝试联系 Rogue Wave,但到目前为止他们都忽略了我的电子邮件。

我从https ://jblev​​ins.org/mirror/amiller/ (toms644.zip)下载了一个贝塞尔函数库,试图让开源版本工作。但是,我无法将此代码与提供给我的代码集成。

在 cygwin 中使用此语句编译代码:

gfortran "pulse9_sili_oneTube - Copy.f90" -o "CBESSEL.F90" -o pressureWaveModel

给我这个错误声明:

/usr/lib/gcc/x86_64-pc-cygwin/9.3.0/../../../../x86_64-pc-cygwin/bin/ld: /tmp/cc0Rqf3a.o:pulse9_sili_oneTube - Copy.f90:(.text+0x29d80): undefined reference to `cbesj_'
/tmp/cc0Rqf3a.o:pulse9_sili_oneTube - Copy.f90:(.text+0x29d80): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cbesj_'
collect2: error: ld returned 1 exit status

我已将 CBESSEL.F90 文件链接到我的主文件:

INCLUDE "CBESSEL.F90"

USE Complex_Bessel

但是,我什至无法运行测试代码,所以也许我的编译器设置错误?编译测试代码给我一个错误,说它无法打开模块文件,我需要以某种方式创建一个模块文件吗?此代码中没有包含有用的说明。

您可以提供的任何帮助都将非常有用!干杯。

4

0 回答 0