|
◆ 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 1346 del file vol7d_class.F90.
1346 this%dativar%r(i)%d = & 1347 firsttrue(this%dativar%r(i)%btable == this%dativarattr%d(:)%btable 1351 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1352 DO i = 1, SIZE(this%dativar%r) 1353 this%dativar%r(i)%i = & 1354 firsttrue(this%dativar%r(i)%btable == this%dativarattr%i(:)%btable 1358 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1359 DO i = 1, SIZE(this%dativar%r) 1360 this%dativar%r(i)%b = & 1361 firsttrue(this%dativar%r(i)%btable == this%dativarattr%b(:)%btable 1365 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1366 DO i = 1, SIZE(this%dativar%r) 1367 this%dativar%r(i)%c = & 1368 firsttrue(this%dativar%r(i)%btable == this%dativarattr%c(:)%btable 1373 IF ( ASSOCIATED(this%dativar%d)) THEN 1374 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1375 DO i = 1, SIZE(this%dativar%d) 1376 this%dativar%d(i)%r = & 1377 firsttrue(this%dativar%d(i)%btable == this%dativarattr%r(:)%btable 1381 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1382 DO i = 1, SIZE(this%dativar%d) 1383 this%dativar%d(i)%d = & 1384 firsttrue(this%dativar%d(i)%btable == this%dativarattr%d(:)%btable 1388 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1389 DO i = 1, SIZE(this%dativar%d) 1390 this%dativar%d(i)%i = & 1391 firsttrue(this%dativar%d(i)%btable == this%dativarattr%i(:)%btable 1395 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1396 DO i = 1, SIZE(this%dativar%d) 1397 this%dativar%d(i)%b = & 1398 firsttrue(this%dativar%d(i)%btable == this%dativarattr%b(:)%btable 1402 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1403 DO i = 1, SIZE(this%dativar%d) 1404 this%dativar%d(i)%c = & 1405 firsttrue(this%dativar%d(i)%btable == this%dativarattr%c(:)%btable 1410 IF ( ASSOCIATED(this%dativar%i)) THEN 1411 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1412 DO i = 1, SIZE(this%dativar%i) 1413 this%dativar%i(i)%r = & 1414 firsttrue(this%dativar%i(i)%btable == this%dativarattr%r(:)%btable 1418 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1419 DO i = 1, SIZE(this%dativar%i) 1420 this%dativar%i(i)%d = & 1421 firsttrue(this%dativar%i(i)%btable == this%dativarattr%d(:)%btable 1425 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1426 DO i = 1, SIZE(this%dativar%i) 1427 this%dativar%i(i)%i = & 1428 firsttrue(this%dativar%i(i)%btable == this%dativarattr%i(:)%btable 1432 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1433 DO i = 1, SIZE(this%dativar%i) 1434 this%dativar%i(i)%b = & 1435 firsttrue(this%dativar%i(i)%btable == this%dativarattr%b(:)%btable 1439 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1440 DO i = 1, SIZE(this%dativar%i) 1441 this%dativar%i(i)%c = & 1442 firsttrue(this%dativar%i(i)%btable == this%dativarattr%c(:)%btable 1447 IF ( ASSOCIATED(this%dativar%b)) THEN 1448 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1449 DO i = 1, SIZE(this%dativar%b) 1450 this%dativar%b(i)%r = & 1451 firsttrue(this%dativar%b(i)%btable == this%dativarattr%r(:)%btable 1455 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1456 DO i = 1, SIZE(this%dativar%b) 1457 this%dativar%b(i)%d = & 1458 firsttrue(this%dativar%b(i)%btable == this%dativarattr%d(:)%btable 1462 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1463 DO i = 1, SIZE(this%dativar%b) 1464 this%dativar%b(i)%i = & 1465 firsttrue(this%dativar%b(i)%btable == this%dativarattr%i(:)%btable 1469 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1470 DO i = 1, SIZE(this%dativar%b) 1471 this%dativar%b(i)%b = & 1472 firsttrue(this%dativar%b(i)%btable == this%dativarattr%b(:)%btable 1476 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1477 DO i = 1, SIZE(this%dativar%b) 1478 this%dativar%b(i)%c = & 1479 firsttrue(this%dativar%b(i)%btable == this%dativarattr%c(:)%btable 1484 IF ( ASSOCIATED(this%dativar%c)) THEN 1485 IF ( ASSOCIATED(this%dativarattr%r)) THEN 1486 DO i = 1, SIZE(this%dativar%c) 1487 this%dativar%c(i)%r = & 1488 firsttrue(this%dativar%c(i)%btable == this%dativarattr%r(:)%btable 1492 IF ( ASSOCIATED(this%dativarattr%d)) THEN 1493 DO i = 1, SIZE(this%dativar%c) 1494 this%dativar%c(i)%d = & 1495 firsttrue(this%dativar%c(i)%btable == this%dativarattr%d(:)%btable 1499 IF ( ASSOCIATED(this%dativarattr%i)) THEN 1500 DO i = 1, SIZE(this%dativar%c) 1501 this%dativar%c(i)%i = & 1502 firsttrue(this%dativar%c(i)%btable == this%dativarattr%i(:)%btable 1506 IF ( ASSOCIATED(this%dativarattr%b)) THEN 1507 DO i = 1, SIZE(this%dativar%c) 1508 this%dativar%c(i)%b = & 1509 firsttrue(this%dativar%c(i)%btable == this%dativarattr%b(:)%btable 1513 IF ( ASSOCIATED(this%dativarattr%c)) THEN 1514 DO i = 1, SIZE(this%dativar%c) 1515 this%dativar%c(i)%c = & 1516 firsttrue(this%dativar%c(i)%btable == this%dativarattr%c(:)%btable 1521 END SUBROUTINE vol7d_set_attr_ind
|