xindeng 发表于 2016-11-17 14:26:08

主程序调用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

fcode 发表于 2016-11-17 19:00:51

我单独写成一个程序,是可以编译链接的。

你最好确认一下 readin 函数所在的程序单元是否被重新编译了?这大概是你的编译环境(IDE或make)不当导致的。

xindeng 发表于 2016-11-17 23:51:16

我用的是intel Fortran,我点build 出现的错误,clear solution过,没有用啊,你说的编译环境能说详细些吗

fcode 发表于 2016-11-18 08:47:11

不妨重新创建工程?
另外检查一下你是否有多个 readin 函数?比如一个外部的,一个contains或module里的。而你调用了另一个redin?

xindeng 发表于 2016-11-19 02:33:20

谢谢啊,我发现是有另一个redin, 在interface里,我提问里的redin确切说是subtoutine,改了interface,问题已解决
页: [1]
查看完整版本: 主程序调用subroutine REANIN,我就加里一个变量mf,编译时出错