libsim Versione 7.1.11
|
◆ vol7d_varvect_alloc()
Metodo per allocare i vettori di variabili richiesti. Se uno dei parametri nvar* non è presente o è <= 0 non viene allocato niente per quel tipo di variabile. Il metodo può essere chiamato più volte per allocare successivamente diversi tipi di variabili.
Definizione alla linea 104 del file vol7d_varvect_class.f90. 105TYPE(vol7d_varvect),INTENT(INOUT) :: this
106INTEGER,INTENT(in),OPTIONAL :: nvarr
107INTEGER,INTENT(in),OPTIONAL :: nvard
108INTEGER,INTENT(in),OPTIONAL :: nvari
109INTEGER,INTENT(in),OPTIONAL :: nvarb
110INTEGER,INTENT(in),OPTIONAL :: nvarc
111LOGICAL,INTENT(in),OPTIONAL :: ini
112
113INTEGER :: i
114LOGICAL :: linit
115
116IF (PRESENT(ini)) THEN
117 linit = ini
118ELSE
119 linit = .false.
120ENDIF
121
122IF (PRESENT(nvarr)) THEN
123 IF (nvarr > 0) THEN
124 IF (ASSOCIATED(this%r)) DEALLOCATE(this%r)
125 ALLOCATE(this%r(nvarr))
126 IF (linit) THEN
127 DO i = 1, nvarr
128 CALL init(this%r(i))
129 ENDDO
130 ENDIF
131 ENDIF
132ENDIF
133IF (PRESENT(nvard)) THEN
134 IF (nvard > 0) THEN
135 IF (ASSOCIATED(this%d)) DEALLOCATE(this%d)
136 ALLOCATE(this%d(nvard))
137 IF (linit) THEN
138 DO i = 1, nvard
139 CALL init(this%d(i))
140 ENDDO
141 ENDIF
142 ENDIF
143ENDIF
144IF (PRESENT(nvari)) THEN
145 IF (nvari > 0) THEN
146 IF (ASSOCIATED(this%i)) DEALLOCATE(this%i)
147 ALLOCATE(this%i(nvari))
148 IF (linit) THEN
149 DO i = 1, nvari
150 CALL init(this%i(i))
151 ENDDO
152 ENDIF
153 ENDIF
154ENDIF
155IF (PRESENT(nvarb)) THEN
156 IF (nvarb > 0) THEN
157 IF (ASSOCIATED(this%b)) DEALLOCATE(this%b)
158 ALLOCATE(this%b(nvarb))
159 IF (linit) THEN
160 DO i = 1, nvarb
161 CALL init(this%b(i))
162 ENDDO
163 ENDIF
164 ENDIF
165ENDIF
166IF (PRESENT(nvarc)) THEN
167 IF (nvarc > 0) THEN
168 IF (ASSOCIATED(this%c)) DEALLOCATE(this%c)
169 ALLOCATE(this%c(nvarc))
170 IF (linit) THEN
171 DO i = 1, nvarc
172 CALL init(this%c(i))
173 ENDDO
174 ENDIF
175 ENDIF
176ENDIF
177
|