debugging - 如何使用返回 REAL 的 fortran95 函数修复“return-type”和“no IMPLICIT type”错误
问题描述
我还是 fortran95 的新手,我想知道是否有人可以向我解释为什么我会收到这些错误:
“错误:函数 'w' 在 (1) 的返回类型不匹配 (UNKNOWN/REAL(4))”
“错误:函数 'w' 在 (1) 没有隐式类型”
起初我意识到我犯了一个错误,将 W() 中的 z 设为整数而不是实数,但错误仍然存在。任何建议都会很有帮助。
我使用“gfortran -o spread spread.f95 -Wall”编译代码,并且使用 GNU Fortran (Spack GCC) 10.2.0 进行编译。
function W(z) result(ret)
implicit none
real, intent(in) :: z
real :: ret, x
integer :: i
x = 0.5
do i = 1, 10
x = x - ((x * EXP(x) - z)/ (EXP(x) + (x * EXP(x))))
end do
ret = x
end function
program spread
implicit none
real :: alpha, gamma, numInfected
real :: z
integer :: n
integer :: r
do
read(*,*,IOSTAT = r) n, alpha
if(r > 0) then
print *, "Error in input!"
else if(r < 0) then
exit
else
z = -alpha * EXP(-alpha)
gamma = 1 + W(z) / alpha
numInfected = gamma * n
end if
end do
end program spread
解决方案
推荐阅读
- c - C 如何用 2 个操作数计算 2 个减号?
- python - pyinstaller在exe文件中添加带有图像的文件夹
- python - Robotframework 中安装了哪些库?
- android - 从 JSON Android 添加日历事件
- angular - d3 规模与打字稿
- python - plotly 基本示例显示 jupyter 实验室中没有绘图
- c++ - c ++,当我从另一个类访问特定类的函数时,它们不会返回我更新的值
- javascript - 在提交页面上刷新到网页上的某个点?
- android - 在 kotlin 中创建常量文件的好习惯是什么
- gradle - 在 gradle 中导入 maven bom 时遇到问题