请问这个语句怎么理解b=.t.normal
本帖最后由 csu_sea9002 于 2009-3-24 10:45 编辑请问这个语句怎么理解b=.t.normal,b和normal是变量,那么.t.是一个什么运算符号啊。
谢谢了。 fortran没有这样的语法呀,程序是不是写错了,你检查一下语法有没有错误。 可是我的程序里面就是有这个啊,我是拿了师兄以前写的程序中看啊 我不是让你检查一下语法有没有问题吗,你检查了没有?如果语法没有错误,你可以贴出一段程序我帮你看一下。 好的,语法没有问题,能运行。我把结果贴出来看看吧 本帖最后由 csu_sea9002 于 2009-3-24 12:04 编辑
........
write(*,*)"单元总数为:"
read(*,*) n
write(*,*)"旋转中心为:"
read(*,*) RCenter(1),RCenter(2),RCenter(3)
...............................................................
write(*,*)"normal"
write(*,*)normal
b=.t.normal
write(*,*)"b"
write(*,*)b
call gauss(n,a,b,sigma) 我加了几条显示语句,结果:
你的b输出到屏幕上面是什么呀,确定程序没有报错,b的数据类型是什么? normal
0.000000000000000E+000 -0.498283876696261 -0.867013945451494
1.19781379659888 0.000000000000000E+0000.000000000000000E+000
0.000000000000000E+0000.498283876696261 -0.867013945451494
-1.19781379659888 0.000000000000000E+0000.000000000000000E+000
-0.707106781186548 -0.707106781186548 0.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.707106781186548 -0.707106781186548 0.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.707106781186548 0.707106781186548 0.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
-0.707106781186548 0.707106781186548 0.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.000000000000000E+000 -0.498283876696261 0.867013945451494
-1.19781379659888 0.000000000000000E+0000.000000000000000E+000
0.000000000000000E+0000.498283876696261 0.867013945451494
1.19781379659888 0.000000000000000E+0000.000000000000000E+000
b
0.000000000000000E+0000.000000000000000E+000 -0.707106781186548
0.782210020861712 0.694699276941953 -0.757411898678046
-4.526114989744645E-0084.171378828905876E-008 -0.498283876696261
0.475801138608050 -0.718778014744068 -0.633284527016968
0.847415222946692 0.760619412784848 -0.599623670376809
0.552627914429181 -0.867013945451494 -0.906133909724981
0.142130638140688 0.130595691026435 0.116162945483988
0.109563432713221 0.964068997204581 1.03962830806506
1.19781379659888 -1.14376803046667 2.805622504026503E-002
3.079333254783137E-003 -3.093747338853856E-002 -6.502432122143043E-003
-1.18002406914437 1.08753918920127 0.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000
0.000000000000000E+0000.000000000000000E+0000.000000000000000E+000 normal是什么类型的变量,确定是fortran77程序,90和95的程序我没有用过,不懂,呵呵。 T的定义在哪里? 是不是个派生类型啊? 不过在CVF里t.normal和t%normal是等效的 结果就是这个样子,也就是说经过.t.的运算,结果由normal变成了b。 b和normal都是数组,b(3,n),normal(3,n) 我一直用77没有见过,你看一下90和95的语法里面有没有?爱莫能助,不好意思。你的这个程序里面的注释太少了,其他人很难看懂呀。 在77里面数组赋值一般都是用循环来做的,如果这句语句确实对的话,就应该是做这个事情的。 呵呵
前面的没必要贴出来了,其实这个是按照书上的公式来写的,书上的公式是b=-V*n
v是个速度,n是一个面元的法向向量。本来我觉得写成b=cn就可以了,但是不知道这个是什么意思了。 11楼的朋友, t.normal= t%normal是什么意思呢,实现什么功能啊 本帖最后由 wudi198178 于 2009-3-24 11:35 编辑
不好意思哈 我刚才少看了个点.t.应该是重载/定义了个运算符 你查查前面有没有
interfaceoperator (.t.)
module procedure ...
end interface一类的语句 好的,谢谢你。 好像没有找到,唉,咋回事呢。还有没有别的含义啊,高手。
页:
[1]
2