使用abs()的Fortran 90错误

时间:2014-08-15 16:27:01

标签: fortran gfortran

在使用Fortran 90时,我在以下部分遇到了错误

if(abs(pic1(1,j,1).eq.fitra(i))) fitcrv(j)=fitmax(j)
       1

错误是

  

错误:在(1)处''''的'''参数必须是数字类型

你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

这不是使用abs()但使用逻辑表达式的问题。正如francescalus已经指出的那样,你得到pic1(1,j,1).eq.fitra(i)的绝对值,这在fortran中没有意义(值为truefalse且不能置于绝对值中)。例如,Matlab会将其转换为整数,并愉快地为您提供abs(1),这将是1。你很幸运fortran编译器没有这样做并立即停止,这样的bug很难被发现。

您可能打算abs(pic1(1,j,1)) .eq. fitra(i)

相关问题