Fortran Coder
标题:
参数未赋值
[打印本页]
作者:
小鸡儿
时间:
2020-9-27 16:31
标题:
参数未赋值
最近看一篇文献,里面有很老的一个程序,想着实现一下,但有个地方卡住了,想请教大佬,是他写错了,还是我没看懂
subroutine SCATTER(RESPONSE,DIAMETER,
STEPNUM
)
PARAMETER ( ndim = 15 )
PARAMETER ( MSTEP = 200 )
INTEGER
STEPNUM
DOUBLE PRECISION AUX(ndim),THETALO, THETAHI, REFMED
DOUBLE PRECISION REFREAL, REFIMAG
DOUBLE PRECISION PI,WAVELEN,DIALOW,DIASTEP,TOL,X
DOUBLE PRECISION RADIUS,R,ETA,BETA,CHI,SUM
DOUBLE PRECISION F,DIAMETER(MSTEP),FACT
DOUBLE PRECISION BETADEG, RESPONSE(MSTEP),RES(2,MSTEP)
INTEGER OPTION
COMPLEX REFREL
CHARACTER *80 FILENAME
LOGICAL THERE
COMMON /SCATPI/ PI
COMMON/MIE/X,REFREL,BETA,ETA,CHI,OPTION
DOUBLE PRECISION MIEFUN
EXTERNAL MIEFUN
PI=ACOS(-1.0)
C Inputs
REFMED=1.00028
WAVELEN=0.633
TOL=1E-4
WRITE (6,*) 'Refractive index of the particle, real part? '
READ (5,*) REFREAL
WRITE (6,*) 'Imaginary part? '
READ (5,*) REFIMAG
REFIMAG=0
OPTION=1
ETADEG=90
CHIDEG=90
ETA=ETADEG*PI/180.
CHI=CHIDEG*PI/180.
BETADEG=53.0
I=1
3333 BETA=BETADEG*PI/180.0
THETALO=ETA-BETA
THETAHI=ETA+BETA
REFREL=CMPLX(REFREAL,REFIMAG)/REFMED
F=(DIAHIGH-DIALOW)/(
STEPNUM
-1.D0)
FACT = WAVELEN * WAVELEN * 1.E-8 / ( 2. * PI * PI )
DO 6000 J=1,
STEPNUM
c DIAMETER(J)=DIALOW+(J-1)*F
X=PI*DIAMETER(J)*REFMED/WAVELEN
这个子程序还没完,但我到这里就觉得不对了,这个STEPNUM完全没有给出任何值啊,如果是默认值0的话,怎么可以带入循环呢
作者:
七星彩
时间:
2020-9-27 18:54
这是参数啊,调用的时候对应的实参就有值了。
作者:
小鸡儿
时间:
2020-9-27 19:06
七星彩 发表于 2020-9-27 18:54
这是参数啊,调用的时候对应的实参就有值了。
懂了,一点就通,多谢大佬
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2