|
◆ arrayof_ttr_mapper_remove()
subroutine, private stat_proc_engine::arrayof_ttr_mapper_remove |
( |
type(arrayof_ttr_mapper) |
this, |
|
|
integer, intent(in), optional |
nelem, |
|
|
integer, intent(in), optional |
pos |
|
) |
| |
|
private |
Method for removing elements of the array at a desired position.
If necessary, the array is reallocated to reduce space. - Parametri
-
| this | array object in which an element has to be removed |
[in] | nelem | number of elements to remove, if not provided, a single element is removed |
[in] | pos | position 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 651 del file stat_proc_engine.F90.
658 lmapper%extra_info = steps/itimerange(l)%p2
659 n = append(map_ttr(i,j), lmapper)
669 ALLOCATE(map_ttr( SIZE(otime), SIZE(otimerange)))
670 do_itimerange2: DO l = 1, SIZE(itimerange)
671 IF (.NOT.mask_timerange(l)) cycle do_itimerange2
672 do_itime2: DO k = 1, SIZE(itime)
673 CALL time_timerange_get_period(itime(k), itimerange(l), &
674 time_definition, pstart1, pend1, reftime1)
675 do_otimerange2: DO j = 1, SIZE(otimerange)
676 do_otime2: DO i = 1, SIZE(otime)
677 CALL time_timerange_get_period_pop(otime(i), otimerange(j), step
678 time_definition, pstart2, pend2, reftime2)
680 IF (reftime1 /= reftime2) cycle do_otime2
683 IF (climat_behavior .AND. pstart1 == pstart2) cycle do_otime2
684 IF (pstart1 >= pstart2 .AND. pend1 <= pend2) THEN
687 IF (pstart1 == pstart2) THEN
688 lmapper%extra_info = 1
689 ELSE IF (pend1 == pend2) THEN
690 lmapper%extra_info = 2
692 lmapper%extra_info = imiss
694 lmapper%time = pstart1
695 n = insert_sorted(map_ttr(i,j), lmapper, .true., .true.)
|