libsim  Versione 7.1.6

◆ vol7d_filter_time()

subroutine vol7d_class_compute::vol7d_filter_time ( type(vol7d), intent(inout)  this,
type(vol7d), intent(inout)  that,
type(timedelta), intent(in), optional  step,
type(datetime), intent(in), optional  start,
type(datetime), intent(in), optional  stopp,
type(cyclicdatetime), intent(in), optional  cyclicdt 
)

Filter time dimension inside a volume.

Questo metodo crea, a partire da un volume originale, un nuovo volume dati in cui la dimensione tempo contiene solo gli istanti tra start e stopp (o tra il primo e l'ultimo livello temporale) ad intervalli step; se specificato cyclicdt solo i corrispondenti istanti di tempo vengono ulteriormente selezionati. Il volume originale non viene modificato e quindi dovrà essere distrutto da parte del programma chiamante se il suo contenuto non è più richiesto. Attenzione, se necessario, la dimensione tempo (vettore thistime del volume this ) viene riordinata, come effetto collaterale della chiamata.

Parametri
[in]stepmissing value admitted
[in]cyclicdtcyclic date and time

Definizione alla linea 1569 del file vol7d_class_compute.F90.

1570 ltimerange=.false.
1571 lana=.false.
1572 lnetwork=.false.
1573 
1574 ltime(time)=.true.
1575 ltimerange(timerange)=.true.
1576 lana(ana)=.true.
1577 lnetwork(network)=.true.
1578 
1579 call vol7d_copy(this, that,unique=.true.,&
1580  ltime=ltime,ltimerange=ltimerange,lana=lana,lnetwork=lnetwork )
1581 
1582 call init(var, btable="B10004") ! Pressure
1583 type=cmiss
1584 !type="i"
1585 ind = index(that%dativar, var, type=type)
1586 
1587 allocate(maschera(size(that%level)))
1588 
1589 maschera = (&
1590  (that%level%level1 == 105.and.that%level%level2 == 105) .or. &
1591  (that%level%level1 == 103 .and. that%level%level2 == imiss ) .or. &
1592  (that%level%level1 == 102 .and. that%level%level2 == imiss )) &
1593  .and. c_e(that%voldatic(1,1,:,1,ind,1))
1594 
1595 
1596 select case (type)
1597 
1598 case("d")
1599 
1600  where (maschera)
1601  that%level%level1 = 100
1602  that%level%l1 = int(realdat(that%voldatid(1,1,:,1,ind,1),that%dativar%d(ind)))
1603  that%level%l1 = int(that%voldatid(1,1,:,1,ind,1))
1604  that%level%level2 = imiss
1605  that%level%l2 = imiss
Index method.

Generated with Doxygen.