28 SUBROUTINE i7normn(NRTM,IRECT,NUMNOD,X,NOD_NORMAL,
33#include "implicit_f.inc"
37 INTEGER NRTM,NUMNOD,IRECT(4,NRTM),NMN,MSR(*)
40 . x(3,numnod), nod_normal(3,numnod)
44 INTEGER I ,J ,N1,N2,N3,N4
46 . surfx,surfy,surfz,x13,y13,z13,x24,y24,z24,aaa
51 nod_normal(1,n1) = zero
52 nod_normal(2,n1) = zero
53 nod_normal(3,n1) = zero
62 x13 = x(1,n3) - x(1,n1)
63 y13 = x(2,n3) - x(2,n1)
64 z13 = x(3,n3) - x(3,n1)
66 x24 = x(1,n4) - x(1,n2)
67 y24 = x(2,n4) - x(2,n2)
68 z24 = x(3,n4) - x(3,n2)
70 surfx = y13*z24 - z13*y24
71 surfy = z13*x24 - x13*z24
72 surfz = x13*y24 - y13*x24
74 aaa=one/
max(em30,sqrt(surfx*surfx+surfy*surfy+surfz*surfz))
79 nod_normal(1,n1) = nod_normal(1,n1) + surfx
80 nod_normal(2,n1) = nod_normal(2,n1) + surfy
81 nod_normal(3,n1) = nod_normal(3,n1) + surfz
82 nod_normal(1,n2) = nod_normal(1,n2) + surfx
83 nod_normal(2,n2) = nod_normal(2,n2) + surfy
84 nod_normal(3,n2) = nod_normal(3,n2) + surfz
85 nod_normal(1,n3) = nod_normal(1,n3) + surfx
86 nod_normal(2,n3) = nod_normal(2,n3) + surfy
87 nod_normal(3,n3) = nod_normal(3,n3) + surfz
88 nod_normal(1,n4) = nod_normal(1,n4) + surfx
89 nod_normal(2,n4) = nod_normal(2,n4) + surfy
90 nod_normal(3,n4) = nod_normal(3,n4) + surfz
104 SUBROUTINE i7normnp(NRTM ,IRECT ,NUMNOD ,X ,NOD_NORMAL,
105 . NMN ,MSR ,LENT ,MAXCC,ISDSIZ ,
106 . IRCSIZ,IAD_ELEM,FR_ELEM,ITAG )
110#include "implicit_f.inc"
114#include "com01_c.inc"
119 INTEGER NRTM,NUMNOD,NMN,MAXCC,LENT,
120 . IRECT(4,NRTM),MSR(*),
121 . IAD_ELEM(2,*),FR_ELEM(*),ISDSIZ(*),IRCSIZ(*),ITAG(*)
124 . x(3,numnod), nod_normal(3,numnod)
128 INTEGER I ,J ,N1,N2,N3,N4, IAD, LENR, LENS, CC, ERROR,
131 . surfx,surfy,surfz,x13,y13,z13,x24,y24,z24,aaa,
132 . fskyt(3,lent), fskyt2(maxcc), perm(maxcc)
137 adskyt(n1+1) = adskyt(n1)+itag(n1)
138 itag(n1) = adskyt(n1)
139 nod_normal(1,n1) = zero
140 nod_normal(2,n1) = zero
141 nod_normal(3,n1) = zero
150 x13 = x(1,n3) - x(1,n1)
151 y13 = x(2,n3) - x(2,n1)
152 z13 = x(3,n3) - x(3,n1)
154 x24 = x(1,n4) - x(1,n2)
155 y24 = x(2,n4) - x(2,n2)
156 z24 = x(3,n4) - x(3,n2)
158 surfx = y13*z24 - z13*y24
159 surfy = z13*x24 - x13*z24
160 surfz = x13*y24 - y13*x24
162 aaa=one/
max(em30,sqrt(surfx*surfx+surfy*surfy+surfz*surfz))
168 adskyt(n1) = adskyt(n1)+1
173 adskyt(n2) = adskyt(n2)+1
178 adskyt(n3) = adskyt(n3)+1
183 adskyt(n4) = adskyt(n4)+1
190 lenr = ircsiz(nspmd+1)*3+iad_elem(1,nspmd+1)-iad_elem(1,1)
191 lens = isdsiz(nspmd+1)*3+iad_elem(1,nspmd+1)-iad_elem(1,1)
193 . isdsiz,ircsiz,itag ,lenr ,lens )
205 fskyt2(cc-n2+1) = fskyt(j,cc)
208 CALL myqsort(n4,fskyt2,perm,error)
210 nod_normal(j,n1) = nod_normal(j,n1) + fskyt2(cc-n2+1)
214 nod_normal(1,n1) = fskyt(1,n2)
215 nod_normal(2,n1) = fskyt(2,n2)
216 nod_normal(3,n1) = fskyt(3,n2)
272 SUBROUTINE i7rcurv(NRTMFT,NRTMLT ,X ,NOD_NORMAL ,IRECT ,
273 . RCURV ,NRADM ,ANGLM ,ANGLT )
277#include "implicit_f.inc"
278#include "comlock.inc"
282 INTEGER NRTMFT, NRTMLT , IRECT(4,*), NRADM
285 . X(3,*), NOD_NORMAL(3,*), RCURV(*), ANGLM(*), ANGLT
289 INTEGER I ,N1, N2, N3, N4
294 . nnx1, nnx2, nnx3, nnx4,
295 . nny1, nny2, nny3, nny4,
296 . nnz1, nnz2, nnz3, nnz4,
297 . surfx, surfy, surfz,
298 . erx, ery, erz, dnx, dny, dnz, dnt, ll, aaa, rr,
299 . x13, y13, z13, x24, y24, z24, nx, ny, nz, cc
301 rcurv(nrtmft:nrtmlt) = ep30
302 anglm(nrtmft:nrtmlt) = ep30
326 nnx1=nod_normal(1,n1)
327 nny1=nod_normal(2,n1)
328 nnz1=nod_normal(3,n1)
330 nnx2=nod_normal(1,n2)
331 nny2=nod_normal(2,n2)
332 nnz2=nod_normal(3,n2)
334 nnx3=nod_normal(1,n3)
335 nny3=nod_normal(2,n3)
336 nnz3=nod_normal(3,n3)
338 nnx4=nod_normal(1,n4)
339 nny4=nod_normal(2,n4)
340 nnz4=nod_normal(3,n4)
343 erx = (x2+x3)-(x1+x4)
344 ery = (y2+y3)-(y1+y4)
345 erz = (z2+z3)-(z1+z4)
348 ll = sqrt(erx*erx+ery*ery+erz*erz)
354 dnx= (nnx2+nnx3)-(nnx1+nnx4)
355 dny= (nny2+nny3)-(nny1+nny4)
356 dnz= (nnz2+nnz3)-(nnz1+nnz4)
359 dnt=(dnx*erx+dny*ery+dnz*erz)
361 rr=ll/
max(em20,abs(dnt))
362 rcurv(i)=
min(rcurv(i),rr)
364 erx = (x4+x3)-(x1+x2)
365 ery = (y4+y3)-(y1+y2)
366 erz = (z4+z3)-(z1+z2)
369 ll = sqrt(erx*erx+ery*ery+erz*erz)
375 dnx= (nnx4+nnx3)-(nnx1+nnx2)
376 dny= (nny4+nny3)-(nny1+nny2)
377 dnz= (nnz4+nnz3)-(nnz1+nnz2)
380 dnt=(dnx*erx+dny*ery+dnz*erz)
382 rr=ll/(nradm*
max(em20,abs(dnt)))
383 rcurv(i)=
min(rcurv(i),rr)
397 surfx = y13*z24 - z13*y24
398 surfy = z13*x24 - x13*z24
399 surfz = x13*y24 - y13*x24
401 aaa=one/
max(em30,sqrt(surfx*surfx+surfy*surfy+surfz*surfz))
406 cc=(surfx*nnx1+surfy*nny1+surfz*nnz1)/
max(em20,anglt)
407 anglm(i)=
min(anglm(i),cc)
409 cc=(surfx*nnx2+surfy*nny2+surfz*nnz2)/
max(em20,anglt)
410 anglm(i)=
min(anglm(i),cc)
412 cc=(surfx*nnx3+surfy*nny3+surfz*nnz3)/
max(em20,anglt)
413 anglm(i)=
min(anglm(i),cc)
415 cc=(surfx*nnx4+surfy*nny4+surfz*nnz4)/
max(em20,anglt)
416 anglm(i)=
min(anglm(i),cc)
subroutine i7mainf(timers, ipari, x, a, ale_connectivity, xcell, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, elbuf_tab, niskyfi, newfront, nstrf, secfcum, igroups, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, igrbric, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, mskyi_sms, iskyi_sms, nodnx_sms, ms0, qfricint, npc, tf, condn, condnskyi, intbuf_tab, nodadt_therm, theaccfact, fbsav6, isensint, dimfb, ixig3d, kxig3d, wige, knot, igeo, multi_fvm, h3d_data, intbuf_fric_tab, knotlocpc, knotlocel, itask, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, interefric, s_xcell_remote, xcell_remote)