Fortran Coder

查看: 5723|回复: 1
打印 上一主题 下一主题

[线性代数] Fortran求解线性方程组,怎么样调用子程序

[复制链接]

8

帖子

4

主题

0

精华

入门

F 币
39 元
贡献
25 点
跳转到指定楼层
楼主
发表于 2014-6-11 23:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神,请问我有求解线性方程组的计算MAXA数组的子程序,也有数组,我读入了数组a(7,7),想计算MAXA数组,下面的程序调用这个FMAXA的时候报错了,
(1)warning FOR4227: argument LMT (number 3) in reference to procedure FMAXA from procedure MAIN22 incorrect: is not an array(2) warning FOR4227: argument MAXA (number 4) in reference to procedure FMAXA from procedure MAIN22 incorrect: is not an array
请问大家,应该怎么调试?
[Fortran] 纯文本查看 复制代码
program main22
 dimension a(7,7)
 open (1,file='E:\1.txt')
 do 10 i=1,7
 read(1,*)(a(i,j),j=1,7)
 10 continue
 write(*,*)((a(i,j),j=1,7),i=1,7)


 call FMAXA(NN1, NE, LMT, MAXA, NWK, NPF, NDF)
 END

 SUBROUTINE FMAXA(NN1, NE, LMT, MAXA, NWK, NPF, NDF)
 !This program forms the MDE address matrix MAXA of [K]
 IMPLICIT REAL*8(A-H,O-Z)
 IMPLICIT INTEGER*4(I-N)
 DIMENSION MAXA(NPF), LMT(NDF,NE)
 MAXA=0; NWK=0
 MAXA(1)=1
 DO I=2, NN1
 IP=I-1
 IG=IP
 DO IE=1, NE
 DO J=1, NDF
 IF(LMT(J,IE).EQ.IP)THEN
 DO K=1, NDF
 IF(LMT(K,IE).GT.0.AND.LMT(K,IE).LE.IG) IG=LMT(K,IE)
 ENDDO
 END IF
 ENDDO
 ENDDO
 MAXA(I)=MAXA(I-1)+IP-IG+1
 ENDDO
 NWK=MAXA(NN1)-1
 RETURN
 write(*,*)MAXA(I)
 END


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

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

沙发
发表于 2014-6-11 23:31:05 | 只看该作者
本帖最后由 chuxf 于 2014-6-11 23:32 编辑

好好看看书吧。你这错误太低级了。

你完全没有搞懂什么是变量名,什么是数组,什么是实参虚参。

你读入了一个数组,叫 a,但是传递的实参全部没有定义,也没有与 a 有任何关系。

其他的虚参,你也没有传入与其意义对应的实参。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-27 07:28

Powered by Tencent X3.4

© 2013-2024 Tencent

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