|
◆ 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 1327 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)
|