40
41
42
44 use element_mod , only : nixc
45
46
47
48#include "implicit_f.inc"
49#include "comlock.inc"
50
51
52
53#include "mvsiz_p.inc"
54#include "parit_c.inc"
55
56
57
58#include "param_c.inc"
59
60
61
62 INTEGER, INTENT(IN) :: NFT
63 INTEGER, INTENT(IN) :: NPT
64 INTEGER JFT, JLT, NVC
65 INTEGER IADC(4,*),IXC(NIXC,MVSIZ),ISTACK(MVSIZ,NPT),IEL(*),
66 . INOD(*)
67
69 . offg(*), off(*), in(*), ms(*),ms_ply(nplyxfe,*),
70 . posly(mvsiz,npt),zi_ply(nplyxfe,*),
71 . fly11(mvsiz, npt), fly21(mvsiz, npt), fly31(mvsiz, npt),
72 . fly12(mvsiz, npt), fly22(mvsiz, npt), fly32(mvsiz, npt),
73 . fly13(mvsiz, npt), fly23(mvsiz, npt), fly33(mvsiz, npt),
74 . fly14(mvsiz, npt), fly24(mvsiz, npt), fly34(mvsiz, npt),
75 . pth(mvsiz,npt),fac(mvsiz,2),sti(mvsiz,*),msz2(*)
76
77
78
79 INTEGER NVC1, NVC2, NVC3, NVC4, I, J, IP, I1, I2, I3, I4, N,
80 . IN1,IN2,IN3,IN4
82 . off_l,
83 . fply11,fply21,fply31,fply12,fply22,fply32,fply13,fply23,
84 . fply33,fply14,fply24,fply34,fply,mply,
85 . mply11,mply21,mply31,mply12,mply22,mply32,mply13,mply23,
86 . mply33,mply14,mply24,mply34
87
88
89
90
91 off_l = zero
92 DO i=jft,jlt
93 IF(off(i)<one)offg(i) = off(i)
94 off_l =
min(off_l,offg(i))
95 ENDDO
96 IF(off_l<zero)THEN
97 DO i=jft,jlt
98 IF(offg(i)<zero)THEN
99 DO j=1,npt
100 fly11(i,j)=zero
101 fly21(i,j)=zero
102 fly31(i,j)=zero
103 fly12(i,j)=zero
104 fly22(i,j)=zero
105 fly32(i,j)=zero
106 fly13(i,j)=zero
107 fly23(i,j)=zero
108 fly33(i,j)=zero
109 fly14(i,j)=zero
110 fly24(i,j)=zero
111 fly34(i,j)=zero
112 ENDDO
113 ENDIF
114 ENDDO
115 ENDIF
116
117 IF(iparit == 0) THEN
118 nvc1= nvc/8
119 nvc2=(nvc-nvc1*8)/4
120 nvc3=(nvc-nvc1*8-nvc2*4)/2
121 nvc4=(nvc-nvc1*8-nvc2*4-nvc3*2)
122
123
124 DO i=jft,jlt
125
126 i1 = inod(ixc(2,i))
127 i2 = inod(ixc(3,i))
128 i3 = inod(ixc(4,i))
129 i4 = inod(ixc(5,i))
130
131 in1 = ixc(2,i)
132 in2 = ixc(3,i)
133 in3 = ixc(4,i)
134 in4 = ixc(5,i)
135 n = iel(i + nft)
136 DO j=1,npt
137 ip = istack(i,j)
138
139 ply(ip)%A(1,i1)=
ply(ip)%A(1,i1) - (fly11(i,j) )
140 ply(ip)%A(2,i1)=
ply(ip)%A(2,i1) - (fly21(i,j) )
141 ply(ip)%A(3,i1)=
ply(ip)%A(3,i1) - (fly31(i,j) )
142 ply(ip)%A(4,i1)=
ply(ip)%A(4,i1) + sti(i,j)*fac(i,1)
143
144 ply(ip)%A(1,i2)=
ply(ip)%A(1,i2) - (fly12(i,j) )
145 ply(ip)%A(2,i2)=
ply(ip)%A(2,i2) - (fly22(i,j) )
146 ply(ip)%A(3,i2)=
ply(ip)%A(3,i2) - (fly32(i,j) )
147 ply(ip)%A(4,i2)=
ply(ip)%A(4,i2) + sti(i,j)*fac(i,2)
148
149
150 ply(ip)%A(1,i3)=
ply(ip)%A(1,i3) - (fly13(i,j) )
151 ply(ip)%A(2,i3)=
ply(ip)%A(2,i3) - (fly23(i,j) )
152 ply(ip)%A(3,i3)=
ply(ip)%A(3,i3) - (fly33(i,j) )
153 ply(ip)%A(4,i3)=
ply(ip)%A(4,i3) + sti(i,j)*fac(i,1)
154
155 ply(ip)%A(1,i4)=
ply(ip)%A(1,i4) - (fly14(i,j) )
156 ply(ip)%A(2,i4)=
ply(ip)%A(2,i4) - (fly24(i,j) )
157 ply(ip)%A(3,i4)=
ply(ip)%A(3,i4) - (fly34(i,j) )
158 ply(ip)%A(4,i4)=
ply(ip)%A(4,i4) + sti(i,j)*fac(i,2)
159
160 ENDDO
161 ENDDO
162
163 ELSE
164 DO i=jft,jlt
165
166 i1 = inod(ixc(2,i))
167 i2 = inod(ixc(3,i))
168 i3 = inod(ixc(4,i))
169 i4 = inod(ixc(5,i))
170
171 in1 = ixc(2,i)
172 in2 = ixc(3,i)
173 in3 = ixc(4,i)
174 in4 = ixc(5,i)
175
176 n = iel(i + nft)
177 DO j=1,npt
178 ip = istack(i,j)
179 plysky(ip)%FSKY(1,iadc(1,n))= -(fly11(i,j) )
180 plysky(ip)%FSKY(2,iadc(1,n))= -(fly21(i,j) )
181 plysky(ip)%FSKY(3,iadc(1,n))= -(fly31(i,j) )
182
183 plysky(ip)%FSKY(4,iadc(1,n))= sti(i,j)*fac(i,1)
184
185 plysky(ip)%FSKY(1,iadc(2,n))= -(fly12(i,j) )
186 plysky(ip)%FSKY(2,iadc(2,n))= -(fly22(i,j) )
187 plysky(ip)%FSKY(3,iadc(2,n))= -(fly32(i,j) )
188
189 plysky(ip)%FSKY(4,iadc(2,n))= sti(i,j)*fac(i,2)
190
191 plysky(ip)%FSKY(1,iadc(3,n))= -(fly13(i,j))
192 plysky(ip)%FSKY(2,iadc(3,n))= -(fly23(i,j) )
193 plysky(ip)%FSKY(3,iadc(3,n))= -(fly33(i,j) )
194
195 plysky(ip)%FSKY(4,iadc(3,n))= sti(i,j)*fac(i,1)
196
197 plysky(ip)%FSKY(1,iadc(4,n))= -(fly14(i,j) )
198 plysky(ip)%FSKY(2,iadc(4,n))= -(fly24(i,j) )
199 plysky(ip)%FSKY(3,iadc(4,n))= -(fly34(i,j) )
200
201 plysky(ip)%FSKY(4,iadc(4,n))= sti(i,j)*fac(i,2)
202
203 ENDDO
204 ENDDO
205
206 ENDIF
207
208 RETURN
type(ply_data), dimension(:), allocatable ply
type(ply_data), dimension(:), allocatable plysky