38
39
40
41 USE elbufdef_mod
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "mvsiz_p.inc"
50
51
52
53 INTEGER INDEX(*),NCH ,NEL
54 double precision
55 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*),
56 . x7(*), x8(*), y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*),
57 . y8(*), z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*)
58 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_TAB
59
60
61
62 INTEGER IP,IR, IS, IT,NPTR,NPTS,NPTT,
63 . LLPIJ
64
65 TYPE(L_BUFEL_) ,POINTER :: LBUF
66 TYPE(G_BUFEL_) ,POINTER :: GBUF
68 . ajc1(mvsiz) , ajc2(mvsiz) , ajc3(mvsiz) ,
69 . ajc4(mvsiz) , ajc5(mvsiz) , ajc6(mvsiz) ,
70 . ajc7(mvsiz) , ajc8(mvsiz) , ajc9(mvsiz) ,
71 . hx(4,mvsiz) , hy(4,mvsiz), hz(4,mvsiz),
72 . pxc1(mvsiz),pxc2(mvsiz),pxc3(mvsiz),pxc4(mvsiz),
73 . pyc1(mvsiz),pyc2(mvsiz),pyc3(mvsiz),pyc4(mvsiz),
74 . pzc1(mvsiz),pzc2(mvsiz),pzc3(mvsiz),pzc4(mvsiz)
76 . wt,zr,zs,zt,wi
77
79 . w_gauss(9,9),a_gauss(9,9)
80 DATA w_gauss /
81
82 1 2.d0 ,0.d0 ,0.d0 ,
83 1 0.d0 ,0.d0 ,0.d0 ,
84 1 0.d0 ,0.d0 ,0.d0 ,
85 2 1.d0 ,1.d0 ,0.d0 ,
86 2 0.d0 ,0.d0 ,0.d0 ,
87 2 0.d0 ,0.d0 ,0.d0 ,
88 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
89 3 0.d0 ,0.d0 ,0.d0 ,
90 3 0.d0 ,0.d0 ,0.d0 ,
91 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
92 4 0.347854845137454d0,0.d0 ,0.d0 ,
93 4 0.d0 ,0.d0 ,0.d0 ,
94 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
95 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
96 5 0.d0 ,0.d0 ,0.d0 ,
97 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
98 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
99 6 0.d0 ,0.d0 ,0.d0 ,
100 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
101 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
102 7 0.129484966168870d0,0.d0 ,0.d0 ,
103 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
104 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
105 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
106 9 0.081274388361574d0,0.180648160694857d0,0.260610696402935d0,
107 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
108 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
109
110 DATA a_gauss /
111 1 0.d0 ,0.d0 ,0.d0 ,
112 1 0.d0 ,0.d0 ,0.d0 ,
113 1 0.d0 ,0.d0 ,0.d0 ,
114 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
115 2 0.d0 ,0.d0 ,0.d0 ,
116 2 0.d0 ,0.d0 ,0.d0 ,
117 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
118 3 0.d0 ,0.d0 ,0.d0 ,
119 3 0.d0 ,0.d0 ,0.d0 ,
120 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
121 4 0.861136311594053d0,0.d0 ,0.d0 ,
122 4 0.d0 ,0.d0 ,0.d0 ,
123 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
124 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
125 5 0.d0 ,0.d0 ,0.d0 ,
126 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
127 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
128 6 0.d0 ,0.d0 ,0.d0 ,
129 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
130 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
131 7 0.949107912342759d0,0.d0 ,0.d0 ,
132 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
133 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
134 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
135 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
136 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
137 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
138
139
140 gbuf => elbuf_tab%GBUF
141
143 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
144 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
145 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
146 . ajc1 ,ajc2 ,ajc3 ,
147 . ajc4 ,ajc5 ,ajc6 ,
148 . ajc7 ,ajc8 ,ajc9 ,
149 . hx, hy, hz,
150 . pxc1, pxc2, pxc3, pxc4,
151 . pyc1, pyc2, pyc3, pyc4,
152 . pzc1, pzc2, pzc3, pzc4,
153 . gbuf%JAC_I,index,nch )
154 nptr = elbuf_tab%NPTR
155 npts = elbuf_tab%NPTS
156 nptt = elbuf_tab%NPTT
157 llpij = elbuf_tab%BUFLY(1)%L_PIJ
158
159 DO ir=1,nptr
160 DO is=1,npts
161 DO it=1,nptt
162
163 lbuf => elbuf_tab%BUFLY(1)%LBUF(ir,is,it)
164
165 zr = a_gauss(ir,nptr)
166 zs = a_gauss(is,npts)
167 zt = a_gauss(it,nptt)
168 wt = w_gauss(it,nptt)
169 ip = ir + ( (is-1) + (it-1)*npts )*nptr
170 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*wt
171
172
174 . zr,zs,zt,wi,
175 . hx, hy, hz,
176 . ajc1,ajc2,ajc3,
177 . ajc4,ajc5,ajc6,
178 . ajc7,ajc8,ajc9,lbuf%JAC_I,llpij,lbuf%PIJ,lbuf%SIG,lbuf%SIGL,
179 . index,nch,nel)
180
181 ENDDO
182 ENDDO
183 ENDDO
184
185 RETURN
186
subroutine s8zjac_ic(xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, jac1, jac2, jac3, jac4, jac5, jac6, jac7, jac8, jac9, hx, hy, hz, jac_i)
subroutine s8zjac_i3(ksi, eta, zeta, wi, hx, hy, hz, cj1, cj2, cj3, cj4, cj5, cj6, cj7, cj8, cj9, jac_i, l_pij, pij, nel)