33 SUBROUTINE i2cor3(X ,IRECT ,NSV ,CAND_E ,CAND_N,
34 2 STF ,STFN ,GAPV ,IGAP ,GAP ,
35 3 GAP_S ,GAP_M ,ISTF ,NINT ,IXC ,
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 ,STIF ,IFLAG )
57#include "implicit_f.inc"
65 INTEGER IGAP, (4,*), NSV(*), CAND_E(*), CAND_N(*),ISTF,
66 . IXC(NIXC,*),IXTG(NIXTG,*),IPARTC(*),NOINT,
67 . IXS(NIXS,*), IXS10(*),KNOD2ELS(*),
68 . KNOD2ELC(*),KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
69 . NOD2ELTG(*),NINT,IGNORE,
70 . IXS16(*), IXS20(*),IPARTTG(*),IGEO(NPROPGI,*),
72 INTEGER,
INTENT(IN) :: IFLAG
75 . GAP, X(3,*), STF(*), STFN(*), GAPV(*), GAP_S(*), GAP_M(*),
76 . geo(npropg,*),thk(*),thk_part(*),pm(*),dsearch,pm_stack(*)
77 INTEGER,
DIMENSION(MVSIZ),
INTENT(INOUT) :: IX1,IX2,IX3,IX4,NSVG
78 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: X1,X2,X3,X4
79 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Y1,Y2,Y3,Y4
80 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Z1,Z2,Z3,Z4
81 my_real,
DIMENSION(MVSIZ),
INTENT(OUT) :: XI,YI,ZI
82 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: STIF
89#include "vect07_c.inc"
94 INTEGER I, IL, L, , IG,NODE1,NODE2,NODE3,NODE4,II,IAD,JJ,JJJ,
95 . IEL,MG,IP,NELS,NELC,NELTG
98 . THKSECND,THKMAIN,DD,DX1,DY1,DZ1,DX3,DY3,DZ3,VOL,AREA,GAPMIN,GAPMAX
111 IF(igap==0 .AND. ignore <= 1)
THEN
115 IF(iflag==1)
WRITE(iout,2001) gap
116 ELSEIF((ignore == 2 .OR. ignore == 3) .AND. dsearch /= zero)
THEN
120 IF(iflag==1)
WRITE(iout,2001) gap
121 ELSEIF(ignore >= 2)
THEN
126 DO iad = knod2elc(nsvg(i))+1,knod2elc(nsvg(i)+1)
130 IF ( thk_part(ip) /= zero)
THEN
131 thksecnd = thk_part(ip)
132 ELSEIF ( thk(iel) /= zero)
THEN
139 DO iad = knod2eltg(nsvg(i))+1,knod2eltg(nsvg(i)+1)
143 IF ( thk_part(ip) /= zero)
THEN
144 thksecnd = thk_part(ip)
145 ELSEIF ( thk(numelc+iel) /= zero)
THEN
146 thksecnd = thk(numelc+iel)
154 CALL insol3(x,irect,ixs,nint,nels,cand_e(i),
155 . area,noint,knod2els ,nod2els ,0 ,ixs10,
157 CALL incoq3(irect,ixc ,ixtg ,nint ,nelc ,
158 . neltg,cand_e(i),geo ,pm ,knod2elc ,
159 . knod2eltg ,nod2elc ,nod2eltg,thk,2,igeo,
160 . pm_stack , iworksh )
164 IF ( thk_part(ip) /= zero)
THEN
165 thkmain = thk_part(ip)
166 ELSEIF ( thk(numelc+neltg) /= zero)
THEN
174 IF ( thk_part(ip) /= zero)
THEN
175 thkmain = thk_part(ip)
176 ELSEIF ( thk(nelc) /= zero)
THEN
181 ELSEIF(nels/=0 .AND. nels <= numels8 .AND. ignore == 2)
THEN
193 node1=irect(1,cand_e(i))
194 node2=irect(2,cand_e(i))
195 node3=irect(3,cand_e(i))
196 node4=irect(4,cand_e(i))
198 dx1=(x(1,node1)-x(1,node3))
199 dy1=(x(2,node1)-x(2,node3))
200 dz1=(x(3,node1)-x(3,node3))
201 dd=sqrt(dx1**2+dy1**2+dz1**2)
203 dx3=(x(1,node2)-x(1,node4))
204 dy3=(x(2,node2)-x(2,node4))
205 dz3=(x(3,node2)-x(3,node4))
206 dd=
min(dd,sqrt(dx3**2+dy3**2+dz3**2))
207 gapv(i) =
max(zep05*dd,zep6*(thksecnd+thkmain))
208 gapmin =
min(gapmin,gapv(i))
209 gapmax =
max(gapmax,gapv(i))
211 IF(iflag==1)
WRITE(iout,2002) gapmin,gapmax
214 gapv(i) = gap_s(cand_n(i))+gap_m(cand_e(i))
215 gapv(i) =
max(gap,gapv(i))
216 gapmin =
min(gapmin,gapv(i))
217 gapmax =
max(gapmax,gapv(i))
219 IF(iflag==1)
WRITE(iout,2002) gapmin,gapmax
224 stif(i)=stf(cand_e(i))*stfn(cand_n(i))
265 2001
FORMAT(//,1x,
'SEARCH DISTANCE . . . . . . . . . . . . . .',1pg20.13/)
266 2002
FORMAT(//,1x,
'SEARCH DISTANCE . . . . . . . . . . . . . .BETWEEN',1pg20.13,
' AND ',1pg20.13/)
subroutine i2cor3(x, irect, nsv, cand_e, cand_n, stf, stfn, gapv, igap, gap, gap_s, gap_m, istf, 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, stif, iflag)