Я пишу код для приблизительного интегрального калькулятора, используя правило Симпсона, трапеции и Гаусса в Фортране.Присвоение требует использования модуля для присвоения точности, но когда я пытаюсь скомпилировать свой код, я получаю следующее сообщение об ошибке:
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