Fortran Coder
标题:
子程序中数组定义问题
[打印本页]
作者:
liruipei
时间:
2014-5-13 11:20
标题:
子程序中数组定义问题
错误可能在最后的子程序那块、、
new.f90
2014-5-13 11:20 上传
点击文件名下载附件
30.3 KB, 下载次数: 3
错误可能在最后的子程序那块、、
作者:
楚香饭
时间:
2014-5-13 11:29
syscr_fn 里,对 tm_mt 未定义。这应该是数组吧?数组不能不定义
作者:
liruipei
时间:
2014-5-13 14:25
定义过了,在这一小短子函数前几行、
作者:
楚香饭
时间:
2014-5-13 14:34
其他函数中定义的数组,在 syscr_fn 里不能直接使用。请注意,每个变量(数组)都有自己的作用范围。这一点非常重要!
如果你确定你确实定义了,请告诉我在第几行?
作者:
liruipei
时间:
2014-5-13 14:51
红色的地方
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)
作者:
楚香饭
时间:
2014-5-13 14:58
其他函数中定义的数组,在 syscr_fn 里不能直接使用。请注意,每个变量(数组)都有自己的作用范围。这一点非常重要!
作者:
liruipei
时间:
2014-5-13 15:00
那这里应该怎么弄?、、这前面的程序应该是对的,是找人调试好的,我修改的是最后的那块的,换了个求积方法,,前面应该没有问题啊····
作者:
楚香饭
时间:
2014-5-13 15:02
我已经告诉你了,tm_mt 没有定义为数组。
至于如何解决,那看你的想法。我不是你,我不懂你想要做什么。是不是应该定义一下 tm_mt ?
作者:
liruipei
时间:
2014-5-13 15:07
我试试、、、谢谢你~~~
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2