我正在使用Fortran中的Simpson,spepezoid和Gauss规则编写一个近似积分计算器的代码。赋值需要使用模块来分配精度,但是当我尝试编译代码时,我收到以下错误消息:
Name ‘pr’ at (1) is an ambiguous reference to ‘pr’ from module ‘precs’
我不确定这是编译错误还是代码有问题。
我正在使用的编译命令是:
gfortran P3.f90 intmod.f90 gaussmod.f90 precision.f90 -o P3.exe
编译其他模块时,我不会收到错误消息。
另一方面,我使用的代码是:
program P3
use gaussmod
use integral
use precs
implicit none
real(pr) :: aa, bb, s, ie, ss, st
integer :: i, j, k, h, t, p
real(pr), dimension(:), allocatable :: xx, ww
我的精密模块是:
module precs
implicit none
integer, parameter :: sp = kind(1.0)
integer, parameter :: dp = kind(1.d0)
integer, parameter :: tp = selected_real_kind(p=precision(1._dp)+1)
integer, parameter :: qp = selected_real_kind(p=precision(1._tp)+1)
integer, parameter :: pr = qp
end module precs