31 use element_mod , only : nixq
32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "mvsiz_p.inc"
40
41
42
44 . x(3,*),vect(3,*),gama(6,*)
45 INTEGER IXQ(NIXQ,*), KCVT, NEL
46
47
48
50 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
51 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
52 . r22(mvsiz),r23(mvsiz),r32(mvsiz),r33(mvsiz),
53 . sy(mvsiz),sz(mvsiz),ty(mvsiz),tz(mvsiz),
54 . ct,cs,suma,s1,s2,s3
55 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ)
56 INTEGER I
57
58 IF (kcvt == 0) THEN
59 DO i=1,nel
60 nc1(i)=ixq(2,i)
61 nc2(i)=ixq(3,i)
62 nc3(i)=ixq(4,i)
63 nc4(i)=ixq(5,i)
64
65
66
67 y1(i)=x(2,nc1(i))
68 z1(i)=x(3,nc1(i))
69 y2(i)=x(2,nc2(i))
70 z2(i)=x(3,nc2(i))
71 y3(i)=x(2,nc3(i))
72 z3(i)=x(3,nc3(i))
73 y4(i)=x(2,nc4(i))
74 z4(i)=x(3,nc4(i))
75
76
77
78 sy(i)=half*(y2(i)+y3(i)-y1(i)-y4(i))
79 sz(i)=half*(z2(i)+z3(i)-z1(i)-z4(i))
80 ty(i)=half*(y3(i)+y4(i)-y1(i)-y2(i))
81 tz(i)=half*(z3(i)+z4(i)-z1(i)-z2(i))
82 ENDDO
83
84
85
86 DO i=1,nel
87 ct = ty(i)*ty(i)+tz(i)*tz(i)
88 cs = sy(i)*sy(i)+sz(i)*sz(i)
89 IF(cs /= zero) THEN
90 suma = sqrt(ct/
max(em20,cs))
91 sy(i) = sy(i)*suma + tz(i)
92 sz(i) = sz(i)*suma - ty(i)
93 ELSEIF(ct /= zero)THEN
94 suma = sqrt(cs/
max(em20,ct))
95 sy(i) = sy(i) + tz(i)*suma
96 sz(i) = sz(i) - ty(i)*suma
97 END IF
98 suma=one/
max(sqrt(sy(i)**2+sz(i)**2),em20)
99 sy(i)=sy(i)*suma
100 sz(i)=sz(i)*suma
101
102
103
104 r22(i)= sy(i)
105 r32(i)=-sz(i)
106 r23(i)= sz(i)
107 r33(i)= sy(i)
108 ENDDO
109 END IF
110
111 DO i=1,nel
112
113
114
115 s1=vect(1,i)
116 s2=vect(2,i)
117 s3=vect(3,i)
118 vect(1,i)=s2*r22(i)+s3*r23(i)
119 vect(2,i)=s2*r32(i)+s3*r33(i)
120 vect(3,i)=zero
121 ENDDO
122
123 RETURN