23!||====================================================================
37 . CLAUSE ,ITABM1 ,JCLAUSE ,OPT_G ,IS_AVAILABLE ,
38 . LSUBMODEL,OPT_B ,IBOX ,X ,SKEW ,
71#include "implicit_f.inc"
80 INTEGER JCLAUSE,OPT_G,OPT_B
81 LOGICAL :: IS_AVAILABLE
82 INTEGER,
INTENT(IN),
DIMENSION(NUMNOD,2) :: ITABM1
84 CHARACTER(LEN=NCHARFIELD) :: KEYSET
85 CHARACTER(LEN=NCHARTITLE) :: SET_TITLE
89 TYPE (BOX_) ,
DIMENSION(NBBOX) :: IBOX
94 IF ( opt_g == 1 )
THEN
98 ELSEIF ( opt_g == 0 .AND. opt_b == 0 )
THEN
102 ELSEIF ( opt_b == 1 )
THEN
104 CALL create_node_box (clause ,itabm1 ,jclause ,is_available ,lsubmodel,
105 . ibox ,x ,skew ,set_title ,keyset )
124 . CLAUSE, ITABM1 ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
151#include "implicit_f.inc"
155#include "com04_c.inc"
160 LOGICAL :: IS_AVAILABLE
161 INTEGER,
INTENT(IN),
DIMENSION(NUMNOD,2) :: ITABM1
163 TYPE (SET_) :: CLAUSE
168 INTEGER I,IDS,NINDX,LIST_SIZE,IDS_MAX,NODSYS
171 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: NODE_READ_TMP,INDEX,SORT
179 ALLOCATE(node_read_tmp(ids_max))
180 node_read_tmp(1:ids_max) = 0
181 ALLOCATE(index(2*ids_max))
182 ALLOCATE(sort(ids_max))
194 nodsys = set_usrtos(ids,itabm1,numnod)
197 CALL ancmsg(msgid=1902,anmode=aninfo,
198 . msgtype=msgwarning,
199 . i1 = clause%SET_ID,
201 . c1=trim(clause%TITLE),
205 nodsys=itabm1(nodsys,2)
208 node_read_tmp(nindx) = nodsys
222 sort(i) = node_read_tmp(i)
224 CALL my_orders(0,iwork,sort,index,nindx,1)
227 node_read_tmp(i) = sort(index(i))
230 CALL remove_duplicates(node_read_tmp,nindx,list_size)
234 clause%NB_NODE = list_size
235 ALLOCATE( clause%NODE( list_size ) )
238 clause%NODE(i) = node_read_tmp(i)
241 DEALLOCATE(node_read_tmp)
262 . CLAUSE, ITABM1 ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
289#include "implicit_f.inc"
293#include "com04_c.inc"
298 LOGICAL :: IS_AVAILABLE
299 INTEGER,
INTENT(IN),
DIMENSION(NUMNOD,2) :: ITABM1
301 TYPE (SET_) :: CLAUSE
306 INTEGER I,IDS,LIST_SIZE,IDS_MAX,GENE_MAX,K,N,N1
307 INTEGER START_GENE,END_GENE,INCR_GENE,NSTART,NSTOP,STACK,STACK_ONE,NB_RESULT
309 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: NODE_READ_TMP,
310 . NODE_READ_ONE,RESULT
312 INTEGER SET_USRTOS_NEAREST
313 EXTERNAL SET_USRTOS_NEAREST
317 ALLOCATE(node_read_tmp(numnod))
318 ALLOCATE(node_read_one(numnod))
321 IF (gene_max > 1)
THEN
322 ALLOCATE(result(numnod))
333 IF (incr_gene == 0) incr_gene = 1
335 nstart = set_usrtos_nearest(start_gene,itabm1,numnod,1)
336 nstop = set_usrtos_nearest(end_gene,itabm1,numnod,2)
341 IF ( mod( n1-start_gene , incr_gene) == 0)
THEN
342 stack_one = stack_one+1
343 node_read_one(stack_one) = itabm1(n,2)
348 node_read_tmp(1:stack_one) = node_read_one(1:stack_one)
352 CALL union_2_sorted_sets( node_read_tmp, stack ,
353 * node_read_one, stack_one ,
354 * result, nb_result )
356 node_read_tmp(1:nb_result) = result(1:nb_result)
361 clause%NB_NODE = stack
362 ALLOCATE(clause%NODE(stack))
363 clause%NODE(1:stack) = node_read_tmp(1:stack)
365 DEALLOCATE (node_read_tmp)
366 DEALLOCATE (node_read_one)
367 IF (
ALLOCATED(result))
DEALLOCATE (result)
subroutine create_node_box(clause, itabm1, jclause, is_available, lsubmodel, ibox, x, skew, set_title, keyset)
subroutine create_node_list_g(clause, itabm1, jclause, is_available, lsubmodel)
subroutine create_node_list(clause, itabm1, jclause, is_available, lsubmodel)
subroutine create_node_clause(clause, itabm1, jclause, opt_g, is_available, lsubmodel, opt_b, ibox, x, skew, set_title, keyset)
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)