Fortran Coder

查看: 10293|回复: 8
打印 上一主题 下一主题

[子程序] 子程序中数组定义问题

[复制链接]

12

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
30 点
跳转到指定楼层
楼主
发表于 2014-5-13 11:20:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
错误可能在最后的子程序那块、、

new.f90

30.3 KB, 下载次数: 3

错误可能在最后的子程序那块、、

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

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

沙发
发表于 2014-5-13 11:29:32 | 只看该作者
syscr_fn 里,对 tm_mt 未定义。这应该是数组吧?数组不能不定义

12

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
30 点
板凳
 楼主| 发表于 2014-5-13 14:25:28 | 只看该作者
定义过了,在这一小短子函数前几行、

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

地板
发表于 2014-5-13 14:34:15 | 只看该作者
其他函数中定义的数组,在 syscr_fn 里不能直接使用。请注意,每个变量(数组)都有自己的作用范围。这一点非常重要!

如果你确定你确实定义了,请告诉我在第几行?

12

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
30 点
5#
 楼主| 发表于 2014-5-13 14:51:49 | 只看该作者
红色的地方
subroutine sysparameter(n)
      use IMSL
          use sys_p
          use mat_p
          use inmatx

      implicit real(8) (a-h,o-z)
          integer n
      dimension tm_mt(n/2,n/2)

      pi=3.1415926d0
            yge=2.058d11                               !弹性模量
          pp=7.810d3                                 !材料密度
      cc=0.20d-3                                 !轴承间隙  0.3    0.25
      ee1=0.06d-3                                !圆盘偏心量    0.09    0.05
          ee2=0.08d-3
      rou1=ee1/cc                                !无量纲偏心率
      rou2=ee2/cc

!!!!  轴承参数
!      brmt=0.25                                  !轴承长径比
      brad=50.0d-3                               !轴承半径
      bl=15.0d-3                           !轴颈长度
      byt=18.16d-3                                !润滑油黏度系数
      sfdrr=78.3d-3                           !油膜半径

      f1=(byt*sfdrr*bl**3)/(cc**2)
!          f1=(byt*brad*bl*((brad/cc)**2)*((bl/(2*brad))**2))    !/bm1    !sommerfeld数/omega

!write(*,*) somm
!!!!  转子参数      
          rleg=1.5d0                     !转子长度
          ra=0.7                              !(1.0/3.0)
          rb=0.5
          rc=rleg-ra-rb
          sa=pi*brad**2

             ris=pi*brad**4.0/2.0                         !转轴的截面惯性矩

!!!!  圆盘参数
          drad1=brad+100.0d-3                               !圆盘1半径  50.0d-3
          dleg1=40.0d-3                               !圆盘1宽度  25.0d-3

          drad2=brad+100.0d-3                               !圆盘2半径  50.0d-3
          dleg2=40.0d-3                               !圆盘2宽度  25.0d-3

!!!!  叶片参数  
      bn1=8.0                                      !叶片数量   第一个圆盘上的
            bll1=500.0d-3                                !叶片长度
      bs1=60.0d-4        !(30.0d-3)*(30.0d-3)                      !叶片截面积
          bha1=20.0d-3                                 !叶片轴向宽度
      zrad1=1.5d-3                                 !拉筋截面半径

          bn2=8.0                                      !叶片数量   第二个圆盘上的
            bll2=500.0d-3                                !叶片长度
      bs2=60.0d-4           !(30.0d-3)*(30.0d-3)                      !叶片截面积
          bha2=20.0d-3                                 !叶片轴向宽度
      zrad2=1.5d-3                                 !拉筋截面半径

      call para_disk_blade_fn(n,drad1,dleg1,bn1,bll1,bs1,bha1,zrad1,   &           !输入变量
                  diskm1,btka1,btkp1,btca1,btcp1,bbeta1,delta1,gtp1,gm1)           !输出变量

      call para_disk_blade_fn(n,drad2,dleg2,bn2,bll2,bs2,bha2,zrad2,   &           !输入变量
                  diskm2,btka2,btkp2,btca2,btcp2,bbeta2,delta2,gtp2,gm2)           !输出变量

      call  invm_fn(n,sa,ra,rb,rc,ris,diskm1,diskm2,gtp1,gtp2,gm1,gm2,tm_mt)     !质量矩阵
                  

          call sysk_fn(n,ris,ra,rb,rc,btka1,btka2,btkp1,btkp2,btca1,btca2,btcp1,btcp2,tkk)   !刚度矩阵  
                  

      call sysc_fn(n,ris,ra,rb,rc,gtp1,gtp2,btca1,btca2,btcp1,btcp2,gm1,gm2,tcc)   !阻尼矩阵

      call syscr_fn(n,rleg,brad,ris,tm_mt)

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

6#
发表于 2014-5-13 14:58:12 | 只看该作者
其他函数中定义的数组,在 syscr_fn 里不能直接使用。请注意,每个变量(数组)都有自己的作用范围。这一点非常重要!

12

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
30 点
7#
 楼主| 发表于 2014-5-13 15:00:36 | 只看该作者
那这里应该怎么弄?、、这前面的程序应该是对的,是找人调试好的,我修改的是最后的那块的,换了个求积方法,,前面应该没有问题啊····

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

8#
发表于 2014-5-13 15:02:17 | 只看该作者
我已经告诉你了,tm_mt 没有定义为数组。

至于如何解决,那看你的想法。我不是你,我不懂你想要做什么。是不是应该定义一下 tm_mt ?

12

帖子

3

主题

0

精华

入门

F 币
54 元
贡献
30 点
9#
 楼主| 发表于 2014-5-13 15:07:22 | 只看该作者
我试试、、、谢谢你~~~
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-23 22:10

Powered by Tencent X3.4

© 2013-2024 Tencent

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