37 . ISETCOLM , NSET_COLLECT,
38 . JCLAUSE ,OPT_G ,IS_AVAILABLE ,
69#include "implicit_f.inc"
73 TYPE (SET_),
DIMENSION(NSETS),
INTENT(INOUT) :: SET
74 INTEGER JCLAUSE,OPT_G,ARRAY_SIZE,NSET_COLLECT
75 LOGICAL :: IS_AVAILABLE
76 INTEGER,
INTENT(IN),
DIMENSION(NSETS,2) :: ISETCOLM
78 INTEGER SETCOL_ARRAY(*)
85 CALL create_setcol_list_g(set,setcol_array, array_size ,isetcolm ,nset_collect ,jclause ,is_available ,lsubmodel)
105 . SET,ARRAY, ARRAY_SIZE, ISETCOLM ,NSET_COLLECT ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
132#include "implicit_f.inc"
136 TYPE (SET_),
DIMENSION(NSETS),
INTENT(INOUT) :: SET
137 INTEGER JCLAUSE, ARRAY_SIZE,NSET_COLLECT
138 LOGICAL :: IS_AVAILABLE
139 INTEGER,
INTENT(IN),
DIMENSION(NSETS,2) :: ISETCOLM
146 INTEGER I,J,IDS,NINDX,LIST_SIZE,IDS_MAX,PARTM,SETCOL
149 INTEGER,
ALLOCATABLE,
DIMENSION(:)
159 ALLOCATE(part_read_tmp(ids_max))
160 part_read_tmp(1:ids_max) = 0
162 ALLOCATE(index(2*ids_max))
176 setcol = isetcolm(j,2)
179 IF(isetcolm(j,1)>ids)
EXIT
185 part_read_tmp(nindx) = setcol
195 CALL my_orders(0,iwork,part_read_tmp,index,nindx,1)
198 array(i)=part_read_tmp(index(i))
201 CALL remove_duplicates( array,nindx,list_size)
205 array_size = list_size
210 DEALLOCATE(part_read_tmp)
216!||====================================================================
230 . SET,ARRAY, ARRAY_SIZE, ISETCOLM, NSET_COLLECT, JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
257#include "implicit_f.inc"
261 TYPE (SET_),
DIMENSION(NSETS),
INTENT(INOUT) :: SET
262 INTEGER JCLAUSE,ARRAY_SIZE, NSET_COLLECT
263 INTEGER ARRAY(ARRAY_SIZE)
265 INTEGER,
INTENT(IN),
DIMENSION(NSET_COLLECT,2) :: ISETCOLM
272 INTEGER I,IGS,IDS,NINDX,LIST_SIZE,IDS_MAX,PARTM,GENE_MAX,K,P,P1
273 INTEGER START_GENE,END_GENE,INCR_GENE,PSTART,PSTOP,STACK,STACK_ONE,NB_RESULT
277 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: PART_READ_TMP,PART_READ_ONE,IDEX,RESULT
278 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: SETCOL_DICHO
280 INTEGER SET_USRTOS_NEAREST
281 EXTERNAL SET_USRTOS_NEAREST
283 ALLOCATE(setcol_dicho(
nsets,2))
288 IF(set(igs)%SET_ACTIV == 1)
THEN
290 setcol_dicho(sz_dicho,1) = ids
291 setcol_dicho(sz_dicho,2) = igs
297 ALLOCATE(part_read_tmp(
nsets))
298 ALLOCATE(part_read_one(
nsets))
299 ALLOCATE(result(
nsets))
309 IF (incr_gene == 0) incr_gene = 1
311 pstart = set_usrtos_nearest(start_gene, setcol_dicho, sz_dicho,1)
312 pstop = set_usrtos_nearest(end_gene, setcol_dicho, sz_dicho,2)
316 p1 = setcol_dicho(p,1)
317 IF ( mod( p1-start_gene , incr_gene) == 0)
THEN
318 stack_one = stack_one+1
319 part_read_one(stack_one) = p
325 part_read_tmp(1:stack_one) = part_read_one(1:stack_one)
331 CALL union_2_sorted_sets( part_read_tmp, stack ,
332 * part_read_one, stack_one ,
333 * result, nb_result )
334 part_read_tmp(1:nb_result)=result(1:nb_result)
343 array(1:stack) = part_read_tmp(1:stack)
345 DEALLOCATE (part_read_one)
346 DEALLOCATE (part_read_tmp)
360 * IXC ,IXTG ,IXT ,IXP ,IXR ,
362 . SH3TREE ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC,
363 . KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
364 . IPART ,OPT_A ,OPT_O ,KNOD2ELQ ,NOD2ELQ,
365 . X ,KEYSET ,OPT_E ,DELBUF ,IPARTQ ,
390 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
394#include "implicit_f.inc"
395#include "param_c.inc"
397#include "scr17_c.inc"
401 INTEGER SETL_SIZE,NUMELQ
402 INTEGER,
DIMENSION(NSETS),
INTENT(IN) :: SETL
403 TYPE (SET_),
DIMENSION(NSETS),
INTENT(IN) :: SET
404 TYPE (SET_) :: CLAUSE
405 TYPE (SET_SCRATCH) :: DELBUF
406 INTEGER OPT_A,OPT_O,OPT_E
408 INTEGER IXS(NIXS,*),IXS10(6,*),
409 . IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),IXT(NIXT,*),
410 . IXP(NIXP,*),IXR(NIXR,*),
411 . SH4TREE(*),SH3TREE(*),KNOD2ELS(*),KNOD2ELC(*),KNOD2ELTG(*),
412 . KNOD2ELQ(*),NOD2ELS(*),NOD2ELC(*),NOD2ELTG(*),(*),
413 . IPARTS(*),IPARTC(*),IPARTG(*),IPART(LIPART1,*),IPARTQ(NUMELQ)
416 CHARACTER(LEN=NCHARFIELD) :: KEYSET
430 * ixc ,ixtg ,ixt ,ixp ,ixr ,
432 . sh3tree ,knod2els ,nod2els ,knod2elc ,nod2elc,
434 . ipart ,opt_a ,opt_o ,knod2elq ,nod2elq,
435 . x ,keyset ,opt_e ,delbuf ,ipartq)
452 * IXC ,IXTG ,IXT ,IXP ,IXR ,
454 * SH3TREE ,KNOD2ELS ,NOD2ELS ,KNOD2ELC ,NOD2ELC,
455 * KNOD2ELTG ,NOD2ELTG ,IPARTC ,IPARTG ,IPARTS ,
456 * IPART ,OPT_A ,OPT_O ,KNOD2ELQ ,NOD2ELQ,
457 * X ,KEYSET ,OPT_E ,DELBUF ,IPARTQ ,
482 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
486#include "implicit_f.inc"
487#include "param_c.inc"
489#include "scr17_c.inc"
493 INTEGER SET_ID,ARRAY_SIZE ,IGS, NUMELQ
494 INTEGER OPT_A,OPT_O,OPT_E
495 INTEGER,
DIMENSION(ARRAY_SIZE,2),
INTENT(IN) :: SETCOL_ARRAY
496 TYPE (SET_),
DIMENSION(NSETS),
INTENT(INOUT) :: SET
497 TYPE (SET_SCRATCH) :: DELBUF
498 INTEGER IXS(NIXS,*),IXS10(6,*),
499 . IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),IXT(NIXT,*),
500 . IXP(NIXP,*),IXR(NIXR,*),
501 . sh4tree(*),sh3tree(*),knod2els(*),knod2elc(*),knod2eltg(*),
502 . knod2elq(*),nod2els(*),nod2elc(*),nod2eltg(*),nod2elq(*),
503 . iparts(*),ipartc(*),ipartg(*),ipart(lipart1,*),ipartq(numelq)
505 CHARACTER(LEN=NCHARFIELD) :: KEYSET
513 IF(setcol_array(i,1) == set_id .AND. setcol_array(i,2) /= igs)
THEN
514 cur = setcol_array(i,2)
524 . sh3tree ,knod2els ,nod2els ,knod2elc ,nod2elc,
525 . knod2eltg ,nod2eltg ,ipartc ,ipartg ,iparts ,
526 . ipart ,opt_a ,opt_o ,knod2elq ,nod2elq,
subroutine create_setcol_clause(set, setl, setl_size, clause, 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, ipartq, numelq)
subroutine create_setcol_array(set, setcol_array, array_size, isetcolm, nset_collect, jclause, opt_g, is_available, lsubmodel)
subroutine create_setcol_list_g(set, array, array_size, isetcolm, nset_collect, jclause, is_available, lsubmodel)
subroutine create_setcol_list(set, array, array_size, isetcolm, nset_collect, jclause, is_available, lsubmodel)
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, ipartq, numelq)
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)
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, ipartq)
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
integer, parameter ncharfield
integer, parameter set_add
add operator