39
40
41
42 USE elbufdef_mod
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "mvsiz_p.inc"
51#include "param_c.inc"
52#include "com04_c.inc"
53#include "scr05_c.inc"
54
55
56
57 INTEGER, INTENT(IN) :: NPT
58 INTEGER, INTENT(IN) ::NEL
59 INTEGER, DIMENSION(MVSIZ,10),INTENT(IN) :: NC
60 double precision
61 . volnod6(6,2*numnod),sav(nel,30)
62 DOUBLE PRECISION , DIMENSION(3,SXDP/3), INTENT(IN) :: XDP
63
65 . x(3,numnod),offg(nel)
66 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_TAB
67
68
69
70
71
72
73 INTEGER I, K,N1,N2,NN,N
74 INTEGER IP,IBID,NPE
75 INTEGER (10),IPERM2(10)
76 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
77 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
78
80 . mfxx(mvsiz),mfxy(mvsiz),mfxz(mvsiz),
81 . mfyx(mvsiz),mfyy(mvsiz),mfyz(mvsiz),
82 . mfzx(mvsiz),mfzy(mvsiz),mfzz(mvsiz),
83 . px(mvsiz,10),py(mvsiz,10),pz(mvsiz,10),jac(mvsiz),
84 . vx0(mvsiz,10),vy0(mvsiz,10),vz0(mvsiz,10),volp(mvsiz)
85 DOUBLE PRECISION
86 . XX(,10), YY(MVSIZ,10), ZZ(MVSIZ,10),
87 . X0(MVSIZ,10), Y0(MVSIZ,10), Z0(MVSIZ,10),
88 . DET6(6,MVSIZ)
89
90 TYPE(L_BUFEL_) ,POINTER ::
91
92
93
94
95 IF(iresp == 1) THEN
96 DO n=1,10
97 DO i=1,nel
99 xx(i,n)=xdp(1,nn)
100 yy(i,n)=xdp(2,nn)
101 zz(i,n)=xdp(3,nn)
102 ENDDO
103 ENDDO
104 ELSE
105 DO n=1,10
106 DO i=1,nel
108 xx(i,n)=x(1,nn)
109 yy(i,n)=x(2,nn)
110 zz(i,n)=x(3,nn)
111 ENDDO
112 ENDDO
113 END IF
114
115 DO n=5,10
116 n1=iperm1(n)
117 n2=iperm2(n)
118 DO i=1,nel
119 IF(nc(i,n)==0)THEN
120 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
121 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
122 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
123 ENDIF
124 ENDDO
125 ENDDO
126
127
128
129 npe = 10
130 DO n=1,npe
131 DO i=1,nel
132 x0(i,n)=sav(i,n)
133 y0(i,n)=sav(i,n+npe)
134 z0(i,n)=sav(i,n+2*npe)
135 ENDDO
136 ENDDO
137
138
139
140 n = npe
141 DO i=1,nel
142 vx0(i,n)=xx(i,n)-x0(i,n)
143 vy0(i,n)=yy(i,n)-y0(i,n)
144 vz0(i,n)=zz(i,n)-z0(i,n)
145 ENDDO
146 DO n=1,npe
147 DO i=1,nel
148 vx0(i,n)=xx(i,n)-x0(i,n)-vx0(i,npe)
149 vy0(i,n)=yy(i,n)-y0(i,n)-vy0(i,npe)
150 vz0(i,n)=zz(i,n)-z0(i,n)-vz0(i,npe)
151 ENDDO
152 ENDDO
153 ibid = 1
154 DO ip=1,npt
155 lbuf => elbuf_tab%BUFLY(ibid)%LBUF(ip,ibid,ibid)
158 1 px, py, pz, vx0,
159 2 vy0, vz0, mfxx, mfxy,
160 3 mfxz, mfyx, mfyy, mfyz,
161 4 mfzx, mfzy, mfzz, nel)
163 1 jac, mfxx, mfxy, mfxz,
164 2 mfyx, mfyy, mfyz, mfzx,
165 3 mfzy, mfzz, nel)
166 DO i=1,nel
167 IF (offg(i) == zero .OR. abs(offg(i))>one) THEN
168 volp(i)= zero
169 ELSE
170 volp(i) = jac(i)*lbuf%VOL(i)
171 ENDIF
172 ENDDO
173
174
176
177 DO i=1,nel
178 volnod6(1:6,nc(i,ip)) = volnod6(1:6,nc(i,ip)) + det6(1:6,i)
179 ENDDO
180
181 END DO
182
183 RETURN
subroutine jacob_j33(det, aj1, aj2, aj3, aj4, aj5, aj6, aj7, aj8, aj9, nel)
subroutine foat_to_6_float(jft, jlt, f, f6)
subroutine s10defot3(px, py, pz, vx, vy, vz, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, nel)
subroutine s10pijto3(px, py, pz, pij, nel)