libsim  Versione6.3.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 1346 del file vol7d_class.F90.

1346  this%dativar%r(i)%d = &
1347  firsttrue(this%dativar%r(i)%btable == this%dativarattr%d(:)%btable)
1348  ENDDO
1349  ENDIF
1350 
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)
1355  ENDDO
1356  ENDIF
1357 
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)
1362  ENDDO
1363  ENDIF
1364 
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)
1369  ENDDO
1370  ENDIF
1371 ENDIF
1372 ! double
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)
1378  ENDDO
1379  ENDIF
1380 
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)
1385  ENDDO
1386  ENDIF
1387 
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)
1392  ENDDO
1393  ENDIF
1394 
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)
1399  ENDDO
1400  ENDIF
1401 
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)
1406  ENDDO
1407  ENDIF
1408 ENDIF
1409 ! integer
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)
1415  ENDDO
1416  ENDIF
1417 
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)
1422  ENDDO
1423  ENDIF
1424 
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)
1429  ENDDO
1430  ENDIF
1431 
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)
1436  ENDDO
1437  ENDIF
1438 
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)
1443  ENDDO
1444  ENDIF
1445 ENDIF
1446 ! byte
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)
1452  ENDDO
1453  ENDIF
1454 
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)
1459  ENDDO
1460  ENDIF
1461 
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)
1466  ENDDO
1467  ENDIF
1468 
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)
1473  ENDDO
1474  ENDIF
1475 
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)
1480  ENDDO
1481  ENDIF
1482 ENDIF
1483 ! character
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)
1489  ENDDO
1490  ENDIF
1491 
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)
1496  ENDDO
1497  ENDIF
1498 
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)
1503  ENDDO
1504  ENDIF
1505 
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)
1510  ENDDO
1511  ENDIF
1512 
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)
1517  ENDDO
1518  ENDIF
1519 ENDIF
1520 
1521 END SUBROUTINE vol7d_set_attr_ind
1522 
1523 

Generated with Doxygen.