libsim  Versione8.0.0

◆ arrayof_ttr_mapper_insert_array()

subroutine 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 
)

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 507 del file stat_proc_engine.F90.

507 
508 ! keep only timeranges of one type (really necessary?)
509 IF (lforecast) THEN
510  CALL l4f_log(l4f_info, &
511  'recompute_stat_proc_agg, processing in forecast mode')
512 ELSE
513  mask_timerange(:) = mask_timerange(:) .AND. itimerange(:)%p1 == 0
514  CALL l4f_log(l4f_info, &
515  'recompute_stat_proc_agg, processing in analysis mode')
516 ENDIF
517 
518 #ifdef DEBUG
519 CALL l4f_log(l4f_debug, &
520  '(re)compute_stat_proc_agg, number of useful timeranges: '// &
521  t2c(count(mask_timerange)))
522 #endif
523 
524 IF (SIZE(itime) == 0 .OR. count(mask_timerange) == 0) THEN ! avoid segmentation fault in case of empty volume
525  ALLOCATE(otime(0), otimerange(0), map_ttr(0,0))
526  IF (PRESENT(dtratio)) ALLOCATE(dtratio(0))
527  RETURN
528 ENDIF
529 
530 ! determine start and end of processing period, should work with p2==0
531 lstart = datetime_miss
532 IF (PRESENT(start)) lstart = start
533 lend = itime(SIZE(itime))
534 ! compute some quantities
535 maxp1 = maxval(itimerange(:)%p1, mask=mask_timerange)
536 maxp2 = maxval(itimerange(:)%p2, mask=mask_timerange)
537 minp1mp2 = minval(itimerange(:)%p1 - itimerange(:)%p2, mask=mask_timerange)
538 IF (time_definition == 0) THEN ! reference time
539  lend = lend + timedelta_new(sec=maxp1)
540 ENDIF

Generated with Doxygen.