libsim Versione 7.2.1

◆ arrayof_ttr_mapper_insert_array()

subroutine, private arrayof_ttr_mapper_insert_array ( type(arrayof_ttr_mapper) this,
type(ttr_mapper), dimension(:), intent(in), optional content,
integer, intent(in), optional nelem,
integer, intent(in), optional pos )
private

Method for inserting a number of elements of the array at a desired position.

If necessary, the array is reallocated to accomodate the new elements.

Parametri
thisarray object to extend
[in]contentobject of TYPE TYPE(ttr_mapper) to insert, if not provided, space is reserved but not initialized
[in]nelemnumber of elements to add, mutually exclusive with the previous parameter, if both are not provided, a single element is added without initialization
[in]posposition where to insert, if it is out of range, it is clipped, if it is not provided, the object is appended

Definizione alla linea 490 del file stat_proc_engine.F90.

491! if autodetected, adjust to obtain real absolute start of data
492 IF (time_definition == 0) THEN ! reference time
493 lstart = lstart + timedelta_new(sec=minp1mp2)
494 ELSE ! verification time
495! go back to start of longest processing interval
496 lstart = lstart - timedelta_new(sec=maxp2)
497 ENDIF
498! full_steps is effective only in analysis mode and when start is not
499! specified (start by itself in analysis mode implies full_steps with
500! respect to start instead of absolute full steps)
501 IF (optio_log(full_steps) .AND. .NOT.lforecast) THEN
502 lstart = lstart - (mod(lstart, step)) ! round to step, (should be MODULO, not MOD)
503 ENDIF
504ENDIF
505
506#ifdef DEBUG
507CALL l4f_log(l4f_debug, &
508 'recompute_stat_proc_agg, processing period: '//t2c(lstart)//' - '//t2c(lend))
509#endif
510
511! create output time and timerange lists
512
513IF (lforecast) THEN ! forecast mode
514 IF (time_definition == 0) THEN ! reference time
515 CALL insert(a_otime, itime) ! should I limit to elements itime >= lstart?
516
517! apply start shift to timerange, not to reftime
518! why did we use itime(SIZE(itime)) (last ref time)?
519! CALL getval(lstart-itime(SIZE(itime)), asec=dstart)
520 CALL getval(lstart-itime(1), asec=dstart)
521! allow starting before first reftime but restrict dtstart to -steps
522! dstart = MAX(0, dstart)
523 IF (dstart < 0) dstart = mod(dstart, steps)
524 DO p1 = steps + dstart, maxp1, steps

Generated with Doxygen.