libsim Versione 7.1.11
|
◆ vol7d_filter_time()
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.
Definizione alla linea 1571 del file vol7d_class_compute.F90. 1572ltimerange=.false.
1573lana=.false.
1574lnetwork=.false.
1575
1576ltime(time)=.true.
1577ltimerange(timerange)=.true.
1578lana(ana)=.true.
1579lnetwork(network)=.true.
1580
1581call vol7d_copy(this, that,unique=.true.,&
1582 ltime=ltime,ltimerange=ltimerange,lana=lana,lnetwork=lnetwork )
1583
1584call init(var, btable="B10004") ! Pressure
1585type=cmiss
1586!type="i"
1587ind = index(that%dativar, var, type=type)
1588
1589allocate(maschera(size(that%level)))
1590
1591maschera = (&
1592 (that%level%level1 == 105.and.that%level%level2 == 105) .or. &
1593 (that%level%level1 == 103 .and. that%level%level2 == imiss ) .or. &
1594 (that%level%level1 == 102 .and. that%level%level2 == imiss )) &
1595 .and. c_e(that%voldatic(1,1,:,1,ind,1))
1596
1597
1598select case (type)
1599
1600case("d")
1601
1602 where (maschera)
1603 that%level%level1 = 100
1604 that%level%l1 = int(realdat(that%voldatid(1,1,:,1,ind,1),that%dativar%d(ind)))
1605 that%level%l1 = int(that%voldatid(1,1,:,1,ind,1))
1606 that%level%level2 = imiss
1607 that%level%l2 = imiss
|