csu_sea9002 发表于 2009-3-24 10:35:27

请问这个语句怎么理解b=.t.normal

本帖最后由 csu_sea9002 于 2009-3-24 10:45 编辑

请问这个语句怎么理解b=.t.normal,b和normal是变量,那么.t.是一个什么运算符号啊。
谢谢了。

zhoulon 发表于 2009-3-24 10:55:39

fortran没有这样的语法呀,程序是不是写错了,你检查一下语法有没有错误。

csu_sea9002 发表于 2009-3-24 10:56:48

可是我的程序里面就是有这个啊,我是拿了师兄以前写的程序中看啊

zhoulon 发表于 2009-3-24 11:02:59

我不是让你检查一下语法有没有问题吗,你检查了没有?如果语法没有错误,你可以贴出一段程序我帮你看一下。

csu_sea9002 发表于 2009-3-24 11:07:43

好的,语法没有问题,能运行。我把结果贴出来看看吧

csu_sea9002 发表于 2009-3-24 11:10:31

本帖最后由 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)

csu_sea9002 发表于 2009-3-24 11:12:46

我加了几条显示语句,结果:

zhoulon 发表于 2009-3-24 11:15:33

你的b输出到屏幕上面是什么呀,确定程序没有报错,b的数据类型是什么?

csu_sea9002 发表于 2009-3-24 11:15:54

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

zhoulon 发表于 2009-3-24 11:16:55

normal是什么类型的变量,确定是fortran77程序,90和95的程序我没有用过,不懂,呵呵。

wudi198178 发表于 2009-3-24 11:17:20

T的定义在哪里? 是不是个派生类型啊?   不过在CVF里t.normal和t%normal是等效的

csu_sea9002 发表于 2009-3-24 11:18:13

结果就是这个样子,也就是说经过.t.的运算,结果由normal变成了b。

csu_sea9002 发表于 2009-3-24 11:18:51

b和normal都是数组,b(3,n),normal(3,n)

zhoulon 发表于 2009-3-24 11:22:32

我一直用77没有见过,你看一下90和95的语法里面有没有?爱莫能助,不好意思。你的这个程序里面的注释太少了,其他人很难看懂呀。

zhoulon 发表于 2009-3-24 11:23:52

在77里面数组赋值一般都是用循环来做的,如果这句语句确实对的话,就应该是做这个事情的。

csu_sea9002 发表于 2009-3-24 11:25:02

呵呵
前面的没必要贴出来了,其实这个是按照书上的公式来写的,书上的公式是b=-V*n
v是个速度,n是一个面元的法向向量。本来我觉得写成b=cn就可以了,但是不知道这个是什么意思了。

csu_sea9002 发表于 2009-3-24 11:26:22

11楼的朋友, t.normal= t%normal是什么意思呢,实现什么功能啊

wudi198178 发表于 2009-3-24 11:33:51

本帖最后由 wudi198178 于 2009-3-24 11:35 编辑

不好意思哈 我刚才少看了个点.t.应该是重载/定义了个运算符   你查查前面有没有
interfaceoperator (.t.)
   module procedure ...
end interface一类的语句

csu_sea9002 发表于 2009-3-24 11:59:12

好的,谢谢你。

csu_sea9002 发表于 2009-3-24 12:06:28

好像没有找到,唉,咋回事呢。还有没有别的含义啊,高手。
页: [1] 2
查看完整版本: 请问这个语句怎么理解b=.t.normal