|
◆ vol7d_alloc_vol()
subroutine vol7d_class::vol7d_alloc_vol |
( |
type(vol7d), intent(inout) |
this, |
|
|
logical, intent(in), optional |
ini, |
|
|
logical, intent(in), optional |
inivol |
|
) |
| |
Metodo per allocare i volumi richiesti di variabili e attributi per anagrafica e dati.
Se alcuni dei descrittori relativi alle dimensioni anagrafica, livello verticale, tempo, intervallo temporale (timerange), rete non sono stati richiesti preventivamente con la vol7d_alloc, essi vengono allocati automaticamente da questo metodo con estensione di default pari a 1 (non 0!), questo significa, ad esempio, che se prevedo di avere soli dati superficiali, cioè ad un solo livello verticale, o una sola rete di stazioni, non devo preoccuparmi di specificare questa informazione. Tra i 20 possibili volumi allocabili ((variabili,attributi)*(anagrafica,dati)*(r,d,i,b,c)=20) saranno allocati solo quelli per cui è stato precedentemente richiesto il corrispondente descrittore variabili/attributi con la vol7d_alloc.
- Parametri
-
[in,out] | this | oggetto di cui allocare i volumi |
[in] | ini | se fornito e vale .TRUE., viene chiamato il costruttore, senza parametri opzionali, per ogni elemento di tutti i descrittori allocati |
[in] | inivol | se fornito e vale .TRUE., i volumi allocati saranno inizializzati a valore mancante |
Definizione alla linea 1328 del file vol7d_class.F90.
1328 TYPE(vol7d), INTENT(inout) :: this 1333 IF ( ASSOCIATED(this%dativar%r)) THEN 1334 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1335 DO i = 1, SIZE(this%dativar%r) 1336 this%dativar%r(i)%r = & 1337 firsttrue(this%dativar%r(i)%btable == this%dativarattr%r(:)%btable) 1341 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1342 DO i = 1, SIZE(this%dativar%r) 1343 this%dativar%r(i)%d = & 1344 firsttrue(this%dativar%r(i)%btable == this%dativarattr%d(:)%btable) 1348 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1349 DO i = 1, SIZE(this%dativar%r) 1350 this%dativar%r(i)%i = & 1351 firsttrue(this%dativar%r(i)%btable == this%dativarattr%i(:)%btable) 1355 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1356 DO i = 1, SIZE(this%dativar%r) 1357 this%dativar%r(i)%b = & 1358 firsttrue(this%dativar%r(i)%btable == this%dativarattr%b(:)%btable) 1362 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1363 DO i = 1, SIZE(this%dativar%r) 1364 this%dativar%r(i)%c = & 1365 firsttrue(this%dativar%r(i)%btable == this%dativarattr%c(:)%btable) 1370 IF ( ASSOCIATED(this%dativar%d)) THEN 1371 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1372 DO i = 1, SIZE(this%dativar%d) 1373 this%dativar%d(i)%r = & 1374 firsttrue(this%dativar%d(i)%btable == this%dativarattr%r(:)%btable) 1378 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1379 DO i = 1, SIZE(this%dativar%d) 1380 this%dativar%d(i)%d = & 1381 firsttrue(this%dativar%d(i)%btable == this%dativarattr%d(:)%btable) 1385 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1386 DO i = 1, SIZE(this%dativar%d) 1387 this%dativar%d(i)%i = & 1388 firsttrue(this%dativar%d(i)%btable == this%dativarattr%i(:)%btable) 1392 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1393 DO i = 1, SIZE(this%dativar%d) 1394 this%dativar%d(i)%b = & 1395 firsttrue(this%dativar%d(i)%btable == this%dativarattr%b(:)%btable) 1399 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1400 DO i = 1, SIZE(this%dativar%d) 1401 this%dativar%d(i)%c = & 1402 firsttrue(this%dativar%d(i)%btable == this%dativarattr%c(:)%btable) 1407 IF ( ASSOCIATED(this%dativar%i)) THEN 1408 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1409 DO i = 1, SIZE(this%dativar%i) 1410 this%dativar%i(i)%r = & 1411 firsttrue(this%dativar%i(i)%btable == this%dativarattr%r(:)%btable) 1415 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1416 DO i = 1, SIZE(this%dativar%i) 1417 this%dativar%i(i)%d = & 1418 firsttrue(this%dativar%i(i)%btable == this%dativarattr%d(:)%btable) 1422 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1423 DO i = 1, SIZE(this%dativar%i) 1424 this%dativar%i(i)%i = & 1425 firsttrue(this%dativar%i(i)%btable == this%dativarattr%i(:)%btable) 1429 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1430 DO i = 1, SIZE(this%dativar%i) 1431 this%dativar%i(i)%b = & 1432 firsttrue(this%dativar%i(i)%btable == this%dativarattr%b(:)%btable) 1436 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1437 DO i = 1, SIZE(this%dativar%i) 1438 this%dativar%i(i)%c = & 1439 firsttrue(this%dativar%i(i)%btable == this%dativarattr%c(:)%btable) 1444 IF ( ASSOCIATED(this%dativar%b)) THEN 1445 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1446 DO i = 1, SIZE(this%dativar%b) 1447 this%dativar%b(i)%r = & 1448 firsttrue(this%dativar%b(i)%btable == this%dativarattr%r(:)%btable) 1452 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1453 DO i = 1, SIZE(this%dativar%b) 1454 this%dativar%b(i)%d = & 1455 firsttrue(this%dativar%b(i)%btable == this%dativarattr%d(:)%btable) 1459 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1460 DO i = 1, SIZE(this%dativar%b) 1461 this%dativar%b(i)%i = & 1462 firsttrue(this%dativar%b(i)%btable == this%dativarattr%i(:)%btable) 1466 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1467 DO i = 1, SIZE(this%dativar%b) 1468 this%dativar%b(i)%b = & 1469 firsttrue(this%dativar%b(i)%btable == this%dativarattr%b(:)%btable) 1473 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1474 DO i = 1, SIZE(this%dativar%b) 1475 this%dativar%b(i)%c = & 1476 firsttrue(this%dativar%b(i)%btable == this%dativarattr%c(:)%btable) 1481 IF ( ASSOCIATED(this%dativar%c)) THEN 1482 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1483 DO i = 1, SIZE(this%dativar%c) 1484 this%dativar%c(i)%r = & 1485 firsttrue(this%dativar%c(i)%btable == this%dativarattr%r(:)%btable) 1489 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1490 DO i = 1, SIZE(this%dativar%c) 1491 this%dativar%c(i)%d = & 1492 firsttrue(this%dativar%c(i)%btable == this%dativarattr%d(:)%btable) 1496 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1497 DO i = 1, SIZE(this%dativar%c) 1498 this%dativar%c(i)%i = & 1499 firsttrue(this%dativar%c(i)%btable == this%dativarattr%i(:)%btable) 1503 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1504 DO i = 1, SIZE(this%dativar%c) 1505 this%dativar%c(i)%b = & 1506 firsttrue(this%dativar%c(i)%btable == this%dativarattr%b(:)%btable)
|