33 SUBROUTINE i2cor3(X ,IRECT ,NSV ,CAND_E ,CAND_N,
34 2 GAPV ,IGAP ,GAP ,first,last,
36 4 IXTG ,THK_PART,IPARTC,GEO , NOINT,
37 5 IXS ,IXS10 ,PM ,THK ,KNOD2ELS,
38 6 KNOD2ELC,KNOD2ELTG,NOD2ELS,NOD2ELC,NOD2ELTG,
39 7 IGNORE,IXS16 ,IXS20 ,IPARTTG,IGEO,DSEARCH ,
40 8 PM_STACK , IWORKSH ,IX1 ,IX2 ,
41 5 IX3 ,IX4 ,NSVG,X1 ,X2 ,
42 6 X3 ,X4 ,Y1 ,Y2 ,Y3 ,
43 7 Y4 ,Z1 ,Z2 ,Z3 ,Z4 ,
44 8 XI ,YI ,ZI ,gapmin,gapmax)
46 use element_mod ,
only :nixs,nixc,nixtg
50#include "implicit_f.inc"
58 INTEGER IGAP, IRECT(4,*), NSV(*), CAND_E(*), CAND_N(*),
59 . IXC(NIXC,*),IXTG(NIXTG,*),IPARTC(*),NOINT,
60 . IXS(NIXS,*), IXS10(*),KNOD2ELS(*),
61 . KNOD2ELC(*),KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
62 . NOD2ELTG(*),NINT,IGNORE,
63 . IXS16(*), IXS20(*),IPARTTG(*),IGEO(,*),
65 integer,
intent(in) :: first
66 integer,
intent(in) :: last
69 . gap, x(3,*), gapv(*),
70 . geo(npropg,*),thk(*),thk_part(*),pm(*),dsearch,pm_stack(*)
71 my_real,
intent(inout) :: gapmin,gapmax
72 INTEGER,
DIMENSION(MVSIZ),
INTENT(INOUT) :: IX1,IX2,IX3,IX4,NSVG
73 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: X1,X2,X3,X4
74 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Y1,Y2,Y3,Y4
75 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Z1,Z2,Z3,Z4
76 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: xi,yi,zi
83#include "vect07_c.inc"
88 INTEGER I, L, NN, IG,NODE1,NODE2,NODE3,NODE4,II,IAD,JJ,JJJ,
89 . IEL,MG,IP,NELS,NELC,NELTG
92 . THKSECND,THKMAIN,DD,DX1,DY1,DZ1,DX3,DY3,DZ3,VOL,AREA
103 IF(igap==0 .AND. ignore <= 1)
THEN
107 ELSEIF((ignore == 2 .OR. ignore == 3) .AND. dsearch /= zero)
THEN
111 ELSEIF(ignore >= 2)
THEN
116 DO iad = knod2elc(nsvg(i))+1,knod2elc(nsvg(i)+1)
120 IF ( thk_part(ip) /= zero)
THEN
121 thksecnd = thk_part(ip)
122 ELSEIF ( thk(iel) /= zero)
THEN
129 DO iad = knod2eltg(nsvg(i))+1,knod2eltg(nsvg(i)+1)
133 IF ( thk_part(ip) /= zero)
THEN
134 thksecnd = thk_part(ip)
135 ELSEIF ( thk(numelc+iel) /= zero)
THEN
136 thksecnd = thk(numelc+iel)
144 CALL insol3(x,irect,ixs,nint,nels,cand_e(i),
145 . area,noint,knod2els ,nod2els ,0 ,ixs10,
147 CALL incoq3(irect,ixc ,ixtg ,nint ,nelc ,
148 . neltg,cand_e(i),geo ,pm ,knod2elc ,
149 . knod2eltg ,nod2elc ,nod2eltg,thk,2,igeo,
150 . pm_stack , iworksh )
154 IF ( thk_part(ip) /= zero)
THEN
155 thkmain = thk_part(ip)
156 ELSEIF ( thk(numelc+neltg) /= zero)
THEN
157 thkmain = thk(numelc+neltg)
164 IF ( thk_part(ip) /= zero)
THEN
165 thkmain = thk_part(ip)
166 ELSEIF ( thk(nelc) /= zero)
THEN
171 ELSEIF(nels/=0 .AND. nels <= numels8 .AND. ignore == 2)
THEN
183 node1=irect(1,cand_e(i))
184 node2=irect(2,cand_e(i))
185 node3=irect(3,cand_e(i))
186 node4=irect(4,cand_e(i))
188 dx1=(x(1,node1)-x(1,node3))
189 dy1=(x(2,node1)-x(2,node3))
190 dz1=(x(3,node1)-x(3,node3))
191 dd=sqrt(dx1**2+dy1**2+dz1**2)
193 dx3=(x(1,node2)-x(1,node4))
194 dy3=(x(2,node2)-x(2,node4))
195 dz3=(x(3,node2)-x(3,node4))
196 dd=
min(dd,sqrt(dx3**2+dy3**2+dz3**2))
197 gapv(i) =
max(zep05*dd,zep6*(thksecnd+thkmain))
198 gapmin =
min(gapmin,gapv(i))
199 gapmax =
max(gapmax,gapv(i))
subroutine i2cor3(x, irect, nsv, cand_e, cand_n, gapv, igap, gap, first, last, nint, ixc, ixtg, thk_part, ipartc, geo, noint, ixs, ixs10, pm, thk, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, ignore, ixs16, ixs20, iparttg, igeo, dsearch, pm_stack, iworksh, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, gapmin, gapmax)