libsim Versione 7.2.1

◆ vol7d_alloc()

subroutine 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]thisoggetto di cui allocare i descrittori
    [in]nanaestensione della dimensione anagrafica
    [in]ntimeestensione della dimensione tempo
    [in]nlevelestensione della dimensione livello varticale
    [in]ntimerangeestensione della dimensione intervallo temporale (timerange)
    [in]nnetworkestensione della dimensione rete
    [in]nanavarrestensione delle possibili dimensioni variabile
    [in]nanavardestensione delle possibili dimensioni variabile
    [in]nanavariestensione delle possibili dimensioni variabile
    [in]nanavarbestensione delle possibili dimensioni variabile
    [in]nanavarcestensione delle possibili dimensioni variabile
    [in]nanaattrrestensione delle possibili dimensioni variabile
    [in]nanaattrdestensione delle possibili dimensioni variabile
    [in]nanaattriestensione delle possibili dimensioni variabile
    [in]nanaattrbestensione delle possibili dimensioni variabile
    [in]nanaattrcestensione delle possibili dimensioni variabile
    [in]nanavarattrrestensione delle possibili dimensioni variabile
    [in]nanavarattrdestensione delle possibili dimensioni variabile
    [in]nanavarattriestensione delle possibili dimensioni variabile
    [in]nanavarattrbestensione delle possibili dimensioni variabile
    [in]nanavarattrcestensione delle possibili dimensioni variabile
    [in]ndativarrestensione delle possibili dimensioni variabile
    [in]ndativardestensione delle possibili dimensioni variabile
    [in]ndativariestensione delle possibili dimensioni variabile
    [in]ndativarbestensione delle possibili dimensioni variabile
    [in]ndativarcestensione delle possibili dimensioni variabile
    [in]ndatiattrrestensione delle possibili dimensioni variabile
    [in]ndatiattrdestensione delle possibili dimensioni variabile
    [in]ndatiattriestensione delle possibili dimensioni variabile
    [in]ndatiattrbestensione delle possibili dimensioni variabile
    [in]ndatiattrcestensione delle possibili dimensioni variabile
    [in]ndativarattrrestensione delle possibili dimensioni variabile
    [in]ndativarattrdestensione delle possibili dimensioni variabile
    [in]ndativarattriestensione delle possibili dimensioni variabile
    [in]ndativarattrbestensione delle possibili dimensioni variabile
    [in]ndativarattrcestensione delle possibili dimensioni variabile
    [in]inise 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 1029 del file vol7d_class.F90.

1037IF (ASSOCIATED(this%anavar%r) .OR. ASSOCIATED(this%anavar%d) .OR. &
1038 ASSOCIATED(this%anavar%i) .OR. ASSOCIATED(this%anavar%b) .OR. &
1039 ASSOCIATED(this%anavar%c)) THEN
1040 vol7d_check_vol = vol7d_check_vol .AND. vol7d_check_alloc_ana(this)
1041ENDIF
1042
1043! Attributi dell'anagrafica
1044IF (ASSOCIATED(this%anaattr%r) .AND. ASSOCIATED(this%anavarattr%r) .AND. &
1045 .NOT.ASSOCIATED(this%volanaattrr)) THEN
1046 vol7d_check_vol = .false.
1047ENDIF
1048
1049IF (ASSOCIATED(this%anaattr%d) .AND. ASSOCIATED(this%anavarattr%d) .AND. &
1050 .NOT.ASSOCIATED(this%volanaattrd)) THEN
1051 vol7d_check_vol = .false.
1052ENDIF
1053
1054IF (ASSOCIATED(this%anaattr%i) .AND. ASSOCIATED(this%anavarattr%i) .AND. &
1055 .NOT.ASSOCIATED(this%volanaattri)) THEN
1056 vol7d_check_vol = .false.
1057ENDIF
1058
1059IF (ASSOCIATED(this%anaattr%b) .AND. ASSOCIATED(this%anavarattr%b) .AND. &
1060 .NOT.ASSOCIATED(this%volanaattrb)) THEN
1061 vol7d_check_vol = .false.
1062ENDIF
1063
1064IF (ASSOCIATED(this%anaattr%c) .AND. ASSOCIATED(this%anavarattr%c) .AND. &
1065 .NOT.ASSOCIATED(this%volanaattrc)) THEN
1066 vol7d_check_vol = .false.
1067ENDIF
1068
1069! Dati
1070IF (ASSOCIATED(this%dativar%r) .AND. .NOT.ASSOCIATED(this%voldatir)) THEN
1071 vol7d_check_vol = .false.
1072ENDIF
1073
1074IF (ASSOCIATED(this%dativar%d) .AND. .NOT.ASSOCIATED(this%voldatid)) THEN
1075 vol7d_check_vol = .false.
1076ENDIF
1077
1078IF (ASSOCIATED(this%dativar%i) .AND. .NOT.ASSOCIATED(this%voldatii)) THEN
1079 vol7d_check_vol = .false.
1080ENDIF
1081
1082IF (ASSOCIATED(this%dativar%b) .AND. .NOT.ASSOCIATED(this%voldatib)) THEN
1083 vol7d_check_vol = .false.
1084ENDIF
1085
1086IF (ASSOCIATED(this%dativar%c) .AND. .NOT.ASSOCIATED(this%voldatic)) THEN
1087 vol7d_check_vol = .false.
1088ENDIF
1089
1090! Attributi dei dati
1091IF (ASSOCIATED(this%datiattr%r) .AND. ASSOCIATED(this%dativarattr%r) .AND. &
1092 .NOT.ASSOCIATED(this%voldatiattrr)) THEN
1093 vol7d_check_vol = .false.
1094ENDIF
1095
1096IF (ASSOCIATED(this%datiattr%d) .AND. ASSOCIATED(this%dativarattr%d) .AND. &
1097 .NOT.ASSOCIATED(this%voldatiattrd)) THEN
1098 vol7d_check_vol = .false.
1099ENDIF
1100
1101IF (ASSOCIATED(this%datiattr%i) .AND. ASSOCIATED(this%dativarattr%i) .AND. &
1102 .NOT.ASSOCIATED(this%voldatiattri)) THEN
1103 vol7d_check_vol = .false.
1104ENDIF
1105
1106IF (ASSOCIATED(this%datiattr%b) .AND. ASSOCIATED(this%dativarattr%b) .AND. &
1107 .NOT.ASSOCIATED(this%voldatiattrb)) THEN
1108 vol7d_check_vol = .false.
1109ENDIF
1110
1111IF (ASSOCIATED(this%datiattr%c) .AND. ASSOCIATED(this%dativarattr%c) .AND. &
1112 .NOT.ASSOCIATED(this%voldatiattrc)) THEN
1113 vol7d_check_vol = .false.
1114ENDIF
1115IF (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)
1119ENDIF
1120
1121END FUNCTION vol7d_check_vol
1122
1123

Generated with Doxygen.