36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "mvsiz_p.inc"
44
45
46
47#include "scr05_c.inc"
48
49
50
51 INTEGER, INTENT(IN) :: NEL
52 INTEGER, INTENT(IN) :: JCVT
53 INTEGER NC1(*), NC2(*), NC3(*), NC4(*)
54
56 . off(*),x(3,*),d(3,*),
57 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
58 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
59 . r31(mvsiz),r32(mvsiz),r33(mvsiz)
60 DOUBLE PRECISION
61 . XDP(3,*)
62
63
64
65 INTEGER I
66
67 double precision
68 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
69 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
70 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz)
71
72
74 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
75 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
76 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz)
78 . x41, y41, z41, x42, y42, z42, x43, y43, z43
79
80
81
82
83
84
85
86 IF(iresp==1)THEN
87 DO i=1,nel
88 IF (off(i) <= one ) cycle
89 x1(i)=xdp(1,nc1(i))
90 y1(i)=xdp(2,nc1(i))
91 z1(i)=xdp(3,nc1(i))
92 x2(i)=xdp(1,nc2(i))
93 y2(i)=xdp(2,nc2(i))
94 z2(i)=xdp(3,nc2(i))
95 x3(i)=xdp(1,nc3(i))
96 y3(i)=xdp(2,nc3(i))
97 z3(i)=xdp(3,nc3(i))
98 x4(i)=xdp(1,nc4(i))
99 y4(i)=xdp(2,nc4(i))
100 z4(i)=xdp(3,nc4(i))
101 ENDDO
102 ELSE
103 DO i=1,nel
104 IF (off(i) <= one ) cycle
105 x1(i)=x(1,nc1(i))
106 y1(i)=x(2,nc1(i))
107 z1(i)=x(3,nc1(i))
108 x2(i)=x(1,nc2(i))
109 y2(i)=x(2,nc2(i))
110 z2(i)=x(3,nc2(i))
111 x3(i)=x(1,nc3(i))
112 y3(i)=x(2,nc3(i))
113 z3(i)=x(3,nc3(i))
114 x4(i)=x(1,nc4(i))
115 y4(i)=x(2,nc4(i))
116 z4(i)=x(3,nc4(i))
117 ENDDO
118 ENDIF
119
120
121
122 DO i=1,nel
123 IF (off(i) <= one ) cycle
124 x43 = x4(i) - x3(i)
125 y43 = y4(i) - y3(i)
126 z43 = z4(i) - z3(i)
127 x41 = x4(i) - x1(i)
128 y41 = y4(i) - y1(i)
129 z41 = z4(i) - z1(i)
130 x42 = x4(i) - x2(i)
131 y42 = y4(i) - y2(i)
132 z42 = z4(i) - z2(i)
133
134 rx(i) = -x41
135 ry(i) = -y41
136 rz(i) = -z41
137 sx(i) = -x42
138 sy(i) = -y42
139 sz(i) = -z42
140
141 tx(i) = -x43
142 ty(i) = -y43
143 tz(i) = -z43
144 END DO
146 1 off, rx, ry, rz,
147 2 sx, sy, sz, tx,
148 3 ty, tz, r11, r12,
149 4 r13, r21, r22, r23,
150 5 r31, r32, r33, nel)
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167 RETURN
subroutine smortho3(off, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, nel)