|
|
◆ 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 1329 del file vol7d_class.F90.
1329 TYPE(vol7d), INTENT(inout) :: this 1334 IF ( ASSOCIATED(this%dativar%r)) THEN 1335 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1336 DO i = 1, SIZE(this%dativar%r) 1337 this%dativar%r(i)%r = & 1338 firsttrue(this%dativar%r(i)%btable == this%dativarattr%r(:)%btable) 1342 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1343 DO i = 1, SIZE(this%dativar%r) 1344 this%dativar%r(i)%d = & 1345 firsttrue(this%dativar%r(i)%btable == this%dativarattr%d(:)%btable) 1349 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1350 DO i = 1, SIZE(this%dativar%r) 1351 this%dativar%r(i)%i = & 1352 firsttrue(this%dativar%r(i)%btable == this%dativarattr%i(:)%btable) 1356 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1357 DO i = 1, SIZE(this%dativar%r) 1358 this%dativar%r(i)%b = & 1359 firsttrue(this%dativar%r(i)%btable == this%dativarattr%b(:)%btable) 1363 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1364 DO i = 1, SIZE(this%dativar%r) 1365 this%dativar%r(i)%c = & 1366 firsttrue(this%dativar%r(i)%btable == this%dativarattr%c(:)%btable) 1371 IF ( ASSOCIATED(this%dativar%d)) THEN 1372 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1373 DO i = 1, SIZE(this%dativar%d) 1374 this%dativar%d(i)%r = & 1375 firsttrue(this%dativar%d(i)%btable == this%dativarattr%r(:)%btable) 1379 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1380 DO i = 1, SIZE(this%dativar%d) 1381 this%dativar%d(i)%d = & 1382 firsttrue(this%dativar%d(i)%btable == this%dativarattr%d(:)%btable) 1386 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1387 DO i = 1, SIZE(this%dativar%d) 1388 this%dativar%d(i)%i = & 1389 firsttrue(this%dativar%d(i)%btable == this%dativarattr%i(:)%btable) 1393 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1394 DO i = 1, SIZE(this%dativar%d) 1395 this%dativar%d(i)%b = & 1396 firsttrue(this%dativar%d(i)%btable == this%dativarattr%b(:)%btable) 1400 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1401 DO i = 1, SIZE(this%dativar%d) 1402 this%dativar%d(i)%c = & 1403 firsttrue(this%dativar%d(i)%btable == this%dativarattr%c(:)%btable) 1408 IF ( ASSOCIATED(this%dativar%i)) THEN 1409 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1410 DO i = 1, SIZE(this%dativar%i) 1411 this%dativar%i(i)%r = & 1412 firsttrue(this%dativar%i(i)%btable == this%dativarattr%r(:)%btable) 1416 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1417 DO i = 1, SIZE(this%dativar%i) 1418 this%dativar%i(i)%d = & 1419 firsttrue(this%dativar%i(i)%btable == this%dativarattr%d(:)%btable) 1423 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1424 DO i = 1, SIZE(this%dativar%i) 1425 this%dativar%i(i)%i = & 1426 firsttrue(this%dativar%i(i)%btable == this%dativarattr%i(:)%btable) 1430 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1431 DO i = 1, SIZE(this%dativar%i) 1432 this%dativar%i(i)%b = & 1433 firsttrue(this%dativar%i(i)%btable == this%dativarattr%b(:)%btable) 1437 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1438 DO i = 1, SIZE(this%dativar%i) 1439 this%dativar%i(i)%c = & 1440 firsttrue(this%dativar%i(i)%btable == this%dativarattr%c(:)%btable) 1445 IF ( ASSOCIATED(this%dativar%b)) THEN 1446 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1447 DO i = 1, SIZE(this%dativar%b) 1448 this%dativar%b(i)%r = & 1449 firsttrue(this%dativar%b(i)%btable == this%dativarattr%r(:)%btable) 1453 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1454 DO i = 1, SIZE(this%dativar%b) 1455 this%dativar%b(i)%d = & 1456 firsttrue(this%dativar%b(i)%btable == this%dativarattr%d(:)%btable) 1460 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1461 DO i = 1, SIZE(this%dativar%b) 1462 this%dativar%b(i)%i = & 1463 firsttrue(this%dativar%b(i)%btable == this%dativarattr%i(:)%btable) 1467 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1468 DO i = 1, SIZE(this%dativar%b) 1469 this%dativar%b(i)%b = & 1470 firsttrue(this%dativar%b(i)%btable == this%dativarattr%b(:)%btable) 1474 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1475 DO i = 1, SIZE(this%dativar%b) 1476 this%dativar%b(i)%c = & 1477 firsttrue(this%dativar%b(i)%btable == this%dativarattr%c(:)%btable) 1482 IF ( ASSOCIATED(this%dativar%c)) THEN 1483 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1484 DO i = 1, SIZE(this%dativar%c) 1485 this%dativar%c(i)%r = & 1486 firsttrue(this%dativar%c(i)%btable == this%dativarattr%r(:)%btable) 1490 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1491 DO i = 1, SIZE(this%dativar%c) 1492 this%dativar%c(i)%d = & 1493 firsttrue(this%dativar%c(i)%btable == this%dativarattr%d(:)%btable) 1497 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1498 DO i = 1, SIZE(this%dativar%c) 1499 this%dativar%c(i)%i = & 1500 firsttrue(this%dativar%c(i)%btable == this%dativarattr%i(:)%btable) 1504 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1505 DO i = 1, SIZE(this%dativar%c) 1506 this%dativar%c(i)%b = & 1507 firsttrue(this%dativar%c(i)%btable == this%dativarattr%b(:)%btable)
|