libsim Versione 8.0.0

◆ vol7d_reform()

subroutine vol7d_reform ( type(vol7d), intent(inout) this,
logical, intent(in), optional sort,
logical, intent(in), optional unique,
logical, intent(in), optional miss,
logical, intent(in), optional lsort_time,
logical, intent(in), optional lsort_timerange,
logical, intent(in), optional lsort_level,
logical, dimension(:), intent(in), optional ltime,
logical, dimension(:), intent(in), optional ltimerange,
logical, dimension(:), intent(in), optional llevel,
logical, dimension(:), intent(in), optional lana,
logical, dimension(:), intent(in), optional lnetwork,
logical, dimension(:), intent(in), optional lanavarr,
logical, dimension(:), intent(in), optional lanavard,
logical, dimension(:), intent(in), optional lanavari,
logical, dimension(:), intent(in), optional lanavarb,
logical, dimension(:), intent(in), optional lanavarc,
logical, dimension(:), intent(in), optional lanaattrr,
logical, dimension(:), intent(in), optional lanaattrd,
logical, dimension(:), intent(in), optional lanaattri,
logical, dimension(:), intent(in), optional lanaattrb,
logical, dimension(:), intent(in), optional lanaattrc,
logical, dimension(:), intent(in), optional lanavarattrr,
logical, dimension(:), intent(in), optional lanavarattrd,
logical, dimension(:), intent(in), optional lanavarattri,
logical, dimension(:), intent(in), optional lanavarattrb,
logical, dimension(:), intent(in), optional lanavarattrc,
logical, dimension(:), intent(in), optional ldativarr,
logical, dimension(:), intent(in), optional ldativard,
logical, dimension(:), intent(in), optional ldativari,
logical, dimension(:), intent(in), optional ldativarb,
logical, dimension(:), intent(in), optional ldativarc,
logical, dimension(:), intent(in), optional ldatiattrr,
logical, dimension(:), intent(in), optional ldatiattrd,
logical, dimension(:), intent(in), optional ldatiattri,
logical, dimension(:), intent(in), optional ldatiattrb,
logical, dimension(:), intent(in), optional ldatiattrc,
logical, dimension(:), intent(in), optional ldativarattrr,
logical, dimension(:), intent(in), optional ldativarattrd,
logical, dimension(:), intent(in), optional ldativarattri,
logical, dimension(:), intent(in), optional ldativarattrb,
logical, dimension(:), intent(in), optional ldativarattrc,
logical, intent(in), optional purgeana )

Metodo per riformare in varie maniere un oggetto vol7d.

Equivale ad una copia (vedi vol7d_copy) seguita dalla distruzione del volume iniziale e alla sua riassegnazione al volume copiato. Ha senso se almeno uno dei parametri sort, uniq o miss è fornito uguale a .TRUE., altrimenti è solo una perdita di tempo. Può essere utile, ad esempio, per eliminare stazioni o istanti temporali indesiderati, basta assegnare il loro corrispondente elemento del descrittore a valore mancante e chiamare vol7d_reform con miss=.TRUE. .

