【发布时间】:2017-11-04 21:04:04
【问题描述】:
我正在学习 Fortran,特别是模块。我写了这个简单的代码来计算正弦函数的导数:
module constants
real, parameter::x=3.14
real, parameter::h=0.0001
end module constants
module derivata1
contains
real function der1(n)
use constants
real::der
der=(sin(x+h)-sin(x))/h
end function der1
end module derivata1
program derivate
use constants
use derivata1
implicit none
real der1
print *, der1(x)
end program derivate
我在 gfortran 中收到以下错误。
der2.f90:40.10:
real der1
1
der2.f90:38.5:
use derivata1
2
Error: Symbol 'der1' at (1) conflicts with symbol from module 'derivata1', use-associated at (2)
der2.f90:44:15:
print *, der1(x)
1
Error: Type mismatch in argument ‘n’ at (1); passed REAL(4) to INTEGER(4)
我的错误在哪里?
【问题讨论】:
-
请尝试在您的问题中发布完整的错误消息。告诉我们您正在使用哪个编译器。这看起来像 gfortran,gfortran 通常会打印更多有用的信息,而不仅仅是您选择向我们展示的部分。最好的办法是显示完整的输出,包括您执行的命令。
-
@VladimirF 添加了完整信息