找回密码
 注册
Simdroid-非首页
查看: 150|回复: 13

[3. Fortran] 原来读入的变量值怎么自动改变了啊????

[复制链接]
发表于 2011-4-15 14:03:43 | 显示全部楼层 |阅读模式 来自 黑龙江哈尔滨
悬赏3仿真币已解决
本帖最后由 pingnuaa 于 2011-4-18 08:57 编辑

在第一个do 循环后面和第二个do循环后面设置断点,运行完第一个do前面读入的变量值都是对的,
为什么运行完第二个do之后,前面所有变量值都自动变了呢?太奇怪了,求助高手啊,非常感谢!
源程序截取的一部分如下,输入文件见附件,要读入的数据有点多,麻烦高手了,谢谢

PROGRAM FEM2D
      DIMENSION IJK_ELE(500,3),X(500),Y(500),IJK_U(100,14),
     &          AK(2000,2000),
     &THTA(10),ZKD(10),AL(10),CK(10),TX(10),TY(10),TZ(10)
OPEN(4,FILE='BASIC1.IN')
OPEN(5,FILE='NODE_ANSYS1.IN')
OPEN(6,FILE='ELEMENT_ANSYS1.IN')
READ(4,*) N_ELE,N_NODE,N_BC,N_LAYER,N_GAS,N_GAS2
CALL READ_IN(N_ELE,N_NODE,N_BC,N_BAND,E1,E2,G12,V12,G23,
     &            G31,IJI_ELE,X,Y,IJK_U,N_LAYER,THTA,ZKD,HD,XL,
     &            N_GAS,N_GAS2,AL,CK,TX,TY,TZ)
      CLOSE(4)
CLOSE(5)
CLOSE(6)
  END
c   
c to get the original data in order to model the problem
SUBROUTINE READ_IN(N_ELE,N_NODE,N_BC,N_BAND,E1,E2,G12,V12,G23,
     &           G31,IJK_ELE,X,Y,IJK_U,N_LAYER,THTA,ZKD,HD,XL,
     &           N_GAS,N_GAS2,AL,CK,TX,TY,TZ)
      DIMENSION IJK_ELE(N_ELE,3),X(N_NODE),Y(N_NODE),IJK_U(N_BC,14),
     & NE_ANSYS(N_ELE,14),THTA(N_LAYER),ZKD(N_LAYER+1),
     &    AL(N_GAS2),CK(N_GAS),TX(N_GAS),TY(N_GAS),TZ(N_GAS2)  
REAL ND_ANSYS(N_NODE,3)
READ(4,*)E1,E2,G12,G23,V12,G31,HD,XL
READ(4,*)(THTA(I),I=1,N_LAYER)
READ(4,*)(ZKD(I),I=1,N_LAYER+1)
      READ(4,*)((IJK_U(I,J),J=1,14),I=1,N_BC)
READ(4,*)(AL(I),I=1,N_GAS2)
READ(4,*)(CK(J),J=1,N_GAS)
READ(4,*)(TX(K),K=1,N_GAS)
READ(4,*)(TY(K),K=1,N_GAS)
READ(4,*)(TZ(K),K=1,N_GAS2)
READ(5,*)((ND_ANSYS(I,J),J=1,3),I=1,N_NODE)
READ(6,*)((NE_ANSYS(I,J),J=1,14),I=1,N_ELE)
DO L=1,N_NODE
X(L)=ND_ANSYS(L,2)
Y(L)=ND_ANSYS(L,3)
      ENDDO
      DO MM=1,N_ELE
  DO NN=1,3
       IJK_ELE(MM,NN)=NE_ANSYS(MM,NN)
       ENDDO
ENDDO  
c   执行完上面这句前面所有读入的值就都变了,怎么回事??????????                                                                     
  N_BAND=0
DO  IE=1,N_ELE
   DO  I=1,3
    DO  J=1,3
       IW=IABS(IJK_ELE(IE,I)-IJK_ELE(IE,J))
       IF(N_BAND.LT.IW)N_BAND=IW
         ENDDO
   ENDDO
ENDDO
      N_BAND=(N_BAND+1)*13
  RETURN
  END
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