Parametri
[in,out]thisoggetto da riformare
[in]sortif present and .TRUE., sort all the sortable dimensions
[in]uniquese fornito e uguale a .TRUE., gli eventuali elementi duplicati nei descrittori dell'oggetto iniziale verranno collassati in un unico elemento (con eventuale perdita dei dati relativi agli elementi duplicati)
[in]missse fornito e uguale a .TRUE., gli eventuali elementi dei descrittori uguali al corrispondente valore mancante verranno eliminati dall'oggetto riformato
[in]lsort_timeif present and .TRUE., sort only time dimension (alternative to sort )
[in]lsort_timerangeif present and .TRUE., sort only timerange dimension (alternative to sort )
[in]lsort_levelif present and .TRUE., sort only level dimension (alternative to sort )
[in]ltimese fornito, deve essere un vettore logico della stessa lunghezza di thistime indicante quali elementi della dimensione time mantenere (valori .TRUE.) e quali scartare (valori .FALSE.) nel volume copiato; in alternativa può essere un vettore di lunghezza 1, in tal caso, se .FALSE. , equivale a scartare tutti gli elementi (utile principalmente per le variabili); è compatibile col parametro miss
[in]ltimerangecome il precedente per la dimensione timerange
[in]llevelcome il precedente per la dimensione level
[in]lanacome il precedente per la dimensione ana
[in]lnetworkcome il precedente per la dimensione network
[in]lanavarrcome il precedente per tutte le possibili dimensioni variabile
[in]lanavardcome il precedente per tutte le possibili dimensioni variabile
[in]lanavaricome il precedente per tutte le possibili dimensioni variabile
[in]lanavarbcome il precedente per tutte le possibili dimensioni variabile
[in]lanavarccome il precedente per tutte le possibili dimensioni variabile
[in]lanaattrrcome il precedente per tutte le possibili dimensioni variabile
[in]lanaattrdcome il precedente per tutte le possibili dimensioni variabile
[in]lanaattricome il precedente per tutte le possibili dimensioni variabile
[in]lanaattrbcome il precedente per tutte le possibili dimensioni variabile
[in]lanaattrccome il precedente per tutte le possibili dimensioni variabile
[in]lanavarattrrcome il precedente per tutte le possibili dimensioni variabile
[in]lanavarattrdcome il precedente per tutte le possibili dimensioni variabile
[in]lanavarattricome il precedente per tutte le possibili dimensioni variabile
[in]lanavarattrbcome il precedente per tutte le possibili dimensioni variabile
[in]lanavarattrccome il precedente per tutte le possibili dimensioni variabile
[in]ldativarrcome il precedente per tutte le possibili dimensioni variabile
[in]ldativardcome il precedente per tutte le possibili dimensioni variabile
[in]ldativaricome il precedente per tutte le possibili dimensioni variabile
[in]ldativarbcome il precedente per tutte le possibili dimensioni variabile
[in]ldativarccome il precedente per tutte le possibili dimensioni variabile
[in]ldatiattrrcome il precedente per tutte le possibili dimensioni variabile
[in]ldatiattrdcome il precedente per tutte le possibili dimensioni variabile
[in]ldatiattricome il precedente per tutte le possibili dimensioni variabile
[in]ldatiattrbcome il precedente per tutte le possibili dimensioni variabile
[in]ldatiattrccome il precedente per tutte le possibili dimensioni variabile
[in]ldativarattrrcome il precedente per tutte le possibili dimensioni variabile
[in]ldativarattrdcome il precedente per tutte le possibili dimensioni variabile
[in]ldativarattricome il precedente per tutte le possibili dimensioni variabile
[in]ldativarattrbcome il precedente per tutte le possibili dimensioni variabile
[in]ldativarattrccome il precedente per tutte le possibili dimensioni variabile
[in]purgeanaif true remove ana with all data missing

Definizione alla linea 2016 del file vol7d_class.F90.

2026 IF (all(this%dativar%i(i)%btable /= vl)) this%dativar%i(i) = vol7d_var_miss
2027 ENDDO
2028 ENDIF
2029
2030 IF (ASSOCIATED(this%dativar%b)) THEN
2031 DO i = 1, SIZE(this%dativar%b)
2032 IF (all(this%dativar%b(i)%btable /= vl)) this%dativar%b(i) = vol7d_var_miss
2033 ENDDO
2034 ENDIF
2035
2036 IF (ASSOCIATED(this%dativar%d)) THEN
2037 DO i = 1, SIZE(this%dativar%d)
2038 IF (all(this%dativar%d(i)%btable /= vl)) this%dativar%d(i) = vol7d_var_miss
2039 ENDDO
2040 ENDIF
2041
2042 IF (ASSOCIATED(this%dativar%c)) THEN
2043 DO i = 1, SIZE(this%dativar%c)
2044 IF (all(this%dativar%c(i)%btable /= vl)) this%dativar%c(i) = vol7d_var_miss
2045 ENDDO
2046 ENDIF
2047
2048 IF (ASSOCIATED(this%dativar%c)) THEN
2049 DO i = 1, SIZE(this%dativar%c)
2050 IF (all(this%dativar%c(i)%btable /= vl)) this%dativar%c(i) = vol7d_var_miss
2051 ENDDO
2052 ENDIF
2053
2054 ENDIF
2055ENDIF
2056
2057IF (PRESENT(nl)) THEN
2058 IF (SIZE(nl) > 0) THEN
2059 DO i = 1, SIZE(this%network)
2060 IF (all(this%network(i) /= nl)) this%network(i) = vol7d_network_miss
2061 ENDDO
2062 ENDIF
2063ENDIF
2064
2065IF (PRESENT(s_d)) THEN
2066 IF (c_e(s_d)) THEN
2067 WHERE (this%time < s_d)
2068 this%time = datetime_miss
2069 END WHERE
2070 ENDIF
2071ENDIF
2072
2073IF (PRESENT(e_d)) THEN
2074 IF (c_e(e_d)) THEN
2075 WHERE (this%time > e_d)
2076 this%time = datetime_miss
2077 END WHERE
2078 ENDIF
2079ENDIF
2080
2081CALL vol7d_reform(this, miss=.TRUE.)
2082
2083END SUBROUTINE vol7d_filter
2084
2085
2086!> Metodo per convertire i volumi di dati di un oggetto vol7d in dati
2087!! reali dove possibile. L'oggetto convertito è una copia completa
2088!! dell'originale che può essere quindi distrutto dopo la chiamata.

Generated with Doxygen.