42 1 X ,IRECT ,STF ,IXS ,PM ,
43 2 GEO ,NRT ,IXC ,NINT ,STFAC ,
44 3 NTY ,GAP ,NOINT ,STFN ,NSN ,
45 4 MS ,NSV ,IXTG ,IGAP ,WA ,
46 5 GAP_S ,GAP_M ,GAPMIN ,IXT ,IXP ,
47 6 GAPINF ,GAPMAX ,INACTI ,KNOD2ELS ,KNOD2ELC ,
48 7 KNOD2ELTG ,NOD2ELS ,NOD2ELC ,NOD2ELTG ,IGRSURF ,
49 8 INTTH ,IELES ,IELEC ,AREAS ,SH4TREE ,
50 9 SH3TREE ,IPART ,IPARTC ,IPARTTG ,THK ,
51 B THK_PART ,PERCENT_SIZE,GAP_S_L ,GAP_M_L ,NOD2EL1D ,
52 C KNOD2EL1D ,IXR ,ITAB ,BGAPSMX ,IXS10 ,
53 D IXS16 ,IXS20 ,ID ,TITR ,IDDLEVEL ,
54 E DRAD ,IGEO ,FILLSOL ,PM_STACK ,IWORKSH ,
55 F IT19 ,KXIG3D ,IXIG3D ,INTFRIC ,IPARTS ,
56 G TAGPRT_FRIC,IPARTFRICS,IPARTFRICM ,INTBUF_FRIC_TAB,NRT_IGE,
57 I IREM_GAP ,GAPM_MX,GAPS_MX ,GAPM_L_MX,GAPS_L_MX,
58 J IPARTT ,IPARTP ,IPARTR ,ELEM_LINKED_TO_SEGMENT,
71#include "implicit_f.inc"
78#include "remesh_c.inc"
85 INTEGER NRT, NINT, NTY, NOINT,,IGAP,
86 . INACTI,INTFRIC, NRT_IGE
87 INTEGER IRECT(4,*), IXS(NIXS,*), IXC(NIXC,*),
88 . NSV(*), IXTG(NIXTG,*), IXT(NIXT,*), IXP(NIXP,*),
89 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
90 . NOD2ELTG(*), IELES(*), INTTH, IELEC(*),
91 . SH3TREE(KSH3TREE,*), SH4TREE(KSH4TREE,*),IXR(NIXR,*) ,
92 . IPART(LIPART1,*),IPARTC(*),IPARTTG(*),NOD2EL1D(*),KNOD2EL1D(*),
93 . ITAB(*), IXS10(6,*), IXS16(*), IXS20(*),IDDLEVEL,IGEO(NPROPGI,*),
94 . IWORKSH(3,*),IT19,KXIG3D(NIXIG3D,*),IXIG3D(*),TAGPRT_FRIC(*),
95 . IPARTFRICS(*),IPARTFRICM(*)
104 INTEGER,
DIMENSION(NUMELT),
INTENT(IN) :: IPARTT
105 INTEGER,
DIMENSION(NUMELP),
INTENT(IN) :: IPARTP
106 INTEGER,
DIMENSION(NUMELR),
INTENT(IN) :: IPARTR
107 INTEGER,
INTENT(IN) :: ID
108 CHARACTER(LEN=NCHARTITLE)::TITR
109 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
110 TYPE (SURF_) :: IGRSURF
111 INTEGER,
DIMENSION(NUMELS),
INTENT(INOUT):: ELEM_LINKED_TO_SEGMENT
112 INTEGER,
INTENT(IN) :: FLAG_ELEM_INTER25(NINTER25,NUMELS)
116 INTEGER NDX, I, J, INRT, NELS, MT, JJ, JJJ, NELC,
117 . mg, num, npt, ll, l, nn, neltg,n1,n2,n3,n4,ie,
118 . ip, nlev, mylev, k, p, r, t,igtyp,ipgmat,igmat,
119 . isubstack,nelig3d, coin_ige(8), ipid, px, py, pz, iad ,ipfmax,ipl,
120 . ipflmax,ipg,ninv,icontr,nin25
124 . dxm, gapmx, gapmn,
area, vol, dx, gapm, ddx,
125 . gaptmp, gapscale,sx1,sy1,sz1,sx2,sy2,sz2,sx3,sy3,sz3,
127 my_real,
dimension(:)allocatable
128 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGELEMS,INDEXE
129 LOGICAL :: PRINT_ERROR
130 INTEGER,
DIMENSION(4) :: NODE_ID
140 ALLOCATE( gap_s_l_tmp(numnod) )
142 IF(inacti == 7)type18=.true.
170 IF(iddlevel == 1) igap = 1
173 ELSEIF(igap == 3)
THEN
186 IF(n1 /= n2 .AND. n1 /= 0)xl=
min(xl,sqrt((x(1,n1)-x(1,n2))**2+(x(2,n1)-x(2,n2))**2+(x(3,n1)-x(3,n2))**2))
189 IF(gap_s_l_tmp(irect(j,i)) == zero)
THEN
190 gap_s_l_tmp(irect(j,i))= percent_size*xl
192 gap_s_l_tmp(irect(j,i))=
min(gap_s_l_tmp(irect(j,i)),percent_size*xl)
198 DO k=knod2el1d(n1)+1,knod2el1d(n1+1)
199 IF (nod2el1d(k) <= numelt .AND. nod2el1d(k) /= zero)
THEN
201 xl=
min(xl,sqrt((x(1,ixt(2,t))-x(1,ixt(3,t)))**2 + (x(2,ixt(2,t))-x(2,ixt(3,t)))**2 + (x(3,ixt(2,t))-x(3,ixt(3,t)))**2))
202 ELSEIF (nod2el1d(k) <= numelt
THEN
203 p=nod2el1d(k) - numelt
204 xl=
min(xl,sqrt((x(1,ixp(2,p))-x(1,ixp(3,p)))**2 + (x(2,ixp(2,p))-x(2,ixp(3,p)))**2 + (x(3,ixp(2,p))-x(3,ixp(3,p)))**2))
205 ELSEIF (nod2el1d(k) <= numelt+numelp+numelr .AND. nod2el1d(k) /= zero)
THEN
206 r=nod2el1d(k) - numelt - numelp
207 xl=
min(xl,sqrt((x(1,ixr(2,r))-x(1,ixr(3,r)))**2 + (x(2,ixr(2,r))-x(2,ixr(3,r)))**2 + (x(3,ixr(2,r))-x(3,ixr(3,r)))**2))
211 gap_m_l(i)=percent_size*xl
212 gapm_l_mx =
max(gapm_l_mx,gap_m_l(i))
214 gap_s_l_tmp(irect(j,i))=
min(gap_s_l_tmp(irect(j,i)),percent_size*xl)
229 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
233 ELSEIF(igtyp == 17 .OR. igtyp ==51 .OR. igtyp == 52)
THEN
238 wa(ixc(2,i))=
max(wa(ixc(2,i)),dx)
239 wa(ixc(3,i))=
max(wa(ixc(3,i)),dx)
240 wa(ixc(4,i))=
max(wa(ixc(4,i)),dx)
241 wa(ixc(5,i))=
max(wa(ixc(5,i)),dx)
247 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
249 ELSEIF ( thk(numelc+i) /= zero .AND. iintthick == 0)
THEN
250 dx=half*thk(numelc+i)
251 ELSEIF(igtyp == 17 .OR. igtyp ==51 .OR. igtyp == 52)
THEN
252 dx=half*thk(numelc+i)
256 wa(ixtg(2,i))=
max(wa(ixtg(2,i)),dx)
257 wa(ixtg(3,i))=
max(wa(ixtg(3,i)),dx)
258 wa(ixtg(4,i))=
max(wa(ixtg(4,i)),dx)
263 IF ( thk_part(ip) > zero )
THEN
266 dx=half*sqrt(geo(1,mg))
268 wa(ixt(2,i))=
max(wa(ixt(2,i)),dx)
269 wa(ixt(3,i))=
max(wa(ixt(3,i)),dx)
274 IF ( thk_part(ip) > zero )
THEN
277 dx=half*sqrt(geo(1,mg))
279 wa(ixp(2,i))=
max(wa(ixp(2,i)),dx)
280 wa(ixp(3,i))=
max(wa(ixp(3,i)),dx)
284 IF ( thk_part(ip) > zero )
THEN
288 wa(ixr(2,i))=
max(wa(ixr(2,i)),dx)
289 wa(ixr(3,i))=
max(wa(ixr(3,i)),dx)
290 IF (igtyp==12) wa(ixr(4,i))=
max(wa(ixr(4,i)),dx)
298 gap_s(i)=gapscale * wa(nsv(i))
300 IF(gap_s_l_tmp(nsv(i)) /= zero)gap_s_l(i)=
min(gap_s_l(i),gap_s_l_tmp(nsv(i)))
301 gaps_mx =
max(gaps_mx,gap_s(i))
302 gaps_l_mx =
max(gaps_l_mx,gap_s_l(i))
304 gaps_mx=
max(gaps_mx,gap_s(i))
315 DO j= knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
317 sx1 = x(1,ixc(4,ie)) - x(1,ixc(2,ie))
318 sy1 = x(2,ixc(4,ie)) - x(2,ixc(2,ie))
319 sz1 = x(3,ixc(4,ie)) - x(3,ixc(2,ie))
320 sx2 = x(1,ixc(5,ie)) - x(1,ixc(3,ie))
321 sy2 = x(2,ixc(5,ie)) - x(2,ixc(3,ie))
322 sz2 = x(3,ixc(5,ie)) - x(3,ixc(3,ie))
323 sx3 = sy1*sz2 - sz1*sy2
324 sy3 = sz1*sx2 - sx1*sz2
325 sz3 = sx1*sy2 - sy1*sx2
326 areas(i) = areas(i) + one_over_8*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
331 DO j= knod2eltg(nsv(i))+1,knod2eltg(nsv(i)+1)
333 sx1 = x(1,ixtg(3,ie)) - x(1,ixtg(2,ie))
334 sy1 = x(2,ixtg(3,ie)) - x(2,ixtg(2,ie))
335 sz1 = x(3,ixtg(3,ie)) - x(3,ixtg(2,ie))
336 sx2 = x(1,ixtg(4,ie)) - x(1,ixtg(2,ie))
337 sy2 = x(2,ixtg(4,ie)) - x(2,ixtg(2,ie))
338 sz2 = x(3,ixtg(4,ie)) - x(3,ixtg(2,ie))
339 sx3 = sy1*sz2 - sz1*sy2
340 sy3 = sz1*sx2 - sx1*sz2
341 sz3 = sx1*sy2 - sy1*sx2
342 areas(i) = areas(i) + one_over_6*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
344 ielec(i) = ixtg(1,ie)
350 DO j=knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
356 IF(mylev < 0) mylev=-(mylev+1)
358 IF(mylev == nlev)
THEN
359 sx1 = x(1,ixc(4,ie)) - x(1,ixc(2,ie))
360 sy1 = x(2,ixc(4,ie)) - x(2,ixc(2,ie))
361 sz1 = x(3,ixc(4,ie)) - x(3,ixc(2,ie))
362 sx2 = x(1,ixc(5,ie)) - x(1,ixc(3,ie))
363 sy2 = x(2,ixc(5,ie)) - x(2,ixc(3,ie))
364 sz2 = x(3,ixc(5,ie)) - x(3,ixc(3,ie))
365 sx3 = sy1*sz2 - sz1*sy2
366 sy3 = sz1*sx2 - sx1*sz2
367 sz3 = sx1*sy2 - sy1*sx2
368 areas(i) = areas(i) + one_over_8*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
375 DO j= knod2eltg(nsv(i))+1,knod2eltg(nsv(i)+1)
380 IF(mylev < 0) mylev=-(mylev+1)
381 IF(mylev == nlev)
THEN
382 sx1 = x(1,ixtg(3,ie)) - x(1,ixtg(2,ie))
383 sy1 = x(2,ixtg(3,ie)) - x(2,ixtg(2,ie))
384 sz1 = x(3,ixtg(3,ie)) - x(3,ixtg(2,ie))
385 sx2 = x(1,ixtg(4,ie)) - x(1,ixtg(2,ie))
386 sy2 = x(2,ixtg(4,ie)) - x(2,ixtg(2,ie))
387 sz2 = x(3,ixtg(4,ie)) - x(3,ixtg(2,ie))
388 sx3 = sy1*sz2 - sz1*sy2
389 sy3 = sz1*sx2 - sx1*sz2
390 sz3 = sx1*sy2 - sy1*sx2
391 areas(i) = areas(i) + one_over_6*sqrt(sx3*sx3+sy3*sy3+sz3*sz3)
393 ielec(i) = ixtg(1,ie)
405 CALL my_alloc(tagelems,numels)
407 CALL my_alloc(indexe,numels)
413 IF(intth > 0 ) ieles(i) = 0
414 IF(slsfac < zero)stf(i)=slsfac
417 CALL i4gmx3(x,irect,inrt,gapmx)
420 . inrt ,
area ,noint,0 ,igrsurf%ELTYP,
443 stf(i)=slsfac*fillsol(nels)*
area*
area*bulk/vol
447 . msgtype=msgwarning,
448 . anmode=aninfo_blind_2,
457 . msgtype=msgwarning,
458 . anmode=aninfo_blind_2,
466 IF(igap /= 0 .OR. (nty /=7 .AND. nty /= 20)) gap_m(i)=gapm
470 ipg = tagprt_fric(ip)
473 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
474 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
475 ipartfricm(inrt) = ipl
483 CALL ineltc(nelc ,neltg ,inrt ,igrsurf%ELTYP, igrsurf%ELEM)
493 IF (thk_part(ip) /= zero .AND. iintthick == 0)
THEN
494 dx=thk_part(ip)*gapscale
495 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
496 dx=thk(numelc+neltg)*gapscale
497 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
498 dx=thk(numelc+neltg)*gapscale
500 dx=geo(1,mg)*gapscale
503 gapm_mx=
max(gapm_mx,gapm)
508 IF(igtyp == 11 .AND. igmat > 0)
THEN
509 IF(slsfac < zero)
THEN
511 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
512 stf(i)=slsfac*thk(numelc+neltg)*geo(ipgmat + 2 ,mg)
514 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
516 ELSEIF(igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
517 isubstack = iworksh(3,numelc + neltg)
518 IF(slsfac < zero)
THEN
521 stf(i)=slsfac*thk(numelc+neltg)*pm_stack(2 ,isubstack)
524 IF(slsfac < zero)
THEN
526 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
527 stf(i)=slsfac*thk(numelc+neltg)*pm(20,mt)
529 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
535 . msgtype=msgwarning,
536 . anmode=aninfo_blind_2,
539 . i2=ixtg(nixtg,neltg),
545 . msgtype=msgwarning,
546 . anmode=aninfo_blind_2,
549 . i2=ixtg(nixtg,neltg),
554 IF(igap /= 0 .OR. (nty /= 7 .AND. nty /= 20)) gap_m(i)=gapm
558 ipg = tagprt_fric(ip)
561 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
562 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
563 ipartfricm(inrt) = ipl
579 IF (thk_part(ip) /= zero .AND. iintthick == 0)
THEN
580 dx=thk_part(ip)*gapscale
581 ELSEIF (thk(nelc) /= zero .AND. iintthick == 0)
THEN
582 dx=thk(nelc)*gapscale
583 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
584 dx=thk(nelc)*gapscale
586 dx=geo(1,mg)*gapscale
589 gapm_mx=
max(gapm_mx,gapm)
590 gapmn =
min(gapmn,dx)
595 IF(igtyp == 11 .AND. igmat > 0)
THEN
596 IF(slsfac < zero)
THEN
598 ELSEIF ( thk(nelc) /= zero .AND. iintthick
THEN
599 stf(i)=slsfac*thk(nelc)*geo(ipgmat + 2 ,mg)
601 stf(i)=slsfac*geo(1,mg)*geo(ipgmat
603 ELSEIF(igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
604 isubstack = iworksh(3,nelc)
605 IF(slsfac < zero)
THEN
608 stf(i)=slsfac*thk(nelc)*pm_stack(2 ,isubstack )
611 IF(slsfac < zero)
THEN
613 ELSEIF (thk(nelc) /= zero .AND. iintthick == 0)
THEN
614 stf(i)=slsfac*thk(nelc)*pm(20,mt)
616 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
622 . msgtype=msgwarning,
623 . anmode=aninfo_blind_2,
632 . msgtype=msgwarning,
633 . anmode=aninfo_blind_2,
641 IF(igap /=0 .OR. (nty /=7 .AND. nty /= 20)) gap_m(i)=gapm
648 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
649 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
650 ipartfricm(inrt) = ipl
660 print_error = .false.
662 CALL insol3d(x ,irect ,ixs ,nint ,nels,inrt,
663 .
area ,noint ,knod2els ,nod2els ,0 ,
664 . ixs10 ,ixs16 ,ixs20 ,tagelems,indexe,ninv,ielem,
665 . elem_linked_to_segment ,print_error,
666 . nin25,nty, flag_elem_inter25 )
668 node_id(1:4) = itab(irect(1:4,inrt))
671 . msgtype=msgwarning,
672 . anmode=aninfo_blind_1,
687 IF(intth > 0 ) ieles(i) = nels
696 stf(i)=slsfac*fillsol(nels)*
area*
area*pm(32,mt)/vol
700 . msgtype=msgwarning,
701 . anmode=aninfo_blind_2,
710 . msgtype=msgwarning,
711 . anmode=aninfo_blind_2,
725 . ipg , intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
726 . intbuf_fric_tab(intfric)%TABPARTS_FRIC, ipl )
727 ipartfricm(inrt) = ipl
736 CALL incoq3(irect ,ixc ,ixtg ,nint ,nelc ,
737 . neltg ,inrt ,geo ,pm ,knod2elc ,
738 . knod2eltg ,nod2elc ,nod2eltg ,thk ,nty ,
739 . igeo ,pm_stack ,iworksh )
749 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
750 dx=thk_part(ip)*gapscale
751 ELSEIF (thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
752 dx=thk(numelc+neltg)*gapscale
753 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
754 dx=thk(numelc+neltg)*gapscale
756 dx=geo(1,mg)*gapscale
759 gapm_mx=
max(gapm_mx,gapm)
760 gapmn =
min(gapmn,dx)
765 IF(slsfac < zero)
THEN
767 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
768 stf(i)=slsfac*thk(numelc+neltg)*geo(ipgmat + 2 ,mg)
770 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
772 ELSEIF(igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
773 isubstack = iworksh(3,numelc+neltg)
774 IF(slsfac < zero)
THEN
777 stf(i)=slsfac*thk(numelc+neltg)*pm_stack(2 ,isubstack)
780 IF(slsfac < zero)
THEN
782 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
783 stf(i)=slsfac*thk(numelc+neltg)*pm(20,mt)
785 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
791 . msgtype=msgwarning,
792 . anmode=aninfo_blind_2,
795 . i2=ixtg(nixtg,neltg),
801 . msgtype=msgwarning,
802 . anmode=aninfo_blind_2,
805 . i2=ixtg(nixtg,neltg
813 ipg = tagprt_fric(ip)
816 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
826 ELSEIF(nelc /= 0)
THEN
832 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
833 dx=thk_part(ip)*gapscale
834 ELSEIF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
835 dx=thk(nelc)*gapscale
836 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
837 dx=thk(nelc)*gapscale
839 dx=geo(1,mg)*gapscale
842 gapm_mx=
max(gapm_mx,gapm)
843 gapmn =
min(gapmn,dx)
847 IF(igtyp == 11 .AND. igmat > 0)
THEN
848 IF(slsfac < zero)
THEN
850 ELSEIF (thk(nelc) /= zero .AND. iintthick == 0)
THEN
851 stf(i)=slsfac*thk(nelc)*geo(ipgmat + 2 ,mg)
853 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
855 ELSEIF(igtyp == 52 .OR. ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
856 isubstack = iworksh(3,nelc)
857 IF(slsfac < zero)
THEN
860 stf(i)=slsfac*thk(nelc)*pm_stack(2 ,isubstack)
863 IF(slsfac < zero)
THEN
865 ELSEIF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
866 stf(i)=slsfac*thk(nelc)*pm(20,mt)
868 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
874 . msgtype=msgwarning,
875 . anmode=aninfo_blind_2,
884 . msgtype=msgwarning,
885 . anmode=aninfo_blind_2,
896 ipg = tagprt_fric(ip)
899 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
900 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
901 ipartfricm(inrt) = ipl
907 IF(igap /= 0 .OR. (nty /= 7 .AND. nty /= 20)) gap_m(i)=gapm
913 IF(nels+nelc+neltg == 0)
THEN
919 . anmode=aninfo_blind_2,
927 . anmode=aninfo_blind_2,
937 IF(numels > 0)
DEALLOCATE(tagelems,indexe)
940 . msgtype=msgwarning,
941 . anmode=aninfo_blind_1,
946 . msgtype=msgwarning,
947 . anmode=aninfo_blind_1,
951 IF(ninv > 0 .AND.nint>0)
953 . msgtype=msgwarning,
954 . anmode=aninfo_blind_1,
959 IF(ninv > 0 .AND.nint< 0)
961 . msgtype=msgwarning,
962 . anmode=aninfo_blind_1,
969 DO i=nrt+1,nrt+nrt_ige
971 IF(intth > 0) ieles(i) = 0
972 IF(slsfac < zero)stf(i)=slsfac
975 CALL i4gmx3(x,irect,inrt,gapmx)
980 . inrt ,
area ,noint ,0 ,igrsurf%ELTYP_IGE,
981 . ixig3d ,kxig3d ,igeo ,igrsurf%ELEM_IGE)
985 ipid = kxig3d(2,nelig3d)
989 coin_ige(1) = (px+1)*py+1
990 coin_ige(2) = (px+1)*(py+1)
993 coin_ige(5) = (px+1)*(py+1)*pz+(px+1)*py+1
994 coin_ige(6) = (px+1)*(py+1)*(pz+1)
995 coin_ige(7) = (px+1)*(py+1)*pz+px+1
996 coin_ige(8) = (px+1)*(py+1)*pz+1
998 xc(jj)=x(1,ixig3d(kxig3d(4,nelig3d)+coin_ige(jj)-1))
999 yc(jj)=x(2,ixig3d(kxig3d(4,nelig3d)+coin_ige(jj)-1))
1000 zc(jj)=x(3,ixig3d(kxig3d(4,nelig3d)+coin_ige(jj)-1))
1003 stf(i)=slsfac*
area*
area*pm(32,mt)/vol
1004 stf(i)=stf(i)*((px+1)*(py+1)+(py+1)*(pz+1)+(pz+1)*(px+1))/3
1008 . msgtype=msgwarning,
1009 . anmode=aninfo_blind_2,
1012 . i2=kxig3d(5,nelig3d),
1013 . c2=
'ISOGEOMETRIC SOLID',
1018 . msgtype=msgwarning,
1019 . anmode=aninfo_blind_2,
1022 . i2=kxig3d(5,nelig3d),
1023 . c2=
'ISOGEOMETRIC SOLID',
1027 ELSEIF(nelig3d == 0)
THEN
1033 . anmode=aninfo_blind_2,
1041 . anmode=aninfo_blind_2,
1059 gap =
min(half*gapmx,gap)
1063 IF (it19 <= 0 .AND. .NOT.type18)
WRITE(iout,1300)gap
1067 IF (gapmin <= 0)
THEN
1074 IF ((inacti /= 7).AND.(gap > 0.5*gapmx) .AND. (irem_gap /= 2))
THEN
1077 . msgtype=msgwarning,
1078 . anmode=aninfo_blind_2,
1091 gapmin =
min(half*gapmx,gapmin)
1093 gapmin = em01 * gapmx
1095 IF (gapmin <= 0)
THEN
1102 IF (it19 <= 0 .AND. .NOT.type18)
WRITE(iout,1300)gapmin
1110 gap =
max(gaps_mx+gapm_mx,gapmin)
1114 IF(inacti /= 7.AND.gap > half*gapmx .AND. iddlevel == 1)
THEN
1117 . msgtype=msgwarning,
1127 IF(drad == zero)
THEN
1130 ELSEIF(drad < gap)
THEN
1134 WRITE(iout,2001)drad
1137 IF(drad > gapmx)
THEN
1139 . msgtype=msgwarning,
1140 . anmode=aninfo_blind_2,
1150 IF(intfric > 0)
THEN
1155 DO j= knod2els(nsv(i))+1,knod2els(nsv(i)+1)
1158 ipg = tagprt_fric(ip)
1159 IF(ipg > 0 .AND. ip > ipfmax)
THEN
1161 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
1162 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
1169 IF(ipfmax /= 0)
THEN
1170 ipartfrics(i) = ipflmax
1176 IF(numelc /= 0 .OR. numeltg /= 0)
THEN
1180 DO j= knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
1183 ipg = tagprt_fric(ip)
1184 IF(ipg > 0 .AND. ip
THEN
1186 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
1187 . intbuf_fric_tab(intfric)%TABPARTS_FRIC,ipl )
1195 DO j= knod2eltg(nsv(i))+1,knod2eltg(nsv(i)+1)
1198 ipg = tagprt_fric(ip)
1199 IF(ipg > 0.AND.ip > ipfmax)
THEN
1201 . ipg,intbuf_fric_tab(intfric)%S_TABPARTS_FRIC,
1202 . intbuf_fric_tab(intfric
1210 IF(ipfmax /= 0)
THEN
1211 ipartfrics(i) = ipflmax
1236 gapinf_s =
min(gapinf_s,gap_s(i))
1237 bgapsmx =
max(bgapsmx,gap_s(i))
1239 DO i = 1, nrt+nrt_ige
1240 gapinf_m =
min(gapinf_m,gap_m(i))
1242 gapinf=gapinf_s+gapinf_m
1243 gapinf=
max(gapinf,gapmin)
1245 DEALLOCATE( gap_s_l_tmp )
1247 1300
FORMAT(2x,
'GAP MIN = ',1pg20.13)
1248 2001
FORMAT(2x,
'Maximum distance for radiation computation = ',
subroutine i25sti3(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, gapscale, ixt, ixp, gapinf, gapmax_s, inacti, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, intth, ieles, ielem, areas, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, ixr, itab, bgapsmx, ixs10, msegtyp, nrt_sh, ixs16, ixs20, gap_n, ilev, gapmax_m, id, titr, igap0, pen_old, iparts, igeo, fillsol, pm_stack, iworksh, percent_size, gap_s_l, gap_m_l, knod2el1d, nod2el1d, intfric, tagprt_fric, ipartfrics, ipartfricm, intbuf_fric_tab, ivis2, gapm_mx, gaps_mx, gapm_l_mx, gaps_l_mx, ipartsm, drad, ipartt, ipartp, ipartr, ielem_m, idel_solid, elem_linked_to_segment, nin25, flag_elem_inter25)
subroutine inint3(inscr, x, ixs, ixc, pm, geo, ipari, nin, itab, ms, mwa, rwa, ixtg, iwrn, ikine, ixt, ixp, ixr, nelemint, iddlevel, ifiend, ale_connectivity, nsnet, nmnet, igrbric, iwcont, nsnt, nmnt, nsn2t, nmn2t, iwcin2, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf, ikine1, ielem21, sh4tree, sh3tree, ipart, ipartc, iparttg, thk, thk_part, nod2el1d, knod2el1d, ixs10, i_mem, resort, inter_cand, ixs16, ixs20, id, titr, iremnode, nremnode, iparts, kxx, ixx, igeo, intercep, lelx, intbuf_tab, fillsol, pm_stack, iworksh, kxig3d, ixig3d, tagprt_fric, intbuf_fric_tab, ipartt, ipartp, ipartx, ipartr, nsn_multi_connec, t2_add_connec, t2_nb_connec, t2_connec, nom_opt, icode, iskew, iremnode_edg, s_append_array, x_append, mass_append, n2d, flag_removed_node, nspmd, inter_type2_number, elem_linked_to_segment, sinscr, sicode, sitab, nin25, flag_elem_inter25, multi_fvm)