Fortran Coder

标题: external问题,实参不能与procedure同名 [打印本页]

作者: wbaby91    时间: 2015-8-9 18:38
标题: external问题,实参不能与procedure同名
大神们,请教一下,如题,下面是代码
[Fortran] 纯文本查看 复制代码

PROGRAM D9R8A
!DRIVER FOR ROUTINE MRQMIN
EXTERNAL   FGAUSS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PARAMETER(NPT=100,MA=6,SPREAD=0.001)
DIMENSION X(NPT),Y(NPT),SIG(NPT),A(MA),LISTA(MA),&
COVAR(MA,MA),ALPHA(MA,MA),GUES(MA)
DATA A/5.0,2.0,3.0,2.0,5.0,3.0/
DATA GUES/4.5,2.2,2.8,2.5,4.9,2.8/
IDUM=-911
!FIRST TRY A SUM OF TWO GAUSSIANS
DO I=1,100
X(I)=0.1*I
Y(I)=0.0
DO J=1,4,3
Y(I)=Y(I)+A(J)*EXP(-((X(I)-A(J+1))/A(J+2))**2)
END DO
Y(I)=Y(I)*(1.0+SPREAD*GASDEV(IDUM))
SIG(I)=SPREAD*Y(I)
END DO
MFIT=MA
DO I=1,MFIT
LISTA(I)=I
END DO
ALAMDA=-1
DO I=1,MA
A(I)=GUES(I)
END DO
CALL MRQMIN(X,Y,SIG,NPT,A,MA,LISTA,MFIT,COVAR,ALPHA,&
MA,CHISQ,FGAUSS,ALAMDA)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!报错actual argument must not be the name of procedure
K=1
ITST=0
DO
WRITE(*,'(/1X,A,I2,T18,A,F10.4,T43,A,E9.2)')&
'Iteration#',K,'Chi-squared:',CHISQ,'ALAMDA:',ALAMDA
WRITE(*,'(1X,T5,A,T13,A,T21,A,T29,A,T37,A,T45,A)')&
'A(I)','A(2)','A(3)','A(4)','A(5)','A(6)'
WRITE(*,'(1X,6F8.4)')(A(I),I=1,6)
K=K+1
OCHISQ=CHISQ
CALL MRQMIN(X,Y,SIG,NPT,A,MA,LISTA,MFIT,COVAR,ALPHA,&
   MA,CHISQ,FGAUSS,ALAMDA)!!!!!!!!!!!!!!!
IF(CHISQ>OCHISQ)THEN
ITST=0
ELSE IF(ABS(OCHISQ-CHISQ)<0.1)THEN
ITST=ITST+1
END IF
IF(ITST>=2)EXIT
END DO
ALAMDA=0.0
CALL MRQMIN(X,Y,SIG,NPT,A,MA,LISTA,MFIT,COVAR,ALPHA,&
   MA,CHISQ,FGAUSS,ALAMDA)
WRITE(*,*)'Uncertainties:'
WRITE(*,'(1X,6F8.4/)')(SQRT(COVAR(I,I)),I=1,6)
WRITE(*,'(1X,A)')'Expected results:'
WRITE(*,'(1X,F7.2,5F8.2)')5.0,2.0,3.0,2.0,5.0,3.0
END




作者: 楚香饭    时间: 2015-8-9 19:42
你给出的代码部分在我的编译器上可以编译。(但不能链接,因为缺少函数)

如果有可能,请你提供以下信息:
1.你的操作系统,编译器版本
2.全部源代码(可上传附件)
作者: wbaby91    时间: 2015-8-10 10:15
1、我用的是IVF2011,开发环境是VS2008
附件已传全部子程序,本程序从何光渝数值算法集书上截下来的,非线性最小二乘法的算法程序
PS:电脑上还装了CVF6.1但不兼容,电脑是WIN7,64位
全部代码看附件
作者: wbaby91    时间: 2015-8-10 10:16
这个帖子主要是传附件,麻烦大神抽时间给我看看,谢谢~

nlinfit.rar

734.05 KB, 下载次数: 19


作者: 楚香饭    时间: 2015-8-10 13:40
在 mrqmin 中,把
real funcs
改为
external :: funcs
作者: wbaby91    时间: 2015-8-10 14:27
谢谢楚香帅,这个问题解决了,剩下的我自己捣鼓了




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