|
主程序调用了一个子程序,某个实参为*13。而子程序对应的虚参为*。这代表什么意思?如下面代码所示,bisec虚参*和func的虚参*代表什么意思?
call bisec(k,0.83333*k,0.99999*k,k/10000,*13)
subroutine bisec(x,a,b,eps,*)
call func(a,*131,*132,q)
call func(b,*131,*132,r)
if (q*r.gt.0.0) return 1
q= (b-a)*sign(1.0,q)*0.5
x= (a+b)*0.5
e= eps*0.5
10 q= q*0.5
call func(x,*131,*132,r)
x= q*sign(1.0,r)+x
if (abs(q).gt.e) goto 10
return
131 return 1
132 return 1
end
subroutine func(k,*,*,x)
real lam,k
common /one/ h,t,d,g,pi,lam
: /two/ b33,b35,b55,c1,c2
call abc1(k*d)
a= c2
b= c1
c= 1-2*pi/((g*t*t*0.5/pi)*k*tanh(k*d))
dis= b*b-4*a*c
if (dis.lt.0.0) return 1
q= (-b+sqrt(dis))/(2*a)
if (q.lt.0.0) return 2
lam= sqrt(q)
x= 2*(lam+lam**3*b33+lam**5*(b35+b55))/k-h
return
end
|
|