75 SUBROUTINE hm_set(SET ,LSUBMODEL ,INV_GROUP ,MAP_TABLES,IPART ,
76 . IGRSURF ,IGRNOD ,IGRSLIN ,IGRPART ,IGRBRIC ,
77 . IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,IGRBEAM ,
78 . IGRSPRING,IXS ,IXS10 ,IXC ,IXTG ,
79 . KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,
80 . NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,SH4TREE ,
81 . SH3TREE ,IXQ ,KNOD2ELQ ,NOD2ELQ ,X ,
82 . IXT ,IXP ,IXR ,IXX ,KXX ,
83 . KXSP ,IXS20 ,IXS16 ,GEO ,ITABM1 ,
84 . IBOX ,SKEW ,IPARTQ ,IPARTT ,IPARTP ,
85 . IPARTR ,SUBSET ,RBY_MSN ,ISKN ,RTRANS ,
86 . UNITAB ,BUFSF ,IAD ,SISKWN ,SSKEW ,
87 . ROOTNAM ,ROOTLEN ,INFILE_NAME ,INFILE_NAME_LEN )
116 USE create_plane_clause_mod
117 USE create_nodens_clause_mod
122#include
"implicit_f.inc"
126#include "radioss_maptable.inc"
127#include "com04_c.inc"
128#include "scr17_c.inc"
129#include "param_c.inc"
134 TYPE (SET_),
DIMENSION(NSETS),
INTENT(INOUT) :: SET
135 TYPE(SUBMODEL_DATA),
INTENT(IN)::LSUBMODEL(*)
136 TYPE(INVERTGROUP_STRUCT_),
INTENT(IN) :: INV_GROUP
137 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
138 TYPE (BOX_) ,
DIMENSION(NBBOX) :: IBOX
139 TYPE (UNIT_TYPE_),
INTENT(IN) ::
141 TYPE () ,
INTENT(INOUT):: IGRNOD(*)
142 TYPE (SURF_) ,
INTENT(INOUT):: IGRSURF(*)
143 TYPE (SURF_) ,
INTENT(INOUT):: IGRSLIN(*)
144 TYPE (GROUP_) ,
INTENT(INOUT):: IGRPART(*)
145 TYPE (GROUP_) ,
INTENT(INOUT):: IGRBRIC(*)
146 TYPE (GROUP_) ,
INTENT(INOUT):: (*)
147 TYPE (GROUP_) ,
INTENT(INOUT):: IGRSH4N(*)
148 TYPE (GROUP_) ,
INTENT(INOUT):: IGRSH3N(*)
149 TYPE (GROUP_) ,
INTENT(INOUT):: IGRTRUSS(*)
150 TYPE (GROUP_) ,
INTENT(INOUT):: IGRBEAM(*)
151 TYPE (GROUP_) ,
INTENT(INOUT):: IGRSPRING(*)
152 TYPE (SUBSET_) ,
INTENT(INOUT) :: SUBSET(*)
154 INTEGER,
INTENT(INOUT) :: IAD
156 INTEGER,
DIMENSION(2*NUMNOD),
INTENT(IN) :: ITABM1
157 INTEGER,
DIMENSION(2*NRBODY),
INTENT(IN) :: RBY_MSN
159 INTEGER IPART(LIPART1,NPART)
160 INTEGER,
INTENT(IN) :: IXS(NIXS,*),IXS10(6,*),IXS16(8,*),IXS20(12,*),
161 . ixc(nixc,*),ixtg(nixtg,*),knod2els(*),knod2elc(*),knod2eltg(*),
162 . nod2els(*),nod2elc(*),nod2eltg(*),ipartc(*),ipartg(*),iparts(*),
163 . sh4tree(*),sh3tree(*),knod2elq(*),nod2elq(*),ixq(nixq,*),
164 . ixt(nixt,*),ixp(nixp,*),ixr(nixr,*),ixx(*),kxx(*),kxsp(nisp,*),
165 . ipartq(*),ipartt(*),ipartp(*),ipartr(*)
166 INTEGER,
INTENT(IN) :: SISKWN,SSKEW
168 . x(3,*),geo(npropg,*),skew(lskew,*)
169 INTEGER,
INTENT(IN) :: ISKN(LISKN,SISKWN/LISKN)
170 MY_REAL,
INTENT(IN) :: RTRANS(NTRANSF,NRTRANS)
172 INTEGER,
INTENT(IN) :: ROOTLEN,INFILE_NAME_LEN
173 CHARACTER(LEN=ROOTLEN),
INTENT(IN) :: ROOTNAM
174 CHARACTER(LEN=INFILE_NAME_LEN),
INTENT(IN) :: INFILE_NAME
178 INTEGER IGS,I,J,ELTYP_SEG,ELTYP_ALL,SUB_ID
179 INTEGER SET_ID,ISET_TYPE,CLAUSES_MAX,ITMP,ICODE,SETL_SIZE
180 INTEGER OPT_D,OPT_O,OPT_G,OPT_B,OPT_A,OPT_E,OPT_I,OPT_C
181 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: SET_LIST,SETL
184 TYPE (SET_) :: CLAUSE
185 INTEGER CLAUSE_OPERATOR
187 INTEGER DUMMY_ARRAY(10),DSZ
189 TYPE (SET_SCRATCH) :: DELBUF
193 CHARACTER(LEN=NCHARFIELD) :: ,SET_TYPE,KEY_TYPE
194 CHARACTER(LEN=NCHARKEY) :: KEY,KEYPART
195 CHARACTER(LEN=NCHARTITLE) :: TITLE,SET_TITLE,TITLE2
202 IF (idebug == 1)
THEN
203 print*,
'------------- SET NG -------------'
210 ALLOCATE(set_list(
nsets))
211 CALL sort_set(lsubmodel ,map_tables, set_list,set,clause)
231 . option_id = set_id,
232 . option_titr = set_title,
235 . submodel_id = sub_id)
237 CALL hm_get_intv (
'iset_Type', iset_type,is_available,lsubmodel)
242 CALL set_init(set ,igs ,set_id, set_title, iset_type)
245 CALL hm_get_intv(
'clausesmax',clauses_max,is_available,lsubmodel)
248 print*,
'--------------------------------------------'
250 print*,
'MY_SET_ID =',set_id
251 print*,
'SET_TITLE =',trim(set_title)
252 print*,
' KEY =',key(1:len_trim(key))
253 print*,
'SET_TYPE =',set_type(1:len_trim(set_type))
254 print*,
'CLAUSE_MAX=',clauses_max
255 print*,
'SET_ACTIVE=',set(igs)%SET_ACTIV
270 CALL HM_GET_INT_ARRAY_INDEX('opt_e
',OPT_E,J,IS_AVAILABLE,LSUBMODEL)
271 CALL HM_GET_INT_ARRAY_INDEX('opt_i
',OPT_I,J,IS_AVAILABLE,LSUBMODEL)
272 CALL HM_GET_INT_ARRAY_INDEX('opt_c
',OPT_C,J,IS_AVAILABLE,LSUBMODEL)
274 !-----------------------
275 ! issue 'key
' ---> read one more character than the KEY
278 ITMP = LEN(TRIM(KEYSET))
279 ICODE = IACHAR(KEYSET(ITMP:ITMP))
281 KEYSET(ITMP:ITMP)=' '
284 !---------------------
286 !---------------------
287 CALL SET_OPERATOR( OPT_D,OPT_O,OPT_G, ! CLAUSE_OPERATOR = SET_ADD (1)
288 * OPT_B,opt_A,opt_E, ! SET_DELETE (2)
289 * OPT_I,OPT_C, ! SET_INTERSECT (3)
292 ! -----------------------------------------------------
294 WRITE(6,'(a,i6,a)
' ) ' ',J,' --------
'
295 WRITE(6,'(a,a)
') ' ',TRIM(KEYSET)
296 WRITE(6,'(a,i2)
') ' op :
',CLAUSE_OPERATOR
298 ! -----------------------------------------------------
299 ! To issue error & Warnings, initialize Clause ID & Title with SET_ID + TITLE
300 CLAUSE%SET_ID = SET(IGS)%SET_ID
301 CLAUSE%TITLE = TRIM(SET(IGS)%TITLE)
304 !------------------------
306 SELECT CASE (TRIM(KEYSET))
310 ! PART LIST FROM CLAUSE
311 !-----------------------
312 CALL CREATE_PART_CLAUSE(
313 . CLAUSE ,MAP_TABLES%IPARTM ,J ,OPT_G ,IS_AVAILABLE ,
318 CALL CREATE_ELEMENT_FROM_PART(CLAUSE ,INV_GROUP,NUMSPH)
320 ! Surface from ELEMENT
322 CALL CREATE_SURFACE_FROM_ELEMENT(
323 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
324 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
325 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
326 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
327 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
331 ! Line from 1D_ELEMENT
333 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
337 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
341 CALL CREATE_NODE_FROM_ELEMENT(
342 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
343 . IXC ,IXTG ,IXT ,IXP ,IXR ,
344 . IXX ,KXX ,KXSP ,CLAUSE ,GEO,
345 . DUMMY_ARRAY ,DSZ ,.FALSE. )
350 ! NODE LIST FROM CLAUSE
351 !-----------------------
352 CALL CREATE_NODE_CLAUSE(
353 . CLAUSE ,ITABM1 ,J ,OPT_G ,IS_AVAILABLE ,
354 . LSUBMODEL,OPT_B ,IBOX ,X ,SKEW ,
360 ! SOLID LIST FROM CLAUSE
361 !-----------------------
362 CALL CREATE_ELT_CLAUSE(
364 . MAP_TABLES%ISOLM, NUMELS,
365 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
366 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
367 . KEYSET ,NIXS ,IXS ,8 ,IPARTS ,
368 . IPART ,ADMBID ,ADMBID ,ADMBID )
370 ! Surface from ELEMENT
372 CALL CREATE_SURFACE_FROM_ELEMENT(
373 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
374 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
375 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
376 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
377 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
381 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
385 CALL CREATE_NODE_FROM_ELEMENT(
386 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
387 . IXC ,IXTG ,IXT ,IXP ,IXR ,
388 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
389 . DUMMY_ARRAY ,DSZ ,.FALSE. )
395 ! QUAD LIST FROM CLAUSE
396 !-----------------------
397 CALL CREATE_ELT_CLAUSE(
399 . MAP_TABLES%IQUADM, NUMELQ,
400 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
401 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
402 . KEYSET ,NIXQ ,IXQ ,4 ,IPARTQ ,
403 . IPART ,ADMBID ,ADMBID ,ADMBID )
405 ! Surface from ELEMENT
407 CALL CREATE_SURFACE_FROM_ELEMENT(
408 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
409 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
410 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
411 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
412 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
416 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
420 CALL CREATE_NODE_FROM_ELEMENT(
421 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
422 . IXC ,IXTG ,IXT ,IXP ,IXR ,
423 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
424 . DUMMY_ARRAY ,DSZ ,.FALSE. )
430 ! SHELL LIST FROM CLAUSE
431 !-----------------------
432 CALL CREATE_ELT_CLAUSE(
434 . MAP_TABLES%ISH4NM, NUMELC,
435 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
436 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
437 . KEYSET ,NIXC ,IXC ,4 ,IPARTC ,
438 . IPART ,3 ,SH4TREE ,KSH4TREE )
441 ! Surface from ELEMENT
443 CALL CREATE_SURFACE_FROM_ELEMENT(
444 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
445 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
446 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
447 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
448 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
452 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
456 CALL CREATE_NODE_FROM_ELEMENT(
457 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
458 . IXC ,IXTG ,IXT ,IXP ,IXR ,
459 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
460 . DUMMY_ARRAY ,DSZ ,.FALSE. )
466 ! SH3N LIST FROM CLAUSE
467 !-----------------------
468 CALL CREATE_ELT_CLAUSE(
470 . MAP_TABLES%ISH3NM, NUMELTG,
471 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
472 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
473 . KEYSET ,NIXTG ,IXTG ,3 ,IPARTG ,
474 . IPART ,3 ,SH3TREE ,KSH3TREE )
476 ! Surface from ELEMENT
478 CALL CREATE_SURFACE_FROM_ELEMENT(
479 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
480 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
481 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
482 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
483 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
487 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
491 CALL CREATE_NODE_FROM_ELEMENT(
492 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
493 . IXC ,IXTG ,IXT ,IXP ,IXR ,
494 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
495 . DUMMY_ARRAY ,DSZ ,.FALSE. )
501 ! SH3N LIST FROM CLAUSE
502 !-----------------------
503 CALL CREATE_ELT_CLAUSE(
505 . MAP_TABLES%ITRIAM, NUMELTRIA,
506 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
507 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
508 . KEYSET ,NIXTG ,IXTG ,3 ,IPARTG ,
509 . IPART ,ADMBID ,ADMBID ,ADMBID )
511 ! No surfaces, no lines
514 CALL CREATE_NODE_FROM_ELEMENT(
515 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
516 . IXC ,IXTG ,IXT ,IXP ,IXR ,
517 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
518 . DUMMY_ARRAY ,DSZ ,.FALSE. )
523 ! TRUSS LIST FROM CLAUSE
524 !-----------------------
525 CALL CREATE_ELT_CLAUSE(
527 . MAP_TABLES%ITRUSSM, NUMELT,
528 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
529 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
530 . KEYSET ,NIXT ,IXT ,2 ,IPARTT ,
531 . IPART ,ADMBID ,ADMBID ,ADMBID )
533 ! Line from 1D_ELEMENT
535 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
539 CALL CREATE_NODE_FROM_ELEMENT(
540 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
541 . IXC ,IXTG ,IXT ,IXP ,IXR ,
542 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
543 . DUMMY_ARRAY ,DSZ ,.FALSE. )
548 ! BEAM LIST FROM CLAUSE
549 !-----------------------
550 CALL CREATE_ELT_CLAUSE(
552 . MAP_TABLES%IBEAMM, NUMELP,
553 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
554 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
555 . KEYSET ,NIXP ,IXP ,2 ,IPARTP ,
556 . IPART ,ADMBID ,ADMBID ,ADMBID )
558 ! Line from 1D_ELEMENT
560 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
564 CALL CREATE_NODE_FROM_ELEMENT(
565 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
566 . IXC ,IXTG ,IXT ,IXP ,IXR ,
567 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
568 . DUMMY_ARRAY ,DSZ ,.FALSE. )
572 ! SPRING LIST FROM CLAUSE
573 !-----------------------
574 CALL CREATE_ELT_CLAUSE(
575 . CLAUSE, ELT_SPRING,
576 . MAP_TABLES%ISPRINGM, NUMELR,
577 . J ,OPT_G ,IS_AVAILABLE,LSUBMODEL ,OPT_B ,
578 . OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
579 . KEYSET ,NIXR ,IXR ,2 ,IPARTR ,
580 . IPART ,ADMBID ,ADMBID ,ADMBID )
582 ! Line from 1D_ELEMENT
584 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
588 CALL CREATE_NODE_FROM_ELEMENT(
589 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
590 . IXC ,IXTG ,IXT ,IXP ,IXR ,
591 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
592 . DUMMY_ARRAY ,DSZ ,.FALSE. )
597 ALLOCATE(SETL(NSETS))
600 CALL CREATE_SET_ARRAY(SETL ,SETL_SIZE, ! Read the clause & compute the list of SETs
601 . MAP_TABLES%ISETM , MAP_TABLES%NSET_GENERAL,
602 . J ,OPT_G ,IS_AVAILABLE ,
603 . LSUBMODEL,CLAUSE,1)
605 CALL CREATE_SET_CLAUSE( SET,
609 * IXC ,IXTG ,IXT ,IXP ,IXR ,
611 * SH3TREE ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC,
612 * KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
613 * IPART ,OPT_A ,OPT_O ,KNOD2ELQ ,NOD2ELQ,
614 * X ,KEYSET ,OPT_E ,DELBUF )
620 ALLOCATE(SETL(NSETS))
623 CALL CREATE_SETCOL_ARRAY(SET,SETL, SETL_SIZE ,
624 * MAP_TABLES%ISETCOLM,MAP_TABLES%NSET_COLLECT,
625 * J,OPT_G ,IS_AVAILABLE ,
628 ! At this stage we have list of SETs with internal IDs
629 ! The merge is same for SETs
630 ! -----------------------------------------------------
631 CALL CREATE_SET_CLAUSE( SET,
635 * IXC ,IXTG ,IXT ,IXP ,IXR ,
637 * SH3TREE ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC,
638 * KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
639 * IPART ,OPT_A ,OPT_O ,KNOD2ELQ ,NOD2ELQ,
640 * X ,KEYSET ,OPT_E ,DELBUF )
644 ! Surfaces and lines LIST FROM CLAUSE
645 !-----------------------
646 CALL CREATE_SEG_CLAUSE(CLAUSE, ITABM1, J, IS_AVAILABLE, LSUBMODEL)
650 IF (CLAUSE%NB_SURF_SEG > 0)CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF,.FALSE.)
652 ! Node from SEG (SURF or LINE)
653 CALL CREATE_NODE_FROM_SEG( CLAUSE )
658 !-----------------------
660 !-----------------------
662 ! PART LIST FROM CLAUSE
663 !-----------------------
664 CALL CREATE_PART_ALL_CLAUSE( CLAUSE )
668 CALL CREATE_ELEM_ALL_CLAUSE( CLAUSE )
670 ! Surface from ELEMENT
672 CALL CREATE_SURFACE_FROM_ELEMENT(
673 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
674 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
675 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
676 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
677 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
681 ! Line from 1D_ELEMENT
683 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
688 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
691 ! Node ( 1 ... NUMNOD )
692 CALL CREATE_NODE_ALL_CLAUSE( CLAUSE )
695 !IF (IDEBUG == 1)THEN
696 ! print*,'check_all_model
'
697 ! print*,'---------------
'
698 ! print*,'numnod =
' ,NUMNOD, 'clause%NB_NODE =
' ,CLAUSE%NB_NODE
699 ! print*,'npart =
' ,NPART, 'clause%NB_PART =
' ,CLAUSE%NB_PART
700 ! print*,'solid =
' ,NUMELS, 'clause%NB_SOLID =
' ,CLAUSE%NB_SOLID
701 ! print*,'quad =
' ,NUMELQ, 'clause%NB_QUAD =
' ,CLAUSE%NB_QUAD
702 ! print*,'shell =
' ,NUMELC, 'clause%NB_SH4N =
' ,CLAUSE%NB_SH4N
703 ! print*,'sh3n =
' ,NUMELTG, 'clause%NB_SH3N =
' ,CLAUSE%NB_SH3N
704 ! print*,'tria =
' ,NUMELTRIA, 'clause%NB_TRIA =
' ,CLAUSE%NB_TRIA
705 ! print*,'truss =
' ,NUMELT, 'clause%NB_TRUSS =
' ,CLAUSE%NB_TRUSS
706 ! print*,'beam =
' ,NUMELP, 'clause%NB_BEAM =
' ,CLAUSE%NB_BEAM
707 ! print*,'spring =
',NUMELR, 'clause%NB_SPRING =
',CLAUSE%NB_SPRING
710 CASE ( 'box
', 'box2
' )
712 CALL CREATE_BOX_CLAUSE(
713 * CLAUSE ,J ,IS_AVAILABLE,LSUBMODEL ,KEYSET ,
714 * ITABM1 ,IBOX ,X ,SKEW ,IXS10 ,
715 * SET_TITLE,IPART ,SH4TREE ,SH3TREE ,IPARTS ,
716 * IPARTQ ,IPARTC ,IPARTG ,IPARTT ,IPARTP ,
717 * IPARTR ,IXS ,IXQ ,IXC ,IXTG ,
718 * IXT ,IXP ,IXR ,KNOD2ELS ,NOD2ELS ,
719 * KNOD2ELC ,NOD2ELC ,KNOD2ELTG ,NOD2ELTG ,KNOD2ELQ ,
720 * NOD2ELQ ,OPT_A ,OPT_O ,OPT_E ,DELBUF ,
721 * RBY_MSN ,MAP_TABLES%IRBODYM)
726 ! PART LIST FROM CLAUSE
727 !-----------------------
728 CALL CREATE_SUBS_CLAUSE(
729 . CLAUSE ,MAP_TABLES%ISUBSM ,J ,OPT_G ,IS_AVAILABLE ,
734 CALL CREATE_ELEMENT_FROM_PART(CLAUSE ,INV_GROUP,NUMSPH)
736 ! Surface from ELEMENT
738 CALL CREATE_SURFACE_FROM_ELEMENT(
739 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
740 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
741 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
742 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
743 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
747 ! Line from 1D_ELEMENT
749 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
753 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
757 CALL CREATE_NODE_FROM_ELEMENT(
758 . IXS ,IXS10 ,IXS20 ,IXS16 ,IXQ ,
759 . IXC ,IXTG ,IXT ,IXP ,IXR ,
760 . IXX ,KXX ,KXSP ,CLAUSE ,GEO ,
761 . DUMMY_ARRAY ,DSZ ,.FALSE. )
767 ! PART LIST FROM CLAUSE
768 !-----------------------
769 CALL CREATE_SUBM_CLAUSE(
770 . CLAUSE ,MAP_TABLES%ISUBMM ,J ,OPT_G ,IS_AVAILABLE ,
775 CALL CREATE_ELEMENT_FROM_PART(CLAUSE ,INV_GROUP,NUMSPH)
777 ! Surface from ELEMENT
779 CALL CREATE_SURFACE_FROM_ELEMENT(
780 . IXS ,IXS10 ,SH4TREE ,SH3TREE ,IXC ,
781 . IXTG ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC ,
782 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
783 . IPART ,CLAUSE ,OPT_A ,OPT_O ,IXQ ,
784 . KNOD2ELQ ,NOD2ELQ ,X ,KEYSET ,DELBUF ,
788 ! Line from 1D_ELEMENT
790 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
794 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
803 . clause ,map_tables%IRBODYM ,j ,opt_g ,is_available ,
804 . lsubmodel,opt_b ,ibox,x ,skew ,
805 . set_title,keyset ,rby_msn )
815 set(igs)%NB_ELLIPSE = 1
817 . clause ,nrtrans ,lsubmodel,unitab ,iskn ,
818 . iad ,ntransf ,numskw ,liskn ,lskew ,
819 . sskew ,siskwn ,nspcond ,numsph )
825 set(igs)%NB_PLANE = 1
826 CALL create_plane_clause(clause%SET_ID ,clause%TITLE ,sub_id ,clause ,lsubmodel,
833 CALL create_nodens_clause(clause ,itabm1 ,j ,is_available ,lsubmodel ,numnod)
837 CALL ancmsg(msgid=1906,anmode=anstop,
839 . i1 = clause%SET_ID,
840 . c1=trim(clause%TITLE),
849 . ixc ,ixtg ,ixt ,ixp ,ixr ,
851 . sh3tree ,knod2els ,nod2els ,knod2elc ,nod2elc,
852 . knod2eltg ,nod2eltg ,ipartc ,ipartg ,iparts ,
853 . ipart ,opt_a ,opt_o ,knod2elq ,nod2elq,
854 . x ,keyset ,opt_e ,delbuf )
859 IF( trim(key) ==
'COLLECT' )
THEN
861 IF (set(igs)%SET_ACTIV == 1)
THEN
863 CALL create_set_collect(set ,set_id ,igs ,map_tables%ISETCOLM ,map_tables%NSET_COLLECT,
865 * ixc ,ixtg ,ixt ,ixp ,ixr ,
867 . sh3tree ,knod2els ,nod2els ,knod2elc ,nod2elc,
868 . knod2eltg ,nod2eltg ,ipartc ,ipartg ,iparts ,
869 . ipart ,opt_a ,opt_o ,knod2elq ,nod2elq
870 . x ,keyset ,opt_e ,delbuf )
902 . igrsurf ,igrnod ,igrslin ,igrpart ,igrbric, igrquad ,
903 . igrsh4n ,igrsh3n ,igrtruss ,igrbeam ,igrspring,bufsf ,
904 . lisurf1 ,rootnam ,rootlen ,infile_name ,infile_name_len)
subroutine hm_set(set, lsubmodel, inv_group, map_tables, ipart, igrsurf, igrnod, igrslin, igrpart, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, ixs, ixs10, ixc, ixtg, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, ipartc, ipartg, iparts, sh4tree, sh3tree, ixq, knod2elq, nod2elq, x, ixt, ixp, ixr, ixx, kxx, kxsp, ixs20, ixs16, geo, itabm1, ibox, skew, ipartq, ipartt, ipartp, ipartr, subset, rby_msn, iskn, rtrans, unitab, bufsf, iad, siskwn, sskew, rootnam, rootlen, infile_name, infile_name_len)
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)