Fortran Coder

标题: 主程序调用subroutine REANIN,我就加里一个变量mf,编译时出错 [打印本页]

作者: xindeng    时间: 2016-11-17 14:26
标题: 主程序调用subroutine REANIN,我就加里一个变量mf,编译时出错
error #6784: The number of actual arguments cannot be greater than the number of dummy arguments.   [READIN]
主程序中接口为(我加的是最后那个变量mf):
[Fortran] 纯文本查看 复制代码
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
子程序为:
[Fortran] 纯文本查看 复制代码
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的操作:
[Fortran] 纯文本查看 复制代码
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
我单独写成一个程序,是可以编译链接的。

你最好确认一下 readin 函数所在的程序单元是否被重新编译了?这大概是你的编译环境(IDE或make)不当导致的。
作者: xindeng    时间: 2016-11-17 23:51
我用的是intel Fortran,我点build 出现的错误,clear solution过,没有用啊,你说的编译环境能说详细些吗
作者: fcode    时间: 2016-11-18 08:47
不妨重新创建工程?
另外检查一下你是否有多个 readin 函数?比如一个外部的,一个contains或module里的。而你调用了另一个redin?
作者: xindeng    时间: 2016-11-19 02:33
谢谢啊,我发现是有另一个redin, 在interface里,我提问里的redin确切说是subtoutine,改了interface,问题已解决




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2