Fortran Coder
标题:
Fortran子程序中虚参为*代表什么意思
[打印本页]
作者:
mwh-heu
时间:
2022-11-8 10:07
标题:
Fortran子程序中虚参为*代表什么意思
主程序调用了一个子程序,某个实参为*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
作者:
布衣龙共
时间:
2022-11-8 13:15
本帖最后由 布衣龙共 于 2022-11-8 13:55 编辑
这是一种不常用的,甚至已被废止的写法,叫
alternate return
。
你可以参考彭国伦的《Fortran95程序设计》第8章,第8-8-2,特别的Return
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2