OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_set.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_set ../starter/source/model/sets/hm_set.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| clause_init ../starter/source/model/sets/clause_init.F
30!|| create_box_clause ../starter/source/model/sets/create_box_clause.F
31!|| create_elem_all_clause ../starter/source/model/sets/create_elem_all_clause.F
32!|| create_element_from_part ../starter/source/model/sets/create_element_from_part.F
33!|| create_ellipse_clause ../starter/source/model/sets/create_ellipse_clause.F
34!|| create_elt_clause ../starter/source/model/sets/create_element_clause.F
35!|| create_line_from_element ../starter/source/model/sets/create_line_from_element.F
36!|| create_line_from_surface ../starter/source/model/sets/create_line_from_surface.F
37!|| create_node_all_clause ../starter/source/model/sets/create_node_all_clause.F
38!|| create_node_clause ../starter/source/model/sets/create_node_clause.F
39!|| create_node_from_element ../starter/source/model/sets/create_node_from_element.F
40!|| create_node_from_rbody ../starter/source/model/sets/create_node_from_rbody.F
41!|| create_node_from_seg ../starter/source/model/sets/create_node_from_seg.F
42!|| create_nodens_clause ../starter/source/model/sets/create_nodens_clause.F90
43!|| create_part_all_clause ../starter/source/model/sets/create_part_all_clause.F
44!|| create_part_clause ../starter/source/model/sets/create_part_clause.F
45!|| create_plane_clause ../starter/source/model/sets/create_plane_clause.F90
46!|| create_rbody_clause ../starter/source/model/sets/create_rbody_clause.F
47!|| create_seg_clause ../starter/source/model/sets/create_seg_clause.F
48!|| create_set_array ../starter/source/model/sets/create_set_clause.F
49!|| create_set_clause ../starter/source/model/sets/create_set_clause.F
50!|| create_set_collect ../starter/source/model/sets/create_setcol_clause.F
51!|| create_setcol_array ../starter/source/model/sets/create_setcol_clause.F
52!|| create_subm_clause ../starter/source/model/sets/create_subm_clause.F
53!|| create_subs_clause ../starter/source/model/sets/create_subs_clause.F
54!|| create_surface_from_element ../starter/source/model/sets/create_surface_from_element.F
55!|| fill_igr ../starter/source/model/sets/fill_igr.F
56!|| hm_get_int_array_index ../starter/source/devtools/hm_reader/hm_get_int_array_index.F
57!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
58!|| hm_get_string ../starter/source/devtools/hm_reader/hm_get_string.F
59!|| hm_get_string_index ../starter/source/devtools/hm_reader/hm_get_string_index.F
60!|| hm_option_read_key ../starter/source/devtools/hm_reader/hm_option_read_key.F
61!|| hm_option_start_list ../starter/source/devtools/hm_reader/hm_option_start.F
62!|| insert_clause_in_set ../starter/source/model/sets/insert_clause_in_set.F
63!|| set_init ../starter/source/model/sets/set_init.F
64!|| set_operator ../starter/source/model/sets/set_operator.F
65!|| sort_set ../starter/source/model/sets/sort_sets.F
66!||--- uses -----------------------------------------------------
67!|| create_nodens_clause_mod ../starter/source/model/sets/create_nodens_clause.F90
68!|| create_plane_clause_mod ../starter/source/model/sets/create_plane_clause.F90
69!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
70!|| inverted_group_mod ../starter/share/modules1/inverted_group_mod.F
71!|| mapping_option_mod ../starter/share/modules1/dichotomy_mod.F
72!|| message_mod ../starter/share/message_module/message_mod.F
73!|| submodel_mod ../starter/share/modules1/submodel_mod.F
74!||====================================================================
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 )
88C-----------------------------------------------
89C ROUTINE DESCRIPTION :
90C ===================
91C Main Routine for SET read & treatments
92C-----------------------------------------------
93C DUMMY ARGUMENTS DESCRIPTION:
94C ===================
95C
96C NAME DESCRIPTION
97C
98C SET Set Structure
99C LSUBMODEL Submodel Structure
100C IPARTM1 PART Map table UID -> Internal ID
101C IGRxxx Radioss Structures Groups of Nodes, Parts, Elements, Surfaces and lines
102C===========================================================================================
103C-----------------------------------------------
104C M o d u l e s
105C-----------------------------------------------
107 USE setdef_mod
108 USE submodel_mod
111 USE groupdef_mod
112 USE optiondef_mod
113 USE message_mod
115 USE unitab_mod
116 USE create_plane_clause_mod
117 USE create_nodens_clause_mod
119C-----------------------------------------------
120C I m p l i c i t T y p e s
121C-----------------------------------------------
122#include "implicit_f.inc"
123C-----------------------------------------------
124C C o m m o n B l o c k s
125C-----------------------------------------------
126#include "radioss_maptable.inc"
127#include "com04_c.inc"
128#include "scr17_c.inc"
129#include "param_c.inc"
130#include "sphcom.inc"
131C-----------------------------------------------
132C D u m m y A r g u m e n t s
133C-----------------------------------------------
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) :: UNITAB
140
141 TYPE (GROUP_) , 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):: IGRQUAD(*)
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(*)
153
154 INTEGER, INTENT(INOUT) :: IAD
155 my_real, INTENT(INOUT) :: bufsf(lisurf1*(nsurf+nsets))
156 INTEGER, DIMENSION(2*NUMNOD), INTENT(IN) :: ITABM1
157 INTEGER, DIMENSION(2*NRBODY), INTENT(IN) :: RBY_MSN
158
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
167 my_real
168 . x(3,*),geo(npropg,*),skew(lskew,*)
169 INTEGER, INTENT(IN) :: ISKN(LISKN,SISKWN/LISKN)
170 MY_REAL, INTENT(IN) :: RTRANS(NTRANSF,NRTRANS)
171
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
175C-----------------------------------------------
176C L o c a l V a r i a b l e s
177C-----------------------------------------------
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
182 INTEGER IDEBUG
183 LOGICAL IS_AVAILABLE
184 TYPE (SET_) :: CLAUSE
185 INTEGER CLAUSE_OPERATOR
186 INTEGER ADMBID
187 INTEGER DUMMY_ARRAY(10),DSZ
188 DATA ADMBID/0/
189 TYPE (SET_SCRATCH) :: DELBUF
190C-----------------CREATE_SET_ARRAY------------------------------
191C Characters
192 CHARACTER MESS*40
193 CHARACTER(LEN=NCHARFIELD) :: KEYSET,SET_TYPE,KEY_TYPE
194 CHARACTER(LEN=NCHARKEY) :: KEY,KEYPART
195 CHARACTER(LEN=NCHARTITLE) :: TITLE,SET_TITLE,TITLE2
196
197C-----------------------------------------------
198C Initialization / SET Dependency build
199C-----------------------------------------------
200
201 idebug = 0
202 IF (idebug == 1) THEN
203 print*,'------------- SET NG -------------'
204 ENDIF
205
206
207C-------------------------------------------
208C Reorder Sets to take care of dependencies
209C-------------------------------------------
210 ALLOCATE(set_list(nsets))
211 CALL sort_set(lsubmodel ,map_tables, set_list,set,clause)
212
213C-----------------------------------------------
214C SET MAIN LOOP
215C-----------------------------------------------
216 CALL hm_option_start_list('/SET')
217
218 ! ------------------------
219 ! Initial CLAUSE init
220 ! ------------------------
221
222
223 DO i = 1,nsets
224 igs = set_list(i)
225
226 set_type = ' '
227 keyset = ' '
228 key = ' '
229
230 CALL hm_option_read_key (lsubmodel,
231 . option_id = set_id,
232 . option_titr = set_title,
233 . keyword2 = key,
234 . opt_pos = igs,
235 . submodel_id = sub_id)
236 CALL hm_get_string('set_Type' , set_type ,ncharfield, is_available)
237 CALL hm_get_intv ('iset_Type', iset_type,is_available,lsubmodel)
238
239 ! --------------------
240 ! Current SET_INIT
241 ! --------------------
242 CALL set_init(set ,igs ,set_id, set_title, iset_type)
243
244
245 CALL hm_get_intv('clausesmax',clauses_max,is_available,lsubmodel)
246
247 IF (idebug == 1)THEN
248 print*,'--------------------------------------------'
249 print*,'IGS =',igs
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
256 print*,' '
257 ENDIF
258
259 DO j=1,clauses_max ! max KEY's of the current /SET
260
261 CALL clause_init(clause)
262
263 CALL hm_get_string_index('KEY_type', keyset, j, ncharline, is_available)
264
265 CALL hm_get_int_array_index('opt_D',opt_d,j,is_available,lsubmodel)
266 CALL hm_get_int_array_index('opt_O',opt_o,j,is_available,lsubmodel)
267 CALL hm_get_int_array_index('opt_G',opt_g,j,is_available,lsubmodel)
268 CALL hm_get_int_array_index('opt_B',opt_b,j,is_available,lsubmodel)
269 CALL hm_get_int_array_index('opt_a',OPT_A,J,IS_AVAILABLE,LSUBMODEL)
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)
273
274 !-----------------------
275 ! issue 'key' ---> read one more character than the KEY
276 ! ===> workaround
277
278 ITMP = LEN(TRIM(KEYSET))
279 ICODE = IACHAR(KEYSET(ITMP:ITMP))
280 IF (ICODE == 0) THEN
281 KEYSET(ITMP:ITMP)=' '
282 ENDIF
283
284 !---------------------
285 ! Clause Operator
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)
290 * CLAUSE_OPERATOR )
291
292 ! -----------------------------------------------------
293 IF (IDEBUG == 1)THEN
294 WRITE(6,'(a,i6,a)' ) ' ',J,' --------'
295 WRITE(6,'(a,a)') ' ',TRIM(KEYSET)
296 WRITE(6,'(a,i2)') ' op :',CLAUSE_OPERATOR
297 ENDIF
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)
302
303 ! Clause Treatment
304 !------------------------
305
306 SELECT CASE (TRIM(KEYSET))
307
308 CASE ( 'part' )
309
310 ! PART LIST FROM CLAUSE
311 !-----------------------
312 CALL CREATE_PART_CLAUSE(
313 . CLAUSE ,MAP_TABLES%IPARTM ,J ,OPT_G ,IS_AVAILABLE ,
314 . LSUBMODEL)
315
316 ! Element from PART
317 !-------------------
318 CALL CREATE_ELEMENT_FROM_PART(CLAUSE ,INV_GROUP,NUMSPH)
319
320 ! Surface from ELEMENT
321 !-------------------
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 ,
328 . .FALSE. )
329
330
331 ! Line from 1D_ELEMENT
332 !-------------------
333 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
334 . .FALSE.)
335
336 ! Line from SURFACE
337 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
338 . .FALSE.)
339
340 ! Node from ELEMENT
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. )
346
347
348 CASE ( 'node' )
349
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 ,
355 . SET_TITLE,KEYSET )
356
357
358 CASE ( 'solid' )
359
360 ! SOLID LIST FROM CLAUSE
361 !-----------------------
362 CALL CREATE_ELT_CLAUSE(
363 . CLAUSE, ELT_SOLID,
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 )
369
370 ! Surface from ELEMENT
371 !-------------------
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 ,
378 . .FALSE. )
379
380 ! Line from SURFACE
381 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
382 . .FALSE.)
383
384 ! Node from ELEMENT
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. )
390
391
392
393 CASE ( 'quad' )
394
395 ! QUAD LIST FROM CLAUSE
396 !-----------------------
397 CALL CREATE_ELT_CLAUSE(
398 . CLAUSE, ELT_QUAD,
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 )
404
405 ! Surface from ELEMENT
406 !-------------------
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 ,
413 . .FALSE. )
414
415 ! Line from SURFACE
416 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
417 . .FALSE.)
418
419 ! Node from ELEMENT
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. )
425
426
427
428 CASE ( 'shell' )
429
430 ! SHELL LIST FROM CLAUSE
431 !-----------------------
432 CALL CREATE_ELT_CLAUSE(
433 . CLAUSE, ELT_SH4N,
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 )
439
440
441 ! Surface from ELEMENT
442 !-------------------
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 ,
449 . .FALSE. )
450
451 ! Line from SURFACE
452 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
453 . .FALSE.)
454
455 ! Node from ELEMENT
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. )
461
462
463
464 CASE ( 'sh3n' )
465
466 ! SH3N LIST FROM CLAUSE
467 !-----------------------
468 CALL CREATE_ELT_CLAUSE(
469 . CLAUSE, ELT_SH3N,
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 )
475
476 ! Surface from ELEMENT
477 !-------------------
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 ,
484 . .FALSE. )
485
486 ! Line from SURFACE
487 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
488 . .FALSE.)
489
490 ! Node from ELEMENT
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. )
496
497
498
499 CASE ( 'tria' )
500
501 ! SH3N LIST FROM CLAUSE
502 !-----------------------
503 CALL CREATE_ELT_CLAUSE(
504 . CLAUSE, ELT_TRIA,
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 )
510
511 ! No surfaces, no lines
512
513 ! Node from ELEMENT
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. )
519
520
521 CASE ( 'truss' )
522
523 ! TRUSS LIST FROM CLAUSE
524 !-----------------------
525 CALL CREATE_ELT_CLAUSE(
526 . CLAUSE, ELT_TRUSS,
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 )
532
533 ! Line from 1D_ELEMENT
534 !-------------------
535 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
536 . .FALSE.)
537
538 ! Node from ELEMENT
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. )
544
545
546 CASE ( 'beam' )
547
548 ! BEAM LIST FROM CLAUSE
549 !-----------------------
550 CALL CREATE_ELT_CLAUSE(
551 . CLAUSE, ELT_BEAM,
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 )
557
558 ! Line from 1D_ELEMENT
559 !-------------------
560 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
561 . .FALSE.)
562
563 ! Node from ELEMENT
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. )
569
570 CASE ( 'spring' )
571
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 )
581
582 ! Line from 1D_ELEMENT
583 !-------------------
584 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
585 . .FALSE.)
586
587 ! Node from ELEMENT
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. )
593
594
595 CASE ('set')
596
597 ALLOCATE(SETL(NSETS))
598 SETL_SIZE=0
599
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)
604
605 CALL CREATE_SET_CLAUSE( SET,
606 * SETL ,SETL_SIZE,
607 * CLAUSE,
608 * IXS ,IXS10 , IXQ ,
609 * IXC ,IXTG ,IXT ,IXP ,IXR ,
610 * SH4TREE,
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 )
615
616 DEALLOCATE(SETL)
617
618 CASE ('setcol')
619
620 ALLOCATE(SETL(NSETS))
621 SETL_SIZE=0
622
623 CALL CREATE_SETCOL_ARRAY(SET,SETL, SETL_SIZE ,
624 * MAP_TABLES%ISETCOLM,MAP_TABLES%NSET_COLLECT,
625 * J,OPT_G ,IS_AVAILABLE ,
626 * LSUBMODEL)
627
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,
632 * SETL ,SETL_SIZE,
633 * CLAUSE,
634 * IXS ,IXS10 , IXQ ,
635 * IXC ,IXTG ,IXT ,IXP ,IXR ,
636 * SH4TREE,
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 )
641
642 CASE ( 'seg' )
643
644 ! Surfaces and lines LIST FROM CLAUSE
645 !-----------------------
646 CALL CREATE_SEG_CLAUSE(CLAUSE, ITABM1, J, IS_AVAILABLE, LSUBMODEL)
647
648 ! Line from SURFACE
649 ! ELTYP_SEG = 0
650 IF (CLAUSE%NB_SURF_SEG > 0)CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF,.FALSE.)
651
652 ! Node from SEG (SURF or LINE)
653 CALL CREATE_NODE_FROM_SEG( CLAUSE )
654
655
656 CASE ( 'all' )
657
658 !-----------------------
659 ! ALL model
660 !-----------------------
661
662 ! PART LIST FROM CLAUSE
663 !-----------------------
664 CALL CREATE_PART_ALL_CLAUSE( CLAUSE )
665
666 ! Element from PART
667 !-------------------
668 CALL CREATE_ELEM_ALL_CLAUSE( CLAUSE )
669
670 ! Surface from ELEMENT
671 !-------------------
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 ,
678 . .FALSE. )
679
680
681 ! Line from 1D_ELEMENT
682 !-------------------
683 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
684 . .FALSE.)
685
686 ! Line from SURFACE
687!! ELTYP_ALL = 0
688 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
689 . .FALSE.)
690
691 ! Node ( 1 ... NUMNOD )
692 CALL CREATE_NODE_ALL_CLAUSE( CLAUSE )
693
694
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
708 !ENDIF
709
710 CASE ( 'box', 'box2' )
711
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)
722
723
724 CASE ( 'subs' )
725
726 ! PART LIST FROM CLAUSE
727 !-----------------------
728 CALL CREATE_SUBS_CLAUSE(
729 . CLAUSE ,MAP_TABLES%ISUBSM ,J ,OPT_G ,IS_AVAILABLE ,
730 . LSUBMODEL,SUBSET )
731
732 ! Element from PART
733 !-------------------
734 CALL CREATE_ELEMENT_FROM_PART(CLAUSE ,INV_GROUP,NUMSPH)
735
736 ! Surface from ELEMENT
737 !-------------------
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 ,
744 . .FALSE. )
745
746
747 ! Line from 1D_ELEMENT
748 !-------------------
749 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
750 . .FALSE.)
751
752 ! Line from SURFACE
753 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
754 . .FALSE.)
755
756 ! Node from ELEMENT
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. )
762
763
764 CASE ( 'subm' )
765
766
767 ! PART LIST FROM CLAUSE
768 !-----------------------
769 CALL CREATE_SUBM_CLAUSE(
770 . CLAUSE ,MAP_TABLES%ISUBMM ,J ,OPT_G ,IS_AVAILABLE ,
771 . LSUBMODEL,IPART )
772
773 ! Element from PART
774 !-------------------
775 CALL CREATE_ELEMENT_FROM_PART(CLAUSE ,INV_GROUP,NUMSPH)
776
777 ! Surface from ELEMENT
778 !-------------------
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 ,
785 . .FALSE. )
786
787
788 ! Line from 1D_ELEMENT
789 !-------------------
790 CALL CREATE_LINE_FROM_ELEMENT(IXT ,IXP ,IXR ,CLAUSE,DELBUF ,
791 . .FALSE.)
792
793 ! Line from SURFACE
794 CALL CREATE_LINE_FROM_SURFACE(CLAUSE,KEYSET,OPT_A,OPT_E,DELBUF ,
795 . .FALSE.)
796
797
798
799 CASE ( 'rbody' )
800
801 ! RBODY LIST FROM CLAUSE
803 . clause ,map_tables%IRBODYM ,j ,opt_g ,is_available ,
804 . lsubmodel,opt_b ,ibox,x ,skew ,
805 . set_title,keyset ,rby_msn )
806
807 ! Main node from RBODY
808 CALL create_node_from_rbody(rby_msn,clause)
809
810
811 CASE ( 'ELLIPS' )
812
813 ! Hyper-ellipsoid surface definition
814 !-----------------------
815 set(igs)%NB_ELLIPSE = 1
816 CALL create_ellipse_clause(clause%SET_ID,clause%TITLE ,sub_id ,skew ,rtrans,
817 . clause ,nrtrans ,lsubmodel,unitab ,iskn ,
818 . iad ,ntransf ,numskw ,liskn ,lskew ,
819 . sskew ,siskwn ,nspcond ,numsph )
820
821 CASE ( 'PLANE' )
822
823 ! PLANE surface definition
824 !-----------------------
825 set(igs)%NB_PLANE = 1
826 CALL create_plane_clause(clause%SET_ID ,clause%TITLE ,sub_id ,clause ,lsubmodel,
827 . unitab ,iad ,nrtrans ,ntransf,rtrans )
828
829 CASE ( 'NODENS' )
830
831 ! NODENS -> unsortable node list
832 !-----------------------
833 CALL create_nodens_clause(clause ,itabm1 ,j ,is_available ,lsubmodel ,numnod)
834
835 CASE DEFAULT
836
837 CALL ancmsg(msgid=1906,anmode=anstop,
838 . msgtype=msgerror,
839 . i1 = clause%SET_ID,
840 . c1=trim(clause%TITLE),
841 . c2=trim(keyset) )
842
843
844 END SELECT
845
846C -----------------------------------------------------
847 CALL insert_clause_in_set(set(igs) ,clause ,clause_operator,
848 . ixs ,ixs10 , ixq ,
849 . ixc ,ixtg ,ixt ,ixp ,ixr ,
850 . sh4tree,
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 )
855C -----------------------------------------------------
856!
857 ENDDO ! DO J=1,CLAUSES_MAX
858
859 IF( trim(key) == 'COLLECT' ) THEN
860
861 IF (set(igs)%SET_ACTIV == 1)THEN ! Merge the Collect SETs only if Active
862
863 CALL create_set_collect(set ,set_id ,igs ,map_tables%ISETCOLM ,map_tables%NSET_COLLECT,
864 * ixs ,ixs10 , ixq ,
865 * ixc ,ixtg ,ixt ,ixp ,ixr ,
866 * sh4tree,
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 )
871
872 ENDIF
873
874 ENDIF
875
876 ENDDO ! DO IGS=1,NSETS
877
878 CALL clause_init(clause)
879
880
881
882 ! -----------------------------------------------------
883 !IF (IDEBUG == 1)THEN
884 ! DO IGS=1,NSETS
885 ! print*,'-----------'
886 ! print*,IGS
887 ! print*,'NB_PART=',SET(IGS)%NB_PART
888 ! IF(SET(IGS)%NB_PART > 0)THEN
889 ! DO I=1,SET(IGS)%NB_PART
890 ! print*,'PARTS:',SET(IGS)%PART(I),IPART(4,SET(IGS)%PART(I))
891 ! ENDDO
892 ! ENDIF
893 ! ENDDO
894 ! print*,'-----------'
895 ! print*,' '
896 !ENDIF
897 ! -----------------------------------------------------
898
899 ! Fill Radioss group, lines surfaces
900 ! -----------------------------------------------------
901 CALL fill_igr(set,
902 . igrsurf ,igrnod ,igrslin ,igrpart ,igrbric, igrquad ,
903 . igrsh4n ,igrsh3n ,igrtruss ,igrbeam ,igrspring,bufsf ,
904 . lisurf1 ,rootnam ,rootlen ,infile_name ,infile_name_len)
905
906
907 END
subroutine clause_init(clause)
Definition clause_init.F:31
#define my_real
Definition cppsort.cpp:32
subroutine create_ellipse_clause(id, title, sub_id, skew, rtrans, clause, nrtrans, lsubmodel, unitab, iskn, iad, ntransf, numskw, liskn, lskew, sskew, siskwn, nspcond, numsph)
subroutine create_node_from_rbody(rby_msn, clause)
subroutine create_rbody_clause(clause, irbodym, jclause, opt_g, is_available, lsubmodel, opt_b, ibox, x, skew, set_title, keyset, rby_msn)
subroutine create_set_collect(set, set_id, igs, setcol_array, array_size, ixs, ixs10, ixq, ixc, ixtg, ixt, ixp, ixr, sh4tree, sh3tree, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, ipartc, ipartg, iparts, ipart, opt_a, opt_o, knod2elq, nod2elq, x, keyset, opt_e, delbuf)
subroutine fill_igr(set, igrsurf, igrnod, igrslin, igrpart, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, bufsf, lisurf1, rootnam, rootlen, infile_name, infile_name_len)
Definition fill_igr.F:45
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string(name, sval, size, is_available)
subroutine hm_get_string_index(name, sval, index, size, is_available)
subroutine hm_option_start_list(entity_type)
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)
Definition hm_set.F:88
subroutine insert_clause_in_set(set, clause, clause_operator, ixs, ixs10, ixq, ixc, ixtg, ixt, ixp, ixr, sh4tree, sh3tree, knod2els, nod2els, knod2elc, nod2elc, knod2eltg, nod2eltg, ipartc, ipartg, iparts, ipart, opt_a, opt_o, knod2elq, nod2elq, x, keyset, opt_e, delbuf)
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer, parameter ncharline
integer nsets
Definition setdef_mod.F:120
subroutine set_init(set, igs, set_id, set_title, iset_type)
Definition set_init.F:32
subroutine sort_set(lsubmodel, map_tables, set_list, set, clause)
Definition sort_sets.F:45
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)
Definition message.F:889