59 SUBROUTINE lecsec42(IXS ,IXQ ,IXC ,IXT ,IXP ,IXR ,
60 2 IXTG ,X0 ,ITAB ,ITABM1 ,
62 4 IPARI ,IXS10 ,IXS20 ,IXS16 ,UNITAB ,
63 5 ISKN ,XFRAME,ISOLNOD,NOM_SECT,RTRANS,
64 6 LSUBMODEL,NOM_OPT,IGRBRIC,IGRQUAD,IGRSH4N,
65 7 IGRTRUSS,IGRBEAM,IGRSPRING,IGRSH3N,SEATBELT_SHELL_TO_SPRING,
82#include "implicit_f.inc"
86#include
"analyse_name.inc"
99 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
100 INTEGER IXC(NIXC,NUMELC), IXTG(NIXTG,NUMELTG), ITAB(NUMNOD),
101 . ITABM1(*),IXS(NIXS,NUMELS), IXQ(NIXQ,NUMELQ), IXT(NIXT,NUMELT),
102 . IXP(NIXP,NUMELP), IXR(NIXR,NUMELR), IPARI(NPARI,NINTER),
103 . IXS10(6,*),IXS20(12,*),IXS16(8,*),ISKN(LISKN,*),
104 . ISOLNOD(*),NOM_SECT(*)
105 INTEGER NOM_OPT(LNOPT1,*)
107 my_real x0(3,*),secbuf(*),xframe(nxframe,numfram+1), rtrans(ntransf,nrtrans)
108 INTEGER,
INTENT(IN):: NB_SEATBELT_SHELLS
109 INTEGER,
INTENT(IN)::SEATBELT_SHELL_TO_SPRING(NUMELC,2)
111 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
112 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
113 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
114 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
115 TYPE (GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS
116 TYPE (GROUP_) ,
DIMENSION(NGRBEAM) :: IGRBEAM
117 TYPE (GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING
118 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
122 INTEGER ,
DIMENSION(NSECT) :: SECTIDS
123 INTEGER K1, I, J, L, KK, K2, K,LREC,
124 . nnod, nbinter,k0,k3,k4,k5,k6,k7,k8,k9,kr0,
125 . nsegq,nsegs,nsegc,nsegt,nsegp,nsegr,nsegtg,i0,
id,
126 . igu,igs,igus,iguq,iguc,igut,igup,igur,igutg,ifram,
127 . nnsk1,nnsk2,nnsk3,uid,iflagunit,ie,iadv,
129 . tagelem1,tagelem2,tagelem3,
132 INTEGER L0,ISTYP,SUB_ID,ILEN
133 my_real DELTAT,ALPHA,FAC_T,A,B,C,D,E,F,POS,R,MAXDT
134 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGNODES
135 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGNDOUBL
136 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGELEMS
137 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NODTAG
140 CHARACTER(LEN=NCHARTITLE) :: TITR
141 CHARACTER(LEN=NCHARLINE) ::CHAR8
142 CHARACTER(LEN=NCHARFIELD) :: KEY2
143 my_real bid, xm, ym, zm, x1, y1, z1, x2, y2, z2,
norm
144 my_real x3, y3, z3, n3, pnor1, pnor2, pnorm1, det, det1, det2, det3
145 LOGICAL :: IS_AVAILABLE
146 INTEGER :: NUMSECT,SNSTRF1
147 integer :: max_extension
151 INTEGER USR2SYS,NODGRNR5,ELEGROR,ELEGROR_SEATBELT,GRSIZE_ELE_TRANS,GRSIZE_ELE
152 EXTERNAL usr2sys,nodgrnr5,elegror,elegror_seatbelt,grsize_ele_trans,grsize_ele
155 DATA mess/
'SECTION DEFINITION '/
160 ALLOCATE(tagnodes( numnod*2+npart))
161 ALLOCATE(tagndoubl(numnod))
162 ALLOCATE(tagelems(1+numelc+numels+numelt+numelq+numelp+numelr+numeltg))
163 ALLOCATE(nodtag(numnod))
230 CALL hm_option_read_key(lsubmodel, option_id=
id, option_titr=titr, unit_id=uid, submodel_id=sub_id, keyword2=key2)
233 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1, i),ltitr)
235 CALL hm_get_intv(
'Axis_Origin_Node_N1',
nstrf(k0+3), is_available, lsubmodel)
242 IF ((
nstrf(k0) == 1).OR.(
nstrf(k0) == 2))
THEN
243 CALL ancmsg(msgid=1743, msgtype=msgwarning, anmode=aninfo_blind_1, i1=
id, c1=titr)
244 ELSEIF ((
nstrf(k0) == 100).OR.(
nstrf(k0) == 101))
THEN
245 CALL ancmsg(msgid=1744, msgtype=msgwarning, anmode=aninfo_blind_1, i1=
id, c1=titr)
258 IF(key2(1:5) ==
'PARAL')
THEN
260 ELSEIF(key2(1:6) ==
'CIRCLE')
THEN
264 CALL hm_get_intv(
'Grnod_ID', igu, is_available, lsubmodel)
265 CALL hm_get_intv(
'System_Id', nfram, is_available, lsubmodel)
270 IF (unitab%UNIT_ID(j) == uid)
THEN
271 fac_t = unitab%FAC_T(j)
276 IF (uid /= 0.AND.iflagunit == 0)
THEN
277 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
278 . i2=uid,i1=
id,c1=
'SECTION',
285 CALL hm_get_floatv(
'detltaT', deltat, is_available, lsubmodel
286 CALL hm_get_floatv(
'alpha', alpha, is_available, lsubmodel, unitab)
288 IF(igu == 0 .AND. nfram == 0 .AND. istyp == 0)
THEN
289 CALL ancmsg(msgid=507, msgtype=msgwarning, anmode=aninfo_blind_1, i1=
id, c1=titr)
293 nom_sect((i-1)*
ncharline+j) = ichar(char8(j:j))
297 CALL hm_get_intv('grbrick_id
', IGUS, IS_AVAILABLE, LSUBMODEL)
298 CALL HM_GET_INTV('grshel_id
', IGUC, IS_AVAILABLE, LSUBMODEL)
299 CALL HM_GET_INTV('grtrus_id
', IGUT, IS_AVAILABLE, LSUBMODEL)
300 CALL HM_GET_INTV('grbeam_id
', IGUP, IS_AVAILABLE, LSUBMODEL)
301 CALL HM_GET_INTV('grsprg_id
', IGUR, IS_AVAILABLE, LSUBMODEL)
302 CALL HM_GET_INTV('grtria_id
', IGUTG, IS_AVAILABLE, LSUBMODEL)
303 CALL HM_GET_INTV('niter
', NBINTER, IS_AVAILABLE, LSUBMODEL)
304 CALL HM_GET_INTV('iframe', IFRAM, IS_AVAILABLE, LSUBMODEL)
306.OR.
IF (NBINTER < 0 NBINTER > 10) THEN
307 CALL ANCMSG(MSGID=124,ANMODE=ANINFO,MSGTYPE=MSGERROR,I1=ID,C1=TITR)
310.AND..AND..AND.
IF((IGUS == 0)(IGUQ == 0)(IGUC == 0)(IGUT == 0).
311.AND..AND..AND.
. AND.(IGUP == 0)(IGUR == 0)(IGUTG == 0)
312 . (NBINTER == 0))THEN
313 CALL ANCMSG(MSGID=600,
314 . MSGTYPE=MSGWARNING,
315 . ANMODE=ANINFO_BLIND_1,
320 call extend_array(NSTRF,SIZE(NSTRF),K1-1+NBINTER)
322 CALL HM_GET_INT_ARRAY_INDEX('int_id
' ,NSTRF(K1-1+J) ,J ,IS_AVAILABLE, LSUBMODEL)
326 CALL HM_GET_FLOATV('xtail
', XM, IS_AVAILABLE, LSUBMODEL, UNITAB)
327 CALL HM_GET_FLOATV('ytail
', YM, IS_AVAILABLE, LSUBMODEL, UNITAB)
328 CALL HM_GET_FLOATV('ztail
', ZM, IS_AVAILABLE, LSUBMODEL, UNITAB)
329 IF(SUB_ID /= 0)CALL SUBROTPOINT(XM,YM,ZM,RTRANS,SUB_ID,LSUBMODEL)
331 CALL HM_GET_FLOATV('cnode1_x
', X1, IS_AVAILABLE, LSUBMODEL, UNITAB)
332 CALL HM_GET_FLOATV('cnode1_y
', Y1, IS_AVAILABLE, LSUBMODEL, UNITAB)
333 CALL HM_GET_FLOATV('cnode1_z
', Z1, IS_AVAILABLE, LSUBMODEL, UNITAB)
334 IF(SUB_ID /= 0)CALL SUBROTPOINT(X1,Y1,Z1,RTRANS,SUB_ID,LSUBMODEL)
336 CALL HM_GET_FLOATV('cnode2_x
', X2, IS_AVAILABLE, LSUBMODEL, UNITAB)
337 CALL HM_GET_FLOATV('cnode2_y
', Y2, IS_AVAILABLE, LSUBMODEL, UNITAB)
338 CALL HM_GET_FLOATV('cnode2_z
', Z2, IS_AVAILABLE, LSUBMODEL, UNITAB)
339 IF(SUB_ID /= 0)CALL SUBROTPOINT(X2,Y2,Z2,RTRANS,SUB_ID,LSUBMODEL)
343 A = ((Y1-YM)*(Z2-ZM))-((Y2-YM)*(Z1-ZM))
344 B = ((X2-XM)*(Z1-ZM))-((X1-XM)*(Z2-ZM))
345 C = ((X1-XM)*(Y2-YM))-((X2-XM)*(Y1-YM))
350 ELSEIF (ISTYP == 2) THEN
351 CALL HM_GET_FLOATV('xtail
', XM, IS_AVAILABLE, LSUBMODEL, UNITAB)
352 CALL HM_GET_FLOATV('ytail
', YM, IS_AVAILABLE, LSUBMODEL, UNITAB)
353 CALL HM_GET_FLOATV('ztail
', ZM, IS_AVAILABLE, LSUBMODEL, UNITAB)
354 IF(SUB_ID /= 0)CALL SUBROTPOINT(XM,YM,ZM,RTRANS,SUB_ID,LSUBMODEL)
356 CALL HM_GET_FLOATV('normal_x
', A, IS_AVAILABLE, LSUBMODEL, UNITAB)
357 CALL HM_GET_FLOATV('normal_y
', B, IS_AVAILABLE, LSUBMODEL, UNITAB)
358 CALL HM_GET_FLOATV('normal_z
', C, IS_AVAILABLE, LSUBMODEL, UNITAB)
359 IF(SUB_ID /= 0)CALL SUBROTVECT(A,B,C,RTRANS,SUB_ID,LSUBMODEL)
361 CALL HM_GET_FLOATV('radius
', R, IS_AVAILABLE, LSUBMODEL, UNITAB)
372 WRITE (IOUT,2900)I,ID,TRIM(TITR),NSTRF(K0),CHAR8(1:ILEN),DELTAT,ALPHA,IFRAM,NBINTER
373 WRITE (IOUT,'(10i10)
')(NSTRF(K1-1+J),J=1,MAX(0,MIN(10,NBINTER)))
376 IF(NSTRF(K1-1+J) == IPARI(15,L))THEN
377 IPARI(28,L) = IPARI(28,L) + 1
387.OR.
IF (ISTYP >= 1 NFRAM > 0) THEN
391 JJ=(NUMSKW+1)+NSUBMOD+MIN(IUN,NSPCOND)*NUMSPH+K+1
392 IF(NFRAM == ISKN(4,JJ)) THEN
400 IF (NSTRF(K0+3) == 0 ) THEN
401 IF (ISKN(1,JJ) /= 0) THEN
402 NSTRF(K0+3) = ITAB(ISKN(1,JJ))
404 CALL ANCMSG(MSGID=742, MSGTYPE=MSGERROR, ANMODE=ANINFO,
411 IF (NSTRF(K0+4) == 0 ) THEN
412 IF (ISKN(2,JJ) /= 0) THEN
413 NSTRF(K0+4) = ITAB(ISKN(2,JJ))
415 CALL ANCMSG(MSGID=742, MSGTYPE=MSGERROR, ANMODE=ANINFO,
422 IF (NSTRF(K0+5) == 0 ) THEN
423 IF (ISKN(3,JJ) /= 0) THEN
424 NSTRF(K0+5) = ITAB(ISKN(3,JJ))
426 CALL ANCMSG(MSGID=742, MSGTYPE=MSGERROR, ANMODE=ANINFO,
439 max_extension = 22 * GRSIZE_ELE(IGUS,IGRBRIC,NGRBRIC)
440 call extend_array(NSTRF,size(nstrf),K0 + max_extension)
441 CALL SEC_NODES_SOL(IGUS,ISTYP,NGRBRIC,IGRBRIC,X0,A,
442 2 B,C,D,E,F,ITAB,IXS,IXS10,IXS16,IXS20,
443 3 NIXS,KK,NNOD,NSTRF,NBINTER,N1 ,K1,
444 4 CPT,NODTAG,ISOLNOD,TAGELEMS,
445 5 X1,Y1,Z1,X2,Y2,Z2,R)
448 max_extension = 6 * GRSIZE_ELE(IGUQ,IGRQUAD,NGRQUAD)
449 call extend_array(NSTRF,size(nstrf),CPT + max_extension)
450 CALL SEC_NODES(IGUQ,ISTYP,NGRQUAD,IGRQUAD,X0,A,
451 2 B,C,D,E,F,ITAB,IXQ,NIXQ,KK,NNOD,NSTRF,
452 3 NBINTER,N1,K1,4,CPT,NODTAG,TAGELEMS(1+NUMELS),
453 4 X1,Y1,Z1,X2,Y2,Z2,R)
456 max_extension = 6 * GRSIZE_ELE(IGUC,IGRSH4N,NGRSHEL)
457 call extend_array(NSTRF,size(nstrf),CPT + max_extension)
458 CALL SEC_NODES(IGUC,ISTYP,NGRSHEL,IGRSH4N,X0,A,
459 2 B,C,D,E,F,ITAB,IXC,NIXC,KK,NNOD,NSTRF,
460 3 NBINTER,N1,K1,4,CPT,NODTAG,TAGELEMS(1+NUMELS
462 4 X1,Y1,Z1,X2,Y2,Z2,R)
465 max_extension = 4 * GRSIZE_ELE(IGUT,IGRTRUSS,NGRTRUS)
466 call extend_array(NSTRF,size(nstrf),CPT + max_extension)
467 CALL SEC_NODES(IGUT,ISTYP,NGRTRUS,IGRTRUSS,X0,A,
468 2 B,C,D,E,F,ITAB,IXT,NIXT,KK,NNOD,NSTRF,
469 3 NBINTER,N1,K1,2,CPT,NODTAG,TAGELEMS(1+NUMELS
471 4 X1,Y1,Z1,X2,Y2,Z2,R)
475 max_extension = 4 * GRSIZE_ELE(IGUP,IGRBEAM,NGRBEAM)
476 call extend_array(NSTRF,size(nstrf),CPT + max_extension)
477 CALL SEC_NODES(IGUP,ISTYP,NGRBEAM,IGRBEAM,X0,A,
478 2 B,C,D,E,F,ITAB,IXP,NIXP,KK,NNOD,NSTRF,
479 3 NBINTER,N1,K1,2,CPT,NODTAG,TAGELEMS(1+NUMELS
480 . +NUMELQ+NUMELC+NUMELT),
481 4 X1,Y1,Z1,X2,Y2,Z2,R)
484 max_extension = 4 * GRSIZE_ELE(IGUR,IGRSPRING,NGRSPRI)
485 call extend_array(NSTRF,size(nstrf),CPT + max_extension)
486 CALL SEC_NODES(IGUR,ISTYP,NGRSPRI,IGRSPRING,X0,A,
487 2 B,C,D,E,F,ITAB,IXR,NIXR,KK,NNOD,NSTRF,
488 3 NBINTER,N1,K1,2,CPT,NODTAG,TAGELEMS(1+NUMELS
489 . +NUMELQ+NUMELC+NUMELT+NUMELP),
490 4 X1,Y1,Z1,X2,Y2,Z2,R)
493 max_extension = 6 * GRSIZE_ELE(IGUTG,IGRSH3N,NGRSH3N)
494 call extend_array(NSTRF,size(nstrf),CPT + max_extension)
495 CALL SEC_NODES(IGUTG,ISTYP,NGRSH3N,IGRSH3N,X0,A,
496 2 B,C,D,E,F,ITAB,IXTG,NIXTG,KK,NNOD,NSTRF,
497 3 NBINTER,N1,K1,3,CPT,NODTAG,TAGELEMS(1+NUMELS
498 . +NUMELQ+NUMELC+NUMELT+NUMELP+NUMELR),
499 4 X1,Y1,Z1,X2,Y2,Z2,R)
503 call extend_array(NSTRF,size(NSTRF),K2+NUMNOD)
504.AND.
IF (NFRAM == 0 ISTYP == 0) THEN
505 NNOD=NODGRNR5(IGU,IGS,NSTRF(K2),IGRNOD,ITABM1,MESS)
508 WRITE (IOUT,3000)NNOD
509 WRITE (IOUT,'(10i10)
')(ITAB(NSTRF(K2+J-1)),J=1,NNOD)
511 . CALL ANCMSG(MSGID=1113,
512 . MSGTYPE=MSGWARNING,
513 . ANMODE=ANINFO_BLIND_1,
519 call extend_array(NSTRF,SIZE(NSTRF),K3+2* GRSIZE_ELE(IGUS,IGRBRIC,NGRBRIC))
520 NSEGS=ELEGROR(IGUS,IGRBRIC,NGRBRIC,'bric
',
521 . NSTRF(K3),2,MESS,NFRAM,TAGELEMS,ISTYP,
524 call extend_array(NSTRF,SIZE(NSTRF),K4+2* GRSIZE_ELE(IGUQ,IGRQUAD,NGRQUAD))
525 NSEGQ=ELEGROR(IGUQ,IGRQUAD,NGRQUAD,'quad
',
526 . NSTRF(K4),2,MESS,NFRAM,TAGELEMS(1+NUMELS),ISTYP,
529 call extend_array(NSTRF,SIZE(NSTRF),K5+2* GRSIZE_ELE(IGUC,IGRSH4N,NGRSHEL))
530 NSEGC=ELEGROR(IGUC,IGRSH4N,NGRSHEL,'shel
',
531 . NSTRF(K5),2,MESS,NFRAM,TAGELEMS(1+NUMELS
535 call extend_array(NSTRF,SIZE(NSTRF),K6+2* GRSIZE_ELE(IGUT,IGRTRUSS,NGRTRUS))
536 NSEGT=ELEGROR(IGUT,IGRTRUSS,NGRTRUS,'trus
',
537 . NSTRF(K6),2,MESS,NFRAM,TAGELEMS(1+NUMELS
538 . +NUMELQ+NUMELC),ISTYP,
541 call extend_array(NSTRF,SIZE(NSTRF),K7+2* GRSIZE_ELE(IGUP,IGRBEAM,NGRBEAM))
542 NSEGP=ELEGROR(IGUP,IGRBEAM,NGRBEAM,'beam
',
543 . NSTRF(K7),2,MESS,NFRAM,TAGELEMS(1+NUMELS
544 . +NUMELQ+NUMELC+NUMELT),ISTYP,
547 call extend_array(NSTRF,SIZE(NSTRF),K8+2* GRSIZE_ELE(IGUR,IGRSPRING,NGRSPRI))
548 NSEGR=ELEGROR(IGUR,IGRSPRING,NGRSPRI,'spri
',
549 . NSTRF(K8),2,MESS,NFRAM,TAGELEMS(1+NUMELS
550 . +NUMELQ+NUMELC+NUMELT+NUMELP),ISTYP,
553 IF (NB_SEATBELT_SHELLS /=0) THEN
554 SNSTRF1 = GRSIZE_ELE_TRANS(IGUC,IGRSH4N,NGRSHEL,SEATBELT_SHELL_TO_SPRING)
555 call extend_array(NSTRF,SIZE(NSTRF),K8+2*NSEGR+2*SNSTRF1)
556 NSEGR=NSEGR+ELEGROR_SEATBELT(IGUC,IGRSH4N,NGRSHEL,
557 . NSTRF(K8),2,SNSTRF1,NFRAM,TAGELEMS(1+NUMELS
559 . SEATBELT_SHELL_TO_SPRING)
563 call extend_array(NSTRF,SIZE(NSTRF),K9+2* GRSIZE_ELE(IGUTG,IGRSH3N,NGRSH3N))
564 NSEGTG=ELEGROR(IGUTG,IGRSH3N,NGRSH3N,'sh3n
',
565 . NSTRF(K9),2,MESS,NFRAM,TAGELEMS(1+NUMELS
566 . +NUMELQ+NUMELC+NUMELT+NUMELP+NUMELR),ISTYP,
569 IF(NSEGS+NSEGQ+NSEGC+NSEGT+NSEGP+NSEGR+NSEGTG==0)THEN
570 CALL ANCMSG(MSGID=1813, MSGTYPE=MSGWARNING, ANMODE=ANINFO,
589 IF (NSTRF(L) /= 0) THEN
590 NSTRF(L)=USR2SYS(NSTRF(L),ITABM1,MESS,ID)
591 CALL ANODSET(NSTRF(L), CHECK_USED)
594 !NNSK1=ITAB(NSTRF(K0+3))
595 !NNSK2=ITAB(NSTRF(K0+4))
596 !NNSK3=ITAB(NSTRF(K0+5))
597.AND..AND.
IF(NSTRF(K0+3)/=0 NSTRF(K0+3)/=0 NSTRF(K0+3)/=0)THEN
598 X1=X0(1,NSTRF(K0+4))-X0(1,NSTRF(K0+3))
599 Y1=X0(2,NSTRF(K0+4))-X0(2,NSTRF(K0+3))
600 Z1=X0(3,NSTRF(K0+4))-X0(3,NSTRF(K0+3))
601 X2=X0(1,NSTRF(K0+5))-X0(1,NSTRF(K0+4))
602 Y2=X0(2,NSTRF(K0+5))-X0(2,NSTRF(K0+4))
603 Z2=X0(3,NSTRF(K0+5))-X0(3,NSTRF(K0+4))
608 PNOR1=SQRT(X1*X1+Y1*Y1+Z1*Z1)
609 IF (PNOR1 < EM20) THEN
610 CALL ANCMSG(MSGID=508,MSGTYPE=MSGERROR,ANMODE=ANINFO_BLIND_1,I1=ID,C1=TITR)
613 IF (PNOR2 > EM20) THEN
614 PNORM1=ONE/(PNOR1*PNOR2)
615 DET1=ABS((Y3*Z1-Z3*Y1)*PNORM1)
616 DET2=ABS((Z3*X1-X3*Z1)*PNORM1)
617 DET3=ABS((X3*Y1-Y3*X1)*PNORM1)
618 DET= MAX(DET1,DET2,DET3)
623 CALL ANCMSG(MSGID=508,MSGTYPE=MSGERROR,ANMODE=ANINFO_BLIND_1,I1=ID,C1=TITR)
631 WRITE (IOUT,3300) NSEGS
632 CALL SECSTRI(NSEGS,NSTRF(K3),IXS,IXS10,IXS16,IXS20,
633 . NSTRF(K2),NNOD,ITAB,I,NOPRINT)
637 WRITE (IOUT,3400) NSEGQ
638 CALL SEC_TRI(NSEGQ,NSTRF(K4),IXQ,NIXQ,4,NSTRF(K2),
639 . NNOD,ITAB,NUMELQ,I,' quads
')
643 WRITE (IOUT,3100) NSEGC
644 CALL SEC_TRI(NSEGC,NSTRF(K5),IXC,NIXC,4,NSTRF(K2),
645 . NNOD,ITAB,NUMELC,I,' shells
')
649 WRITE (IOUT,3500) NSEGT
650 CALL SEC_TRI(NSEGT,NSTRF(K6),IXT,NIXT,2,NSTRF(K2),
651 . NNOD,ITAB,NUMELT,I,' trusses
')
655 WRITE (IOUT,3600) NSEGP
656 CALL SEC_TRI(NSEGP,NSTRF(K7),IXP,NIXP,2,NSTRF(K2),
657 . NNOD,ITAB,NUMELP,I,' beams
')
661 WRITE (IOUT,3700) NSEGR
662 CALL SEC_TRI(NSEGR,NSTRF(K8),IXR,NIXR,2,NSTRF(K2),
663 . NNOD,ITAB,NUMELR,I,' springs
')
667 WRITE (IOUT,3200) NSEGTG
668 CALL SEC_TRI(NSEGTG,NSTRF(K9),IXTG,NIXTG,3,NSTRF(K2),
669 . NNOD,ITAB,NUMELTG,I,' 3 nodes shells
')
673 IF(NSTRF(K0) >= 102)THEN
674 CALL ZERORE(1,10+30*NNOD,SECBUF(KR0))
675 ELSEIF(NSTRF(K0) >= 101)THEN
676 CALL ZERORE(1,10+24*NNOD,SECBUF(KR0))
677 ELSEIF(NSTRF(K0) >= 100)THEN
678 CALL ZERORE(1,10+12*NNOD,SECBUF(KR0))
680 CALL ZERORE(1,10,SECBUF(KR0))
684 SECBUF(KR0+2) = ALPHA
687.OR.
IF(NSTRF(K0) == 1NSTRF(K0) == 2)THEN
688 IF(SECBUF(1) == ZERO)THEN
691 MAXDT=MAX(SECBUF(1),DELTAT)
692 IF(ABS((SECBUF(1)-DELTAT)/SECBUF(1)) > EM06 )THEN
693 CALL ANCMSG(MSGID=356,
695 . ANMODE=ANINFO_BLIND_2,
702.AND.
IF(NSTRF(K0) >= 1NSTRF(K0) <= 10)THEN
704.AND.
ELSEIF(NSTRF(K0) >= 100NSTRF(K0) <= 200)THEN
707 NSTRF(15+J)=NSTRF(K0+14+J)
710 IF(NSTRF(K0) == 1)THEN
712 ELSEIF(NSTRF(K0) == 2)THEN
717 NSTRF(K0+24) = K9+2*NSEGTG
718 NSTRF(K0+25) = KR0+10
719 IF(NSTRF(K0) >= 100)NSTRF(K0+25) = NSTRF(K0+25)+12*NNOD
720 IF(NSTRF(K0) >= 101)NSTRF(K0+25) = NSTRF(K0+25)+12*NNOD
721 IF(NSTRF(K0) >= 102)NSTRF(K0+25) = NSTRF(K0+25)+6*NNOD
729 CALL UDOUBLE(SECTIDS,1,NSECT,MESS,0,BID)
734 DEALLOCATE(TAGNDOUBL)
741 + ' ---------------
'/
743 + ' TYPE . . . . . . . . . . . . . . .
',I10/
744 + ' filename . . . . . . . . . . . . .
',A/
745 + ' deltat . . . . . . . . . . . . . .
',1PG20.13/
746 + ' alpha. . . . . . . . . . . . . . .
',1PG20.13/
747 + ' frame
TYPE . . . . . . . . . . . .
',I10/
748 + ' number of interfaces . . . . . . .
',I10/
751 + ' ---------------
'/
752 + ' TYPE . . . . . . . . . . . . . . .
',I8/
753 + ' frame
TYPE . . . . . . . . . . . .
',I8/)
755 + ' number of nodes. . . . . . . . . .
',I10/
758 + ' number of shell elements . . . . .
',I10/
759 + ' shell n1 n2 n3 n4
')
761 + ' number of 3 nodes shell elements .
',I10/
764 + ' number of brick elements . . . . .',i10/
765 +
' BRICK N1 N2 N3 N4',
768 +
' NUMBER OF QUAD ELEMENTS . . . . .',i10
769 + ' quad n1 n2 n3 n4
')
771 + ' number of truss elements . . . . .
',I10/
774 + ' number of beam elements . . . . .
',I10/
777 + ' number of spring elements . . . . .
',I8/
subroutine lecsec42(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, x0, itab, itabm1, igrnod, secbuf, ipari, ixs10, ixs20, ixs16, unitab, iskn, xframe, isolnod, nom_sect, rtrans, lsubmodel, nom_opt, igrbric, igrquad, igrsh4n, igrtruss, igrbeam, igrspring, igrsh3n, seatbelt_shell_to_spring, nb_seatbelt_shells)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)