我有一个程序,它有许多在声明中使用“种类”的函数,例如
real(kind=db) function vnorme(v)
这种类型的每个声明都会在使用 pgf90 编译期间导致错误(但是 ifort 可以正常工作):
PGF90-S-0087-需要常量表达式的非常量表达式 (general.f: 3161) PGF90-S-0081-非法选择器 - KIND 参数具有未知数据类型值 (general.f: 3161) 0 通知,0 警告, 2 人严重, 0 人对 vnorme 致命
db 在包含在单独源代码文件中的模块中定义:
integer, parameter:: db = selected_real_kind(15)
当我将 'db' 替换为 '8' 时,代码编译正确。似乎编译器不认为 db 已被声明,即使函数 vnorme 使用声明 db 的模块。有没有办法来解决这个问题?