39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "mvsiz_p.inc"
47
48
49
50 INTEGER, INTENT(IN) :: IREP
51 INTEGER JFT, JLT,,NEL
52
54 . rx(*) ,ry(*) ,rz(*) ,sx(*) ,sy(*) ,sz(*) ,tx(*) ,ty(*) ,tz(*),
55 . e1x(*),e1y(*),e1z(*),e2x(*),e2y(*),e2z(*),e3x(*),e3y(*),e3z(*),
56 . g1x(*),g1y(*),g1z(*),
57 . g2x(*),g2y(*),g2z(*),g3x(*),g3y(*),g3z(*),gama(nel,6)
58
59
60
61
62
63
64 INTEGER I
65
67 . v1,v2,v3,vr,vs,aa,bb,suma,cpn(mvsiz),spn(mvsiz)
68
69 IF(irep == 0) THEN
70 cpn(jft:jlt) = gama(jft:jlt,1)
71 spn(jft:jlt) = gama(jft:jlt,2)
72 ELSE
73 SELECT CASE (icstr)
74 CASE (1)
75 DO i=jft,jlt
76 aa = gama(i,1)
77 bb = gama(i,2)
78 v1 = aa*rx(i) + bb*sx(i)
79 v2 = aa*ry(i) + bb*sy(i)
80 v3 = aa*rz(i) + bb*sz(i)
81 vr=v1*e2x(i)+v2*e2y(i)+v3*e2z(i)
82 vs=v1*e3x(i)+v2*e3y(i)+v3*e3z(i)
83 suma=sqrt(vr*vr + vs*vs)
84 suma=one/
max(em20,suma)
85 cpn(i) = vr*suma
86 spn(i) = vs*suma
87 ENDDO
88 CASE (100)
89 DO i=jft,jlt
90 aa = gama(i,1)
91 bb = gama(i,2)
92 v1 = aa*sx(i) + bb*tx(i)
93 v2 = aa*sy(i) + bb*ty(i)
94 v3 = aa*sz(i) + bb*tz(i)
95 vr=v1*e3x(i)+v2*e3y(i)+v3*e3z(i)
96 vs=v1*e1x(i)+v2*e1y(i)+v3*e1z(i)
97 suma=sqrt(vr*vr + vs*vs)
98 suma=one/
max(em20,suma)
99 cpn(i) = vr*suma
100 spn(i) = vs*suma
101 ENDDO
102 CASE (10)
103 DO i=jft,jlt
104 aa = gama(i,1)
105 bb = gama(i,2)
106 v1 = aa*tx(i) + bb*rx(i)
107 v2 = aa*ty(i) + bb*ry(i)
108 v3 = aa*tz(i) + bb*rz(i)
109 vr=v1*e1x(i)+v2*e1y(i)+v3*e1z(i)
110 vs=v1*e2x(i)+v2*e2y(i)+v3*e2z(i)
111 suma=sqrt(vr*vr + vs*vs)
112 suma=one/
max(em20,suma)
113 cpn(i) = vr*suma
114 spn(i) = vs*suma
115 ENDDO
116 END SELECT
117 ENDIF
118
119 SELECT CASE (icstr)
120 CASE (1)
121 g1x(jft:jlt)=zero
122 g1y(jft:jlt)=cpn(jft:jlt)
123 g1z(jft:jlt)=spn(jft:jlt)
124 g2x(jft:jlt)=zero
125 g2y(jft:jlt)=-spn(jft:jlt)
126 g2z(jft:jlt)=cpn(jft:jlt)
127 g3x(jft:jlt)=one
128 g3y(jft:jlt)=zero
129 g3z(jft:jlt)=zero
130 CASE (100)
131 g1x(jft:jlt)=spn(jft:jlt)
132 g1y(jft:jlt)=zero
133 g1z(jft:jlt)=cpn(jft:jlt)
134 g2x(jft:jlt)=cpn(jft:jlt)
135 g2y(jft:jlt)=zero
136 g2z(jft:jlt)=-spn(jft:jlt)
137 g3x(jft:jlt)=zero
138 g3y(jft:jlt)=one
139 g3z(jft:jlt)=zero
140 CASE (10)
141 g1x(jft:jlt)=cpn(jft:jlt)
142 g1y(jft:jlt)=spn(jft:jlt)
143 g1z(jft:jlt)=zero
144 g2x(jft:jlt)=-spn(jft:jlt)
145 g2y(jft:jlt)=cpn(jft:jlt)
146 g2z(jft:jlt)= zero
147 g3x(jft:jlt)= zero
148 g3y(jft:jlt)= zero
149 g3z(jft:jlt)= one
150 END SELECT
151
152 RETURN