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