34 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
35 2 IXR ,KXSP ,IXTG ,INDEX ,ITRI ,
36 3 NSIGSH ,NSIGS ,NSIGSPH ,KSYSUSR ,KSIGSH3 ,
37 4 NSIGRS ,NSIGI ,NSIGBEAM ,NSIGTRUSS ,
38 5 PTSHEL ,PTSH3N ,PTSOL ,PTQUAD ,PTSPH ,
39 6 PTSPRI ,PTBEAM ,PTTRUSS ,SIGI ,SIGSH ,
40 7 SIGSP ,SIGSPH ,SIGRS ,SIGBEAM ,SIGTRUSS ,
41 8 ID_SIGSH ,ID_SOLID_SIGI,ID_QUAD_SIGI ,ID_SIGSPRI ,ID_SIGBEAM ,
42 9 ID_SIGTRUSS,WORK ,ID_SIGSPHCEL ,IS_STATE)
47 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
51#include "implicit_f.inc"
62 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IXTG(NIXTG,*)
63 INTEGER INDEX(*),ITRI(*),KXSP(*),KSYSUSR(*)
64 INTEGER PTSHEL(*),PTSH3N(*),PTSOL(*),PTQUAD(*),PTSPH(*),PTSPRI(*),PTBEAM(*),PTTRUSS(*)
65 INTEGER NSIGI,NSIGSH,NSIGS, NSIGSPH, NSIGRS, NSIGBEAM, NSIGTRUSS, KSIGSH3
66 INTEGER ID_SIGSH(*), ID_SOLID_SIGI(*), ID_QUAD_SIGI(*)
67 INTEGER ID_SIGSPRI(*), ID_SIGBEAM(*), ID_SIGTRUSS(*)
70 . SIGI(NSIGS,*),SIGSH(MAX(1,NSIGSH),*),SIGTRUSS(NSIGTRUSS,*),
71 . sigsp(nsigi,*),sigsph(nsigsph,*),sigrs(nsigrs,*),sigbeam(nsigbeam,*)
73 INTEGER,
INTENT(INOUT) :: ID_SIGSPHCEL(NUMSPH)
74 LOGICAL,
INTENT(IN) :: IS_STATE
79 INTEGER ISYS,JSYS,II,IE,JE,COMPT,NUMSHEL0
84 IF (abs(isigi) == 3.OR.abs(isigi) == 4.OR.abs(isigi) == 5)
THEN
93 itri(isys) =id_sigsh(isys)
95 CALL my_orders(0,work,itri,index,numshel,1)
104 IF(sigsh(k,jsys)/=zero)
THEN
105 IF(sigsh(k,isys)/=zero.AND.
106 . sigsh(k,isys)/=sigsh(k,jsys))
THEN
109 . anmode=aninfo_blind_1,
112 sigsh(k,isys)=sigsh(k,jsys)
130 sigsh(k,compt)=sigsh(k,j)
132 id_sigsh(compt)=id_sigsh(j)
146 itri(isys) = id_sigsh(isys)
148 CALL my_orders(0,work,itri,index,numshel,1)
151 ksysusr(j)=id_sigsh(isys)
152 ksysusr(numshel+j)=isys
157 isys=uel2sys(ixc(nixc,i),ksysusr,numshel)
168 itri(isys) = id_sigsh(ii)
170 CALL my_orders(0,work,itri,index,numsh3n,1)
172 isys = numshel0 + index(1)
175 jsys=numshel0+index(j)
179 IF(sigsh(k,jsys)/=zero)
THEN
180 IF(sigsh(k,isys)/=zero.AND.
181 . sigsh(k,isys)/=sigsh(k,jsys))
THEN
184 . anmode=aninfo_blind_1,
187 sigsh(k,isys)=sigsh(k,jsys)
200 ie=id_sigsh(numshel0 + j)
203 IF(numshel+compt<numshel0+j)
THEN
205 sigsh(k,numshel+compt)=sigsh(k,numshel0+j)
207 id_sigsh(numshel+compt)=id_sigsh(numshel0+j)
209 sigsh(1,numshel0+j)=zero
210 id_sigsh(numshel0+j)=0
217 IF (numsh3n > 0)
THEN
221 itri(isys) = id_sigsh(ii)
223 CALL my_orders(0,work,itri,index,numsh3n,1)
228 ksysusr(j) = id_sigsh(ii)
229 ksysusr(numsh3n + j) = isys
234 isys = uel2sys(ixtg(nixtg,i),ksysusr,numsh3n)
245 itri(isys) = id_solid_sigi(isys)
247 CALL my_orders(0,work,itri,index,numsol,1)
251 ie =id_solid_sigi(isys)
254 je =id_solid_sigi(jsys)
257 IF((sigi(k,jsys)/=zero) .AND.
258 . (sigi(k,isys)/=sigi(k,jsys)) )
THEN
259 IF(sigi(k,isys)/=zero)
THEN
262 . anmode=aninfo_blind_1,
265 sigi(k,isys)=sigi(k,jsys)
270 IF(sigi(k,jsys)/=zero .AND.
271 . (sigi(k,isys)/=sigi(k,jsys)) )
THEN
272 IF(sigi(k,isys)/=zero)
THEN
275 . anmode=aninfo_blind_1,
278 sigi(k,isys)=sigi(k,jsys)
283 IF(sigsp(k,jsys)/=zero .AND.
284 . (sigsp(k,isys)/=sigsp(k,jsys)) )
THEN
285 IF(sigsp(k,isys)/=zero)
THEN
288 . anmode=aninfo_blind_1,
291 sigsp(k,isys)=sigsp(k,jsys)
295 id_solid_sigi(jsys)=0
308 sigi(k,compt)=sigi(k,j)
310 id_solid_sigi(compt)=id_solid_sigi(j)
315 sigsp(k,compt)=sigsp(k,j)
328 itri(isys) = id_solid_sigi(isys)
330 CALL my_orders(0,work,itri,index,numsol,1)
333 ksysusr(j)=id_solid_sigi(isys)
334 ksysusr(numsol+j)=isys
339 isys=uel2sys(ixs(nixs,i),ksysusr,numsol)
350 itri(isys) = id_quad_sigi(isys)
352 CALL my_orders(0,work,itri,index,numquad,1)
356 ie =id_quad_sigi(isys)
359 je =id_quad_sigi(jsys)
362 IF(sigi(k,jsys)/=zero)
THEN
366 . anmode=aninfo_blind_1,
369 sigi(k,isys)=sigi(k,jsys)
374 IF(sigi(k,jsys)/=zero)
THEN
375 IF(sigi(k,isys)/=zero)
THEN
378 . anmode=aninfo_blind_1,
381 sigi(k,isys)=sigi(k,jsys)
385 id_quad_sigi(jsys) = 0
398 sigi(k,compt)=sigi(k,j)
400 id_quad_sigi(compt)= id_quad_sigi(j)
402 sigi(k,compt)=sigi(k,j)
415 itri(isys) = id_quad_sigi(isys)
417 CALL my_orders(0,work,itri,index,numquad,1)
420 ksysusr(j)=id_quad_sigi(isys)
421 ksysusr(numquad+j)=isys
426 isys=uel2sys(ixq(nixq,i),ksysusr,numquad)
435 IF(numsphy>0 .AND. is_state)
THEN
438 itri(isys) = id_sigsphcel(isys)
440 CALL my_orders(0,work,itri,index,numsphy,1)
443 ie = id_sigsphcel(isys)
447 je = id_sigsphcel(jsys)
450 IF (sigsph(k,jsys) /= zero)
THEN
451 IF (sigsph(k,isys) /= zero .AND.
452 . sigsph(k,isys) /= sigsph(k,jsys))
THEN
455 . anmode=aninfo_blind_1,
458 sigsph(k,isys)=sigsph(k,jsys)
476 sigsph(k,compt)=sigsph(k,j)
478 id_sigsphcel(compt)=id_sigsphcel(j)
492 IF (numsphy > 0)
THEN
496 itri(isys) = id_sigsphcel(isys)
498 itri(isys) = nint(sigsph(7,isys))
505 ksysusr(j) = id_sigsphcel(isys)
507 ksysusr(j) = nint(sigsph(7,isys))
509 ksysusr(numsphy+j)=isys
513 isys=uel2sys(kxsp(nisp*i),ksysusr,numsphy)
518 IF (abs(isigi)<3)
THEN
526 IF (numspri > 0)
THEN
531 itri(isys) =id_sigspri(isys)
533 CALL my_orders(0,work,itri,index,numspri,1)
542 IF (sigrs(k,jsys) /= zero)
THEN
543 IF (sigrs(k,isys) /= zero .AND.
544 . sigrs(k,isys) /= sigrs(k,jsys))
THEN
547 . anmode=aninfo_blind_1,
550 sigrs(k,isys)=sigrs(k,jsys)
568 sigrs(k,compt)=sigrs(k,j)
570 id_sigspri(compt)=id_sigspri(j)
579 IF (numspri > 0)
THEN
582 itri(isys) = id_sigspri(isys)
584 CALL my_orders(0,work,itri,index,numspri,1)
587 ksysusr(j)=id_sigspri(isys)
588 ksysusr(numspri+j)=isys
593 isys=uel2sys(ixr(nixr,i),ksysusr,numspri)
600 IF (numbeam > 0)
THEN
603 itri(isys) =id_sigbeam(isys)
605 CALL my_orders(0,work,itri,index,numbeam,1)
614 IF (sigbeam(k,jsys) /= zero)
THEN
615 IF (sigbeam(k,isys) /= zero .AND.
616 . sigbeam(k,isys) /= sigbeam(k,jsys))
THEN
619 . anmode=aninfo_blind_1,
622 sigbeam(k,isys)=sigbeam(k,jsys)
640 sigbeam(k,compt)=sigbeam(k,j)
642 id_sigbeam(compt)=id_sigbeam(j)
651 IF (numbeam > 0)
THEN
654 itri(isys) = id_sigbeam(isys)
656 CALL my_orders(0,work,itri,index,numbeam,1)
659 ksysusr(j)=id_sigbeam(isys)
660 ksysusr(numbeam+j)=isys
665 isys=uel2sys(ixp(nixp,i),ksysusr,numbeam)
672 IF (numtrus > 0)
THEN
675 itri(isys) =id_sigtruss(isys)
677 CALL my_orders(0,work,itri,index,numtrus,1)
680 ie =id_sigtruss(isys)
683 je =id_sigtruss(jsys)
686 IF (sigtruss(k,jsys) /= zero)
THEN
687 IF (sigtruss(k,isys) /= zero .AND.
688 . sigtruss(k,isys) /= sigtruss(k,jsys))
THEN
691 . anmode=aninfo_blind_1,
694 sigtruss(k,isys)=sigtruss(k,jsys)
698 sigtruss(1,jsys)=zero
712 sigtruss(k,compt)=sigtruss(k,j)
714 id_sigtruss(compt)=id_sigtruss(j)
723 IF (numtrus > 0)
THEN
726 itri(isys) = id_sigtruss(isys)
728 CALL my_orders(0,work,itri,index,numtrus,1)
731 ksysusr(j)=id_sigtruss(isys)
732 ksysusr(numtrus+j)=isys
737 isys=uel2sys(ixt(nixt,i),ksysusr,numtrus)