libsim  Versione 7.2.6

◆ 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]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 1039 del file vol7d_class.F90.

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

Generated with Doxygen.