libsim  Versione8.0.0

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

1048 ENDIF
1049 
1050 IF (ASSOCIATED(this%anaattr%d) .AND. ASSOCIATED(this%anavarattr%d) .AND. &
1051  .NOT.ASSOCIATED(this%volanaattrd)) THEN
1052  vol7d_check_vol = .false.
1053 ENDIF
1054 
1055 IF (ASSOCIATED(this%anaattr%i) .AND. ASSOCIATED(this%anavarattr%i) .AND. &
1056  .NOT.ASSOCIATED(this%volanaattri)) THEN
1057  vol7d_check_vol = .false.
1058 ENDIF
1059 
1060 IF (ASSOCIATED(this%anaattr%b) .AND. ASSOCIATED(this%anavarattr%b) .AND. &
1061  .NOT.ASSOCIATED(this%volanaattrb)) THEN
1062  vol7d_check_vol = .false.
1063 ENDIF
1064 
1065 IF (ASSOCIATED(this%anaattr%c) .AND. ASSOCIATED(this%anavarattr%c) .AND. &
1066  .NOT.ASSOCIATED(this%volanaattrc)) THEN
1067  vol7d_check_vol = .false.
1068 ENDIF
1069 
1070 ! Dati
1071 IF (ASSOCIATED(this%dativar%r) .AND. .NOT.ASSOCIATED(this%voldatir)) THEN
1072  vol7d_check_vol = .false.
1073 ENDIF
1074 
1075 IF (ASSOCIATED(this%dativar%d) .AND. .NOT.ASSOCIATED(this%voldatid)) THEN
1076  vol7d_check_vol = .false.
1077 ENDIF
1078 
1079 IF (ASSOCIATED(this%dativar%i) .AND. .NOT.ASSOCIATED(this%voldatii)) THEN
1080  vol7d_check_vol = .false.
1081 ENDIF
1082 
1083 IF (ASSOCIATED(this%dativar%b) .AND. .NOT.ASSOCIATED(this%voldatib)) THEN
1084  vol7d_check_vol = .false.
1085 ENDIF
1086 
1087 IF (ASSOCIATED(this%dativar%c) .AND. .NOT.ASSOCIATED(this%voldatic)) THEN
1088  vol7d_check_vol = .false.
1089 ENDIF
1090 
1091 ! Attributi dei dati
1092 IF (ASSOCIATED(this%datiattr%r) .AND. ASSOCIATED(this%dativarattr%r) .AND. &
1093  .NOT.ASSOCIATED(this%voldatiattrr)) THEN
1094  vol7d_check_vol = .false.
1095 ENDIF
1096 
1097 IF (ASSOCIATED(this%datiattr%d) .AND. ASSOCIATED(this%dativarattr%d) .AND. &
1098  .NOT.ASSOCIATED(this%voldatiattrd)) THEN
1099  vol7d_check_vol = .false.
1100 ENDIF
1101 
1102 IF (ASSOCIATED(this%datiattr%i) .AND. ASSOCIATED(this%dativarattr%i) .AND. &
1103  .NOT.ASSOCIATED(this%voldatiattri)) THEN
1104  vol7d_check_vol = .false.
1105 ENDIF
1106 
1107 IF (ASSOCIATED(this%datiattr%b) .AND. ASSOCIATED(this%dativarattr%b) .AND. &
1108  .NOT.ASSOCIATED(this%voldatiattrb)) THEN
1109  vol7d_check_vol = .false.
1110 ENDIF
1111 
1112 IF (ASSOCIATED(this%datiattr%c) .AND. ASSOCIATED(this%dativarattr%c) .AND. &
1113  .NOT.ASSOCIATED(this%voldatiattrc)) THEN
1114  vol7d_check_vol = .false.
1115 ENDIF
1116 IF (ASSOCIATED(this%dativar%r) .OR. ASSOCIATED(this%dativar%d) .OR. &
1117  ASSOCIATED(this%dativar%i) .OR. ASSOCIATED(this%dativar%b) .OR. &
1118  ASSOCIATED(this%dativar%c)) THEN
1119  vol7d_check_vol = vol7d_check_vol .AND. vol7d_check_alloc_dati(this)
1120 ENDIF
1121 
1122 END FUNCTION vol7d_check_vol
1123 
1124 
1139 SUBROUTINE vol7d_alloc_vol(this, ini, inivol)
1140 TYPE(vol7d),INTENT(inout) :: this
1141 LOGICAL,INTENT(in),OPTIONAL :: ini
1142 LOGICAL,INTENT(in),OPTIONAL :: inivol

Generated with Doxygen.