主程序调用subroutine REANIN,我就加里一个变量mf,编译时出错
error #6784: The number of actual arguments cannot be greater than the number of dummy arguments.主程序中接口为(我加的是最后那个变量mf):
call readin(ios,in,title,pi,&
iut,ibs,ihj,ipi,igf,inp,ida,iat,icl,isl,iop,ifp,&
icori,iedgeco,ibutmat,ibutzero,ilevel,&
jpm,jpt,jrm,jrt,jvm,jtm,jcb,jcs,jnp,jca,jkm,krt,kpt,kst,kit,kut,kth,&
t1,mu1,t2,mu2,t3,mu3,p1,mup1,mup2,pivotk,pivotc,pivotku,pivotkl,&
ftc,fsg,fspe,sigmas,zetas, ost,hocof,tsump,rtfv,ptfv,rtst,ubft,grtemp,&
shf,hconp,hconr,pid,pod,ple,pte,frach,ri,ro,thick,t1bar,&
padm,paditc,paditr,&
ym1,pr1,ck1,tys1,tce1,tref1,&
ym2,pr2,ck2,tys2,tce2,tref2,&
ym3,pr3,ck3,tys3,tce3,tref3,&
ym_but,pr_but,ck_but,tys_but,tce_but,tref_but,&
pmk,pmz,pro,pco,alpharg,alphacg,&
rlevmas,rlevit, rubar,rebar,rhocbar,phiebar,chi,&
rir,ror,rth,rmx,rmy,rym,rpr,rck,rty,rce,rrt,rro,&
hro,hri,hlt,hsr,hbb,hjro,hjco,hjr,hjld,hjpres,hjcof,&
srpm,sald,sflo,sig,sdrr,sdri,th_pl_s,tltpar_s,&
crfp,crfa,crfc,cins,cine,cerr,crfq,&
delpmax,delamax,delcmax,delsmax,delemax,ros,tos,aos,iost,&
phip,garc,alep,pvos,delta,epsilon,crown,crown2,ict,ridd,rodd,philbar,&
kappa,deltal,relow,rehi,prndtlt,&
mf)
主程序中定义mf:
INTEGER :: mf
子程序为:
SUBROUTINE readin(ios,in,title,pi,&
iut,ibs,ihj,ipi,igf,inp,ida,iat,icl,isl,iop,ifp,&
icori,iedgeco,ibutmat,ibutzero,ilevel,&
jpm,jpt,jrm,jrt,jvm,jtm,jcb,jcs,jnp,jca,jkm,krt,kpt,kst,kit,kut,kth,&
t1,mu1,t2,mu2,t3,mu3,p1,mup1,mup2,pivotk,pivotc,pivotku,pivotkl,&
ftc,fsg,fspe,sigmas,zetas, ost,hocof,tsump,rtfv,ptfv,rtst,ubft,grtemp,&
shf,hconp,hconr,pid,pod,ple,pte,frach,ri,ro,thick,t1bar,&
padm,paditc,paditr,&
ym1,pr1,ck1,tys1,tce1,tref1,&
ym2,pr2,ck2,tys2,tce2,tref2,&
ym3,pr3,ck3,tys3,tce3,tref3,&
ym_but,pr_but,ck_but,tys_but,tce_but,tref_but,&
pmk,pmz,pro,pco,alpharg,alphacg,&
rlevmas,rlevit, rubar,rebar,rhocbar,phiebar,chi,&
rir,ror,rth,rmx,rmy,rym,rpr,rck,rty,rce,rrt,rro,&
hro,hri,hlt,hsr,hbb,hjro,hjco,hjr,hjld,hjpres,hjcof,&
srpm,sald,sflo,sig,sdrr,sdri,th_pl_s,tltpar_s,&
crfp,crfa,crfc,cins,cine,cerr,crfq,&
delpmax,delamax,delcmax,delsmax,delemax,ros,tos,aos,iost,&
phip,garc,alep,pvos,delta,epsilon,crown,crown2,ict,ridd,rodd,philbar,&
kappa,deltal,relow,rehi,prndtlt,&
mf)子程序定义mf:
INTEGER, INTENT(IN OUT) :: mf
! INTERNAL VARIABLES:
INTEGER :: i,ierr,iline,mf1
子程序中有关mf的操作:
iline=iline+1
READ(in,80,IOSTAT=ierr) mf1
80 FORMAT(I5)
IF(ierr /= 0) GOTO 999
IF(mf1>0) mf = mf1
我单独写成一个程序,是可以编译链接的。
你最好确认一下 readin 函数所在的程序单元是否被重新编译了?这大概是你的编译环境(IDE或make)不当导致的。 我用的是intel Fortran,我点build 出现的错误,clear solution过,没有用啊,你说的编译环境能说详细些吗 不妨重新创建工程?
另外检查一下你是否有多个 readin 函数?比如一个外部的,一个contains或module里的。而你调用了另一个redin? 谢谢啊,我发现是有另一个redin, 在interface里,我提问里的redin确切说是subtoutine,改了interface,问题已解决
页:
[1]