42
43
44
45 USE intbufdef_mod
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "mvsiz_p.inc"
54
55
56
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "com08_c.inc"
60#include "param_c.inc"
61#include "impl2_c.inc"
62
63
64
65 INTEGER IPARI(NPARI,NINTER), INDEX2(*)
66 INTEGER NUM_IMP,CAND_N(*),CAND_E(*),NIN,IDDL(*),
67 . IADK(*) ,JDIK(*),LREM
68
70 . a(3,*), ms(*), v(3,*),x(*),k_diag(*),k_lt(*)
71 TYPE(INTBUF_STRUCT_) INTBUF_TAB
72
73
74
75 INTEGER JD(50),KD(50), JFI, KFI,
76 . I, I_STOK, , JLT , NFT, IVIS2,
77 . IBC, NOINT, NSEG, ISECIN, IBAG,
78 . IGAP, INACTI, IFQ, MFROT, IGSTI
79 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
80 . NSVG(MVSIZ), I3N
81
83 . startt, fric, gap, stopt,stiglo,gapmin,
84 . kmin, kmax, gapmax,gap_imp
85
86
88 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
89 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
90 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
91 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
92 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
93 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
94 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
95 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
96 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
97 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
98 . n1(mvsiz), n2(mvsiz), n3(mvsiz), off(mvsiz),
99 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),
100 . msi(mvsiz),ki11(9,mvsiz),kj11(9,mvsiz),
101 . kk11(9,mvsiz),kl11(9,mvsiz),ki12(9,mvsiz),
102 . kj12(9,mvsiz),kk12(9,mvsiz),kl12(9,mvsiz)
103 INTEGER :: NSN,NTY
104
105 nsn =ipari(5,nin)
106 nty =ipari(7,nin)
107 IF(ipari(33,nin)==1) RETURN
108 startt=intbuf_tab%VARIABLES(3)
109 stopt =intbuf_tab%VARIABLES(11)
110 IF(startt>tt) RETURN
111 IF(tt>stopt) RETURN
112 igap =ipari(21,nin)
113 inacti=ipari(22,nin)
114 stiglo=-intbuf_tab%STFAC(1)
115 fric =intbuf_tab%VARIABLES(1)
116 gap =intbuf_tab%VARIABLES(2)
117 gapmin=intbuf_tab%VARIABLES(13)
118 gap_imp=
min(gap_imp,gapmin)
119 igsti=ipari(34,nin)
120 gapmax=intbuf_tab%VARIABLES(16)
121 kmin =intbuf_tab%VARIABLES(17)
122 kmax =intbuf_tab%VARIABLES(18)
123
124 IF(nty==3)THEN
125 ELSEIF(nty==4)THEN
126 ELSEIF(nty==5)THEN
127 ELSEIF(nty==6)THEN
128
129 ELSEIF(nty==7)THEN
130
131 CALL ffizero(num_imp ,nin ,nsn ,cand_n )
132 i_stok = num_imp
133
134
135 DO nft = 0 , i_stok - 1 , nvsiz
136 jlt =
min( nvsiz, i_stok - nft )
137 CALL i7cork3(jlt ,x,intbuf_tab%IRECTM,intbuf_tab%NSV,
138 1 cand_e(nft+1) ,cand_n(nft+1) ,intbuf_tab%STFM,
139 2 intbuf_tab%STFNS,x1 ,x2 ,
140 2 x3 ,x4 ,y1 ,y2 ,y3 ,
141 3 y4 ,z1 ,z2 ,z3 ,z4 ,
142 4 xi ,yi ,zi ,stif ,ix1 ,
143 5 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
144 6 gapmin ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv,
145 7 ms ,vxi ,vyi ,vzi ,msi ,
146 8 v ,igsti ,kmin ,kmax ,gapmax,
147 9 gapmin ,nin ,nty ,nsn )
149 1 jlt ,cand_n(nft+1) ,cand_e(nft+1) ,
150 2 x1 ,x2 ,x3 ,x4 ,y1 ,
151 3 y2 ,y3 ,y4 ,z1 ,z2 ,
152 4 z3 ,z4 ,xi ,yi ,zi ,
153 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
154 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
155 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
156 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
157 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
158 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
159 b i3n ,gapv ,inacti ,intbuf_tab%CAND_P ,
160 c index2(nft+1))
161 CALL i7keg3(jlt ,a ,v ,ms ,fric ,
162 1 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
163 2 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
164 3 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
165 4 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
166 5 p1 ,p2 ,p3 ,p4 ,nin ,
167 6 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
168 7 gapv,inacti,intbuf_tab%CAND_P,index2(nft+1),
169 8 stiglo ,stif ,vxi ,vyi ,vzi ,
170 9 msi ,ki11 ,ki12 ,kj11 ,kj12 ,
171 a kk11 ,kk12 ,kl11 ,kl12 ,off ,
172 b sk_int ,lrem ,ipari(39,nin) ,x ,
173 2 x1 ,x2 ,x3 ,x4 ,y1 ,
174 3 y2 ,y3 ,y4 ,z1 ,z2 ,
175 4 z3 ,z4 ,xi ,yi ,zi )
176 IF (nspmd>1) THEN
177 lrem = lrem + jlt
178 CALL ass_spmd(3 ,nsvg ,ix1 ,ix2 ,ix3 ,
179 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
180 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
181 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
182 4 off ,nin )
183 lrem = lrem - jlt
184 ENDIF
186 1 ix4 ,jlt ,iddl ,k_diag ,k_lt ,
187 2 iadk ,jdik ,ki11 ,ki12 ,kj11 ,
188 3 kj12 ,kk11 ,kk12 ,kl11 ,kl12 ,
189 4 off )
190 ENDDO
191
192 ENDIF
193
194 RETURN
subroutine ass_spmd(nd, ns, n1, n2, n3, n4, nel, iddl, k_diag, k_lt, iadk, jdik, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off, nin)
subroutine assem_int(nd, ns, n1, n2, n3, n4, nel, iddl, k_diag, k_lt, iadk, jdik, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off)
subroutine ffizero(jlt, nin, nsn, cand_n)
subroutine i7keg3(jlt, a, v, ms, fric, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, nin, ix1, ix2, ix3, ix4, nsvg, gapv, inacti, cand_p, index, stiglo, stif, vxi, vyi, vzi, msi, ki11, ki12, kj11, kj12, kk11, kk12, kl11, kl12, off, scalk, lrem, icurv, x, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi)