libsim Versione 8.0.0

◆ arrayof_ttr_mapper_remove()

subroutine arrayof_ttr_mapper_remove ( type(arrayof_ttr_mapper) this,
integer, intent(in), optional nelem,
integer, intent(in), optional pos )

Method for removing elements of the array at a desired position.

If necessary, the array is reallocated to reduce space.

Parametri
thisarray object in which an element has to be removed
[in]nelemnumber of elements to remove, if not provided, a single element is removed
[in]posposition of the element to be removed, if it is out of range, it is clipped, if it is not provided, objects are removed at the end

Definizione alla linea 647 del file stat_proc_engine.F90.

652 ENDDO
653 CALL packarray(a_dtratio)
654 dtratio => a_dtratio%array
655 CALL sort(dtratio)
656! delete local object keeping the contents
657 CALL delete(a_dtratio, nodealloc=.true.)
658
659#ifdef DEBUG
660 CALL l4f_log(l4f_debug, &
661 'recompute_stat_proc_agg, found '//t2c(size(dtratio))// &
662 ' possible aggregation ratios, from '// &
663 t2c(dtratio(1))//' to '//t2c(dtratio(SIZE(dtratio))))
664#endif
665
666 ALLOCATE(map_ttr(SIZE(otime),SIZE(otimerange)))
667 do_itimerange1: DO l = 1, SIZE(itimerange)
668 IF (.NOT.mask_timerange(l)) cycle do_itimerange1
669 do_itime1: DO k = 1, SIZE(itime)
670 CALL time_timerange_get_period(itime(k), itimerange(l), &
671 time_definition, pstart1, pend1, reftime1)
672 do_otimerange1: DO j = 1, SIZE(otimerange)
673 do_otime1: DO i = 1, SIZE(otime)
674 CALL time_timerange_get_period_pop(otime(i), otimerange(j), step, &
675 time_definition, pstart2, pend2, reftime2)
676 IF (lforecast) THEN
677 IF (reftime1 /= reftime2) cycle do_otime1
678 ENDIF
679
680 IF (pstart1 >= pstart2 .AND. pend1 <= pend2 .AND. &
681 mod(pstart1-pstart2, pend1-pstart1) == timedelta_0) THEN ! useful
682 lmapper%it = k
683 lmapper%itr = l
684 lmapper%extra_info = steps/itimerange(l)%p2 ! dtratio, guaranteed to be integer
685 n = append(map_ttr(i,j), lmapper)
686 cycle do_itime1 ! can contribute only to a single interval
687 ENDIF
688 ENDDO do_otime1
689 ENDDO do_otimerange1
690 ENDDO do_itime1
691 ENDDO do_itimerange1
692
693ELSE

Generated with Doxygen.