37 . CLAUSE ,IRBODYM ,JCLAUSE ,OPT_G ,IS_AVAILABLE ,
38 . LSUBMODEL,OPT_B ,IBOX ,X ,SKEW ,
39 . SET_TITLE,KEYSET ,RBY_MSN )
71#include "implicit_f.inc"
80 INTEGER JCLAUSE,OPT_G,OPT_B
81 LOGICAL :: IS_AVAILABLE
82 INTEGER,
INTENT(IN),
DIMENSION(NRBODY,2) :: IRBODYM
83 INTEGER,
INTENT(IN),
DIMENSION(2,NRBODY) :: RBY_MSN
85 CHARACTER(LEN=NCHARFIELD) :: KEYSET
86 CHARACTER(LEN=NCHARTITLE) :: SET_TITLE
90 TYPE (BOX_) ,
DIMENSION(NBBOX) :: IBOX
95 IF ( opt_g == 1 )
THEN
99 ELSEIF ( opt_g == 0 .AND. opt_b == 0 )
THEN
103 ELSEIF ( opt_b == 1 )
THEN
106 . ibox ,x ,skew ,set_title ,keyset ,
126 . CLAUSE, IRBODYM ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
153#include "implicit_f.inc"
157#include "com04_c.inc"
162 LOGICAL :: IS_AVAILABLE
163 INTEGER,
INTENT(IN),
DIMENSION(NRBODY,2) :: IRBODYM
165 TYPE (SET_) :: CLAUSE
170 INTEGER I,IDS,NINDX,LIST_SIZE,IDS_MAX,NODSYS,RBYM
173 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: RBYM_READ_TMP,INDEX,SORT
181 ALLOCATE(rbym_read_tmp(ids_max))
182 rbym_read_tmp(1:ids_max) = 0
183 ALLOCATE(index(2*ids_max))
184 ALLOCATE(sort(ids_max))
199 rbym = set_usrtos(ids,irbodym,nrbody)
202 CALL ancmsg(msgid=1902,anmode=aninfo,
203 . msgtype=msgwarning,
204 . i1 = clause%SET_ID,
206 . c1=trim(clause%TITLE),
213 rbym_read_tmp(nindx) = rbym
227 sort(i) = rbym_read_tmp(i)
229 CALL my_orders(0,iwork,sort,index,nindx,1)
232 rbym_read_tmp(i) = sort(index(i))
235 CALL remove_duplicates(rbym_read_tmp,nindx,list_size)
239 clause%NB_RBODY = list_size
240 ALLOCATE( clause%RBODY( list_size ) )
243 clause%RBODY(i) = rbym_read_tmp(i)
246 DEALLOCATE(rbym_read_tmp)
267 . CLAUSE, IRBODYM ,JCLAUSE ,IS_AVAILABLE ,LSUBMODEL)
294#include "implicit_f.inc"
298#include "com04_c.inc"
304 INTEGER,
INTENT(IN),
DIMENSION(NRBODY,2) :: IRBODYM
311 INTEGER I,,LIST_SIZE,IDS_MAX,GENE_MAX,,R,R1
312 INTEGER START_GENE,END_GENE,INCR_GENE,RSTART,RSTOP,STACK,STACK_ONE,NB_RESULT
314 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ,
315 . RBYM_READ_ONE,RESULT
317 INTEGER SET_USRTOS_NEAREST
318 EXTERNAL SET_USRTOS_NEAREST
322 ALLOCATE(rbym_read_tmp(nrbody))
323 ALLOCATE(rbym_read_one(nrbody))
326 IF (gene_max > 1)
THEN
327 ALLOCATE(result(nrbody))
338 IF (incr_gene == 0) incr_gene = 1
340 rstart = set_usrtos_nearest(start_gene,irbodym,nrbody,1)
341 rstop = set_usrtos_nearest(end_gene,irbodym,nrbody,2)
346 IF ( mod( r1-start_gene , incr_gene) == 0)
THEN
347 stack_one = stack_one+1
348 rbym_read_one(stack_one) = irbodym(r,2)
353 rbym_read_tmp(1:stack_one) = rbym_read_one(1:stack_one)
357 CALL union_2_sorted_sets( rbym_read_tmp, stack ,
359 * result, nb_result )
361 rbym_read_tmp(1:nb_result) = result(1:nb_result)
366 clause%NB_RBODY = stack
367 ALLOCATE(clause%RBODY(stack))
368 clause%RBODY(1:stack) = rbym_read_tmp(1:stack)
370 DEALLOCATE (rbym_read_tmp)
371 DEALLOCATE (rbym_read_one)
372 IF (
ALLOCATED(result))
DEALLOCATE (result)
subroutine create_rbody_box(clause, irbodym, jclause, is_available, lsubmodel, ibox, x, skew, set_title, keyset, rby_msn)
subroutine create_rbody_list_g(clause, irbodym, jclause, is_available, lsubmodel)
subroutine create_rbody_list(clause, irbodym, jclause, is_available, lsubmodel)
subroutine create_rbody_clause(clause, irbodym, jclause, opt_g, is_available, lsubmodel, opt_b, ibox, x, skew, set_title, keyset, rby_msn)
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)