|
◆ 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] | step | missing value admitted |
[in] | cyclicdt | cyclic date and time |
Definizione alla linea 1576 del file vol7d_class_compute.F90.
1577 ltimerange(timerange)=.true. 1579 lnetwork(network)=.true. 1581 call vol7d_copy(this, that,unique=.true.,& 1582 ltime=ltime,ltimerange=ltimerange,lana=lana,lnetwork=lnetwork ) 1584 call init(var, btable= "B10004") 1587 ind = index(that%dativar, var, type=type) 1589 allocate(maschera( size(that%level))) 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)) 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
|