libsim  Versione7.2.6

◆ arrayof_ttr_mapper_insert_sorted()

integer function, private stat_proc_engine::arrayof_ttr_mapper_insert_sorted ( type(arrayof_ttr_mapper this,
type(ttr_mapper), intent(in)  content,
logical, intent(in)  incr,
logical, intent(in)  back 
)
private

Method for inserting an element of the array in a sorted manner.

If necessary, the array is reallocated to accomodate the new element. It works under the assumption that the current content of the array is already sorted in the desired order.

Parametri
thisarray object to extend
[in]contentobject of TYPE TYPE(ttr_mapper) to insert
[in]incrinsert in increasing order
[in]backsearch position starting from end of array (optimization)

Definizione alla linea 613 del file stat_proc_engine.F90.

613 CALL delete(a_otimerange, nodealloc=.TRUE.)
614 
615 #ifdef DEBUG
616 CALL l4f_log(L4F_DEBUG, &
617  'recompute_stat_proc_agg, output time and timerange: '//&
618  t2c(SIZE(otime))//', '//t2c(size(otimerange)))
619 #endif
620 
621 IF (PRESENT(dtratio)) THEN
622 ! count the possible i/o interval ratios
623  DO k = 1, SIZE(itimerange)
624  IF (itimerange(k)%p2 /= 0) &
625  CALL insert_unique(a_dtratio, steps/itimerange(k)%p2) ! guaranteed to be integer
626  ENDDO
627  CALL packarray(a_dtratio)
628  dtratio => a_dtratio%array
629  CALL sort(dtratio)
630 ! delete local object keeping the contents
631  CALL delete(a_dtratio, nodealloc=.true.)
632 
633 #ifdef DEBUG
634  CALL l4f_log(l4f_debug, &
635  'recompute_stat_proc_agg, found '//t2c(size(dtratio))// &
636  ' possible aggregation ratios, from '// &
637  t2c(dtratio(1))//' to '//t2c(dtratio(SIZE(dtratio))))
638 #endif
639 
640  ALLOCATE(map_ttr(SIZE(otime),SIZE(otimerange)))
641  do_itimerange1: DO l = 1, SIZE(itimerange)
642  IF (.NOT.mask_timerange(l)) cycle do_itimerange1
643  do_itime1: DO k = 1, SIZE(itime)

Generated with Doxygen.