你程序似乎有点问题,在call那个里面,第十行第二个参数IJI_ELE,这个应该是IJk_ELE吧,你仔细查一下。
发表于 2011-4-15 14:03:44 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
本帖最后由 铁道科学 于 2011-4-18 12:50 编辑
  1.     PROGRAM FEM2D
  2.     DIMENSION IJK_ELE(500,3),X(500),Y(500),IJK_U(100,14),
  3.   & AK(2000,2000),
  4.   & THTA(10),ZKD(10),AL(10),CK(10),TX(10),TY(10),TZ(10)
  5.     OPEN(4,FILE='BASIC1.IN')
  6.     OPEN(5,FILE='NODE_ANSYS1.IN')
  7.     OPEN(6,FILE='ELEMENT_ANSYS1.IN')
  8.     READ(4,*) N_ELE,N_NODE,N_BC,N_LAYER,N_GAS,N_GAS2
  9.     CALL READ_IN(N_ELE,N_NODE,N_BC,N_BAND,E1,E2,G12,V12,G23,
  10.   & G31,IJI_ELE,X,Y,IJK_U,N_LAYER,THTA,ZKD,HD,XL,
  11.   & N_GAS,N_GAS2,AL,CK,TX,TY,TZ)
复制代码
你程序似乎有点问题,在call那个里面,第十行第二个参数IJI_ELE,这个应该是IJk_ELE吧,你仔细查一下。
回复

使用道具 举报

 楼主| 发表于 2011-4-15 14:29:53 | 显示全部楼层 来自 黑龙江哈尔滨
怎么没人解答啊,大侠们快快现身啊,拜托了
回复

使用道具 举报

发表于 2011-4-15 14:50:07 | 显示全部楼层 来自 江苏南京

  1. DO MM=1,N_ELE
  2. DO NN=1,3
  3.    IJK_ELE(MM,NN)=NE_ANSYS(MM,NN)
  4. ENDDO
  5. ENDDO
复制代码

你的意思是执行完这一句后,本来这句没有赋值的变量的值也发生了变化?
回复

使用道具 举报

 楼主| 发表于 2011-4-16 09:56:53 | 显示全部楼层 来自 黑龙江哈尔滨
3# 铁道科学



就是执行完这句,之前赋的所有变量值都变得乱七八糟,执行以下就会发现了,附件里有输入文件。就这么看着没什么问题吧?
回复

使用道具 举报

 楼主| 发表于 2011-4-17 09:20:10 | 显示全部楼层 来自 黑龙江哈尔滨
3# 铁道科学
麻烦帮忙看看怎么回事好吗,纠结啊
回复

使用道具 举报

 楼主| 发表于 2011-4-18 08:57:47 | 显示全部楼层 来自 黑龙江哈尔滨
有没有人帮帮忙啊!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

 楼主| 发表于 2011-4-18 09:04:13 | 显示全部楼层 来自 黑龙江哈尔滨
实在是找不出问题,很诡异,大侠快现身啊
回复

使用道具 举报

发表于 2011-4-18 12:39:25 | 显示全部楼层 来自 江苏南京
稍等片刻,我先运行一下完后给你消息
回复

使用道具 举报

 楼主| 发表于 2011-4-18 15:31:11 | 显示全部楼层 来自 黑龙江哈尔滨
9# 铁道科学
真的是啊,太马虎了,看了好久都找不到问题,整个程序很大的,这只是一部分,这么粗心真愁人……。非常非常感谢!!!!!!
回复

使用道具 举报

发表于 2011-4-18 17:45:37 | 显示全部楼层 来自 江苏南京
10# pingnuaa
建议你在编程序的时候加入implicit none,这样可以避免此类问题的。
回复

使用道具 举报

 楼主| 发表于 2011-4-18 20:10:29 | 显示全部楼层 来自 黑龙江哈尔滨
11# 铁道科学
非常感谢!
回复

使用道具 举报

 楼主| 发表于 2011-4-27 15:55:06 | 显示全部楼层 来自 黑龙江哈尔滨
2# 铁道科学
大侠再麻烦问一下,如果在主程序里CALL  READ_IN的后面再随便加一句其他的语句比如输出IJK_ELE,为什么IJK_ELE数组里的值还是会变呢?谢谢啊!
回复

使用道具 举报

发表于 2011-4-27 19:24:41 | 显示全部楼层 来自 江苏南京
建议在程序开头加上implicint none,我怀疑你程序还有一些其他错误。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 11:31 , Processed in 0.051017 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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