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