24小时热门版块排行榜    

查看: 1180  |  回复: 3

田山东

捐助贵宾 (著名写手)

[求助] 操蛋!形参实参调用怎么就是不正确呢?感觉是对的,怎么做都错!!!!

各位大侠,大家好!
我有个程序,里面有两个子程序,一个子程序用来产生矩阵H00,H10,另一个矩阵用来调用它们,为什么调用的时候会出错呢?
             PROGRAM MAIN  
        IMPLICIT REAL*8(A-H,O-Z)
      character fname*15
        PARAMETER (N=34,t=2.8)       
        COMPLEX*16 H00(N,N),H10(N,N),H01(N,N),H12(N,N),H21(N,N)
        OPEN(UNIT=1,STATUS='unknown',FILE='biaomian1.DAT')
        CALL GMATRIX(T,N,H00,H10,H12)  
      H00=H00
      H10=H10
      H12=H12       
     DO IA=1,N
      DO IB=1,N
      WRITE(1,*) IA,IB,REAL(H10(IA,IB))
      ENDDO
      ENDDO
        CALL CESHI(N,H00,H10)
        END       
        subroutine GMATRIX(T,N,H00,H10,H12)
        implicit real*8(a-h,o-z)
        complex*16 i,H00(N,N),H10(N,N),H12(N,N)
        H00=0.0D0
        H10=0.0D0     
      H12=0.0D0
      do J=1,N-1
        H00(J,J+1)=-t
        H00(J+1,J)=-t       
        enddo  
      do j=1,N
        if(mod(j,2)==1) then
        H10(j,j)=-t
      endif
      enddo     
      do j=1,N
      if(mod(j,2)==0) then
      H12(j,j)=-t
      endif
      enddo
        RETURN
        end       
      subroutine  CESHI(M,H00,H10)
      implicit real*8(a-h,o-z)
        complex*16 H00(m,m),H10(M,M)       
      OPEN(UNIT=2,STATUS='unknown',FILE='JJJ1.DAT')      
      DO IA=1,M
      DO IB=1,M
      WRITE(2,*) IA,IB,REAL(H10(IA,IA))
      ENDDO
      ENDDO     
      return
      END
      好郁闷啊!!就几行字,就是检查不出来哪里的问题!!
草了!!
      谁能帮我看下啊?我是没招了!!
操蛋,搞了一晚上也没看到到底哪里的问题!!!

[ 来自科研家族 骷髅党 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

everythinghasitsseason.enjoyyourlife.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
田山东: 金币+2, ★★★很有帮助 2012-06-11 09:03:07
田山东: 金币+1, 能否帮忙看下?谢谢啊 2012-06-11 09:03:21
出错了,总得写个出错信息吧?
要让别人帮你查错,总得给个输入文件吧?

你的主程序中的
      H00=H00
      H10=H10
      H12=H12
没有必要啊
2楼2012-06-10 22:03:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-06-10 22:03:28
出错了,总得写个出错信息吧?
要让别人帮你查错,总得给个输入文件吧?

你的主程序中的
      H00=H00
      H10=H10
      H12=H12
没有必要啊

谢谢关注!
是这样的:子程序GMATRIX(T,N,H00,H10,H12)
定义了几个数组,然后把数组H000,H10调入到子程序CESHI(M,H00,H10),文件1 'biaomian1.DAT' 从外部写H10,文件2,从子程序里把H10写入到文件里,本来应该得到两个相同的数组,但是现在数组不同了。
一直没看出来错在哪里
期待您的帮忙。谢谢啊
everythinghasitsseason.enjoyyourlife.
3楼2012-06-11 09:02:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-06-10 22:03:28
出错了,总得写个出错信息吧?
要让别人帮你查错,总得给个输入文件吧?

你的主程序中的
      H00=H00
      H10=H10
      H12=H12
没有必要啊

找到问题了
    DO IA=1,M
      DO IB=1,M
      WRITE(2,*) IA,IB,REAL(H10(IA,IA))
      ENDDO
      ENDDO

写错了  REAL(H10(IA,IB))
everythinghasitsseason.enjoyyourlife.
4楼2012-06-11 09:33:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 田山东 的主题更新
信息提示
请填处理意见