34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "mvsiz_p.inc"
42
43
44
45#include "vect01_c.inc"
46
47
48
49 INTEGER IXQ(NIXQ,*), NGL(*), MXT(*), PID(*)
50 INTEGER IX1(*), IX2(*), IX3(*), IX4(*)
51
53 . x(3,*),e1y(*),e1z(*),e2y(*),e2z(*)
55 . y1(*), y2(*), y3(*), y4(*),
56 . z1(*), z2(*), z3(*), z4(*)
57
58
59
60 INTEGER I
61
63 . sy(mvsiz) ,sz(mvsiz) ,
64 . ty(mvsiz) ,tz(mvsiz), suma,cs,ct
65
66
67
68 DO i=lft,llt
69 mxt(i)=ixq(1,i)
70 ix1(i)=ixq(2,i)
71 ix2(i)=ixq(3,i)
72 ix3(i)=ixq(4,i)
73 ix4(i)=ixq(5,i)
74 pid(i)=ixq(6,i)
75 ngl(i)=ixq(nixq,i)
76 END DO
77
78
79
80
81 DO i=lft,llt
82 y1(i)=x(2,ix1(i))
83 z1(i)=x(3,ix1(i))
84 y2(i)=x(2,ix2(i))
85 z2(i)=x(3,ix2(i))
86 y3(i)=x(2,ix3(i))
87 z3(i)=x(3,ix3(i))
88 y4(i)=x(2,ix4(i))
89 z4(i)=x(3,ix4(i))
90 END DO
91
92
93
94 DO i=lft,llt
95 sy(i)=half*(y2(i)+y3(i)-y1(i)-y4(i))
96 sz(i)=half*(z2(i)+z3(i)-z1(i)-z4(i))
97 ty(i)=half*(y3(i)+y4(i)-y1(i)-y2(i))
98 tz(i)=half*(z3(i)+z4(i)-z1(i)-z2(i))
99 END DO
100
101
102
103
104 DO i=lft,llt
105 ct = ty(i)*ty(i)+tz(i)*tz(i)
106 cs = sy(i)*sy(i)+sz(i)*sz(i)
107 IF(cs /= zero) THEN
108 suma = sqrt(ct/
max(em20,cs))
109 e1y(i) = sy(i)*suma + tz(i)
110 e1z(i) = sz(i)*suma - ty(i)
111 ELSEIF(ct /= zero)THEN
112 suma = sqrt(cs/
max(em20,ct))
113 e1y(i) = sy(i) + tz(i)*suma
114 e1z(i) = sz(i) - ty(i)*suma
115 END IF
116 suma=sqrt(e1y(i)**2+e1z(i)**2)
117 suma=one/
max(suma,em20)
118 e1y(i)=e1y(i)*suma
119 e1z(i)=e1z(i)*suma
120 e2y(i)=-e1z(i)
121 e2z(i)= e1y(i)
122 ENDDO
123
124 RETURN