35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "mvsiz_p.inc"
43
44
45
46#include "com01_c.inc"
47#include "param_c.inc"
48
49
50
51 INTEGER, INTENT(IN) :: NEL
52 INTEGER, INTENT(IN) :: JCVT
53 INTEGER, INTENT(IN) :: JSPH
54
55 my_real pm(npropm,*), a(mvsiz,6)
57 . rx(*), ry(*), rz(*), sx(*), sy(*), sz(*),
58 . ax(*), ay(*), az(*), bx(*), by(*), bz(*), cx(*), cy(*),cz(*)
59
60
61
62 INTEGER I
63
65 . tx(mvsiz), ty(mvsiz),tz(mvsiz), rr
66
67
68 IF (jsph==1) THEN
69 DO i=1,nel
70 ax(i)=a(i,1)
71 ay(i)=a(i,2)
72 az(i)=a(i,3)
73 bx(i)=a(i,4)
74 by(i)=a(i,5)
75 bz(i)=a(i,6)
76 cx(i)=ay(i)*bz(i)-az(i)*by(i)
77 cy(i)=az(i)*bx(i)-ax(i)*bz(i)
78 cz(i)=ax(i)*by(i)-ay(i)*bx(i)
79 END DO
80
81 ELSEIF(jcvt==0)THEN
82 IF (n2d==0) THEN
83 DO i=1,nel
84 rr=one/sqrt(rx(i)**2+ry(i)**2+rz(i)**2)
85 rx(i)=rx(i)*rr
86 ry(i)=ry(i)*rr
87 rz(i)=rz(i)*rr
88
89 tx(i)=ry(i)*sz(i)-rz(i)*sy(i)
90 ty(i)=rz(i)*sx(i)-rx(i)*sz(i)
91 tz(i)=rx(i)*sy(i)-ry(i)*sx(i)
92 rr=one/sqrt(tx(i)**2+ty(i)**2+tz(i)**2)
93 tx(i)=tx(i)*rr
94 ty(i)=ty(i)*rr
95 tz(i)=tz(i)*rr
96
97 sx(i)=ty(i)*rz(i)-tz(i)*ry(i)
98 sy(i)=tz(i)*rx(i)-tx(i)*rz(i)
99 sz(i)=tx(i)*ry(i)-ty(i)*rx(i)
100 rr=1./sqrt(sx(i)**2+sy(i)**2+sz(i)**2)
101 sx(i)=sx(i)*rr
102 sy(i)=sy(i)*rr
103 sz(i)=sz(i)*rr
104 ENDDO
105 ELSE
106 DO i=1,nel
107 rr=one/sqrt(sy(i)**2+sz(i)**2)
108 sy(i)=sy(i)*rr
109 sz(i)=sz(i)*rr
110
111 ty(i)=-rx(i)*sz(i)
112 tz(i)=rx(i)*sy(i)
113 rr=one/sqrt(ty(i)**2+tz(i)**2)
114 ty(i)=ty(i)*rr
115 tz(i)=tz(i)*rr
116 ENDDO
117 ENDIF
118
119 DO 200 i=1,nel
120 ax(i)= a(i,1)*rx(i)+a(i,2)*sx(i)+a(i,3)*tx(i)
121 ay(i)= a(i,1)*ry(i)+a(i,2)*sy(i)+a(i,3)*ty(i)
122 az(i)= a(i,1)*rz(i)+a(i,2)*sz(i)+a(i,3)*tz(i)
123
124 bx(i)= a(i,4)*rx(i)+a(i,5)*sx(i)+a(i,6)*tx(i)
125 by(i)= a(i,4)*ry(i)+a(i,5)*sy(i)+a(i,6)*ty(i)
126 bz(i)= a(i,4)*rz(i)+a(i,5)*sz(i)+a(i,6)*tz(i)
127
128
129
130
131
132
133 cx(i)=ay(i)*bz(i)-az(i)*by(i)
134 cy(i)=az(i)*bx(i)-ax(i)*bz(i)
135 cz(i)=ax(i)*by(i)-ay(i)*bx(i)
136 200 CONTINUE
137
138
139 ELSE
140 DO 500 i=1,nel
141 ax(i)=one
142 bx(i)=zero
143 cx(i)=zero
144 ay(i)=zero
145 by(i)=one
146 cy(i)=zero
147 az(i)=zero
148 bz(i)=zero
149 cz(i)=one
150 500 CONTINUE
151 ENDIF
152
153 RETURN