39 * JCLAUSE,Opt_G,IS_AVAILABLE ,LSUBMODEL,OPT_B,
40 * OPT_C ,IBOX ,X ,SKEW ,SET_TITLE,
41 * KEYSET ,NIX ,IX ,NIX1 ,IPARTE ,
42 * IPART ,KLEVTREE,ELTREE ,KELTREE)
74#include "implicit_f.inc"
84 INTEGER IPARTE(*),IPART(LIPART1,*),IX(,*),ELTREE(KELTREE,*)
85 INTEGER ELTYP,JCLAUSE,Opt_G,OPT_B,OPT_C,NIX,NIX1,KLEVTREE,
87 INTEGER,
INTENT(IN) :: MAPSIZE
88 INTEGER,
DIMENSION(MAPSIZE,2) :: MAP
89 LOGICAL :: IS_AVAILABLE
91 . x(3,*),skew(lskew,*)
92 CHARACTER(LEN=NCHARFIELD) :: KEYSET
93 CHARACTER(LEN=NCHARTITLE) :: SET_TITLE
96 TYPE(SUBMODEL_DATA),
INTENT(IN):: LSUBMODEL(*)
97 TYPE (BOX_) ,
DIMENSION(NBBOX) :: IBOX
108 IF(got_elements == 0)
THEN
112 IF (opt_g == 1 )
THEN
114 CALL create_elt_list_g(clause,eltyp, map, mapsize, jclause ,is_available ,lsubmodel)
116 ELSEIF( opt_g == 0 .AND. opt_b == 0 .AND. opt_c == 0 )
THEN
118 CALL create_elt_list (clause,eltyp, map, mapsize, jclause ,is_available ,lsubmodel)
120 ELSEIF ( opt_b == 1 .OR. opt_c == 1 )
THEN
121 IF (opt_b == 1) boxtype = 1
122 IF (opt_c == 1) boxtype = 2
124 * clause ,iparte ,jclause ,is_available ,lsubmodel,
125 * ibox ,x ,skew ,set_title ,keyset ,
126 * boxtype ,mapsize ,nix ,ix ,nix1 ,
127 * ipart ,eltree ,klevtree,keltree ,eltyp )
147 . CLAUSE,ELTYP , MAP, MAPSIZE, JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
173#include "implicit_f.inc"
177#include "radioss_maptable.inc"
181 INTEGER JCLAUSE,ELTYP
182 INTEGER,
INTENT(IN) :: MAPSIZE
183 INTEGER,
DIMENSION(MAPSIZE,2),
INTENT(IN) :: MAP
185 LOGICAL :: IS_AVAILABLE
187 TYPE (SET_) :: CLAUSE
192 INTEGER IDS,IDS_MAX,GENE_MAX,K,E,E1
193 INTEGER START_GENE,END_GENE,INCR_GENE,ESTART,ESTOP,STACK,STACK_ONE,NB_RESULT
195 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELT_READ_TMP,
196 . ELT_READ_ONE,RESULT
198 INTEGER SET_USRTOS_NEAREST
199 EXTERNAL set_usrtos_nearest
203 ALLOCATE(elt_read_tmp(mapsize))
204 ALLOCATE(elt_read_one(mapsize))
206 IF (gene_max > 1)
THEN
207 ALLOCATE(result(mapsize))
218 IF (incr_gene == 0) incr_gene = 1
220 estart = set_usrtos_nearest(start_gene,map,mapsize,1)
221 estop = set_usrtos_nearest(end_gene,map,mapsize,2)
226 IF ( mod( e1-start_gene , incr_gene) == 0)
THEN
227 stack_one = stack_one+1
228 elt_read_one(stack_one) = map(e,2)
233 elt_read_tmp(1:stack_one) = elt_read_one(1:stack_one)
237 CALL union_2_sorted_sets( elt_read_tmp, stack ,
238 * elt_read_one, stack_one ,
239 * result, nb_result )
241 elt_read_tmp(1:nb_result) = result(1:nb_result)
249 DEALLOCATE (elt_read_tmp)
250 DEALLOCATE (elt_read_one)
251 IF (
ALLOCATED(result))
DEALLOCATE (result)
271 . CLAUSE,ELTYP,MAP,MAPSIZE,JCLAUSE,IS_AVAILABLE ,LSUBMODEL)
298#include "implicit_f.inc"
302#include "radioss_maptable.inc"
306 INTEGER JCLAUSE,ELTYP
307 INTEGER,
INTENT(IN) ::
308 INTEGER,
DIMENSION(MAPSIZE,2),
INTENT(IN) ::
310 LOGICAL :: IS_AVAILABLE
312 TYPE (SET_) :: CLAUSE
317 CHARACTER (LEN=20) :: ELEMENT_NAME
318 INTEGER I,IDS,SYSID,NINDX,LIST_SIZE,IDS_MAX,ELTP,ELT
321 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELT_READ_TMP,SORTED_LIST,IDX
330 ALLOCATE(elt_read_tmp(ids_max))
331 ALLOCATE(sorted_list(ids_max))
333 elt_read_tmp(1:ids_max) = 0
335 ALLOCATE(idx(2*ids_max))
346 eltp = set_usrtos(ids,map,mapsize)
350 CALL ancmsg(msgid=1902,anmode=aninfo,
351 . msgtype=msgwarning,
352 . i1 = clause%SET_ID,
354 . c1=trim(clause%TITLE),
355 . c2=trim(element_name) )
361 elt_read_tmp(nindx) = elt
372 CALL my_orders(0,iwork,elt_read_tmp,idx,nindx,1)
375 sorted_list(i) = elt_read_tmp(idx(i))
379 CALL remove_duplicates(sorted_list,nindx,list_size)
387 DEALLOCATE(elt_read_tmp)
389 DEALLOCATE(sorted_list)
426#include "implicit_f.inc"
430#include "radioss_maptable.inc"
434 TYPE (SET_) :: CLAUSE
435 INTEGER,
INTENT(IN) :: ELTYP,LIST_SIZE
436 INTEGER,
INTENT(IN),
DIMENSION(LIST_SIZE) :: SORTED_LIST
450 clause%NB_SOLID = list_size
451 ALLOCATE( clause%SOLID( list_size ) )
454 clause%SOLID(i) = sorted_list(i)
461 clause%NB_QUAD = list_size
462 ALLOCATE( clause%QUAD( list_size ) )
465 clause%QUAD(i) = sorted_list(i)
472 clause%NB_SH4N = list_size
473 ALLOCATE( clause%SH4N( list_size ) )
476 clause%SH4N(i) = sorted_list(i)
483 clause%NB_SH3N = list_size
484 ALLOCATE( clause%SH3N( list_size ) )
487 clause%SH3N(i) = sorted_list(i)
494 clause%NB_TRIA = list_size
495 ALLOCATE( clause%TRIA( list_size ) )
498 clause%TRIA(i) = sorted_list(i)
505 clause%NB_TRUSS = list_size
506 ALLOCATE( clause%TRUSS( list_size ) )
509 clause%TRUSS(i) = sorted_list(i)
516 clause%NB_BEAM = list_size
517 ALLOCATE( clause%BEAM( list_size ) )
520 clause%BEAM(i) = sorted_list(i)
527 clause%NB_SPRING = list_size
528 ALLOCATE( clause%SPRING( list_size ) )
531 clause%SPRING(i) = sorted_list(i)
538!||====================================================================
560#include "implicit_f.inc"
564#include "radioss_maptable.inc"
569 CHARACTER (LEN=20) :: ELEMENT_NAME
577 element_name=
'SOLID ELEMENT'
583 element_name=
'QUAD ELEMENT'
589 element_name=
'SHELL ELEMENT'
595 element_name=
'TRIANGLE ELEMENT'
601 element_name=
'TRIANGLE ELEMENT'
607 element_name=
'TRUSS ELEMENT'
613 element_name=
'BEAM ELEMENT'
619 element_name=
'SPRING ELEMENT'
subroutine check_eltyp(eltyp, clause, ok)
subroutine copy_list_in_cause(clause, eltyp, sorted_list, list_size)
subroutine create_elt_list_g(clause, eltyp, map, mapsize, jclause, is_available, lsubmodel)
subroutine create_elt_list(clause, eltyp, map, mapsize, jclause, is_available, lsubmodel)
subroutine create_elt_clause(clause, eltyp, map, mapsize, jclause, opt_g, is_available, lsubmodel, opt_b, opt_c, ibox, x, skew, set_title, keyset, nix, ix, nix1, iparte, ipart, klevtree, eltree, keltree)
subroutine get_elt_name(eltyp, element_name)
subroutine create_elt_box(clause, iparte, jclause, is_available, lsubmodel, ibox, x, skew, set_title, keyset, boxtype, numel, nix, ix, nix1, ipart, eltree, klevtree, keltree, eltyp)
subroutine hm_get_int_array_2indexes(name, ival, index1, index2, is_available, lsubmodel)
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
integer, parameter nchartitle
integer, parameter ncharfield
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)