1246 SUBROUTINE SMUMPS_SAVE_RESTORE_BLR_STRUC(BLR_STRUC
1248 & ,Local_SIZE_GEST,Local_SIZE_VARIABLES
1249 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1250 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1251 & ,size_read,size_allocated,size_written
1254 TYPE(BLR_STRUC_T) :: BLR_STRUC
1255 INTEGER,intent(IN)::unit,MYID
1256 CHARACTER(len=*),intent(IN) :: mode
1257 INTEGER,INTENT(OUT) :: Local_SIZE_GEST
1258 INTEGER(8),intent(OUT) :: Local_SIZE_VARIABLES
1259 INTEGER,intent(INOUT):: INFO(2)
1260 INTEGER,intent(IN):: SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1261 INTEGER(8),intent(IN) :: TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1262 INTEGER(8),intent(INOUT):: size_read,size_allocated,size_written
1263 INTEGER :: NBVARIABLES_BLR_STRUC_T
1264 PARAMETER (NBVARIABLES_BLR_STRUC_T = 15)
1265 CHARACTER(len=30), dimension(NBVARIABLES_BLR_STRUC_T)::
1266 & VARIABLES_BLR_STRUC_T
1267 CHARACTER(len=30) :: TMP_STRING
1268 INTEGER(8),dimension(NBVARIABLES_BLR_STRUC_T)::
1269 & SIZE_VARIABLES_BLR_STRUC_T
1270 INTEGER,dimension(NBVARIABLES_BLR_STRUC_T)::SIZE_GEST_BLR_STRUC_T
1271 INTEGER,dimension(NBVARIABLES_BLR_STRUC_T)::NbRecords_BLR_STRUC_T
1272 INTEGER:: size_array1,size_array2,dummy,allocok
1273 INTEGER:: err,i1,j1,j2,NbSubRecords,Local_NbRecords
1274 INTEGER::SIZE_GEST_PANELS_L,SIZE_GEST_PANELS_L_j1
1275 INTEGER(8)::SIZE_VARIABLES_PANELS_L,SIZE_VARIABLES_PANELS_L_j1
1276 INTEGER::SIZE_GEST_PANELS_U,SIZE_GEST_PANELS_U_j1
1277 INTEGER(8)::SIZE_VARIABLES_PANELS_U,SIZE_VARIABLES_PANELS_U_j1
1278 INTEGER::SIZE_GEST_CB_LRB,SIZE_GEST_CB_LRB_j1j2
1279 INTEGER(8)::SIZE_VARIABLES_CB_LRB,SIZE_VARIABLES_CB_LRB_j1j2
1280 INTEGER::SIZE_GEST_DIAG_BLOCKS,SIZE_GEST_DIAG_BLOCKS_j1
1281 INTEGER(8)::SIZE_VARIABLES_DIAG_BLOCKS
1282 INTEGER(8)::SIZE_VARIABLES_DIAG_BLOCKS_j1
1284 VARIABLES_BLR_STRUC_T(1)="issym
"
1285 VARIABLES_BLR_STRUC_T(2)="ist2
"
1286 VARIABLES_BLR_STRUC_T(3)="isslave
"
1287 VARIABLES_BLR_STRUC_T(4)="panels_l
"
1288 VARIABLES_BLR_STRUC_T(5)="panels_u
"
1289 VARIABLES_BLR_STRUC_T(6)="cb_lrb
"
1290 VARIABLES_BLR_STRUC_T(7)="begs_blr_static
"
1291 VARIABLES_BLR_STRUC_T(8)="begs_blr_dynamic
"
1292 VARIABLES_BLR_STRUC_T(9)="begs_blr_l
"
1293 VARIABLES_BLR_STRUC_T(10)="begs_blr_col
"
1294 VARIABLES_BLR_STRUC_T(11)="nb_accesses_init"
1295 variables_blr_struc_t(12)=
"NB_PANELS"
1296 variables_blr_struc_t(13)=
"DIAG_BLOCKS"
1297 variables_blr_struc_t(14)=
"NFS4FATHER"
1298 variables_blr_struc_t(15)=
"M_ARRAY"
1299 size_variables_blr_struc_t(:)=0_8
1300 size_gest_blr_struc_t(:)=0
1301 nbrecords_blr_struc_t(:)=0
1302 size_gest_panels_l=0
1303 size_gest_panels_l_j1=0
1304 size_variables_panels_l=0_8
1305 size_variables_panels_l_j1=0_8
1306 size_gest_panels_u=0
1307 size_gest_panels_u_j1=0
1308 size_variables_panels_u=0_8
1309 size_variables_panels_u_j1=0_8
1311 size_gest_cb_lrb_j1j2=0
1312 size_variables_cb_lrb=0_8
1313 size_variables_cb_lrb_j1j2=0_8
1314 size_gest_diag_blocks=0
1315 size_gest_diag_blocks_j1=0
1316 size_variables_diag_blocks=0_8
1317 size_variables_diag_blocks_j1=0_8
1318 DO i1=1,nbvariables_blr_struc_t
1319 tmp_string = variables_blr_struc_t(i1)
1320 SELECT CASE(tmp_string)
1322 nbrecords_blr_struc_t(i1)=1
1323 if(trim(mode).EQ.
"memory_save")
then
1324 size_variables_blr_struc_t(i1)=size_logical
1325 elseif(trim(mode).EQ.
"save")
then
1326 size_variables_blr_struc_t(i1)=size_logical
1327 write(unit,iostat=err) blr_struc%IsSYM
1333 IF ( info(1) .LT. 0 )
GOTO 100
1334 elseif(trim(mode).EQ.
"restore")
then
1335 size_variables_blr_struc_t(i1)=size_logical
1336 read(unit,iostat=err) blr_struc%IsSYM
1342 IF (info(1) .LT. 0 )
GOTO 100
1345 nbrecords_blr_struc_t(i1)=1
1346 if(trim(mode).EQ.
"memory_save")
then
1347 size_variables_blr_struc_t(i1)=size_logical
1348 elseif(trim(mode).EQ.
"save")
then
1349 size_variables_blr_struc_t(i1)=size_logical
1350 write(unit,iostat=err) blr_struc%IsT2
1356 IF ( info(1) .LT. 0 )
GOTO 100
1357 elseif(trim(mode).EQ.
"restore")
then
1358 size_variables_blr_struc_t(i1)=size_logical
1359 read(unit,iostat=err) blr_struc%IsT2
1365 IF (info(1) .LT. 0 )
GOTO 100
1368 nbrecords_blr_struc_t(i1)=1
1369 if(trim(mode).EQ.
"memory_save")
then
1370 size_variables_blr_struc_t(i1)=size_logical
1371 elseif(trim(mode).EQ.
"save")
then
1372 size_variables_blr_struc_t(i1)=size_logical
1373 write(unit,iostat=err) blr_struc%IsSLAVE
1379 IF ( info(1) .LT. 0 )
GOTO 100
1380 elseif(trim(mode).EQ.
"restore")
then
1381 size_variables_blr_struc_t(i1)=size_logical
1382 read(unit,iostat=err) blr_struc%IsSLAVE
1388 IF (info(1) .LT. 0 )
GOTO 100
1390 CASE(
"BEGS_BLR_STATIC")
1391 nbrecords_blr_struc_t(i1)=2
1392 if(trim(mode).EQ.
"memory_save")
then
1393 IF(
associated(blr_struc%BEGS_BLR_STATIC))
THEN
1394 size_gest_blr_struc_t(i1)=size_int
1395 size_variables_blr_struc_t(i1)=
1396 &
size(blr_struc%BEGS_BLR_STATIC,1)*size_int
1398 size_gest_blr_struc_t(i1)=size_int*2
1399 size_variables_blr_struc_t(i1)=0
1401 elseif(trim(mode).EQ.
"save")
then
1402 IF(
associated(blr_struc%BEGS_BLR_STATIC))
THEN
1403 size_gest_blr_struc_t(i1)=size_int
1404 size_variables_blr_struc_t(i1)=
1405 &
size(blr_struc%BEGS_BLR_STATIC,1)*size_int
1406 write(unit,iostat=err)
1407 &
size(blr_struc%BEGS_BLR_STATIC,1)
1413 IF ( info(1) .LT. 0 )
GOTO 100
1414 write(unit,iostat=err) blr_struc%BEGS_BLR_STATIC
1416 size_gest_blr_struc_t(i1)=size_int*2
1417 size_variables_blr_struc_t(i1)=0
1418 write(unit,iostat=err) -999
1424 IF ( info(1) .LT. 0 )
GOTO 100
1425 write(unit,iostat=err) -999
1432 IF ( info(1) .LT. 0 )
GOTO 100
1433 elseif(trim(mode).EQ.
"restore")
then
1434 nullify(blr_struc%BEGS_BLR_STATIC)
1435 read(unit,iostat=err) size_array1
1441 IF ( info(1) .LT. 0 )
GOTO 100
1442 if(size_array1.EQ.-999)
then
1443 size_gest_blr_struc_t(i1)=size_int*2
1444 size_variables_blr_struc_t(i1)=0
1445 read(unit,iostat=err) dummy
1447 size_gest_blr_struc_t(i1)=size_int
1448 size_variables_blr_struc_t(i1)=size_array1*size_int
1449 allocate(blr_struc%BEGS_BLR_STATIC(size_array1)
1451 if (allocok .GT. 0)
THEN
1454 & total_struc_size-size_allocated
1457 read(unit,iostat=err) blr_struc%BEGS_BLR_STATIC
1459 IF ( info(1) .LT. 0 )
GOTO 100
1465 IF ( info(1) .LT. 0 )
GOTO 100
1467 CASE(
"BEGS_BLR_DYNAMIC")
1468 nbrecords_blr_struc_t(i1)=2
1469 if(trim(mode).EQ.
"memory_save")
then
1470 IF(
associated(blr_struc%BEGS_BLR_DYNAMIC))
THEN
1471 size_gest_blr_struc_t(i1)=size_int
1472 size_variables_blr_struc_t(i1)=
1473 &
size(blr_struc%BEGS_BLR_DYNAMIC,1)*size_int
1475 size_gest_blr_struc_t(i1)=size_int*2
1476 size_variables_blr_struc_t(i1)=0
1478 elseif(trim(mode).EQ.
"save")
then
1479 IF(
associated(blr_struc%BEGS_BLR_DYNAMIC))
THEN
1480 size_gest_blr_struc_t(i1)=size_int
1481 size_variables_blr_struc_t(i1)=
1482 &
size(blr_struc%BEGS_BLR_DYNAMIC,1)*size_int
1483 write(unit,iostat=err)
1484 &
size(blr_struc%BEGS_BLR_DYNAMIC,1)
1490 IF ( info(1) .LT. 0 )
GOTO 100
1491 write(unit,iostat=err) blr_struc%BEGS_BLR_DYNAMIC
1493 size_gest_blr_struc_t(i1)=size_int*2
1494 size_variables_blr_struc_t(i1)=0
1495 write(unit,iostat=err) -999
1501 IF ( info(1) .LT. 0 )
GOTO 100
1502 write(unit,iostat=err) -999
1509 IF ( info(1) .LT. 0 )
GOTO 100
1510 elseif(trim(mode).EQ.
"restore")
then
1511 nullify(blr_struc%BEGS_BLR_DYNAMIC)
1512 read(unit,iostat=err) size_array1
1518 IF ( info(1) .LT. 0 )
GOTO 100
1519 if(size_array1.EQ.-999)
then
1520 size_gest_blr_struc_t(i1)=size_int*2
1521 size_variables_blr_struc_t(i1)=0
1522 read(unit,iostat=err) dummy
1524 size_gest_blr_struc_t(i1)=size_int
1525 size_variables_blr_struc_t(i1)=size_array1*size_int
1526 allocate(blr_struc%BEGS_BLR_DYNAMIC(size_array1)
1528 if (allocok .GT. 0)
THEN
1531 & total_struc_size-size_allocated
1534 read(unit,iostat=err) blr_struc%BEGS_BLR_DYNAMIC
1536 IF ( info(1) .LT. 0 )
GOTO 100
1542 IF ( info(1) .LT. 0 )
GOTO 100
1545 nbrecords_blr_struc_t(i1)=2
1546 if(trim(mode).EQ.
"memory_save")
then
1547 IF(
associated(blr_struc%BEGS_BLR_L))
THEN
1548 size_gest_blr_struc_t(i1)=size_int
1549 size_variables_blr_struc_t(i1)=
1550 &
size(blr_struc%BEGS_BLR_L,1)*size_int
1552 size_gest_blr_struc_t(i1)=size_int*2
1553 size_variables_blr_struc_t(i1)=0
1555 elseif(trim(mode).EQ.
"save")
then
1556 IF(
associated(blr_struc%BEGS_BLR_L))
THEN
1557 size_gest_blr_struc_t(i1)=size_int
1558 size_variables_blr_struc_t(i1)=
1559 &
size(blr_struc%BEGS_BLR_L,1)*size_int
1560 write(unit,iostat=err)
1561 &
size(blr_struc%BEGS_BLR_L,1)
1567 IF ( info(1) .LT. 0 )
GOTO 100
1568 write(unit,iostat=err) blr_struc%BEGS_BLR_L
1570 size_gest_blr_struc_t(i1)=size_int*2
1571 size_variables_blr_struc_t(i1)=0
1572 write(unit,iostat=err) -999
1578 IF ( info(1) .LT. 0 )
GOTO 100
1579 write(unit,iostat=err) -999
1586 IF ( info(1) .LT. 0 )
GOTO 100
1587 elseif(trim(mode).EQ.
"restore")
then
1588 nullify(blr_struc%BEGS_BLR_L)
1589 read(unit,iostat=err) size_array1
1595 IF ( info(1) .LT. 0 )
GOTO 100
1596 if(size_array1.EQ.-999)
then
1597 size_gest_blr_struc_t(i1)=size_int*2
1598 size_variables_blr_struc_t(i1)=0
1599 read(unit,iostat=err) dummy
1601 size_gest_blr_struc_t(i1)=size_int
1602 size_variables_blr_struc_t(i1)=size_array1*size_int
1603 allocate(blr_struc%BEGS_BLR_L(size_array1)
1605 if (allocok .GT. 0)
THEN
1608 & total_struc_size-size_allocated
1611 read(unit,iostat=err) blr_struc%BEGS_BLR_L
1613 IF ( info(1) .LT. 0 )
GOTO 100
1619 IF ( info(1) .LT. 0 )
GOTO 100
1621 CASE(
"BEGS_BLR_COL")
1622 nbrecords_blr_struc_t(i1)=2
1623 if(trim(mode).EQ.
"memory_save")
then
1624 IF(
associated(blr_struc%BEGS_BLR_COL))
THEN
1625 size_gest_blr_struc_t(i1)=size_int
1626 size_variables_blr_struc_t(i1)=
1627 &
size(blr_struc%BEGS_BLR_COL,1)*size_int
1629 size_gest_blr_struc_t(i1)=size_int*2
1630 size_variables_blr_struc_t(i1)=0
1632 elseif(trim(mode).EQ.
"save")
then
1633 IF(
associated(blr_struc%BEGS_BLR_COL))
THEN
1634 size_gest_blr_struc_t(i1)=size_int
1635 size_variables_blr_struc_t(i1)=
1636 &
size(blr_struc%BEGS_BLR_COL,1)*size_int
1637 write(unit,iostat=err)
1638 &
size(blr_struc%BEGS_BLR_COL,1)
1644 IF ( info(1) .LT. 0 )
GOTO 100
1645 write(unit,iostat=err) blr_struc%BEGS_BLR_COL
1647 size_gest_blr_struc_t(i1)=size_int*2
1648 size_variables_blr_struc_t(i1)=0
1649 write(unit,iostat=err) -999
1655 IF ( info(1) .LT. 0 )
GOTO 100
1656 write(unit,iostat=err) -999
1663 IF ( info(1) .LT. 0 )
GOTO 100
1664 elseif(trim(mode).EQ.
"restore")
then
1665 nullify(blr_struc%BEGS_BLR_COL)
1666 read(unit,iostat=err) size_array1
1672IF ( info(1) .LT. 0 )
GOTO 100
1673 if(size_array1.EQ.-999)
then
1674 size_gest_blr_struc_t(i1)=size_int*2
1675 size_variables_blr_struc_t(i1)=0
1676 read(unit,iostat=err) dummy
1678 size_gest_blr_struc_t(i1)=size_int
1679 size_variables_blr_struc_t(i1)=size_array1*size_int
1680 allocate(blr_struc%BEGS_BLR_COL(size_array1)
1682 if (allocok .GT. 0)
THEN
1685 & total_struc_size-size_allocated
1688 read(unit,iostat=err) blr_struc%BEGS_BLR_COL
1690 IF ( info(1) .LT. 0 )
GOTO 100
1696 IF ( info(1) .LT. 0 )
GOTO 100
1698 CASE(
"NB_ACCESSES_INIT")
1699 nbrecords_blr_struc_t(i1)=1
1700 if(trim(mode).EQ.
"memory_save")
then
1701 size_variables_blr_struc_t(i1)=size_int
1702 elseif(trim(mode).EQ.
"save")
then
1703 size_variables_blr_struc_t(i1)=size_int
1704 write(unit,iostat=err) blr_struc%NB_ACCESSES_INIT
1710 IF ( info(1) .LT. 0 )
GOTO 100
1711 elseif(trim(mode).EQ.
"restore")
then
1712 size_variables_blr_struc_t(i1)=size_int
1713 read(unit,iostat=err) blr_struc%NB_ACCESSES_INIT
1719 IF (info(1) .LT. 0 )
GOTO 100
1722 nbrecords_blr_struc_t(i1)=1
1723 if(trim(mode).EQ.
"memory_save")
then
1724 size_variables_blr_struc_t(i1)=size_int
1725 elseif(trim(mode).EQ.
"save")
then
1726 size_variables_blr_struc_t(i1)=size_int
1727 write(unit,iostat=err) blr_struc%NB_PANELS
1733 IF ( info(1) .LT. 0 )
GOTO 100
1734 elseif(trim(mode).EQ.
"restore")
then
1735 size_variables_blr_struc_t(i1)=size_int
1736 read(unit,iostat=err) blr_struc%NB_PANELS
1742 IF (info(1) .LT. 0 )
GOTO 100
1745 if(trim(mode).EQ.
"memory_save")
then
1746 IF(
associated(blr_struc%PANELS_L))
THEN
1747 nbrecords_blr_struc_t(i1)=1
1748 size_gest_blr_struc_t(i1)=size_int
1749 size_variables_blr_struc_t(i1)=0
1750 DO j1=1,
size(blr_struc%PANELS_L,1)
1752 & blr_struc%PANELS_L(j1)
1753 & ,unit,myid,
"memory_save"
1754 & ,size_gest_panels_l_j1
1755 & ,size_variables_panels_l_j1
1756 & ,size_int, size_arith_dep, size_logical
1757 & ,total_file_size,total_struc_size
1758 & ,size_read,size_allocated,size_written
1760 size_gest_panels_l=size_gest_panels_l+
1761 & size_gest_panels_l_j1
1762 size_variables_panels_l=size_variables_panels_l+
1763 & size_variables_panels_l_j1
1766 nbrecords_blr_struc_t(i1)=2
1767 size_gest_blr_struc_t(i1)=size_int*2
1768 size_variables_blr_struc_t(i1)=0
1770 elseif(trim(mode).EQ.
"save")
then
1771 IF(
associated(blr_struc%PANELS_L))
THEN
1772 nbrecords_blr_struc_t(i1)=1
1773 size_gest_blr_struc_t(i1)=size_int
1774 size_variables_blr_struc_t(i1)=0
1775 write(unit,iostat=err)
1776 &
size(blr_struc%PANELS_L,1)
1782 DO j1=1,
size(blr_struc%PANELS_L,1)
1784 & blr_struc%PANELS_L(j1)
1786 & ,size_gest_panels_l_j1
1787 & ,size_variables_panels_l_j1
1788 & ,size_int, size_arith_dep, size_logical
1789 & ,total_file_size,total_struc_size
1790 & ,size_read,size_allocated,size_written
1792 IF ( info(1) .LT. 0 )
GOTO 100
1795 nbrecords_blr_struc_t(i1)=2
1796 size_gest_blr_struc_t(i1)=size_int*2
1797 size_variables_blr_struc_t(i1)=0
1798 write(unit,iostat=err) -999
1804 IF ( info(1) .LT. 0 )
GOTO 100
1805 write(unit,iostat=err) -999
1811 IF ( info(1) .LT. 0 )
GOTO 100
1813 elseif(trim(mode).EQ.
"restore")
then
1814 nullify(blr_struc%PANELS_L)
1815 read(unit,iostat=err) size_array1
1821 IF ( info(1) .LT. 0 )
GOTO 100
1822 if(size_array1.EQ.-999)
then
1823 nbrecords_blr_struc_t(i1)=2
1824 size_gest_blr_struc_t(i1)=size_int*2
1825 size_variables_blr_struc_t(i1)=0
1826 read(unit,iostat=err) dummy
1832 IF ( info(1) .LT. 0 )
GOTO 100
1834 nbrecords_blr_struc_t(i1)=1
1835 size_gest_blr_struc_t(i1)=size_int
1836 size_variables_blr_struc_t(i1)=0
1837 allocate(blr_struc%PANELS_L(size_array1)
1839 if (allocok .GT. 0)
THEN
1842 & total_struc_size-size_allocated
1847 & blr_struc%PANELS_L(j1)
1848 & ,unit,myid,"restore
"
1849 & ,SIZE_GEST_PANELS_L_j1
1850 & ,SIZE_VARIABLES_PANELS_L_j1
1851 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1852 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1853 & ,size_read,size_allocated,size_written
1855 SIZE_GEST_PANELS_L=SIZE_GEST_PANELS_L+
1856 & SIZE_GEST_PANELS_L_j1
1857 SIZE_VARIABLES_PANELS_L=SIZE_VARIABLES_PANELS_L+
1858 & SIZE_VARIABLES_PANELS_L_j1
1863.EQ.
if(trim(mode)"memory_save
") then
1864 IF(associated(BLR_STRUC%PANELS_U)) THEN
1865 NbRecords_BLR_STRUC_T(i1)=1
1866 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT
1867 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1868 DO j1=1,size(BLR_STRUC%PANELS_U,1)
1869 CALL SMUMPS_SAVE_RESTORE_BLR_PANEL(
1870 & BLR_STRUC%PANELS_U(j1)
1871 & ,unit,MYID,"memory_save
"
1872 & ,SIZE_GEST_PANELS_U_j1
1873 & ,SIZE_VARIABLES_PANELS_U_j1
1874 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1875 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1876 & ,size_read,size_allocated,size_written
1878 SIZE_GEST_PANELS_U=SIZE_GEST_PANELS_U+
1879 & SIZE_GEST_PANELS_U_j1
1880 SIZE_VARIABLES_PANELS_U=SIZE_VARIABLES_PANELS_U+
1881 & SIZE_VARIABLES_PANELS_U_j1
1884 NbRecords_BLR_STRUC_T(i1)=2
1885 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
1886 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1888.EQ.
elseif(trim(mode)"save") then
1889 IF(associated(BLR_STRUC%PANELS_U)) THEN
1890 NbRecords_BLR_STRUC_T(i1)=1
1891 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT
1892 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1893 write(unit,iostat=err)
1894 & size(BLR_STRUC%PANELS_U,1)
1897 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1900 DO j1=1,size(BLR_STRUC%PANELS_U,1)
1901 CALL SMUMPS_SAVE_RESTORE_BLR_PANEL(
1902 & BLR_STRUC%PANELS_U(j1)
1904 & ,SIZE_GEST_PANELS_U_j1
1905 & ,SIZE_VARIABLES_PANELS_U_j1
1906 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1907 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1908 & ,size_read,size_allocated,size_written
1910.LT.
IF ( INFO(1) 0 ) GOTO 100
1913 NbRecords_BLR_STRUC_T(i1)=2
1914 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
1915 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1916 write(unit,iostat=err) -999
1919 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1922.LT.
IF ( INFO(1) 0 ) GOTO 100
1923 write(unit,iostat=err) -999
1926 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
1929.LT.
IF ( INFO(1) 0 ) GOTO 100
1931.EQ.
elseif(trim(mode)"restore
") then
1932 nullify(BLR_STRUC%PANELS_U)
1933 read(unit,iostat=err) size_array1
1936 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1939.LT.
IF ( INFO(1) 0 ) GOTO 100
1940.EQ.
if(size_array1-999) then
1941 NbRecords_BLR_STRUC_T(i1)=2
1942 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
1943 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1944 read(unit,iostat=err) dummy
1947 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
1950.LT.
IF ( INFO(1) 0 ) GOTO 100
1952 NbRecords_BLR_STRUC_T(i1)=1
1953 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT
1954 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1955 allocate(BLR_STRUC%PANELS_U(size_array1)
1957.GT.
if (allocok 0) THEN
1959 CALL MUMPS_SETI8TOI4(
1960 & TOTAL_STRUC_SIZE-size_allocated
1964 CALL SMUMPS_SAVE_RESTORE_BLR_PANEL(
1965 & BLR_STRUC%PANELS_U(j1)
1966 & ,unit,MYID,"restore
"
1967 & ,SIZE_GEST_PANELS_U_j1
1968 & ,SIZE_VARIABLES_PANELS_U_j1
1969 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1970 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1971 & ,size_read,size_allocated,size_written
1973 SIZE_GEST_PANELS_U=SIZE_GEST_PANELS_U+
1974 & SIZE_GEST_PANELS_U_j1
1975 SIZE_VARIABLES_PANELS_U=SIZE_VARIABLES_PANELS_U+
1976 & SIZE_VARIABLES_PANELS_U_j1
1981.EQ.
if(trim(mode)"memory_save
") then
1982 IF(associated(BLR_STRUC%CB_LRB)) THEN
1983 NbRecords_BLR_STRUC_T(i1)=1
1984 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
1985 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
1986 DO j1=1,size(BLR_STRUC%CB_LRB,1)
1987 DO j2=1,size(BLR_STRUC%CB_LRB,2)
1988 CALL SMUMPS_SAVE_RESTORE_LRB(
1989 & BLR_STRUC%CB_LRB(j1,j2)
1990 & ,unit,MYID,"memory_save
"
1991 & ,SIZE_GEST_CB_LRB_j1j2
1992 & ,SIZE_VARIABLES_CB_LRB_j1j2
1993 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
1994 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
1995 & ,size_read,size_allocated,size_written
1997 SIZE_GEST_CB_LRB=SIZE_GEST_CB_LRB+
1998 & SIZE_GEST_CB_LRB_j1j2
1999 SIZE_VARIABLES_CB_LRB=SIZE_VARIABLES_CB_LRB+
2000 & SIZE_VARIABLES_CB_LRB_j1j2
2004 NbRecords_BLR_STRUC_T(i1)=2
2005 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*3
2006 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2008.EQ.
elseif(trim(mode)"save") then
2009 IF(associated(BLR_STRUC%CB_LRB)) THEN
2010 NbRecords_BLR_STRUC_T(i1)=1
2011 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
2012 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2013 write(unit,iostat=err)
2014 & size(BLR_STRUC%CB_LRB,1),size(BLR_STRUC%CB_LRB,2)
2017 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2020 DO j1=1,size(BLR_STRUC%CB_LRB,1)
2021 DO j2=1,size(BLR_STRUC%CB_LRB,2)
2022 CALL SMUMPS_SAVE_RESTORE_LRB(
2023 & BLR_STRUC%CB_LRB(j1,j2)
2025 & ,SIZE_GEST_CB_LRB_j1j2
2026 & ,SIZE_VARIABLES_CB_LRB_j1j2
2027 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
2028 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
2029 & ,size_read,size_allocated,size_written
2031.LT.
IF ( INFO(1) 0 ) GOTO 100
2035 NbRecords_BLR_STRUC_T(i1)=2
2036 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*3
2037 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2038 write(unit,iostat=err) -999,-998
2041 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2044.LT.
IF ( INFO(1) 0 ) GOTO 100
2045 write(unit,iostat=err) -999
2048 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2051.LT.
IF ( INFO(1) 0 ) GOTO 100
2053.EQ.
elseif(trim(mode)"restore
") then
2054 nullify(BLR_STRUC%CB_LRB)
2055 read(unit,iostat=err) size_array1,size_array2
2058 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2061.LT.
IF ( INFO(1) 0 ) GOTO 100
2062.EQ.
if(size_array1-999) then
2063 NbRecords_BLR_STRUC_T(i1)=2
2064 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*3
2065 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2066 read(unit,iostat=err) dummy
2069 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2072.LT.
IF ( INFO(1) 0 ) GOTO 100
2074 NbRecords_BLR_STRUC_T(i1)=1
2075 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
2076 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2077 allocate(BLR_STRUC%CB_LRB(size_array1,size_array2)
2079.GT.
if (allocok 0) THEN
2081 CALL MUMPS_SETI8TOI4(
2082 & TOTAL_STRUC_SIZE-size_allocated
2087 CALL SMUMPS_SAVE_RESTORE_LRB(
2088 & BLR_STRUC%CB_LRB(j1,j2)
2089 & ,unit,MYID,"restore
"
2090 & ,SIZE_GEST_CB_LRB_j1j2
2091 & ,SIZE_VARIABLES_CB_LRB_j1j2
2092 & ,SIZE_INT, SIZE_ARITH_DEP, SIZE_LOGICAL
2093 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
2094 & ,size_read,size_allocated,size_written
2096 SIZE_GEST_CB_LRB=SIZE_GEST_CB_LRB+
2097 & SIZE_GEST_CB_LRB_j1j2
2098 SIZE_VARIABLES_CB_LRB=SIZE_VARIABLES_CB_LRB+
2099 & SIZE_VARIABLES_CB_LRB_j1j2
2105.EQ.
if(trim(mode)"memory_save
") then
2106 IF(associated(BLR_STRUC%DIAG_BLOCKS)) THEN
2107 NbRecords_BLR_STRUC_T(i1)=1
2108 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT
2109 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2110 DO j1=1,size(BLR_STRUC%DIAG_BLOCKS,1)
2111 CALL SMUMPS_SAVE_RESTORE_DIAG_BLOCK(
2112 & BLR_STRUC%DIAG_BLOCKS(j1)
2113 & ,unit,MYID,"memory_save
"
2114 & ,SIZE_GEST_DIAG_BLOCKS_j1
2115 & ,SIZE_VARIABLES_DIAG_BLOCKS_j1
2116 & ,SIZE_INT, SIZE_ARITH_DEP
2117 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
2118 & ,size_read,size_allocated,size_written
2120 SIZE_GEST_DIAG_BLOCKS=SIZE_GEST_DIAG_BLOCKS+
2121 & SIZE_GEST_DIAG_BLOCKS_j1
2122 SIZE_VARIABLES_DIAG_BLOCKS=
2123 & SIZE_VARIABLES_DIAG_BLOCKS+
2124 & SIZE_VARIABLES_DIAG_BLOCKS_j1
2127 NbRecords_BLR_STRUC_T(i1)=2
2128 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
2129 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2131.EQ.
elseif(trim(mode)"save") then
2132 IF(associated(BLR_STRUC%DIAG_BLOCKS)) THEN
2133 NbRecords_BLR_STRUC_T(i1)=1
2134 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT
2135 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2136 write(unit,iostat=err)
2137 & size(BLR_STRUC%DIAG_BLOCKS,1)
2140 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2143 DO j1=1,size(BLR_STRUC%DIAG_BLOCKS,1)
2144 CALL SMUMPS_SAVE_RESTORE_DIAG_BLOCK(
2145 & BLR_STRUC%DIAG_BLOCKS(j1)
2147 & ,SIZE_GEST_DIAG_BLOCKS_j1
2148 & ,SIZE_VARIABLES_DIAG_BLOCKS_j1
2149 & ,SIZE_INT, SIZE_ARITH_DEP
2150 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
2151 & ,size_read,size_allocated,size_written
2153.LT.
IF ( INFO(1) 0 ) GOTO 100
2156 NbRecords_BLR_STRUC_T(i1)=2
2157 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
2158 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2159 write(unit,iostat=err) -999
2162 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2165.LT.
IF ( INFO(1) 0 ) GOTO 100
2166 write(unit,iostat=err) -999
2169 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2172.LT.
IF ( INFO(1) 0 ) GOTO 100
2174.EQ.
elseif(trim(mode)"restore
") then
2175 nullify(BLR_STRUC%DIAG_BLOCKS)
2176 read(unit,iostat=err) size_array1
2179 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2182.LT.
IF ( INFO(1) 0 ) GOTO 100
2183.EQ.
if(size_array1-999) then
2184 NbRecords_BLR_STRUC_T(i1)=2
2185 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT*2
2186 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2187 read(unit,iostat=err) dummy
2190 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2193.LT.
IF ( INFO(1) 0 ) GOTO 100
2195 NbRecords_BLR_STRUC_T(i1)=1
2196 SIZE_GEST_BLR_STRUC_T(i1)=SIZE_INT
2197 SIZE_VARIABLES_BLR_STRUC_T(i1)=0
2198 allocate(BLR_STRUC%DIAG_BLOCKS(size_array1)
2200.GT.
if (allocok 0) THEN
2202 CALL MUMPS_SETI8TOI4(
2203 & TOTAL_STRUC_SIZE-size_allocated
2207 CALL SMUMPS_SAVE_RESTORE_DIAG_BLOCK(
2208 & BLR_STRUC%DIAG_BLOCKS(j1)
2209 & ,unit,MYID,"restore
"
2210 & ,SIZE_GEST_DIAG_BLOCKS_j1
2211 & ,SIZE_VARIABLES_DIAG_BLOCKS_j1
2212 & ,SIZE_INT, SIZE_ARITH_DEP
2213 & ,TOTAL_FILE_SIZE,TOTAL_STRUC_SIZE
2214 & ,size_read,size_allocated,size_written
2216 SIZE_GEST_DIAG_BLOCKS=SIZE_GEST_DIAG_BLOCKS+
2217 & SIZE_GEST_DIAG_BLOCKS_j1
2218 SIZE_VARIABLES_DIAG_BLOCKS=
2219 & SIZE_VARIABLES_DIAG_BLOCKS+
2220 & SIZE_VARIABLES_DIAG_BLOCKS_j1
2225 NbRecords_BLR_STRUC_T(i1)=1
2226.EQ.
if(trim(mode)"memory_save
") then
2227 SIZE_VARIABLES_BLR_STRUC_T(i1)=SIZE_INT
2228.EQ.
elseif(trim(mode)"save") then
2229 SIZE_VARIABLES_BLR_STRUC_T(i1)=SIZE_INT
2230 write(unit,iostat=err) BLR_STRUC%NFS4FATHER
2233 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_written,
2236.LT.
IF ( INFO(1) 0 ) GOTO 100
2237.EQ.
elseif(trim(mode)"restore
") then
2238 SIZE_VARIABLES_BLR_STRUC_T(i1)=SIZE_INT
2239 read(unit,iostat=err) BLR_STRUC%NFS4FATHER
2242 CALL MUMPS_SETI8TOI4(TOTAL_FILE_SIZE-size_read
2245.LT.
IF (INFO(1) 0 ) GOTO 100
2248.EQ.
if(trim(mode)"restore
") then
2249 nullify(BLR_STRUC%M_ARRAY)
2253.EQ.
if(trim(mode)"memory_save
") then
2254 NbSubRecords=int(SIZE_VARIABLES_BLR_STRUC_T(i1)/huge(I4))
2255.GT.
IF(NbSubRecords0) then
2256 NbRecords_BLR_STRUC_T(i1)=NbRecords_BLR_STRUC_T(i1)
2259.EQ.
elseif(trim(mode)"save") then
2260 size_written=size_written+SIZE_VARIABLES_BLR_STRUC_T(i1)
2261 & +int(SIZE_GEST_BLR_STRUC_T(i1),kind=8)
2262#if !defined(MUMPS_F2003)
2263 size_written=size_written
2264 & +int(2*SIZE_INT*NbRecords_BLR_STRUC_T(i1),kind=8)
2266.EQ.
elseif(trim(mode)"restore
") then
2267 size_allocated=size_allocated+
2268 & SIZE_VARIABLES_BLR_STRUC_T(i1)
2269 size_read=size_read+SIZE_VARIABLES_BLR_STRUC_T(i1)
2270 & +int(SIZE_GEST_BLR_STRUC_T(i1),kind=8)
2271#if !defined(MUMPS_F2003)
2273 & +int(2*SIZE_INT*NbRecords_BLR_STRUC_T(i1),kind=8)
2277.EQ.
if(trim(mode)"memory_save
") then
2278 Local_SIZE_VARIABLES=sum(SIZE_VARIABLES_BLR_STRUC_T)
2279 & +SIZE_VARIABLES_PANELS_L
2280 & +SIZE_VARIABLES_PANELS_U
2281 & +SIZE_VARIABLES_CB_LRB
2282 & +SIZE_VARIABLES_DIAG_BLOCKS
2283 Local_SIZE_GEST=sum(SIZE_GEST_BLR_STRUC_T)
2284 & +SIZE_GEST_PANELS_L
2285 & +SIZE_GEST_PANELS_U
2287 & +SIZE_GEST_DIAG_BLOCKS
2288#if !defined(MUMPS_F2003)
2289 Local_NbRecords=sum(NbRecords_BLR_STRUC_T)
2290 Local_SIZE_GEST=Local_SIZE_GEST+2*SIZE_INT*Local_NbRecords