33#include "implicit_f.inc"
62#include "implicit_f.inc"
93!||====================================================================
94 LOGICAL FUNCTION intab(NIC,IC,N)
98#include "implicit_f.inc"
132#include "implicit_f.inc"
146 norm = sqrt(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))
163 SUBROUTINE voisin2(NC1,NC2,X ,I1 ,I2 ,YI,YJ,INV)
167#include "implicit_f.inc"
172 INTEGER NC1(*),NC2(*),INV,I1 ,I2
191 . s,
area,nxi,nyi,nzi,nxj,nyj,nzj,
norm,yiyj,y0(3)
193 yiyj=yi(1)*yj(1)+yi(2)*yj(2)+yi(3)*yj(3)
195 IF (abs(yiyj)<em20)
THEN
202 s=nxi*nxj+nyi*nyj+nzi*nzj
207 s=nxi*nxj+nyi*nyj+nzi*nzj
210 IF (yiyj*s <= zero )
THEN
227#include "implicit_f.inc"
244 IF (j1 == 0 .OR. j2 == 0)
RETURN
245 u1(1)=x(1,i2)-x(1,i1)
246 u1(2)=x(2,i2)-x(2,i1)
247 u1(3)=x(3,i2)-x(3,i1)
248 u2(1)=x(1,j2)-x(1,j1)
249 u2(2)=x(2,j2)-x(2,j1)
250 u2(3)=x(3,j2)-x(3,j1)
251 s= u1(1)*u2(1)+u1(2)*u2(2)+u1(3)*u2(3)
276#include "implicit_f.inc"
280#include "scr03_c.inc"
284 INTEGER I1,I2,ITAB(*),IRR
286 CHARACTER(LEN=NCHARTITLE) :: TITR
297 . msgtype=msgwarning,
298 . anmode=aninfo_blind_2,
301 . i2=itab(i1),i3=itab(i2))
304 ELSEIF (irr ==12)
THEN
308 . anmode=aninfo_blind_2,
311 . i2=itab(i1),i3=itab(i2))
332#include "implicit_f.inc"
336 INTEGER irect1(*),irect2(*)
358 IF (.NOT.
intab(4,irect1,j))
THEN
378#include "implicit_f.inc"
382 INTEGER ,EJ,IRECT(4,*),IOP
397 .
area,nxi,nyi,nzi,nxj,nyj,nzj,s
403 s=nxi*nxj+nyi*nyj+nzi*nzj
404 IF (s<zero.AND.abs(s)>0.99) iop=1
409 IF (intab(3,irect(1,ej),j)) nn = nn +1
412 IF (irect(3,ei)/=irect(4,ei))
THEN
414 IF (intab(3,irect(1,ej),j)) nn = nn +1
415 IF (irect(3,ej)/=irect(4,ej).AND.j==irect(4,ej)) nn = nn +1
429 SUBROUTINE removeic(N,IC,ISELF,IRECT,X ,I1,I2,IASYM,IRR)
433#include "implicit_f.inc"
437 INTEGER ,IC(*),,IRECT(4,*),I1,I2,IE,IASYM,
444 INTEGER I,J,J1,J2,INV
446 . s,yj(3,n),yi(3),y0(3),yjni(n),angle(n),smin,
norm,
449 y0(1) = half*(x(1,i1)+x(1,i2))
450 y0(2) = half*(x(2,i1)+x(2,i2))
451 y0(3) = half*(x(3,i1)+x(3,i2))
461 IF (j1 /= i1 .AND. j1 /= i2)
THEN
473 IF (j1 /= i1 .AND. j1 /= i2)
THEN
474 yj(1,i)=yj(1,i)+x(1,j1)
475 yj(2,i)=yj(2,i)+x(2,j1)
476 yj(3,i)=yj(3,i)+x(3,j1)
485 yjni(i)=nxi*yj(1,i)+nyi*yj(2,i)+nzi*yj(3,i)
486 angle(i)=abs(yi(1)*yj(1,i)+yi(2)*yj(2,i)+yi(3)*yj(3,i))
490 CALL voisin2(irect(1,iself),irect(1,ie),x ,i1 ,i2,
492 IF (inv > 0) angle(i) = ep10
501 IF (yjni(i)>=zero)
THEN
502 IF(smin > angle(i))
THEN
512 ELSEIF(j==0.OR.j1==0)
THEN
515 IF(yjni(i) < zero .AND. smin > angle(i))
THEN
545 SUBROUTINE removeic1(N,IC,ISELF,IRECT,X ,I1,I2,IASYM,IRR)
549#include "implicit_f.inc"
553 INTEGER N,IC(*),ISELF,IRECT(4,*),I1,I2,IE,IASYM,IRR
561 INTEGER I,J,J1,J2,INV,ipr
563 . s,yj(3,n),yi(3),y0(3),yjni(n),angle(n),smin,
norm,
564 . nxi,nyi,nzi,x12,y12,z12,nxj,nyj,nzj,smax
574 CALL voisin1(irect(1,iself),irect(1,ie),i1 ,i2 ,inv)
575 IF (inv > 0) angle(i) = ep10
583 yi(1)=nyi*z12-nzi*y12
584 yi(2)=nzi*x12-nxi*z12
585 yi(3)=nxi*y12-nyi*x12
589 IF (angle(i)==ep10) cycle
593 yj(1,i)=-nyj*z12+nzj*y12
594 yj(2,i)=-nzj*x12+nxj*z12
595 yj(3,i)=-nxj*y12+nyj*x12
597 yjni(i)=nxi*yj(1,i)+nyi*yj(2,i)+nzi*yj(3,i)
598 IF (yjni(i)>=zero) j=j+1
599 angle(i)=yi(1)*yj(1,i)+yi(2)*yj(2,i)+yi(3)*yj(3,i)
606 IF (angle(i)==ep10.OR.yjni(i)<zero) cycle
607 IF (angle(i)>=-one)
THEN
608 IF(smax < angle(i))
THEN
615 IF(j1==0.AND.j >0)
THEN
618 IF (angle(i)==ep10.OR.yjni(i)<zero) cycle
619 IF (smin > angle(i))
THEN
628 ELSEIF(j==0.OR.j1==0)
THEN
632 IF (angle(i)==ep10.OR.yjni(i)>=zero) cycle
633 IF(angle(i)< -one .AND.smax < angle(i))
THEN
642 IF (angle(i)==ep10.OR.yjni(i)>=zero) cycle
644 IF(angle(i)>= -one .AND. smin > angle(i))
THEN
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine comm_seg_en(n1, ied1, n2, ied2, ne, ice, iself, i1, i2, irect, im2sh, nn, icn, x, ie, in, irr)
subroutine i24normns(x, irect, nrt, nsn, nsv, pen_old, stf)
subroutine i24sti3(x, irect, stf, ixs, pm, geo, nrt, ixc, nint, stfac, nty, gap, noint, stfn, nsn, ms, nsv, ixtg, igap, wa, gap_s, gap_m, gapmin, ixt, ixp, gapinf, gapmax_s, inacti, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf, intth, ieles, ielec, areas, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, ixr, itab, bgapsmx, ixs10, msegtyp, nrt_sh, ixs16, ixs20, gap_n, mvoisn, ilev, igrsurf2, gapmax_m, id, titr, igap0, pen_old, ipartns, iparts, igeo, fillsol, pm_stack, iworksh, intfric, tagprt_fric, ipartfrics, ipartfricm, intbuf_fric_tab, intnitsche, nrts, irects, ielnrts, adrects, facnrts, nmn, msr, ipartt, ipartp, ipartr, elem_linked_to_segment, igsti, flag_elem_inter25)
subroutine i25neigh(nrtm, nsn, nsv, irect, irtlm, mvoisin, evoisin, mseglo, msegtyp, itab, x, id, titr, igeo, nadmsr, admsr, adskyn, iadnor, nrtm_sh, iedge, nedge, ledge, lbound, edg_cos, nisub, lisub, addsubm, lisubm, inflg_subm, nisube, addsube, lisube, inflg_sube, noint, nmn, msr, nom_opt, ilev, mbinflg, ebinflg, ielem_m, idel_solid)
subroutine i25neigh_seg_e(n1, ied1, n2, ied2, n, ic, iself, i1, i2, irect, nrtm, msegtyp, mvoisin)
subroutine int2cy_chk(ipari, intbuf_tab, itagcyc, itab)
integer, parameter nchartitle
subroutine norma4n(n1, n2, n3, area, irect, x)
subroutine norma1(n1, n2, n3, area, xx1, xx2, xx3)
subroutine norma4nx(n1, n2, n3, area, irect, x, i1, i2, shf)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine voisin1(nc1, nc2, i1, i2, inv)