libsim  Versione 7.1.8

◆ 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 1323 del file vol7d_class.F90.

1324 !! e degli attributi desiderati sono stati allocati ed è stato assegnato un
1325 !! valore ai relativi membri btable (vedi vol7d_var_class::vol7d_var), se
1326 !! i descrittori non sono stati allocati o assegnati, il metodo non fa niente.
1327 SUBROUTINE vol7d_set_attr_ind(this)
1328 TYPE(vol7d),INTENT(inout) :: this
1329 
1330 INTEGER :: i
1331 
1332 ! real
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)
1338  ENDDO
1339  ENDIF
1340 
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)
1345  ENDDO
1346  ENDIF
1347 
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)
1352  ENDDO
1353  ENDIF
1354 
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)
1359  ENDDO
1360  ENDIF
1361 
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)
1366  ENDDO
1367  ENDIF
1368 ENDIF
1369 ! double
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)
1375  ENDDO
1376  ENDIF
1377 
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)
1382  ENDDO
1383  ENDIF
1384 
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)
1389  ENDDO
1390  ENDIF
1391 
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)
1396  ENDDO
1397  ENDIF
1398 
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)
1403  ENDDO
1404  ENDIF
1405 ENDIF
1406 ! integer
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)
1412  ENDDO
1413  ENDIF
1414 
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)
1419  ENDDO
1420  ENDIF
1421 
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)
1426  ENDDO
1427  ENDIF
1428 
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)
1433  ENDDO
1434  ENDIF
1435 
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)
1440  ENDDO
1441  ENDIF
1442 ENDIF
1443 ! byte
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)
1449  ENDDO
1450  ENDIF
1451 
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)
1456  ENDDO
1457  ENDIF
1458 
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)
1463  ENDDO
1464  ENDIF
1465 
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)
1470  ENDDO
1471  ENDIF
1472 
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)
1477  ENDDO
1478  ENDIF
1479 ENDIF
1480 ! character
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)
1486  ENDDO
1487  ENDIF
1488 
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)
1493  ENDDO
1494  ENDIF
1495 
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)
1500  ENDDO
1501  ENDIF
1502 

Generated with Doxygen.