simly Fortran中sign()函数的问题
具体的代码是这样的:do n2=1,number
if (n1 .ne. n2) then
NN1=n1-number0-1
NN2=n2-number0-1
S(n1,n2)=sign(1.0,kz+NN1*K)*sign(1.0,kz+NN2*K)
.......
end if
end do
其中红色的那句代码出现报错,Error: 'b' argument of 'sign' intrinsic at (1) must be the same type and kind as 'a'
求大神帮忙解决一下,该怎么改
本帖最后由 vvt 于 2016-3-19 20:07 编辑
sign(1.0,kz+NN1*K)
这里第一个参数是 1.0 ,是 real 类型
第二个参数是 kz+NN1*k,是 integer 类型(我猜是,毕竟你没给出定义)
sign 要求两个参数的类型要一致。这是 fortran 语法要求的,每一个编译器都应该如此。不是 simply fortran 特殊要求的。
此外,你应该知道,simply fortran 内核是 Gfortran
vvt 发表于 2016-3-19 20:05
sign(1.0,kz+NN1*K)
这里第一个参数是 1.0 ,是 real 类型
第二个参数是 kz+NN1*k,是 integer 类型(我猜 ...
是参数类型不一样导致的,刚转化了报错消失了,多谢
页:
[1]