bisec子程序ielem()传递时是以一个数组还是以一个数传递
n=30do i=1,n
ielem(i)=i
enddo
loct(inp)=1
call bisec(x,ielem(loct(inp)),numt(inp),ysep,nsepy, 2)
subroutine bisec(x,ielem,n,xsep,nsep,ic)
implicit real*8(a-h,o-z)
dimension x(2,*),ielem(*)
nsep = 1
if(n.le.0) return
do ifr=1,n
if(x(ic,ielem(ifr)).le.xsep) then
if(ifr.ne.nsep) then
istore = ielem(nsep)
ielem(nsep) = ielem(ifr)
ielem(ifr)= istore
endif
nsep = nsep + 1
endif
enddo
return
end
c-------------------------------------------------------------------------------
inp 和 loct(inp) 都是单变量, 相应的ielem(loct(inp))和 numt (inp) 也是单变量。而子程序 bisec 却定议的是数组,运行时会出错。 fortran是地址传递
http://fcode.cn/guide-103-1.html 风平老涡 发表于 2021-11-11 20:57
inp 和 loct(inp) 都是单变量, 相应的ielem(loct(inp))和 numt (inp) 也是单变量。而子程序 bisec 却 ...
谢谢大佬
li913 发表于 2021-11-11 21:20
fortran是地址传递
http://fcode.cn/guide-103-1.html
谢谢 大佬
页:
[1]