Fortran Coder

查看: 8013|回复: 5

[子程序] external问题,实参不能与procedure同名

[复制链接]

12

帖子

4

主题

0

精华

入门

F 币
52 元
贡献
38 点
发表于 2015-8-9 18:38:14 | 显示全部楼层 |阅读模式
大神们,请教一下,如题,下面是代码
[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



710

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
600 元
贡献
307 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

发表于 2015-8-9 19:42:21 | 显示全部楼层
你给出的代码部分在我的编译器上可以编译。(但不能链接,因为缺少函数)

如果有可能,请你提供以下信息:
1.你的操作系统,编译器版本
2.全部源代码(可上传附件)

12

帖子

4

主题

0

精华

入门

F 币
52 元
贡献
38 点
 楼主| 发表于 2015-8-10 10:15:41 | 显示全部楼层
1、我用的是IVF2011,开发环境是VS2008
附件已传全部子程序,本程序从何光渝数值算法集书上截下来的,非线性最小二乘法的算法程序
PS:电脑上还装了CVF6.1但不兼容,电脑是WIN7,64位
全部代码看附件

12

帖子

4

主题

0

精华

入门

F 币
52 元
贡献
38 点
 楼主| 发表于 2015-8-10 10:16:20 | 显示全部楼层
这个帖子主要是传附件,麻烦大神抽时间给我看看,谢谢~

nlinfit.rar

734.05 KB, 下载次数: 19

710

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
600 元
贡献
307 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

发表于 2015-8-10 13:40:50 | 显示全部楼层
在 mrqmin 中,把
real funcs
改为
external :: funcs

12

帖子

4

主题

0

精华

入门

F 币
52 元
贡献
38 点
 楼主| 发表于 2015-8-10 14:27:35 | 显示全部楼层
谢谢楚香帅,这个问题解决了,剩下的我自己捣鼓了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-16 10:09

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表