45
46
47
48
49
50
51
54 USE intbufdef_mod
55
56
57
58#include "implicit_f.inc"
59
60
61
62 INTEGER IPARI(*),ITAB(*),TEST,ISKWN(*)
64
65 TYPE(INTBUF_STRUCT_) INTBUF_TAB
66 TYPE(t_segvar) :: SEGVAR
67
68
69
70#include "param_c.inc"
71#include "scr06_c.inc"
72#include "units_c.inc"
73#include "mvsiz_p.inc"
74
75
76
77
78 INTEGER ,NOINT,NGROUS,NGROUM,NG,
79 . L1 ,L2 , ,L4,L5,L6
80 INTEGER (ALE%GLOBAL%LCONV), CODTOT, ITEST, ILEV, IREF, ICEN
81 INTEGER, DIMENSION(MVSIZ) :: IX1,IX2,IX3,IX4
83 . gap
84 my_real,
DIMENSION(MVSIZ) :: x1,x2,x3,x4,xi
85 my_real,
DIMENSION(MVSIZ) :: y1,y2,y3,y4,yi
86 my_real,
DIMENSION(MVSIZ) :: z1,z2,z3,z4,zi
87 my_real,
DIMENSION(MVSIZ) :: xface,n1,n2,n3
89 my_real,
DIMENSION(MVSIZ) :: x0, y0, z0
90 my_real,
DIMENSION(MVSIZ) :: xx1,xx2,xx3,xx4
91 my_real,
DIMENSION(MVSIZ) :: yy1,yy2,yy3,yy4
92 my_real,
DIMENSION(MVSIZ) :: zz1,zz2,zz3,zz4
93 my_real,
DIMENSION(MVSIZ) :: xi1,xi2,xi3,xi4
94 my_real,
DIMENSION(MVSIZ) :: yi1,yi2,yi3,yi4
95 my_real,
DIMENSION(MVSIZ) :: zi1,zi2,zi3,zi4
96 my_real,
DIMENSION(MVSIZ) :: xn1,xn2,xn3,xn4
97 my_real,
DIMENSION(MVSIZ) :: yn1,yn2,yn3,yn4
98 my_real,
DIMENSION(MVSIZ) :: zn1,zn2,zn3,zn4
99
100
101 INTEGER :: NRTS, NRTM, NSN, NMN, NST, MST
102 INTEGER :: LFT, LLT, NFT
103
104 itest =0
105
106 nrts =ipari(3)
107 nrtm =ipari(4)
108 nsn =ipari(5)
109 nmn =ipari(6)
110 nst =ipari(8)
111 mst =ipari(9)
112 noint =ipari(15)
113 ilev=ipari(20)
114 iref=ipari(21)
115 icen=ipari(22)
117
118 ngrous=1+(nsn-1)/nvsiz
119 ngroum=1+(nmn-1)/nvsiz
120
121 itied=int(intbuf_tab%VARIABLES(1))
122 gap =intbuf_tab%VARIABLES(2)
123 IF(itied==0 .OR. itied==3)THEN
124 l1=1
125 l2=l1+3*nsn
126 l3=l2+3*nmn
127 CALL i12gathcor(x,wa(l1),wa(l2),nsn,nmn,intbuf_tab%NSV,intbuf_tab%MSR)
128
129 DO ng=1,ngrous
130 nft=(ng-1)*nvsiz
131 lft=1
132 llt=min0(nvsiz,nsn-nft)
133
134
135
137 1 wa(l1), wa(l2), intbuf_tab%IRECTM,intbuf_tab%LMSR,
138 2 intbuf_tab%MSR, intbuf_tab%NSV, intbuf_tab%ILOCS, intbuf_tab%NSEGM,
139 3 lft, llt, nft)
140
141
142
143
145 1 wa(l1), wa(l2), intbuf_tab%IRECTM,intbuf_tab%LMSR,
146 2 intbuf_tab%MSR, intbuf_tab%NSV, intbuf_tab%ILOCS, intbuf_tab%IRTLM,
147 3 intbuf_tab%NSEGM, lft, llt, nft)
148 ENDDO
149
150 IF(ilev>0)
151 &
CALL i12rot3(wa(l1),wa(l2),x,skew,iskwn,ilev,iref,icen,nsn,nmn,
152 & intbuf_tab%STFNS,intbuf_tab%STFNM)
153
154 DO ng=1,ngrous
155 nft=(ng-1)*nvsiz
156 lft=1
157 llt=min0(nvsiz,nsn-nft)
159 1 wa(l1), wa(l2), intbuf_tab%IRECTM,intbuf_tab%MSR,
160 2 intbuf_tab%IRTLM, ilev, x, intbuf_tab%STFNS,
161 3 ix1, ix2, ix3, ix4,
162 4 x1, x2, x3, x4,
163 5 xi, y1, y2, y3,
164 6 y4, yi, z1, z2,
165 7 z3, z4, zi, xface,
166 8 lft, llt, nft)
167
168
169
171 1 x1, x2, x3, x4,
172 2 xi, y1, y2, y3,
173 3 y4, yi, z1, z2,
174 4 z3, z4, zi, xface,
175 5 n1, n2, n3, ssc,
176 6 ttc, x0, y0, z0,
177 7 xx1, xx2, xx3, xx4,
178 8 yy1, yy2, yy3, yy4,
179 9 zz1, zz2, zz3, zz4,
180 a xi1, xi2, xi3, xi4,
181 b yi1, yi2, yi3, yi4,
182 c zi1, zi2, zi3, zi4,
183 d xn1, xn2, xn3, xn4,
184 e yn1, yn2, yn3, yn4,
185 f zn1, zn2, zn3, zn4,
187
188
189
191 1 intbuf_tab%CSTS, intbuf_tab%NSV, itab, gap,
192 2 noint, itest, intbuf_tab%FCOUNT,ssc,
193 3 ttc, lft, llt, nft)
194 ENDDO
195 IF(itest>0)THEN
196 WRITE(iout,'(A,I8,A,I8,A)')
197 . ' *** WARNING INTERFACE',noint,' : ',
198 . itest,' SECONDARY NODES LIE OUTSIDE OF MAIN SEGMENT'
199 test=1
200 ENDIF
201 ENDIF
202
203 IF(codtot/=0 .AND.
ale%GLOBAL%INCOMP==0 .AND. itied/=3)
THEN
204 l1=1
205 l2=l1+nsn*
ale%GLOBAL%NVCONV
206 l3=l2+nsn*
ale%GLOBAL%NVCONV
207 l4=l3+nrtm
208 l5=l4+nmn*
ale%GLOBAL%NVCONV
209 l6=l5+nmn
210
211
212
213
214
215 CALL i12nod3(nrts,intbuf_tab%IELES,intbuf_tab%IRECTS,segvar,jcodv,
216 . wa(l1),intbuf_tab%FCOUNT,nsn)
217
218
219 CALL i12m2s(nsn ,intbuf_tab%IRECTS,intbuf_tab%IRTLM,wa(l2),nrtm,nrts,
220 . intbuf_tab%IELEM,intbuf_tab%IELES,segvar,jcodv)
221
222
223 CALL i12s2m(nsn,intbuf_tab%IRTLM,nrtm,jcodv,wa(l1),wa(l3),
224 . nmn,wa(l4),intbuf_tab%IRECTM,wa(l5),intbuf_tab%MSR,
225 . segvar,intbuf_tab%IELEM,noint)
226 ENDIF
227
228 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine i12cor3(xs, xm, irect, msr, irtl, ilev, x, tets, ix1, ix2, ix3, ix4, x1, x2, x3, x4, xi, y1, y2, y3, y4, yi, z1, z2, z3, z4, zi, xface, lft, llt, nft)
subroutine i12dis3(crst, nsv, itab, gap, noint, itest, tagkine, ssc, ttc, lft, llt, nft)
subroutine i12gathcor(x, xs, xm, nsn, nmn, nsv, msr)
subroutine i12loc3(xs, xm, irect, lmsr, msr, nsv, iloc, nseg, lft, llt, nft)
subroutine i12m2s(nsn, irects, irtl, nodvar, nrtm, nrts, isegm, isegs, segvar, jcodv)
subroutine i12msr3(xs, xm, irect, lmsr, msr, nsv, iloc, irtl, nseg, lft, llt, nft)
subroutine i12nod3(nrt, iseg, irect, segvar, jcodv, nodvar, fcount, nsn)
subroutine i12rot3(xs, xm, x, skew, iskwn, ilev, iref, icen, nsn, nmn, tets, tetm)
subroutine i12s2m(nsn, irtl, nrtm, jcodv, nodvars, mcount, nmn, nodvarm, irectm, ncount, msr, segvar, isegm, noint)
subroutine i3cst3(x1, x2, x3, x4, xi, y1, y2, y3, y4, yi, z1, z2, z3, z4, zi, xface, n1, n2, n3, ssc, ttc, x0, y0, z0, xx1, xx2, xx3, xx4, yy1, yy2, yy3, yy4, zz1, zz2, zz3, zz4, xi1, xi2, xi3, xi4, yi1, yi2, yi3, yi4, zi1, zi2, zi3, zi4, xn1, xn2, xn3, xn4, yn1, yn2, yn3, yn4, zn1, zn2, zn3, zn4, area, lft, llt)
subroutine varcondec(icodv, varconv, codtot)