libsim  Versione 7.2.1

◆ arrayof_ttr_mapper_insert_array()

subroutine, private stat_proc_engine::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 500 del file stat_proc_engine.F90.

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
504 ENDIF
505 
506 #ifdef DEBUG
507 CALL 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 
513 IF (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
525  CALL insert_unique(a_otimerange, vol7d_timerange_new(stat_proc, p1, steps))
526  ENDDO
527 
528  ELSE ! verification time
529 
530 ! verification time in forecast mode is the ugliest case, because we
531 ! don't know a priori how many different (thus incompatible) reference
532 ! times we have, so some assumption of regularity has to be made. For
533 ! this reason msteps, the minimum step between two times, is
534 ! computed. We choose to compute it as a difference between itime

Generated with Doxygen.