|
◆ vol7d_fill_time()
subroutine vol7d_class_compute::vol7d_fill_time |
( |
type(vol7d), intent(inout) |
this, |
|
|
type(vol7d), intent(inout) |
that, |
|
|
type(timedelta), intent(in) |
step, |
|
|
type(datetime), intent(in), optional |
start, |
|
|
type(datetime), intent(in), optional |
stopp, |
|
|
type(cyclicdatetime), intent(in), optional |
cyclicdt |
|
) |
| |
Riempimento dei buchi temporali in un volume.
Questo metodo crea, a partire da un volume originale, un nuovo volume dati in cui la dimensione tempo contiene tutti gli istanti tra start e stopp (o tra il primo e l'ultimo livello temporale) ad intervalli step. Gli eventuali livelli mancanti vengono aggiunti riempiendo le corrispondenti posizioni dei volumi dati con valori mancanti. I livelli temporali che non sono ad intervalli step interi a partire dall'inizio, oppure quelli che giacciono fuori dall'intervallo start:stop non vengono toccati e quindi rimangono immutati nel volume finale (si veda anche la descrizione di vol7d_filter_time). 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] | cyclicdt | cyclic date and time |
Definizione alla linea 1473 del file vol7d_class_compute.F90.
1477 do iindtime=indtime-1,1,-1
1479 if (c_e(this%voldatir (indana, iindtime, indlevel, indtimerange then
1480 if (iindtime < indtime) then
1481 deltat=this%time(indtime)-this%time(iindtime)
1482 else if (iindtime > indtime) then
1483 deltat=this%time(iindtime)-this%time(indtime)
1488 if (deltat >= ltolerance) exit
1490 if (deltat < deltato) then
1491 this%voldatir(indana, indtime, indlevel, indtimerange
1492 this%voldatir(indana, iindtime, indlevel, indtimerange
1506 END SUBROUTINE vol7d_fill_data
1512 SUBROUTINE safe_start_stop(this, lstart, lstop, start, stopp)
1513 TYPE(vol7d), INTENT(inout) :: this
1514 TYPE(datetime), INTENT(out) :: lstart
1515 TYPE(datetime), INTENT(out) :: lstop
1516 TYPE(datetime), INTENT(in), OPTIONAL :: start
1517 TYPE(datetime), INTENT(in), OPTIONAL :: stopp
1519 lstart = datetime_miss
1520 lstop = datetime_miss
1523 IF ( SIZE(this%time) == 0) RETURN
1526 IF ( PRESENT(start)) THEN
1527 IF (c_e(start)) THEN
1530 lstart = this%time(1)
1533 lstart = this%time(1)
1535 IF ( PRESENT(stopp)) THEN
1536 IF (c_e(stopp)) THEN
1539 lstop = this%time( SIZE(this%time))
1542 lstop = this%time( SIZE(this%time))
1545 END SUBROUTINE safe_start_stop
1554 SUBROUTINE vol7d_normalize_vcoord(this,that,ana,time,timerange,network)
1555 TYPE(vol7d), INTENT(INOUT) :: this
1556 TYPE(vol7d), INTENT(OUT) :: that
1557 integer, intent(in) :: time,ana,timerange,network
|