|
|
◆ 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] | this | oggetto da riformare |
| [in] | sort | if present and .TRUE., sort all the sortable dimensions |
| [in] | unique | se 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] | miss | se fornito e uguale a .TRUE., gli eventuali elementi dei descrittori uguali al corrispondente valore mancante verranno eliminati dall'oggetto riformato |
| [in] | lsort_time | if present and .TRUE., sort only time dimension (alternative to sort ) |
| [in] | lsort_timerange | if present and .TRUE., sort only timerange dimension (alternative to sort ) |
| [in] | lsort_level | if present and .TRUE., sort only level dimension (alternative to sort ) |
| [in] | ltime | se 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] | ltimerange | come il precedente per la dimensione timerange |
| [in] | llevel | come il precedente per la dimensione level |
| [in] | lana | come il precedente per la dimensione ana |
| [in] | lnetwork | come il precedente per la dimensione network |
| [in] | lanavarr | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavard | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavari | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarb | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarc | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanaattrr | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanaattrd | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanaattri | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanaattrb | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanaattrc | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarattrr | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarattrd | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarattri | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarattrb | come il precedente per tutte le possibili dimensioni variabile |
| [in] | lanavarattrc | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarr | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativard | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativari | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarb | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarc | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldatiattrr | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldatiattrd | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldatiattri | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldatiattrb | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldatiattrc | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarattrr | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarattrd | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarattri | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarattrb | come il precedente per tutte le possibili dimensioni variabile |
| [in] | ldativarattrc | come il precedente per tutte le possibili dimensioni variabile |
| [in] | purgeana | if 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
2081
2082
2083END SUBROUTINE vol7d_filter
2084
2085
2086
2087
2088
|