libsim
Versione 7.1.9
|
Classe per la gestione di un volume completo di dati osservati. Continua...
Tipi di dato | |
type | vol7d |
Definisce un oggetto contenente i volumi anagrafica e dati e tutti i descrittori delle loro dimensioni. Continua... | |
interface | init |
Costruttore per la classe vol7d. Continua... | |
interface | delete |
Distruttore per la classe vol7d. Continua... | |
interface | export |
Scrittura su file. Continua... | |
interface | import |
Lettura da file. Continua... | |
interface | display |
Print object. Continua... | |
interface | to_char |
Represent data in a pretty string. Continua... | |
interface | doubledat |
doubleprecision data conversion Continua... | |
interface | realdat |
real data conversion Continua... | |
interface | integerdat |
integer data conversion Continua... | |
interface | copy |
copy object Continua... | |
interface | c_e |
Test for a missing volume. Continua... | |
interface | check |
Check for problems return 0 if all check passed print diagnostics with log4f. Continua... | |
interface | rounding |
Reduce some dimensions (level and timerage) for semplification (rounding). Continua... | |
Funzioni/Subroutine | |
subroutine, private | vol7d_init (this, time_definition) |
Inizializza un oggetto di tipo vol7d. Continua... | |
elemental subroutine, private | vol7d_delete (this, dataonly) |
Distrugge l'oggetto in maniera pulita, liberando l'eventuale memoria dinamicamente allocata. Continua... | |
integer function, private | vol7d_check (this) |
subroutine, private | vol7d_display (this) |
stampa a video una sintesi del contenuto Continua... | |
subroutine, private | dat_display (this, idat, rdat, ddat, bdat, cdat) |
stampa a video una sintesi del contenuto Continua... | |
subroutine, private | dat_vect_display (this, idat, rdat, ddat, bdat, cdat) |
stampa a video una sintesi del contenuto Continua... | |
character(len=80) function, private | to_char_dat (this, idat, rdat, ddat, bdat, cdat) |
logical function, private | vol7d_c_e (this) |
Tests whether anything has ever been assigned to a vol7d object (.TRUE.) or it is as clean as after an init (.FALSE.). Continua... | |
subroutine | vol7d_alloc (this, nana, ntime, nlevel, ntimerange, nnetwork, nanavarr, nanavard, nanavari, nanavarb, nanavarc, nanaattrr, nanaattrd, nanaattri, nanaattrb, nanaattrc, nanavarattrr, nanavarattrd, nanavarattri, nanavarattrb, nanavarattrc, ndativarr, ndativard, ndativari, ndativarb, ndativarc, ndatiattrr, ndatiattrd, ndatiattri, ndatiattrb, ndatiattrc, ndativarattrr, ndativarattrd, ndativarattri, ndativarattrb, ndativarattrc, ini) |
Metodo per allocare i descrittori delle 7 dimensioni. Continua... | |
logical function | vol7d_check_vol (this) |
subroutine | vol7d_alloc_vol (this, ini, inivol) |
Metodo per allocare i volumi richiesti di variabili e attributi per anagrafica e dati. Continua... | |
subroutine | vol7d_set_attr_ind (this) |
Metodo per creare gli indici che associano le variabili aventi attributo alle variabili nei relativi descrittori. Continua... | |
subroutine | vol7d_merge (this, that, sort, bestdata, ltimesimple, ltimerangesimple, llevelsimple, lanasimple) |
Metodo per fondere 2 oggetti vol7d. Continua... | |
subroutine | vol7d_append (this, that, sort, bestdata, ltimesimple, ltimerangesimple, llevelsimple, lanasimple, lnetworksimple) |
Metodo per accodare un oggetto vol7d ad un altro. Continua... | |
subroutine | vol7d_copy (this, that, sort, unique, miss, lsort_time, lsort_timerange, lsort_level, ltime, ltimerange, llevel, lana, lnetwork, lanavarr, lanavard, lanavari, lanavarb, lanavarc, lanaattrr, lanaattrd, lanaattri, lanaattrb, lanaattrc, lanavarattrr, lanavarattrd, lanavarattri, lanavarattrb, lanavarattrc, ldativarr, ldativard, ldativari, ldativarb, ldativarc, ldatiattrr, ldatiattrd, ldatiattri, ldatiattrb, ldatiattrc, ldativarattrr, ldativarattrd, ldativarattri, ldativarattrb, ldativarattrc) |
Metodo per creare una copia completa e indipendente di un oggetto vol7d. Continua... | |
subroutine | vol7d_reform (this, sort, unique, miss, lsort_time, lsort_timerange, lsort_level, ltime, ltimerange, llevel, lana, lnetwork, lanavarr, lanavard, lanavari, lanavarb, lanavarc, lanaattrr, lanaattrd, lanaattri, lanaattrb, lanaattrc, lanavarattrr, lanavarattrd, lanavarattri, lanavarattrb, lanavarattrc, ldativarr, ldativard, ldativari, ldativarb, ldativarc, ldatiattrr, ldatiattrd, ldatiattri, ldatiattrb, ldatiattrc, ldativarattrr, ldativarattrd, ldativarattri, ldativarattrb, ldativarattrc, purgeana) |
Metodo per riformare in varie maniere un oggetto vol7d. Continua... | |
subroutine | vol7d_smart_sort (this, lsort_time, lsort_timerange, lsort_level) |
Sorts the sortable dimensions in the volume this only when necessary. Continua... | |
subroutine | vol7d_filter (this, avl, vl, nl, s_d, e_d) |
Filter the contents of a volume keeping only desired data. Continua... | |
subroutine | vol7d_convr (this, that, anaconv) |
Metodo per convertire i volumi di dati di un oggetto vol7d in dati reali dove possibile. Continua... | |
subroutine | vol7d_diff_only (this, that, data_only, ana) |
Metodo per ottenere solo le differenze tra due oggetti vol7d. Continua... | |
subroutine | vol7d_get_volanar (this, dimlist, vol1dp, vol2dp, vol3dp) |
Crea una vista a dimensione ridotta di un volume di anagrafica di tipo REAL. Continua... | |
subroutine | vol7d_get_volanaattrr (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp) |
Crea una vista a dimensione ridotta di un volume di attributi di anagrafica di tipo REAL. Continua... | |
subroutine | vol7d_get_voldatir (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp) |
Crea una vista a dimensione ridotta di un volume di dati di tipo REAL. Continua... | |
subroutine | vol7d_get_voldatiattrr (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp, vol7dp) |
Crea una vista a dimensione ridotta di un volume di attributi di dati di tipo REAL. Continua... | |
subroutine | vol7d_get_volanad (this, dimlist, vol1dp, vol2dp, vol3dp) |
Crea una vista a dimensione ridotta di un volume di anagrafica di tipo DOUBLE PRECISION. Continua... | |
subroutine | vol7d_get_volanaattrd (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp) |
Crea una vista a dimensione ridotta di un volume di attributi di anagrafica di tipo DOUBLE PRECISION. Continua... | |
subroutine | vol7d_get_voldatid (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp) |
Crea una vista a dimensione ridotta di un volume di dati di tipo DOUBLE PRECISION. Continua... | |
subroutine | vol7d_get_voldatiattrd (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp, vol7dp) |
Crea una vista a dimensione ridotta di un volume di attributi di dati di tipo DOUBLE PRECISION. Continua... | |
subroutine | vol7d_get_volanai (this, dimlist, vol1dp, vol2dp, vol3dp) |
Crea una vista a dimensione ridotta di un volume di anagrafica di tipo INTEGER. Continua... | |
subroutine | vol7d_get_volanaattri (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp) |
Crea una vista a dimensione ridotta di un volume di attributi di anagrafica di tipo INTEGER. Continua... | |
subroutine | vol7d_get_voldatii (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp) |
Crea una vista a dimensione ridotta di un volume di dati di tipo INTEGER. Continua... | |
subroutine | vol7d_get_voldatiattri (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp, vol7dp) |
Crea una vista a dimensione ridotta di un volume di attributi di dati di tipo INTEGER. Continua... | |
subroutine | vol7d_get_volanab (this, dimlist, vol1dp, vol2dp, vol3dp) |
Crea una vista a dimensione ridotta di un volume di anagrafica di tipo INTEGER(kind=int_b). Continua... | |
subroutine | vol7d_get_volanaattrb (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp) |
Crea una vista a dimensione ridotta di un volume di attributi di anagrafica di tipo INTEGER(kind=int_b). Continua... | |
subroutine | vol7d_get_voldatib (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp) |
Crea una vista a dimensione ridotta di un volume di dati di tipo INTEGER(kind=int_b). Continua... | |
subroutine | vol7d_get_voldatiattrb (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp, vol7dp) |
Crea una vista a dimensione ridotta di un volume di attributi di dati di tipo INTEGER(kind=int_b). Continua... | |
subroutine | vol7d_get_volanac (this, dimlist, vol1dp, vol2dp, vol3dp) |
Crea una vista a dimensione ridotta di un volume di anagrafica di tipo CHARACTER(len=vol7d_cdatalen). Continua... | |
subroutine | vol7d_get_volanaattrc (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp) |
Crea una vista a dimensione ridotta di un volume di attributi di anagrafica di tipo CHARACTER(len=vol7d_cdatalen). Continua... | |
subroutine | vol7d_get_voldatic (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp) |
Crea una vista a dimensione ridotta di un volume di dati di tipo CHARACTER(len=vol7d_cdatalen). Continua... | |
subroutine | vol7d_get_voldatiattrc (this, dimlist, vol1dp, vol2dp, vol3dp, vol4dp, vol5dp, vol6dp, vol7dp) |
Crea una vista a dimensione ridotta di un volume di attributi di dati di tipo CHARACTER(len=vol7d_cdatalen). Continua... | |
subroutine, private | vol7d_write_on_file (this, unit, description, filename, filename_auto) |
Scrittura su file di un volume Vol7d. Continua... | |
subroutine, private | vol7d_read_from_file (this, unit, filename, description, tarray, filename_auto) |
Lettura da file di un volume Vol7d. Continua... | |
real function, dimension(size(this%ana), size(this%network)) | realanavol (this, var) |
Return an ana volume of a requested variable as real data. Continua... | |
integer function, dimension(size(this%ana), size(this%network)) | integeranavol (this, var) |
Return an ana volume of a requested variable as integer data. Continua... | |
subroutine | move_datac (v7d, indana, indtime, indlevel, indtimerange, indnetwork, indananew, indtimenew, indlevelnew, indtimerangenew, indnetworknew) |
Move data for all variables from one coordinate in the character volume to other. Continua... | |
subroutine | move_datar (v7d, indana, indtime, indlevel, indtimerange, indnetwork, indananew, indtimenew, indlevelnew, indtimerangenew, indnetworknew) |
Move data for all variables from one coordinate in the real volume to other. Continua... | |
subroutine | v7d_rounding (v7din, v7dout, level, timerange, nostatproc) |
Reduce some dimensions (level and timerage) for semplification (rounding). Continua... | |
Variabili | |
integer, parameter | vol7d_ana_a =1 |
indice della dimensione "anagrafica" nei volumi di anagrafica, da usare nei metodi vol7d_get_volana* Continua... | |
integer, parameter | vol7d_var_a =2 |
indice della dimensione "variabile" nei volumi di anagrafica, da usare nei metodi vol7d_get_volana* Continua... | |
integer, parameter | vol7d_network_a =3 |
indice della dimensione "rete" nei volumi di anagrafica, da usare nei metodi vol7d_get_volana* Continua... | |
integer, parameter | vol7d_attr_a =4 |
indice della dimensione "attributo" nei volumi di anagrafica, da usare nei metodi vol7d_get_volana* Continua... | |
integer, parameter | vol7d_ana_d =1 |
indice della dimensione "anagrafica" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
integer, parameter | vol7d_time_d =2 |
indice della dimensione "tempo" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
integer, parameter | vol7d_level_d =3 |
indice della dimensione "livello verticale" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
integer, parameter | vol7d_timerange_d =4 |
indice della dimensione "intervallo temporale" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
integer, parameter | vol7d_var_d =5 |
indice della dimensione "variabile" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
integer, parameter | vol7d_network_d =6 |
indice della dimensione "rete" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
integer, parameter | vol7d_attr_d =7 |
indice della dimensione "attributo" nei volumi di dati, da usare nei metodi vol7d_get_voldati* Continua... | |
Classe per la gestione di un volume completo di dati osservati.
Questo modulo definisce gli oggetti e i metodi per gestire volumi di dati meteorologici sparsi. I volumi definiti sono principalmente di 4 categorie:
Tutte le variabili sono inoltre disponibil1 in 5 tipi diversi:
Per ognuna delle dimensioni possibili, incluse le variabili e gli attributi con i loro diversi tipi, è definito un cosiddetto "vettore di descrittori", con un numero di elementi pari all'estensione della dimensione stessa, che contiene le informazioni necessarie a descrivere gli elementi di quella dimensione. In realtà l'utente non dovrà generalmente occuparsi di costruire un oggetto vol7d con le proprie mani ma utilizzerà nella maggior parte dei casi i metodi di importazione preconfezionati che importano dati da DB-All.e (vol7d_dballe_class) o dal DB Oracle del SIM (vol7d_oraclesim_class).
Il programma esempio_v7d.f90 contiene un esempio elementare di uso della classe vol7d: