67
68
69
70 use extend_array_mod
79
80
81
82#include "implicit_f.inc"
83
84
85
86#include "analyse_name.inc"
87
88
89
90#include "units_c.inc"
91#include "com04_c.inc"
92#include "scr17_c.inc"
93#include "param_c.inc"
94#include "sphcom.inc"
95#include "r2r_c.inc"
96
97
98
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,*),(12,*),IXS16(8,*),ISKN(LISKN,*),
104 . ISOLNOD(*),NOM_SECT(*)
105 INTEGER NOM_OPT(LNOPT1,*)
106 TYPE() LSUBMODEL(NSUBMOD)
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)
110
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
119
120
121
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,
128 . ISU,NFRAM,JJ,IUN,
129 . TAGELEM1,TAGELEM2,TAGELEM3,
130 . N1,CPT,
131 . NG,NOPRINT
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
138
139 CHARACTER MESS*40
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,
147 integer :: max_extension
148
149
150
151 INTEGER USR2SYS,NODGRNR5,ELEGROR,ELEGROR_SEATBELT,GRSIZE_ELE_TRANS,GRSIZE_ELE
153
154
155 DATA mess/'SECTION DEFINITION '/
156 DATA iun/1/
157
158
159
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))
164 snstrf1 = 0
165 noprint = 0
166 nfram = 0
167 nodtag = 0
168 tagelems = 0
169
171
173
175
177
179
180 lrec=0
181
182
184 k0 = 31
185 kr0= 11
188 l0 = 7
189 ng = 0
190
191
193
194 DO i=1,nsect
195
196 istyp = 0
197 ng=ng+1
198 igu=0
199 nfram=0
200 xm=zero
201 ym=zero
202 zm=zero
203 x1=zero
204 y1=zero
205 x2=zero
206 y2=zero
207 z2=zero
208 a=zero
209 b=zero
210 c=zero
211 r=zero
212 igus=0
213 iguq=0
214 iguc=0
215 igut=0
216 igup=0
217 igur=0
218 igutg=0
219 nbinter=0
220 ifram=0
221
222 IF(nsubdom > 0) THEN
224 ENDIF
225
226
227 lrec = lrec+3
228 k1 = k0+30
230 CALL hm_option_read_key(lsubmodel, option_id=
id, option_titr=titr, unit_id=uid, submodel_id=sub_id, keyword2=key2)
231
234
235 CALL hm_get_intv(
'Axis_Origin_Node_N1',
nstrf(k0+3), is_available, lsubmodel)
239
240 IF (sub_id > 0) THEN
241
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)
246 ENDIF
247 ENDIF
248
250 ilen=len_trim(char8)
254 char8(k:k)=' '
255 ENDDO
256 ENDIF
257
258 IF(key2(1:5) == 'PARAL') THEN
259 istyp = 1
260 ELSEIF(key2(1:6) == 'CIRCLE') THEN
261 istyp = 2
262 ELSE
263 istyp = 0
264 CALL hm_get_intv(
'Grnod_ID', igu, is_available, lsubmodel)
265 CALL hm_get_intv(
'System_Id', nfram, is_available, lsubmodel)
266 ENDIF
267
268 iflagunit = 0
270 IF (
unitab%UNIT_ID(j) == uid)
THEN
272 iflagunit = 1
273 EXIT
274 ENDIF
275 ENDDO
276 IF (uid /= 0.AND.iflagunit == 0) THEN
277 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
278 . i2=uid,i1=
id,c1=
'SECTION',
279 . c2='SECTION',
280 . c3=titr)
281 ENDIF
282
284
287
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)
290 ENDIF
291
294 ENDDO
295
296 iguq = 0
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)
305
306 IF (nbinter < 0 .OR. nbinter > 10) THEN
307 CALL ancmsg(msgid=124,anmode=aninfo,msgtype=msgerror,i1=
id,c1=titr)
308 ENDIF
309
310 IF((igus == 0).AND.(iguq == 0).AND.(iguc == 0).AND.(igut == 0).
311 . and.(igup == 0).AND.(igur == 0).AND.(igutg == 0).AND.
312 . (nbinter == 0))THEN
314 . msgtype=msgwarning,
315 . anmode=aninfo_blind_1,
317 . c1=titr)
318 END IF
319
320 call extend_array(
nstrf,
SIZE(
nstrf),k1-1+nbinter)
321 DO j=1,nbinter
323 ENDDO
324
325 IF (istyp == 1) THEN
329 IF(sub_id /= 0)
CALL subrotpoint(xm,ym,zm,rtrans,sub_id,lsubmodel)
330
334 IF(sub_id /= 0)
CALL subrotpoint(x1,y1,z1,rtrans,sub_id,lsubmodel)
335
339 IF(sub_id /= 0)
CALL subrotpoint(x2,y2,z2,rtrans,sub_id,lsubmodel)
340 d = xm
341 e = ym
342 f = zm
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
354 IF(sub_id /= 0)
CALL subrotpoint(xm,ym,zm,rtrans,sub_id,lsubmodel)
355
359 IF(sub_id /= 0)
CALL subrotvect(a,b,c,rtrans,sub_id,lsubmodel)
360
362
363 d = xm
364 e = ym
365 f = zm
370 ENDIF
371
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)))
374 DO j=1,nbinter
375 DO l=1,ninter
378
379 ENDIF
380 ENDDO
381 ENDDO
382
383
384
385
386
387 IF (istyp >= 1 .OR. nfram > 0) THEN
388 IF(istyp == 0) THEN
389 DO k=1,numfram
390 j=k+1
391 jj=(numskw+1)+
nsubmod+
min(iun,nspcond)*numsph+k+1
392 IF(nfram == iskn(4,jj)) THEN
393 a = xframe(7,j)
394 b = xframe(8,j)
395 c = xframe(9,j)
396 d = xframe(10,j)
397 e = xframe(11,j)
398 f = xframe(12,j)
399 n1 = iskn(1,jj)
400 IF (
nstrf(k0+3) == 0 )
THEN
401 IF (iskn(1,jj) /= 0) THEN
403 ELSE
404 CALL ancmsg(msgid=742, msgtype=msgerror, anmode=aninfo,
406 . c1=titr,
407 . c2='N1',
408 . i2=nfram)
409 ENDIF
410 ENDIF
411 IF (
nstrf(k0+4) == 0 )
THEN
412 IF (iskn(2,jj) /= 0) THEN
414 ELSE
415 CALL ancmsg(msgid=742, msgtype=msgerror, anmode=aninfo,
417 . c1=titr,
418 . c2='N2',
419 . i2=nfram)
420 ENDIF
421 ENDIF
422 IF (
nstrf(k0+5) == 0 )
THEN
423 IF (iskn(3,jj) /= 0) THEN
425 ELSE
426 CALL ancmsg(msgid=742, msgtype=msgerror, anmode=aninfo,
428 . c1=titr,
429 . c2='N3',
430 . i2=nfram)
431 ENDIF
432 ENDIF
433 ENDIF
434 ENDDO
435 ENDIF
436 kk=1+ngrnod
437 nnod = 0
438 cpt = 1
439 max_extension = 22 *
grsize_ele(igus,igrbric,ngrbric)
440 call extend_array(
nstrf,
size(
nstrf),k0 + max_extension)
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)
446
447 kk=kk+ngrbric
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)
454
455 kk=kk+ngrquad
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
461 . +numelq),
462 4 x1,y1,z1,x2,y2,z2,r)
463 kk=kk+ngrshel
464
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
470 . +numelq+numelc),
471 4 x1,y1,z1,x2,y2,z2,r)
472 kk=kk+ngrtrus
473
474
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)
482 kk=kk+ngrbeam
483
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)
491 kk=kk+ngrspri
492
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)
500 ENDIF
501
502 k2=k1+nbinter
503 call extend_array(
nstrf,
size(
nstrf),k2+numnod)
504 IF (nfram == 0 .AND. istyp == 0) THEN
506 ENDIF
507
508 WRITE (iout,3000)nnod
509 WRITE (iout,
'(10I10)')(
itab(
nstrf(k2+j-1)),j=1,nnod)
510 IF (nnod == 0)
512 . msgtype=msgwarning,
513 . anmode=aninfo_blind_1,
515 . c1=titr)
516
517
518 k3=k2+nnod
520 nsegs=
elegror(igus,igrbric,ngrbric,
'BRIC',
521 .
nstrf(k3),2,mess,nfram,tagelems,istyp,
523 k4=k3+2*nsegs
525 nsegq=
elegror(iguq,igrquad,ngrquad,
'QUAD',
526 .
nstrf(k4),2,mess,nfram,tagelems(1+numels),istyp,
528 k5=k4+2*nsegq
530 nsegc=
elegror(iguc,igrsh4n,ngrshel,
'SHEL',
531 .
nstrf(k5),2,mess,nfram,tagelems(1+numels
532 . +numelq),istyp,
534 k6=k5+2*nsegc
536 nsegt=
elegror(igut,igrtruss,ngrtrus,
'TRUS',
537 .
nstrf(k6),2,mess,nfram,tagelems(1+numels
538 . +numelq+numelc),istyp,
540 k7=k6+2*nsegt
542 nsegp=
elegror(igup,igrbeam,ngrbeam,
'BEAM',
543 .
nstrf(k7),2,mess,nfram,tagelems(1+numels
544 . +numelq+numelc+numelt),istyp,
546 k8=k7+2*nsegp
548 nsegr=
elegror(igur,igrspring,ngrspri,
'SPRI',
549 .
nstrf(k8),2,mess,nfram,tagelems(1+numels
550 . +numelq+numelc+numelt+numelp),istyp,
552
553 IF (nb_seatbelt_shells /=0) THEN
555 call extend_array(
nstrf,
SIZE(
nstrf),k8+2*nsegr+2*snstrf1)
557 .
nstrf(k8),2,snstrf1,nfram,tagelems(1+numels
558 . +numelq),istyp,
559 . seatbelt_shell_to_spring)
560 ENDIF
561
562 k9=k8+2*nsegr
564 nsegtg=
elegror(igutg,igrsh3n,ngrsh3n,
'SH3N',
565 .
nstrf(k9),2,mess,nfram,tagelems(1+numels
566 . +numelq+numelc+numelt+numelp+numelr),istyp,
568
569 IF(nsegs+nsegq+nsegc+nsegt+nsegp+nsegr+nsegtg==0)THEN
570 CALL ancmsg(msgid=1813, msgtype=msgwarning, anmode=aninfo,
572 . c1= titr)
573 END IF
574
575
576
577
588 DO l=k0+3,k0+5
589 IF (
nstrf(l) /= 0)
THEN
592 ENDIF
593 ENDDO
594
595
596
604 x3=y1*z2-z1*y2
605 y3=z1*x2-z2*x1
606 z3=x1*y2-x2*y1
607 n3=x3*x3+y3*y3+z3*z3
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)
611 ELSE
612 pnor2=sqrt(n3)
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)
619 ELSE
620 det=zero
621 ENDIF
622 IF (det < em5) THEN
623 CALL ancmsg(msgid=508,msgtype=msgerror,anmode=aninfo_blind_1,i1=
id,c1=titr)
624 ENDIF
625 ENDIF
626 ENDIF
627
628
629
630
631 WRITE (iout,3300) nsegs
634
635
636
637 WRITE (iout,3400) nsegq
639 . nnod,
itab,numelq,i,
' QUADS')
640
641
642
643 WRITE (iout,3100) nsegc
645 . nnod,
itab,numelc,i,
' SHELLS')
646
647
648
649 WRITE (iout,3500) nsegt
651 . nnod,
itab,numelt,i,
' TRUSSES')
652
653
654
655 WRITE (iout,3600) nsegp
657 . nnod,
itab,numelp,i,
' BEAMS')
658
659
660
661 WRITE (iout,3700) nsegr
663 . nnod,
itab,numelr,i,
' SPRINGS')
664
665
666
667 WRITE (iout,3200) nsegtg
669 . nnod,
itab,numeltg,i,
' 3 NODES SHELLS')
670
671
672
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))
679 ELSE
680 CALL zerore(1,10,secbuf(kr0))
681 ENDIF
682 secbuf(kr0) = deltat
683 secbuf(kr0+1) = zero
684 secbuf(kr0+2) =
alpha
685 secbuf(kr0+3) = zero
686
688 IF(secbuf(1) == zero)THEN
689 secbuf(1) = deltat
690 ELSE
691 maxdt=
max(secbuf(1),deltat)
692 IF(abs((secbuf(1)-deltat)/secbuf(1)) > em06 )THEN
694 . msgtype=msgerror,
695 . anmode=aninfo_blind_2,
697 . c1=titr)
698 ENDIF
699 ENDIF
700 ENDIF
701
704 ELSEIF(
nstrf(k0) >= 100.AND.
nstrf(k0) <= 200)
THEN
706 DO j=1,8
708 ENDDO
709 ENDIF
710 IF(
nstrf(k0) == 1)
THEN
711 lrec = lrec+6*nnod
712 ELSEIF(
nstrf(k0) == 2)
THEN
713 lrec = lrec+12*nnod
714 ENDIF
715
717 nstrf(k0+24) = k9+2*nsegtg
718 nstrf(k0+25) = kr0+10
722
725
726 nodtag = 0
727 tagelems = 0
728 ENDDO
729 CALL udouble(sectids,1,nsect,mess,0,bid)
730
731
733 DEALLOCATE(tagnodes)
734 DEALLOCATE(tagndoubl)
735 DEALLOCATE(tagelems)
736 DEALLOCATE(nodtag)
737
738
739
740 2900 FORMAT(/' SECTION',i10,' ID',i10/
741 + ' ---------------'/
742 + ,a/,
743 + ' TYPE . . . . . . . . . . . . . . .',i10/
744 + ' FILENAME . . . . . . . . . . . . .',a/
745 + ' DELTAT . . . . . . . . . . . . . .',1pg20.13/
746 + ' ALPHA. . . . . . . . . . . . . . .',1pg20.13/
747 + ' FRAME TYPE . . . . . . . . . . . .',i10/
748 + ' NUMBER OF INTERFACES . . . . . . .',i10/
749 + ' INTERFACES:')
750 2901 FORMAT(/' SECTION',i10,' ID',i10/
751 + ' ---------------'/
752 + ' TYPE . . . . . . . . . . . . . . .',i8/
753 + ' FRAME TYPE . . . . . . . . . . . .',i8/)
754 3000 FORMAT(/
755 + ' NUMBER OF NODES. . . . . . . . . .',i10/
756 + ' NODES:')
757 3100 FORMAT(/
758 + ' NUMBER OF SHELL ELEMENTS . . . . .',i10/
759 + ' SHELL N1 N2 N3 N4')
760 3200 FORMAT(/
761 + ' NUMBER OF 3 NODES SHELL ELEMENTS .',i10/
762 + ' SHELL N1 N2 N3')
763 3300 FORMAT(/
764 + ' NUMBER OF BRICK ELEMENTS . . . . .',i10/
765 + ' BRICK N1 N2 N3 N4',
766 + ' N5 N6 N7 N8')
767 3400 FORMAT(/
768 + ' NUMBER OF QUAD ELEMENTS . . . . .',i10/
769 + ' QUAD N1 N2 N3 N4')
770 3500 FORMAT(/
771 + ' NUMBER OF TRUSS ELEMENTS . . . . .',i10/
772 + ' TRUSS N1 N2')
773 3600 FORMAT(/
774 + ' NUMBER OF BEAM ELEMENTS . . . . .',i10/
775 + ' BEAM N1 N2')
776 3700 FORMAT(/
777 + ' NUMBER OF SPRING ELEMENTS . . . . .',i8/
778 + ' SPRING N1 N2')
779
780 RETURN
void anodset(int *id, int *type)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
integer function elegror(igu, igrele, ngrele, mot, ibuf, nib, mess, nfram, tagelems, istyp, id, titr)
integer function elegror_seatbelt(igu, igrele, ngrele, ibuf, nib, sibuf, nfram, tagelems, istyp, seatbelt_shell_to_spring)
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_string(name, sval, size, is_available)
subroutine sec_nodes(igu1, istyp, ngrele, igrele, x0, a, b, c, d, e, f, itab, ix, nix, kk, nnod, nstrf, nbinter, n1, k1, nbnodes, j, nodtag, tagelems, x1, y1, z1, x2, y2, z2, r)
subroutine secstri(nseg, isecbuf, ixs, ixs10, ixs16, ixs20, nod, nnod, itab, isec, noprint)
subroutine sec_tri(nseg, isecbuf, ix, nix, nne, nod, nnod, itab, numel, isec, txt)
subroutine sec_nodes_sol(igu1, istyp, ngr, igrbric, x0, a, b, c, d, e, f, itab, ixs, ixs10, ixs16, ixs20, nix, kk, nnod, nstrf, nbinter, n1, k1, j, nodtag, isolnod, tagelems, x1, y1, z1, x2, y2, z2, r)
integer, parameter nchartitle
integer, parameter ncharfield
integer, dimension(:), allocatable tagsec
integer, dimension(:), allocatable, target ixs
integer, dimension(:), allocatable, target ipari
integer, dimension(:), allocatable ixt
integer, dimension(:), allocatable ixr
integer, dimension(:), allocatable, target ixtg
integer, dimension(:), allocatable, target itabm1
integer, dimension(:), allocatable itab
integer, dimension(:), allocatable ixp
integer, dimension(:), allocatable, target nom_opt
integer, dimension(:), allocatable nstrf
integer, dimension(:), allocatable ixq
integer, dimension(:), allocatable nom_sect
integer, dimension(:), allocatable ixc
integer function grsize_ele(igu, igrelem, ngrelem)
integer function grsize_ele_trans(igu, igrelem, ngrelem, seatbelt_shell_to_spring)
subroutine hm_sz_r2r(tag, val, lsubmodel)
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)
integer function usr2sys(iu, itabm1, mess, id)
subroutine udouble(list, ilist, nlist, mess, ir, rlist)
subroutine subrotvect(x, y, z, rtrans, sub_id, lsubmodel)
subroutine subrotpoint(x, y, z, rtrans, sub_id, lsubmodel)
subroutine zerore(n1, n2, am)