43 2 IXS ,IXC ,IXTG ,IXT ,
44 3 IXP ,WA ,NINT ,NTY ,
45 4 NOINT ,NRT ,NSN ,IRECT ,
46 5 NSV ,INACTI ,GAP ,IGAP ,
47 6 GAP_S ,GAP_M ,GAPMIN ,GAPINF ,
48 7 GAPMAX ,STFAC ,STF ,STFN ,
49 8 KNOD2ELS ,KNOD2ELC ,KNOD2ELTG ,NOD2ELS ,
50 9 NOD2ELC ,NOD2ELTG ,IGRSURF1 ,IFS2 ,
51 A IGRSURF2 ,INTTH ,IELES ,
52 B IELEC ,AREAS ,IPARTC ,IPARTTG ,
53 C THK ,THK_PART ,GAP_SH ,XANEW ,
54 D GAPSHMAX ,NBINFLG ,MBINFLG ,NLN ,
55 E NLG ,GAPSOL ,IXS10 ,IXS16 ,
56 F IXS20 ,ID,TITR ,IGEO ,PM_STACK ,
64 use element_mod ,
only : nixs,nixc,nixtg,nixt,nixp
68#include "implicit_f.inc"
80 INTEGER NRT, NINT, NTY, NOINT,NSN,IGAP,
82 INTEGER IRECT(4,*), IXS(NIXS,*), IXC(NIXC,*),
83 . NSV(*), IXTG(NIXTG,*), IXT(NIXT,*), IXP(NIXP,*),
84 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
85 . NOD2ELTG(*),IELES(*),INTTH,IELEC(*),
86 . IPARTC(*), IPARTTG(*),NBINFLG(*),MBINFLG(*),NLG(*) ,
87 . IXS10(6,*), IXS16(*), IXS20(*), IGEO(NPROPGI,*),IWORKSH(3,*)
90 . STFAC, GAP,GAPMIN,GAPINF, GAPMAX,GAPSHMAX,GAPSOLIDMAX,GAPSOL
93 . X(3,*), STF(*), PM(NPROPM,*), GEO(NPROPG,*), STFN(*),
94 . MS(*),WA(*),GAP_S(*),GAP_M(*),GAP_SH(*),AREAS(*),
95 . THK(*),THK_PART(*),XANEW(3,*),PM_STACK(20,*)
97 CHARACTER(LEN=NCHARTITLE) :: TITR
98 TYPE (SURF_) :: IGRSURF1
99 TYPE (SURF_) :: IGRSURF2
103 INTEGER NDX, I, J, INRT, NELS, MT, JJ, JJJ, NELC,
104 . MG, L, NELTG,IE,IP,NM1,
105 . igtyp,ipgmat,igmat,isubstack
108 . dxm, gapmx, gapmn,
area, vol, dx,gaps1,gaps2, gapm,
109 . gaptmp, gapscale,sx1,sy1,sz1,sx2,sy2,sz2,sx3,sy3,sz3,
110 . slsfac,gapinfs,gapinfm,gapsups,gapsupm,st
112 INTEGER BITUNSET,BITGET,BITSET
113 EXTERNAL bitunset,bitget,bitset
157 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
159 ELSEIF ( thk(i) /= zero .AND. iintthick == 0)
THEN
161 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp == 52)
THEN
166 wa(ixc(2,i))=
max(wa(ixc(2,i)),dx)
167 wa(ixc(3,i))=
max(wa(ixc(3,i)),dx)
168 wa(ixc(4,i))=
max(wa(ixc(4,i)),dx)
169 wa(ixc(5,i))=
max(wa(ixc(5,i)),dx)
175 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
177 ELSEIF (thk(numelc+i)/=zero .AND. iintthick==0)
THEN
178 dx=half*thk(numelc+i)
179 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
184 wa(ixtg(2,i))=
max(wa(ixtg(2,i)),dx)
185 wa(ixtg(3,i))=
max(wa(ixtg(3,i)),dx)
186 wa(ixtg(4,i))=
max(wa(ixtg(4,i)),dx)
190 dx=half*sqrt(geo(1,mg))
191 wa(ixt(2,i))=
max(wa(ixt(2,i)),dx)
196 dx=0.5*sqrt(geo(1,mg))
197 wa(ixp(2,i))=
max(wa(ixp(2,i)),dx)
198 wa(ixp(3,i))=
max(wa(ixp(3,i)),dx)
201 gap_s(i)=gapscale * wa(nsv(i))
202 gaps1=
max(gaps1,gap_s(i))
210 DO j= knod2elc(nsv(i))+1,knod2elc(nsv(i)+1)
212 sx1 = x(1,ixc(4,ie)) - x(1,ixc(2,ie))
213 sy1 = x(2,ixc(4,ie)) - x(2,ixc(2,ie))
214 sz1 = x(3,ixc(4,ie)) - x(3,ixc(2,ie))
215 sx2 = x(1,ixc(5,ie)) - x(1,ixc(3,ie))
216 sy2 = x(2,ixc(5,ie)) - x(2,ixc(3,ie))
217 sz2 = x(3,ixc(5,ie)) - x(3,ixc(3,ie))
218 sx3 = sy1*sz2 - sz1*sy2
219 sy3 = sz1*sx2 - sx1*sz2
220 sz3 = sx1*sy2 - sy1*sx2
221 areas(i) = areas(i) + one_over_8*sqrt
230 IF(slsfac >= zero)
THEN
235 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
237 ELSEIF ( thk(i) /= zero .AND. iintthick == 0)
THEN
239 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
244 wa(ixc(2,i))=
max(wa(ixc(2,i)),dx)
245 wa(ixc(3,i))=
max(wa(ixc(3,i)),dx)
246 wa(ixc(4,i))=
max(wa(ixc(4,i)),dx)
247 wa(ixc(5,i))=
max(wa(ixc(5,i)),dx)
253 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
255 ELSEIF (thk(numelc+i)/=zero .AND. iintthick==0)
THEN
256 dx=half*thk(numelc+i)
257 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
258 dx=half*thk(numelc+i)
262 wa(ixtg(2,i))=
max(wa(ixtg(2,i)),dx)
263 wa(ixtg(3,i))=
max(wa(ixtg(3,i)),dx)
264 wa(ixtg(4,i))=
max(wa(ixtg(4,i)),dx)
268 dx=half*sqrt(geo(1,mg))
269 wa(ixt(2,i))=
max(wa(ixt(2,i)),dx)
270 wa(ixt(3,i))=
max(wa(ixt(3,i)),dx)
274 dx=0.5*sqrt(geo(1,mg))
275 wa(ixp(2,i))=
max(wa(ixp(2,i)),dx)
276 wa(ixp(3,i))=
max(wa(ixp(3,i)),dx)
295 IF(intth > 0 ) ieles(i
302 CALL i4gmx3(x,irect,inrt,gapmx)
306 CALL i20nelts(x ,irect(1,inrt),ixs ,nint,nels ,
307 . inrt ,
area ,noint,0 ,igrsurf1%ELTYP,
310 CALL i20nelts(x ,irect(1,inrt),ixs ,nint,nels ,
311 . inrt-nm1 ,
area ,noint,0 ,igrsurf2%ELTYP,
324 stf(i)=slsfac*
area*
area*pm(100,mt)/vol
328 . msgtype=msgwarning,
329 . anmode=aninfo_blind_2,
338 . msgtype=msgwarning,
339 . anmode=aninfo_blind_2,
349 gapsolidmax =
min(gapsolidmax,vol/(
area*four))
350 gapmn=
min(gapmn,half*gap_sh(i))
352 tag(irect(1,inrt)) = 1
353 tag(irect(2,inrt)) = 1
354 tag(irect(3,inrt)) = 1
355 tag(irect(4,inrt)) = 1
361 mbinflg(i)=bitset(mbinflg(i),8)
365 CALL ineltc(nelc ,neltg ,inrt ,igrsurf1%ELTYP,igrsurf1%ELEM)
367 CALL ineltc(nelc ,neltg ,inrt-nm1,igrsurf2%ELTYP,igrsurf2%ELEM)
374 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
375 dx=thk_part(ip)*gapscale
376 ELSEIF(thk(numelc+neltg)/=zero.AND.iintthick==0)
THEN
378 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
379 dx=thk(numelc+neltg)*gapscale
381 dx=geo(1,mg)*gapscale
384 gaps2=
max(gaps2,gapm)
385 gapmn =
min(gapmn,dx)
390 IF(igtyp == 11 .AND. igmat > 0)
THEN
391 IF ( thk(numelc+neltg) /=zero.AND.iintthick==0)
THEN
392 stf(i)=slsfac*thk(numelc+neltg)*geo(ipgmat + 2 ,mg)
394 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
396 ELSEIF(igtyp == 52 .OR.
397 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
398 isubstack = iworksh(3,numelc+neltg)
399 st=pm_stack(2,isubstack)
400 stf(i)=slsfac*thk(numelc+neltg)*st
402 IF ( thk(numelc+neltg) /=zero.AND.iintthick==0)
THEN
403 stf(i)=slsfac*thk(numelc+neltg)*pm(20,mt)
404 ELSEIF(igtyp == 17 .OR. igtyp == 51)
THEN
405 stf(i)=slsfac*thk(numelc+neltg)*pm(20,mt)
407 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
413 . msgtype=msgwarning,
414 . anmode=aninfo_blind_2,
417 . i2=ixtg(nixtg,neltg),
423 . msgtype=msgwarning,
424 . anmode=aninfo_blind_2,
427 . i2=ixtg(nixtg,neltg),
432 IF(igap/=0) gap_m(i)=gapm
433 mbinflg(i)=bitset(mbinflg(i),3)
441 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
442 dx=thk_part(ip)*gapscale
443 ELSEIF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
444 dx=thk(nelc)*gapscale
445 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
446 dx=thk(nelc)*gapscale
448 dx=geo(1,mg)*gapscale
451 gaps2=
max(gaps2,gapm)
456 IF(igtyp == 11 .AND. igmat > 0)
THEN
457 IF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
458 stf(i)=slsfac*thk(nelc)*geo(ipgmat + 2 ,mg)
460 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2
462 ELSEIF(igtyp==52 .OR.
463 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
464 isubstack = iworksh(3,nelc)
465 st=pm_stack(2,isubstack)
466 stf(i)=slsfac*thk(nelc)*st
468 IF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
469 stf(i)=slsfac*thk(nelc)*pm(20,mt)
470 ELSEIF(igtyp == 17)
THEN
471 stf(i)=slsfac*thk(nelc)*pm(20,mt)
473 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
479 . msgtype=msgwarning,
480 . anmode=aninfo_blind_2,
489 . msgtype=msgwarning,
490 . anmode=aninfo_blind_2,
498 IF(igap/=0) gap_m(i)=gapm
499 mbinflg(i)=bitset(mbinflg(i),4)
509 CALL insol3(x,irect,ixs,nint,nels,inrt,
510 .
area,noint,knod2els ,nod2els ,0,ixs10,
515 IF(intth > 0 ) ieles(i) = nels
524 stf(i)=slsfac*
area*
area*pm(100,mt)/vol
528 . msgtype=msgwarning,
529 . anmode=aninfo_blind_2,
538 . msgtype=msgwarning,
539 . anmode=aninfo_blind_2,
549 gapsolidmax =
min(gapsolidmax,vol/(
area*four))
550 gapmn=
min(gapmn,half*gap_sh(i))
552 tag(irect(1,inrt)) = 1
553 tag(irect(2,inrt)) = 1
554 tag(irect(3,inrt)) = 1
555 tag(irect(4,inrt)) = 1
561 mbinflg(i)=bitset(mbinflg(i),8)
566 CALL incoq3(irect,ixc ,ixtg ,nint ,nelc ,
567 . neltg,inrt,geo ,pm ,knod2elc ,
568 . knod2eltg ,nod2elc ,nod2eltg,thk,nty,igeo,
569 . pm_stack , iworksh)
576 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
577 dx=thk_part(ip)*gapscale
578 ELSEIF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
579 dx=thk(numelc+neltg)*gapscale
580 ELSEIF(igtyp ==17)
THEN
581 dx=thk(numelc+neltg)*gapscale
583 dx=geo(1,mg)*gapscale
586 gaps2=
max(gaps2,gapm)
587 gapmn =
min(gapmn,dx)
592 IF(igtyp == 11 .AND. igmat > 0)
THEN
593 IF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
594 stf(i)=slsfac*thk(numelc+neltg)*geo(ipgmat + 2 ,mg)
596 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
598 ELSEIF(igtyp==52 .OR.
599 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
600 isubstack = iworksh(3,numelc+neltg)
601 st=pm_stack(2,isubstack)
602 stf(i)=slsfac*thk(numelc+neltg)*st
604 IF ( thk(numelc+neltg) /= zero .AND. iintthick == 0)
THEN
605 stf(i)=slsfac*thk(numelc+neltg)*pm(20,mt)
606 ELSEIF(igtyp == 17)
THEN
607 stf(i)=slsfac*thk(numelc+neltg)*pm(20,mt)
609 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
615 . msgtype=msgwarning,
616 . anmode=aninfo_blind_2,
619 . i2=ixtg(nixtg,neltg),
625 . msgtype=msgwarning,
626 . anmode=aninfo_blind_2,
629 . i2=ixtg(nixtg,neltg),
634 IF(igap/=0) gap_m(i)=gapm
635 mbinflg(i)=bitset(mbinflg(i),3)
641 IF ( thk_part(ip) /= zero .AND. iintthick == 0)
THEN
642 dx=thk_part(ip)*gapscale
643 ELSEIF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
644 dx=thk(nelc)*gapscale
645 ELSEIF(igtyp ==17)
THEN
646 dx=thk(nelc)*gapscale
648 dx=geo(1,mg)*gapscale
651 gaps2=
max(gaps2,gapm)
652 gapmn =
min(gapmn,dx)
657 IF(igtyp == 11 .AND. igmat > 0)
THEN
658 IF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
659 stf(i)=slsfac*thk(nelc)*geo(ipgmat + 2 ,mg)
661 stf(i)=slsfac*geo(1,mg)*geo(ipgmat + 2 ,mg)
663 ELSEIF(igtyp==52 .OR.
664 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
665 isubstack = iworksh(3,nelc)
666 st=pm_stack(2,isubstack)
667 stf(i)=slsfac*thk(nelc)*st
669 IF ( thk(nelc) /= zero .AND. iintthick == 0)
THEN
670 stf(i)=slsfac*thk(nelc)*pm(20,mt)
671 ELSEIF(igtyp ==17)
THEN
672 stf(i)=slsfac*thk(nelc)*pm(20,mt)
674 stf(i)=slsfac*geo(1,mg)*pm(20,mt)
680 . msgtype=msgwarning,
681 . anmode=aninfo_blind_2,
690 . msgtype=msgwarning,
691 . anmode=aninfo_blind_2,
699 IF(igap/=0) gap_m(i)=gapm
700 mbinflg(i)=bitset(mbinflg(i),4)
703 IF(nels+nelc+neltg==0)
THEN
709 . anmode=aninfo_blind_2,
717 . anmode=aninfo_blind_2,
734 gap =
min(half*gapmx,gap)
741 IF(inacti/=7.AND.gap>0.5*gapmx)
THEN
744 . msgtype=msgwarning,
745 . anmode=aninfo_blind_2,
758 gapmin =
min(half*gapmx,gapmin)
761 gapmin =
min(gapmn,em01 * gapmx)
768 gap =
max(gaps1+gaps2,gapmin)
770 IF(inacti/=7.AND.gap>half*gapmx)
THEN
773 . msgtype=msgwarning,
774 . anmode=aninfo_blind_2,
792 IF(gap_m(i) == zero)
THEN
793 gap_sh(i) =
min(gapsolidmax,gap_sh(i))
794 gap_sh(i) =
max(gapsol,gap_sh(i))
796 gap_m(i)=gap_m(i)+two*gap_sh(i)
812 gapinfs =
min(gapinfs,gap_s(i))
813 gapsups =
max(gapsups,gap_s(i))
817 gapinfm =
min(gapinfm,gap_m(i))
818 gapsupm =
max(gapsupm,gap_m(i))
819 gapshmax =
max(gapshmax,gap_sh(i))
821 gapinf=
max(gapinfs+gapinfm,gapmin)
822 gap =
min(gapsups+gapsupm,gapmax)
826 IF(tag(nlg(i)) == 1)nbinflg(i)=bitunset(nbinflg(i),7)
830 1300
FORMAT(2x,
'GAP MIN = ',1pg20.13)
849 1 X ,IXLIN ,STF ,IXS ,PM ,
850 2 GEO ,NRT ,IXC ,NINTR ,SLSFAC,
851 3 NTY ,GAPMAX,NOINT ,GAP_SM,
852 4 MS ,IXTG ,IXT ,IXP ,IXR ,
853 5 IGAP ,GAPMIN,GAP0 ,GAPINF,NSNE ,
854 6 IPARTC,IPARTTG,THK ,THK_PART,IXS10,
855 7 ID ,TITR ,KXX ,IXX ,IGEO,
856 8 NOD2EL1D,KNOD2EL1D,KNOD2ELS,KNOD2ELC,KNOD2ELTG,
857 9 NOD2ELS,NOD2ELC,NOD2ELTG ,LELX ,PM_STACK,IWORKSH)
863 use element_mod ,
only : nixs,nixc,nixtg,nixt,nixp,nixr
867#include "implicit_f.inc"
871#include "units_c.inc"
872#include "param_c.inc"
873#include "com04_c.inc"
874#include "scr08_c.inc"
875#include "scr23_c.inc"
879 INTEGER NRT, NINTR, , NOINT,IGAP,NSNE
882 . , GAPMAX,GAPMIN,GAP0
883 INTEGER IXLIN(2,*), IXS(NIXS,*), IXC(NIXC,*),
884 . IXTG(NIXTG,*),IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
885 . IPARTC(*), IPARTTG(*),IXS10(*),KXX(NIXX,*),IXX(*),
887 . knod2els(*), knod2elc(*), knod2eltg(
888 . nod2els(*), nod2elc(*), nod2eltg(*),
889 . nod2el1d(*),knod2el1d(*),iworksh(3,*)
892 . x(3,*), stf(*), pm(npropm,*), geo(npropg,*),
893 . ms(*),gap_sm(*),xl2, gapinf,thk(*),thk_part(*),lelx(*),
896 CHARACTER(LEN=NCHARTITLE) :: TITR
900 INTEGER NDX, I, INRT, NELS, MT, JJ, JJJ, NELC,
901 . MG, NELTG,NELT,NELP,NELR,
902 . IGTYP,NELX,IPGMAT,IGMAT,ISUBSTACK
905 . dxm, gapmx, gapmn,
area, vol, dx,gap1,gaps1,gaptmp,
926 CALL i11gmx3(x,ixlin,inrt,gapmx,xl2)
930 CALL i11sol(x,ixlin,ixs,nintr,nels,inrt,
931 .
area,noint,knod2els,nod2els,ixs10)
943 stf(i)=slsfac*vol*pm(100,mt)/xl2
951 . msgtype=msgwarning,
952 . anmode=aninfo_blind_2,
963 . msgtype=msgwarning,
964 . anmode=aninfo_blind_2,
976 CALL i11coq(ixlin,ixc ,ixtg,nintr,nelc ,
977 . neltg,inrt,geo,pm,thk,igeo,
978 . knod2elc,knod2eltg,nod2elc,nod2eltg,
979 . pm_stack, iworksh )
986 IF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52)
987 . dx = thk(numelc + neltg)
989 gaps1=
max(gaps1,gap_sm(i))
990 gapmn =
min(gapmn,dx)
996 IF(igtyp == 11 .AND. igmat > 0)
THEN
997 stf(i)=slsfac*dx*geo(ipgmat + 2 ,mg)
998 ELSEIF(igtyp==52 .OR.
999 . ((igtyp == 17 .OR. igtyp == 51 ) .AND. igmat > 0))
THEN
1000 isubstack = iworksh(3,neltg + numelc)
1001 stf(i)=slsfac*dx*pm_stack(2,isubstack)
1003 stf(i)=slsfac*dx*pm(20,mt)
1009 . msgtype=msgwarning,
1010 . anmode=aninfo_blind_2,
1013 . i2=ixtg(nixtg,neltg),
1021 . msgtype=msgwarning,
1022 . anmode=aninfo_blind_2,
1025 . i2=ixtg(nixtg,neltg),
1030 ELSEIF(nelc/=0)
THEN
1036 IF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp ==52)
1039 gaps1=
max(gaps1,gap_sm(i))
1040 gapmn =
min(gapmn,dx)
1045 IF(igtyp == 11 .AND. igmat > 0)
THEN
1046 stf(i)=slsfac*dx*geo(ipgmat + 2 ,mg)
1047 ELSEIF(igtyp ==52 .OR.
1048 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
1049 isubstack = iworksh(3,nelc)
1050 stf(i)=slsfac*dx*pm_stack(2,isubstack)
1052 stf(i)=slsfac*dx*pm(20,mt)
1058 . msgtype=msgwarning,
1059 . anmode=aninfo_blind_2,
1062 . i2=ixc(nixc,nelc),
1070 . msgtype=msgwarning,
1071 . anmode=aninfo_blind_2,
1074 . i2=ixc(nixc,nelc),
1083 CALL i11fil(ixlin,ixt,ixp,ixr,nintr,nelt ,
1084 . nelp,nelr,nelx,inrt,nod2el1d,
1085 . knod2el1d,kxx,ixx)
1092 IF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
1093 . dx = sqrt(thk(numelc + nelt))
1094 gap_sm(i)=
max(gap_sm(i),half*dx)
1095 gaps1=
max(gaps1,gap_sm(i))
1096 gapmn =
min(gapmn,dx)
1101 IF(igtyp == 11 .AND. igmat > 0)
THEN
1102 stf(i)=slsfac*dx*geo(ipgmat + 2 ,mg)
1103 ELSEIF((igtyp == 17 .OR. igtyp == 17) .AND. igmat > 0)
THEN
1104 isubstack = iworksh(3,numelc + nelt)
1105 stf(i)=slsfac*dx*pm_stack(2,isubstack)
1107 stf(i)=slsfac*dx*pm(20,mt)
1113 . msgtype=msgwarning,
1114 . anmode=aninfo_blind_2,
1117 . i2=ixt(nixt,nelt),
1125 . msgtype=msgwarning,
1126 . anmode=aninfo_blind_2,
1129 . i2=ixt(nixt,nelt),
1134 ELSEIF(nelp/=0)
THEN
1139 gap_sm(i)=
max(gap_sm(i),half*dx)
1140 gaps1=
max(gaps1,gap_sm(i))
1141 gapmn =
min(gapmn,dx)
1145 stf(i)=slsfac*dx*pm(20,mt)
1150 . msgtype=msgwarning,
1151 . anmode=aninfo_blind_2,
1154 . i2=ixp(nixp,nelp),
1162 . msgtype=msgwarning,
1163 . anmode=aninfo_blind_2,
1166 . i2=ixp(nixp,nelp),
1171 ELSEIF(nelr/=0)
THEN
1176 igtyp=nint(geo(12,mg))
1177 IF(igtyp==4.OR.igtyp==12)
THEN
1178 stf(i)=slsfac*geo(2,mg)
1179 ELSEIF(igtyp==8.OR.igtyp==13)
THEN
1180 stf(i)=slsfac*
max(geo(3,mg),geo(10,mg),geo(15,mg))
1181 ELSEIF(igtyp == 23)
THEN
1182 stf(i)=slsfac*
max(pm(191,mt),pm(192,mt),pm(193,mt))
1183 ELSEIF(igtyp==25)
THEN
1184 stf(i)=slsfac*geo(10,mg)
1185 ELSEIF(igtyp>=29)
THEN
1186 stf(i)=slsfac*geo(3,mg)
1188 WRITE(6,
'(A)')
'INTERNAL ERROR 987'
1196 . msgtype=msgwarning,
1197 . anmode=aninfo_blind_2,
1200 . i2=ixr(nixr,nelr),
1208 . msgtype=msgwarning,
1209 . anmode=aninfo_blind_2,
1212 . i2=ixr(nixr,nelr),
1217 ELSEIF(nelx/=0)
THEN
1221 stf(i)=slsfac*get_u_geo(4,mg)*(kxx(3,nelx)-1)/lelx(nelx)
1225 . msgtype=msgwarning,
1226 . anmode=aninfo_blind_2,
1229 . i2=kxx(nixx,nelx),
1235 . msgtype=msgwarning,
1236 . anmode=aninfo_blind_2,
1239 . i2=kxx(nixx,nelx),
1246 IF(nels+nelc+neltg+nelt+nelp+nelr+numelx==0.)
THEN
1251 . anmode=aninfo_blind_2,
1259 . anmode=aninfo_blind_2,
1279 gap1 =
min(half*gapmx,dxm/ndx)
1283 IF(nintr<0)
WRITE(iout,1300)half*(gapmin+gap1)
1286 IF(nintr<0) gap1 = half*(gapmin+gap1)
1290 IF(gap1>half*gapmx)
THEN
1295 . msgtype=msgwarning,
1296 . anmode=aninfo_blind_2,
1310 gap1 =
min(half*gapmx,gapmn)
1314 IF(nintr<0)
WRITE(iout,1300)half*(gapmin+gap1)
1321 gapmin = half*(gapmin+gap1)
1322 gapmax =
max(gapmax+gaps1,gapmin)
1325 IF(gapmax>half*gapmx)
THEN
1328 . msgtype=msgwarning,
1329 . anmode=aninfo_blind_2,
1352 gapinf =
min(gapinf,gap_sm(i))
1357 1300
FORMAT(2x,
'COMPUTED GAP = ',1pg20.13)
1365 SUBROUTINE i20nlg(NLN ,NRTM,NSN ,NLINS ,NLINM ,
1366 . NLG ,IRECT,NSV ,IXLINS,IXLINM,
1367 . NMN ,NSNE ,NMNE,MSR ,NSVE ,
1368 . MSRE ,STFA ,DXANC,XANEW,X ,
1373#include "implicit_f.inc"
1377#include "com04_c.inc"
1381 INTEGER NLN,NRTM, NSN,NLINS ,NLINM ,NMN ,NSNE ,NMNE
1382 INTEGER IRECT(4,NRTM), NSV(NSN),IXLINS(2,NLINS),IXLINM(2,NLINM),
1383 . msr(nmn),nsve(nsne),msre(nmne),nlg(nln)
1385 . stfa(*),dxanc(3,*),xanew(3,*),x(3,*),penia
1406 nsve(k)=tag(nsve(k))
1409 msre(k)=tag(msre(k))
1413 irect(1,k)=tag(irect(1,k))
1414 irect(2,k)=tag(irect(2,k))
1415 irect(3,k)=tag(irect(3,k))
1416 irect(4,k)=tag(irect(4,k))
1419 ixlins(1,k)=tag(ixlins(1,k))
1420 ixlins(2,k)=tag(ixlins(2,k))
1423 ixlinm(1,k)=tag(ixlinm(1,k))
1424 ixlinm(2,k)=tag(ixlinm(2,k))
1446 dxanc(1,i) = xanew(1,nlg(i))-x(1,nlg(i))
1447 dxanc(2,i) = xanew(2,nlg(i))-x(2,nlg(i))
1448 dxanc(3,i) = xanew(3,nlg(i))-x(3,nlg(i))
1449 penia(4,i) = sqrt(dxanc(1,i)*dxanc(1,i)
1450 + +dxanc(2,i)*dxanc(2,i)
1451 + +dxanc(3,i)*dxanc(3,i))
1452 penia(5,i) = penia(4,i)
1453 aaa = one/
max(penia(4,i),em20)
1454 penia(1,i) = dxanc(1,i)*aaa
1455 penia(2,i) = dxanc(2,i)*aaa
1456 penia(3,i) = dxanc(3,i)*aaa
subroutine i20sti3(pm, geo, x, ms, ixs, ixc, ixtg, ixt, ixp, wa, nint, nty, noint, nrt, nsn, irect, nsv, inacti, gap, igap, gap_s, gap_m, gapmin, gapinf, gapmax, stfac, stf, stfn, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, igrsurf1, ifs2, igrsurf2, intth, ieles, ielec, areas, ipartc, iparttg, thk, thk_part, gap_sh, xanew, gapshmax, nbinflg, mbinflg, nln, nlg, gapsol, ixs10, ixs16, ixs20, id, titr, igeo, pm_stack, iworksh)