|
◆ vol7d_alloc()
subroutine vol7d_class::vol7d_alloc |
( |
type(vol7d), intent(inout) |
this, |
|
|
integer, intent(in), optional |
nana, |
|
|
integer, intent(in), optional |
ntime, |
|
|
integer, intent(in), optional |
nlevel, |
|
|
integer, intent(in), optional |
ntimerange, |
|
|
integer, intent(in), optional |
nnetwork, |
|
|
integer, intent(in), optional |
nanavarr, |
|
|
integer, intent(in), optional |
nanavard, |
|
|
integer, intent(in), optional |
nanavari, |
|
|
integer, intent(in), optional |
nanavarb, |
|
|
integer, intent(in), optional |
nanavarc, |
|
|
integer, intent(in), optional |
nanaattrr, |
|
|
integer, intent(in), optional |
nanaattrd, |
|
|
integer, intent(in), optional |
nanaattri, |
|
|
integer, intent(in), optional |
nanaattrb, |
|
|
integer, intent(in), optional |
nanaattrc, |
|
|
integer, intent(in), optional |
nanavarattrr, |
|
|
integer, intent(in), optional |
nanavarattrd, |
|
|
integer, intent(in), optional |
nanavarattri, |
|
|
integer, intent(in), optional |
nanavarattrb, |
|
|
integer, intent(in), optional |
nanavarattrc, |
|
|
integer, intent(in), optional |
ndativarr, |
|
|
integer, intent(in), optional |
ndativard, |
|
|
integer, intent(in), optional |
ndativari, |
|
|
integer, intent(in), optional |
ndativarb, |
|
|
integer, intent(in), optional |
ndativarc, |
|
|
integer, intent(in), optional |
ndatiattrr, |
|
|
integer, intent(in), optional |
ndatiattrd, |
|
|
integer, intent(in), optional |
ndatiattri, |
|
|
integer, intent(in), optional |
ndatiattrb, |
|
|
integer, intent(in), optional |
ndatiattrc, |
|
|
integer, intent(in), optional |
ndativarattrr, |
|
|
integer, intent(in), optional |
ndativarattrd, |
|
|
integer, intent(in), optional |
ndativarattri, |
|
|
integer, intent(in), optional |
ndativarattrb, |
|
|
integer, intent(in), optional |
ndativarattrc, |
|
|
logical, intent(in), optional |
ini |
|
) |
| |
Metodo per allocare i descrittori delle 7 dimensioni.
Riceve un grande numero di parametri opzionali che indicano quali descrittori allocare e con quale estensione; i descrittori non specificati non vengono toccati. Può essere quindi chiamato più volte allocando via via descrittori relativi a dimensioni diverse. Se un descrittore richiesto è già allocato, viene deallocato (perdendone l'eventuale contenuto) e riallocato con l'estensione richiesta. Per i descrittori relativi a dimensioni che non siano variabili o attributi, è possibile specificare l'estensione di una dimensione a 0, in tal caso il descrittore viene comunque allocato con lunghezza nulla, che è diverso da non allocarlo. Per i descrittori di variabili e attributi passare un'estensione 0 equivale a non fornire il parametro. Avere uno o più descrittori dimensionati con estensione nulla fa sì che anche il volume dati successivamente allocato abbia estensione nulla; sebbene ciò appaia inutile, un volume del genere può in realtà servire, in associazione ai metodi vol7d_merge o vol7d_append per estendere un volume esistente aggiungendo elementi in alcune dimensioni (quelle a estensione non nulla, ovviamente) e mantenendo invariato tutto il resto. Per quanto riguarda i descrittori delle dimensioni relative alle variabili, la relativa estensione è specificata con la nomenclatura n<x><y><z> dove <x> può valere:
- ana per variabili relative a voumi di anagrafica
- dati per variabili relative a voumi di dati
<y> può valere:
- var per variabili
- attr per attributi
- varattr variabili aventi attributi nei volumi di attributi
<z> può valere:
- r per variabili o attributi a valori reali
- d per variabili o attributi a valori a doppia precisione
- i per variabili o attributi a valori interi
- b per variabili o attributi a valori byte
- c per variabili o attributi a valori carattere
- Parametri
-
[in,out] | this | oggetto di cui allocare i descrittori |
[in] | nana | estensione della dimensione anagrafica |
[in] | ntime | estensione della dimensione tempo |
[in] | nlevel | estensione della dimensione livello varticale |
[in] | ntimerange | estensione della dimensione intervallo temporale (timerange) |
[in] | nnetwork | estensione della dimensione rete |
[in] | nanavarr | estensione delle possibili dimensioni variabile |
[in] | nanavard | estensione delle possibili dimensioni variabile |
[in] | nanavari | estensione delle possibili dimensioni variabile |
[in] | nanavarb | estensione delle possibili dimensioni variabile |
[in] | nanavarc | estensione delle possibili dimensioni variabile |
[in] | nanaattrr | estensione delle possibili dimensioni variabile |
[in] | nanaattrd | estensione delle possibili dimensioni variabile |
[in] | nanaattri | estensione delle possibili dimensioni variabile |
[in] | nanaattrb | estensione delle possibili dimensioni variabile |
[in] | nanaattrc | estensione delle possibili dimensioni variabile |
[in] | nanavarattrr | estensione delle possibili dimensioni variabile |
[in] | nanavarattrd | estensione delle possibili dimensioni variabile |
[in] | nanavarattri | estensione delle possibili dimensioni variabile |
[in] | nanavarattrb | estensione delle possibili dimensioni variabile |
[in] | nanavarattrc | estensione delle possibili dimensioni variabile |
[in] | ndativarr | estensione delle possibili dimensioni variabile |
[in] | ndativard | estensione delle possibili dimensioni variabile |
[in] | ndativari | estensione delle possibili dimensioni variabile |
[in] | ndativarb | estensione delle possibili dimensioni variabile |
[in] | ndativarc | estensione delle possibili dimensioni variabile |
[in] | ndatiattrr | estensione delle possibili dimensioni variabile |
[in] | ndatiattrd | estensione delle possibili dimensioni variabile |
[in] | ndatiattri | estensione delle possibili dimensioni variabile |
[in] | ndatiattrb | estensione delle possibili dimensioni variabile |
[in] | ndatiattrc | estensione delle possibili dimensioni variabile |
[in] | ndativarattrr | estensione delle possibili dimensioni variabile |
[in] | ndativarattrd | estensione delle possibili dimensioni variabile |
[in] | ndativarattri | estensione delle possibili dimensioni variabile |
[in] | ndativarattrb | estensione delle possibili dimensioni variabile |
[in] | ndativarattrc | estensione delle possibili dimensioni variabile |
[in] | ini | se fornito e vale .TRUE., viene chiamato il costruttore, senza parametri opzionali, per ogni elemento di tutti i descrittori allocati, inizializzandolo quindi a valore mancante |
Definizione alla linea 1047 del file vol7d_class.F90.
1049 IF ( ASSOCIATED(this%anaattr%d) .AND. ASSOCIATED(this%anavarattr%d) .AND. & 1050 .NOT. ASSOCIATED(this%volanaattrd)) THEN 1051 vol7d_check_vol = .false. 1054 IF ( ASSOCIATED(this%anaattr%i) .AND. ASSOCIATED(this%anavarattr%i) .AND. & 1055 .NOT. ASSOCIATED(this%volanaattri)) THEN 1056 vol7d_check_vol = .false. 1059 IF ( ASSOCIATED(this%anaattr%b) .AND. ASSOCIATED(this%anavarattr%b) .AND. & 1060 .NOT. ASSOCIATED(this%volanaattrb)) THEN 1061 vol7d_check_vol = .false. 1064 IF ( ASSOCIATED(this%anaattr%c) .AND. ASSOCIATED(this%anavarattr%c) .AND. & 1065 .NOT. ASSOCIATED(this%volanaattrc)) THEN 1066 vol7d_check_vol = .false. 1070 IF ( ASSOCIATED(this%dativar%r) .AND. .NOT. ASSOCIATED(this%voldatir)) THEN 1071 vol7d_check_vol = .false. 1074 IF ( ASSOCIATED(this%dativar%d) .AND. .NOT. ASSOCIATED(this%voldatid)) THEN 1075 vol7d_check_vol = .false. 1078 IF ( ASSOCIATED(this%dativar%i) .AND. .NOT. ASSOCIATED(this%voldatii)) THEN 1079 vol7d_check_vol = .false. 1082 IF ( ASSOCIATED(this%dativar%b) .AND. .NOT. ASSOCIATED(this%voldatib)) THEN 1083 vol7d_check_vol = .false. 1086 IF ( ASSOCIATED(this%dativar%c) .AND. .NOT. ASSOCIATED(this%voldatic)) THEN 1087 vol7d_check_vol = .false. 1091 IF ( ASSOCIATED(this%datiattr%r) .AND. ASSOCIATED(this%dativarattr%r) .AND. & 1092 .NOT. ASSOCIATED(this%voldatiattrr)) THEN 1093 vol7d_check_vol = .false. 1096 IF ( ASSOCIATED(this%datiattr%d) .AND. ASSOCIATED(this%dativarattr%d) .AND. & 1097 .NOT. ASSOCIATED(this%voldatiattrd)) THEN 1098 vol7d_check_vol = .false. 1101 IF ( ASSOCIATED(this%datiattr%i) .AND. ASSOCIATED(this%dativarattr%i) .AND. & 1102 .NOT. ASSOCIATED(this%voldatiattri)) THEN 1103 vol7d_check_vol = .false. 1106 IF ( ASSOCIATED(this%datiattr%b) .AND. ASSOCIATED(this%dativarattr%b) .AND. & 1107 .NOT. ASSOCIATED(this%voldatiattrb)) THEN 1108 vol7d_check_vol = .false. 1111 IF ( ASSOCIATED(this%datiattr%c) .AND. ASSOCIATED(this%dativarattr%c) .AND. & 1112 .NOT. ASSOCIATED(this%voldatiattrc)) THEN 1113 vol7d_check_vol = .false. 1115 IF ( ASSOCIATED(this%dativar%r) .OR. ASSOCIATED(this%dativar%d) .OR. & 1116 ASSOCIATED(this%dativar%i) .OR. ASSOCIATED(this%dativar%b) .OR. & 1117 ASSOCIATED(this%dativar%c)) THEN 1118 vol7d_check_vol = vol7d_check_vol .AND. vol7d_check_alloc_dati(this) 1121 END FUNCTION vol7d_check_vol 1138 SUBROUTINE vol7d_alloc_vol(this, ini, inivol) 1139 TYPE(vol7d), INTENT(inout) :: this 1140 LOGICAL, INTENT(in), OPTIONAL :: ini 1141 LOGICAL, INTENT(in), OPTIONAL :: inivol
|