libsim  Versione8.0.0

◆ 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]thisoggetto di cui allocare i volumi
[in]inise fornito e vale .TRUE., viene chiamato il costruttore, senza parametri opzionali, per ogni elemento di tutti i descrittori allocati
[in]inivolse 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
1330 
1331 INTEGER :: i
1332 
1333 ! real
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)
1339  ENDDO
1340  ENDIF
1341 
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)
1346  ENDDO
1347  ENDIF
1348 
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)
1353  ENDDO
1354  ENDIF
1355 
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)
1360  ENDDO
1361  ENDIF
1362 
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)
1367  ENDDO
1368  ENDIF
1369 ENDIF
1370 ! double
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)
1376  ENDDO
1377  ENDIF
1378 
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)
1383  ENDDO
1384  ENDIF
1385 
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)
1390  ENDDO
1391  ENDIF
1392 
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)
1397  ENDDO
1398  ENDIF
1399 
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)
1404  ENDDO
1405  ENDIF
1406 ENDIF
1407 ! integer
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)
1413  ENDDO
1414  ENDIF
1415 
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)
1420  ENDDO
1421  ENDIF
1422 
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)
1427  ENDDO
1428  ENDIF
1429 
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)
1434  ENDDO
1435  ENDIF
1436 
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)
1441  ENDDO
1442  ENDIF
1443 ENDIF
1444 ! byte
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)
1450  ENDDO
1451  ENDIF
1452 
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)
1457  ENDDO
1458  ENDIF
1459 
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)
1464  ENDDO
1465  ENDIF
1466 
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)
1471  ENDDO
1472  ENDIF
1473 
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)
1478  ENDDO
1479  ENDIF
1480 ENDIF
1481 ! character
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)
1487  ENDDO
1488  ENDIF
1489 
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)
1494  ENDDO
1495  ENDIF
1496 
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)
1501  ENDDO
1502  ENDIF
1503 
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)

Generated with Doxygen.