/home/kcamus/qaas_runs/169-443-9681/intel/AMG/build/AMG/AMG/test/amg.c: 760 - 2344
--------------------------------------------------------------------------------

760: #pragma omp parallel
[...]
772:     num_threads = hypre_NumActiveThreads();
773:     my_thread = hypre_GetThreadNum();
774:     size = nz/num_threads;
775:     rest = nz - size*num_threads;
776:     ix_start = nx*px;
777:     ix_end = ix_start+nx;
778:     iy_start = ny*py;
779:     iy_end = iy_start+ny;
780:     if (my_thread < rest)
781:     {
782:        iz_start = nz*pz + my_thread*size+my_thread;
783:        iz_end = nz*pz + (my_thread+1)*size+my_thread+1;
784:        cnt = (my_thread*size+my_thread)*nxy-1;
785:     }
786:     else
787:     {
788:        iz_start = nz*pz + my_thread*size+rest;
789:        iz_end = nz*pz + (my_thread+1)*size+rest;
790:        cnt = (my_thread*size+rest)*nxy-1;
791:     }
792:     o_cnt = cnt;
793: 
794:     for (iz = iz_start;  iz < iz_end; iz++)
795:     {
796:       for (iy = iy_start;  iy < iy_end; iy++)
797:       {
798:          for (ix = ix_start; ix < ix_end; ix++)
799:          {
800:             cnt++;
801:             o_cnt++;
802:             diag_i[cnt]++;
803:             if (iz > nz*pz) 
804:             {
805:                diag_i[cnt]++;
806:                if (iy > ny*py) 
807:                {
808:                   diag_i[cnt]++;
809:       	          if (ix > nx*px)
810:       	          {
811:       	             diag_i[cnt]++;
812:       	          }
813:       	          else
814:       	          {
815:       	             if (ix) 
816:       		        offd_i[o_cnt]++;
817:       	          }
818:       	          if (ix < nx*(px+1)-1)
[...]
824:       	             if (ix+1 < nx_global) 
825:       		        offd_i[o_cnt]++;
826:       	          }
827:                }
828:                else
829:                {
830:                   if (iy) 
831:                   {
832:                      offd_i[o_cnt]++;
833:       	             if (ix > nx*px)
[...]
841:       	             if (ix < nx*(px+1)-1)
[...]
851:                if (ix > nx*px) 
852:                   diag_i[cnt]++;
853:                else
854:                {
855:                   if (ix) 
856:                   {
857:                      offd_i[o_cnt]++;
858:                   }
859:                }
860:                if (ix+1 < nx*(px+1)) 
861:                   diag_i[cnt]++;
862:                else
863:                {
864:                   if (ix+1 < nx_global) 
865:                   {
866:                      offd_i[o_cnt]++; 
867:                   }
868:                }
869:                if (iy+1 < ny*(py+1)) 
870:                {
871:                   diag_i[cnt]++;
872:       	          if (ix > nx*px)
873:       	          {
874:       	             diag_i[cnt]++;
875:       	          }
876:       	          else
877:       	          {
878:       	             if (ix) 
879:       		        offd_i[o_cnt]++;
880:       	          }
881:       	          if (ix < nx*(px+1)-1)
[...]
887:       	             if (ix+1 < nx_global) 
888:       		        offd_i[o_cnt]++;
889:       	          }
890:                }
891:                else
892:                {
893:                   if (iy+1 < ny_global) 
894:                   {
895:                      offd_i[o_cnt]++;
896:       	             if (ix > nx*px)
[...]
904:       	             if (ix < nx*(px+1)-1)
[...]
917:                if (iz)
918: 	       {
919: 		  offd_i[o_cnt]++;
920:                   if (iy > ny*py) 
921:                   {
922:                      offd_i[o_cnt]++;
923:       	             if (ix > nx*px)
[...]
932:       	             if (ix < nx*(px+1)-1)
[...]
944:                      if (iy) 
945:                      {
946:                         offd_i[o_cnt]++;
947:       	                if (ix > nx*px)
[...]
955:       	                if (ix < nx*(px+1)-1)
956:       	                {
957:       	                   offd_i[o_cnt]++;
958:       	                }
959:       	                else if (ix < nx_global-1)
[...]
965:                   if (ix > nx*px) 
[...]
974:                   if (ix+1 < nx*(px+1)) 
[...]
983:                   if (iy+1 < ny*(py+1)) 
984:                   {
985:                      offd_i[o_cnt]++;
986:       	             if (ix > nx*px)
[...]
995:       	             if (ix < nx*(px+1)-1)
[...]
1007:                      if (iy+1 < ny_global) 
1008:                      {
1009:                         offd_i[o_cnt]++;
1010:       	                if (ix > nx*px)
[...]
1018:       	                if (ix < nx*(px+1)-1)
[...]
1030:             if (iy > ny*py) 
1031:             {
1032:                diag_i[cnt]++;
1033:    	       if (ix > nx*px)
1034:    	       {
1035:    	          diag_i[cnt]++;
1036:    	       }
1037:    	       else
1038:    	       {
1039:    	          if (ix) 
1040:    		     offd_i[o_cnt]++;
1041:    	       }
1042:    	       if (ix < nx*(px+1)-1)
[...]
1048:    	          if (ix+1 < nx_global) 
1049:    		     offd_i[o_cnt]++;
1050:    	       }
1051:             }
1052:             else
1053:             {
1054:                if (iy) 
1055:                {
1056:                   offd_i[o_cnt]++;
1057:    	          if (ix > nx*px)
[...]
1065:    	          if (ix < nx*(px+1)-1)
[...]
1075:             if (ix > nx*px) 
1076:                diag_i[cnt]++;
1077:             else
1078:             {
1079:                if (ix) 
1080:                {
1081:                   offd_i[o_cnt]++; 
1082:                }
1083:             }
1084:             if (ix+1 < nx*(px+1)) 
1085:                diag_i[cnt]++;
1086:             else
1087:             {
1088:                if (ix+1 < nx_global) 
1089:                {
1090:                   offd_i[o_cnt]++; 
1091:                }
1092:             }
1093:             if (iy+1 < ny*(py+1)) 
1094:             {
1095:                diag_i[cnt]++;
1096:    	       if (ix > nx*px)
1097:    	       {
1098:    	          diag_i[cnt]++;
1099:    	       }
1100:    	       else
1101:    	       {
1102:    	          if (ix) 
1103:    		     offd_i[o_cnt]++;
1104:    	       }
1105:    	       if (ix < nx*(px+1)-1)
[...]
1111:    	          if (ix+1 < nx_global) 
1112:    		     offd_i[o_cnt]++;
1113:    	       }
1114:             }
1115:             else
1116:             {
1117:                if (iy+1 < ny_global) 
1118:                {
1119:                   offd_i[o_cnt]++;
1120:    	          if (ix > nx*px)
[...]
1128:    	          if (ix < nx*(px+1)-1)
[...]
1138:             if (iz+1 < nz*(pz+1)) 
1139:             {
1140:                diag_i[cnt]++;
1141:                if (iy > ny*py) 
1142:                {
1143:                   diag_i[cnt]++;
1144:       	          if (ix > nx*px)
1145:       	          {
1146:       	             diag_i[cnt]++;
1147:       	          }
1148:       	          else
1149:       	          {
1150:       	             if (ix) 
1151:       		        offd_i[o_cnt]++;
1152:       	          }
1153:       	          if (ix < nx*(px+1)-1)
[...]
1159:       	             if (ix+1 < nx_global) 
1160:       		        offd_i[o_cnt]++;
1161:       	          }
1162:                }
1163:                else
1164:                {
1165:                   if (iy) 
1166:                   {
1167:                      offd_i[o_cnt]++;
1168:       	             if (ix > nx*px)
[...]
1176:       	             if (ix < nx*(px+1)-1)
[...]
1186:                if (ix > nx*px) 
1187:                   diag_i[cnt]++;
1188:                else
1189:                {
1190:                   if (ix) 
1191:                   {
1192:                      offd_i[o_cnt]++; 
1193:                   }
1194:                }
1195:                if (ix+1 < nx*(px+1)) 
1196:                   diag_i[cnt]++;
1197:                else
1198:                {
1199:                   if (ix+1 < nx_global) 
1200:                   {
1201:                      offd_i[o_cnt]++; 
1202:                   }
1203:                }
1204:                if (iy+1 < ny*(py+1)) 
1205:                {
1206:                   diag_i[cnt]++;
1207:       	          if (ix > nx*px)
1208:       	          {
1209:       	             diag_i[cnt]++;
1210:       	          }
1211:       	          else
1212:       	          {
1213:       	             if (ix) 
1214:       		        offd_i[o_cnt]++;
1215:       	          }
1216:       	          if (ix < nx*(px+1)-1)
[...]
1222:       	             if (ix+1 < nx_global) 
1223:       		        offd_i[o_cnt]++;
1224:       	          }
1225:                }
1226:                else
1227:                {
1228:                   if (iy+1 < ny_global) 
1229:                   {
1230:                      offd_i[o_cnt]++;
1231:       	             if (ix > nx*px)
[...]
1239:       	             if (ix < nx*(px+1)-1)
[...]
1252:                if (iz+1 < nz_global)
1253: 	       {
1254: 		  offd_i[o_cnt]++;
1255:                   if (iy > ny*py) 
1256:                   {
1257:                      offd_i[o_cnt]++;
1258:       	             if (ix > nx*px)
[...]
1267:       	             if (ix < nx*(px+1)-1)
[...]
1279:                      if (iy) 
1280:                      {
1281:                         offd_i[o_cnt]++;
1282:       	                if (ix > nx*px)
[...]
1290:       	                if (ix < nx*(px+1)-1)
[...]
1300:                   if (ix > nx*px) 
[...]
1309:                   if (ix+1 < nx*(px+1)) 
[...]
1318:                   if (iy+1 < ny*(py+1)) 
1319:                   {
1320:                      offd_i[o_cnt]++;
1321:       	             if (ix > nx*px)
[...]
1330:       	             if (ix < nx*(px+1)-1)
[...]
1342:                      if (iy+1 < ny_global) 
1343:                      {
1344:                         offd_i[o_cnt]++;
1345:       	                if (ix > nx*px)
[...]
1353:       	                if (ix < nx*(px+1)-1)
[...]
1365:             nnz[my_thread] += diag_i[cnt]+offd_i[o_cnt];
1366:             row_nums[cnt] = row_index+cnt;
1367:             num_cols[cnt] = diag_i[cnt]+offd_i[o_cnt];
[...]
1376:    if (my_thread == 0)
1377:    {
1378:       for (i=1; i< num_threads; i++)
1379:          nnz[i]+= nnz[i-1];
1380: 
1381:       all_nnz = nnz[num_threads-1];
1382:       col_nums = hypre_CTAlloc(HYPRE_Int, all_nnz);
1383:       data = hypre_CTAlloc(HYPRE_Real, all_nnz);
1384: 
1385:       HYPRE_IJMatrixSetDiagOffdSizes( ij_A, diag_i, offd_i);
[...]
1392:    if (my_thread) 
1393:    {
1394:       cnt = nnz[my_thread-1];
1395:       new_row_index = row_index+(iz_start-nz*pz)*nxy;
[...]
1402:    for (iz = iz_start;  iz < iz_end; iz++)
1403:    {
1404:       for (iy = iy_start;  iy < iy_end; iy++)
1405:       {
1406:          for (ix = ix_start; ix < ix_end; ix++)
1407:          {
1408:             col_nums[cnt] = new_row_index;
1409:             data[cnt++] = value[0];
1410:             if (iz > nz*pz) 
1411:             {
1412:                if (iy > ny*py) 
1413:                {
1414:       	          if (ix > nx*px)
1415:       	          {
1416:       	             col_nums[cnt] = new_row_index-nxy-nx-1;
1417:       	             data[cnt++] = value[1];
1418:       	          }
1419:       	          else
1420:       	          {
1421:       	             if (ix) 
1422:       	             {
1423:       		        col_nums[cnt] = hypre_map27(ix-1,iy-1,iz-1,px-1,py,pz,
1424: 					Cx,Cy,Cz,nx,nxy);
1425:       		        data[cnt++] = value[1];
1426:       	             }
1427:       	          }
1428:       	          col_nums[cnt] = new_row_index-nxy-nx;
1429:       	          data[cnt++] = value[1];
1430:       	          if (ix < nx*(px+1)-1)
1431:       	          {
1432:       	             col_nums[cnt] = new_row_index-nxy-nx+1;
1433:       	             data[cnt++] = value[1];
1434:       	          }
1435:       	          else
1436:       	          {
1437:       	             if (ix+1 < nx_global) 
1438:       	             {
1439:       		        col_nums[cnt] = hypre_map27(ix+1,iy-1,iz-1,px+1,py,pz,
1440: 					Cx,Cy,Cz,nx,nxy);
1441:       		        data[cnt++] = value[1];
1442:       	             }
1443:       	          }
1444:                }
1445:                else
1446:                {
1447:                   if (iy) 
1448:                   {
1449:       	             if (ix > nx*px)
[...]
1455:       	             else if (ix)
1456:       	             {
1457:       		        col_nums[cnt] = hypre_map27(ix-1,iy-1,iz-1,px-1,py-1,pz,
1458: 					Cx,Cy,Cz,nx,nxy);
1459:       		        data[cnt++] = value[1];
1460:       	             }
1461:       		     col_nums[cnt] = hypre_map27(ix,iy-1,iz-1,px,py-1,pz,
1462: 					Cx,Cy,Cz,nx,nxy);
1463:       		     data[cnt++] = value[1];
1464:       	             if (ix < nx*(px+1)-1)
1465:       	             {
1466:       		        col_nums[cnt] = hypre_map27(ix+1,iy-1,iz-1,px,py-1,pz,
1467: 					Cx,Cy,Cz,nx,nxy);
1468:       		        data[cnt++] = value[1];
1469:       	             }
1470:       	             else if (ix < nx_global-1)
1471:       	             {
1472:       		        col_nums[cnt] = hypre_map27(ix+1,iy-1,iz-1,px+1,py-1,pz,
1473: 					Cx,Cy,Cz,nx,nxy);
1474:       		        data[cnt++] = value[1];
1475:       	             }
1476:                   }
1477:                }
1478:                if (ix > nx*px) 
1479:       	       {   
1480:       	          col_nums[cnt] = new_row_index-nxy-1;
1481:       	          data[cnt++] = value[1];
1482:       	       }   
1483:                else
1484:                {
1485:                   if (ix) 
1486:                   {
1487:       		     col_nums[cnt] = hypre_map27(ix-1,iy,iz-1,px-1,py,pz,
1488: 					Cx,Cy,Cz,nx,nxy);
1489:       		     data[cnt++] = value[1];
1490:                   }
1491:                }
1492:       	       col_nums[cnt] = new_row_index-nxy;
1493:       	       data[cnt++] = value[1];
1494:                if (ix+1 < nx*(px+1)) 
1495:       	       {   
1496:       	          col_nums[cnt] = new_row_index-nxy+1;
1497:       	          data[cnt++] = value[1];
1498:       	       }   
1499:                else
1500:                {
1501:                   if (ix+1 < nx_global) 
1502:                   {
1503:       		     col_nums[cnt] = hypre_map27(ix+1,iy,iz-1,px+1,py,pz,
1504: 					Cx,Cy,Cz,nx,nxy);
1505:       		     data[cnt++] = value[1];
1506:                   }
1507:                }
1508:                if (iy+1 < ny*(py+1)) 
1509:                {
1510:       	          if (ix > nx*px)
1511:       	          {
1512:       	             col_nums[cnt] = new_row_index-nxy+nx-1;
1513:       	             data[cnt++] = value[1];
1514:       	          }
1515:       	          else
1516:       	          {
1517:       	             if (ix) 
1518:                      {
1519:       		        col_nums[cnt] = hypre_map27(ix-1,iy+1,iz-1,px-1,py,pz,
1520: 					Cx,Cy,Cz,nx,nxy);
1521:       		        data[cnt++] = value[1];
1522:                      }
1523:       	          }
1524:       	          col_nums[cnt] = new_row_index-nxy+nx;
1525:       	          data[cnt++] = value[1];
1526:       	          if (ix < nx*(px+1)-1)
1527:       	          {
1528:       	             col_nums[cnt] = new_row_index-nxy+nx+1;
1529:       	             data[cnt++] = value[1];
1530:       	          }
1531:       	          else
1532:       	          {
1533:       	             if (ix+1 < nx_global) 
1534:                      {
1535:       		        col_nums[cnt] = hypre_map27(ix+1,iy+1,iz-1,px+1,py,pz,
1536: 					Cx,Cy,Cz,nx,nxy);
1537:       		        data[cnt++] = value[1];
1538:                      }
1539:       	          }
1540:                }
1541:                else
1542:                {
1543:                   if (iy+1 < ny_global) 
1544:                   {
1545:       	             if (ix > nx*px)
[...]
1551:       	             else if (ix)
1552:       	             {
1553:       		        col_nums[cnt] = hypre_map27(ix-1,iy+1,iz-1,px-1,py+1,pz,
1554: 					Cx,Cy,Cz,nx,nxy);
1555:       		        data[cnt++] = value[1];
1556:       	             }
1557:       		     col_nums[cnt] = hypre_map27(ix,iy+1,iz-1,px,py+1,pz,
1558: 					Cx,Cy,Cz,nx,nxy);
1559:       		     data[cnt++] = value[1];
1560:       	             if (ix < nx*(px+1)-1)
1561:       	             {
1562:       		        col_nums[cnt] = hypre_map27(ix+1,iy+1,iz-1,px,py+1,pz,
1563: 					Cx,Cy,Cz,nx,nxy);
1564:       		        data[cnt++] = value[1];
1565:       	             }
1566:       	             else if (ix < nx_global-1)
1567:       	             {
1568:       		        col_nums[cnt] = hypre_map27(ix+1,iy+1,iz-1,px+1,py+1,pz,
1569: 					Cx,Cy,Cz,nx,nxy);
[...]
1577:                if (iz)
1578: 	       {
1579:                   if (iy > ny*py) 
1580:                   {
1581:       	             if (ix > nx*px)
[...]
1589:       	                if (ix) 
1590:       	                {
1591:       		           col_nums[cnt] = hypre_map27(ix-1,iy-1,iz-1,px-1,py,pz-1,
1592: 					Cx,Cy,Cz,nx,nxy);
1593:       		           data[cnt++] = value[1];
1594:       	                }
1595:       	             }
1596:       		     col_nums[cnt] = hypre_map27(ix,iy-1,iz-1,px,py,pz-1,
1597: 					Cx,Cy,Cz,nx,nxy);
1598:       		     data[cnt++] = value[1];
1599:       	             if (ix < nx*(px+1)-1)
1600:       	             {
1601:       		        col_nums[cnt] = hypre_map27(ix+1,iy-1,iz-1,px,py,pz-1,
1602: 					Cx,Cy,Cz,nx,nxy);
1603:       		        data[cnt++] = value[1];
1604:       	             }
1605:       	             else
1606:       	             {
1607:       	                if (ix+1 < nx_global) 
1608:       	                {
1609:       		           col_nums[cnt] = hypre_map27(ix+1,iy-1,iz-1,px+1,py,pz-1,
1610: 					Cx,Cy,Cz,nx,nxy);
[...]
1617:                      if (iy) 
1618:                      {
1619:       	                if (ix > nx*px)
[...]
1625:       	                else if (ix)
1626:       	                {
1627:       		           col_nums[cnt] =hypre_map27(ix-1,iy-1,iz-1,px-1,py-1,pz-1,
1628: 					Cx,Cy,Cz,nx,nxy);
1629:       		           data[cnt++] = value[1];
1630:       	                }
1631:       		        col_nums[cnt] = hypre_map27(ix,iy-1,iz-1,px,py-1,pz-1,
1632: 					Cx,Cy,Cz,nx,nxy);
1633:       		        data[cnt++] = value[1];
1634:       	                if (ix < nx*(px+1)-1)
1635:       	                {
1636:       		           col_nums[cnt] = hypre_map27(ix+1,iy-1,iz-1,px,py-1,pz-1,
1637: 					Cx,Cy,Cz,nx,nxy);
1638:       		           data[cnt++] = value[1];
1639:       	                }
1640:       	                else if (ix < nx_global-1)
1641:       	                {
1642:       		           col_nums[cnt] =hypre_map27(ix+1,iy-1,iz-1,px+1,py-1,pz-1,
1643: 					Cx,Cy,Cz,nx,nxy);
1644:       		           data[cnt++] = value[1];
1645:       	                }
1646:                      }
1647:                   }
1648:                   if (ix > nx*px) 
[...]
1656:                      if (ix) 
1657:                      {
1658:       		        col_nums[cnt] =hypre_map27(ix-1,iy,iz-1,px-1,py,pz-1,
1659: 					Cx,Cy,Cz,nx,nxy);
1660:       		        data[cnt++] = value[1];
1661:                      }
1662:                   }
1663:       		  col_nums[cnt] =hypre_map27(ix,iy,iz-1,px,py,pz-1,
1664: 					Cx,Cy,Cz,nx,nxy);
1665:       		  data[cnt++] = value[1];
1666:                   if (ix+1 < nx*(px+1)) 
[...]
1674:                      if (ix+1 < nx_global) 
[...]
1681:                   if (iy+1 < ny*(py+1)) 
1682:                   {
1683:       	             if (ix > nx*px)
[...]
1691:       	                if (ix) 
1692:       	                {
1693:       		           col_nums[cnt] =hypre_map27(ix-1,iy+1,iz-1,px-1,py,pz-1,
1694: 					Cx,Cy,Cz,nx,nxy);
1695:       		           data[cnt++] = value[1];
1696:       	                }
1697:       	             }
1698:       		     col_nums[cnt] =hypre_map27(ix,iy+1,iz-1,px,py,pz-1,
1699: 					Cx,Cy,Cz,nx,nxy);
1700:       		     data[cnt++] = value[1];
1701:       	             if (ix < nx*(px+1)-1)
1702:       	             {
1703:       		        col_nums[cnt] =hypre_map27(ix+1,iy+1,iz-1,px,py,pz-1,
1704: 					Cx,Cy,Cz,nx,nxy);
1705:       		        data[cnt++] = value[1];
1706:       	             }
1707:       	             else
1708:       	             {
1709:       	                if (ix+1 < nx_global) 
1710:       	                {
1711:       		           col_nums[cnt] =hypre_map27(ix+1,iy+1,iz-1,px+1,py,pz-1,
1712: 					Cx,Cy,Cz,nx,nxy);
[...]
1719:                      if (iy+1 < ny_global) 
1720:                      {
1721:       	                if (ix > nx*px)
[...]
1727:       	                else if (ix)
1728:       	                {
1729:       		           col_nums[cnt] =hypre_map27(ix-1,iy+1,iz-1,px-1,py+1,pz-1,
1730: 					Cx,Cy,Cz,nx,nxy);
1731:       		           data[cnt++] = value[1];
1732:       	                }
1733:       		        col_nums[cnt] =hypre_map27(ix,iy+1,iz-1,px,py+1,pz-1,
1734: 					Cx,Cy,Cz,nx,nxy);
1735:       		        data[cnt++] = value[1];
1736:       	                if (ix < nx*(px+1)-1)
1737:       	                {
1738:       		           col_nums[cnt] =hypre_map27(ix+1,iy+1,iz-1,px,py+1,pz-1,
1739: 					Cx,Cy,Cz,nx,nxy);
1740:       		           data[cnt++] = value[1];
1741:       	                }
1742:       	                else if (ix < nx_global-1)
1743:       	                {
1744:       		           col_nums[cnt] =hypre_map27(ix+1,iy+1,iz-1,px+1,py+1,pz-1,
[...]
1752:             if (iy > ny*py) 
1753:             {
1754:    	       if (ix > nx*px)
1755:    	       {
1756:    	          col_nums[cnt] = new_row_index-nx-1;
1757:    	          data[cnt++] = value[1];
1758:    	       }
1759:    	       else
1760:    	       {
1761:    	          if (ix) 
1762:    	          {
1763:       		     col_nums[cnt] =hypre_map27(ix-1,iy-1,iz,px-1,py,pz,
1764: 					Cx,Cy,Cz,nx,nxy);
1765:       		     data[cnt++] = value[1];
1766:    	          }
1767:    	       }
1768:    	       col_nums[cnt] = new_row_index-nx;
1769:    	       data[cnt++] = value[1];
1770:    	       if (ix < nx*(px+1)-1)
1771:    	       {
1772:    	          col_nums[cnt] = new_row_index-nx+1;
1773:    	          data[cnt++] = value[1];
1774:    	       }
1775:    	       else
1776:    	       {
1777:    	          if (ix+1 < nx_global) 
1778:    	          {
1779:       		     col_nums[cnt] =hypre_map27(ix+1,iy-1,iz,px+1,py,pz,
1780: 					Cx,Cy,Cz,nx,nxy);
1781:       		     data[cnt++] = value[1];
1782:    	          }
1783:    	       }
1784:             }
1785:             else
1786:             {
1787:                if (iy) 
1788:                {
1789:    	          if (ix > nx*px)
[...]
1795:    	          else if (ix)
1796:    	          {
1797:       		     col_nums[cnt] =hypre_map27(ix-1,iy-1,iz,px-1,py-1,pz,
1798: 					Cx,Cy,Cz,nx,nxy);
1799:       		     data[cnt++] = value[1];
1800:    	          }
1801:       		  col_nums[cnt] =hypre_map27(ix,iy-1,iz,px,py-1,pz,
1802: 					Cx,Cy,Cz,nx,nxy);
1803:       		  data[cnt++] = value[1];
1804:    	          if (ix < nx*(px+1)-1)
1805:    	          {
1806:       		     col_nums[cnt] =hypre_map27(ix+1,iy-1,iz,px,py-1,pz,
1807: 					Cx,Cy,Cz,nx,nxy);
1808:       		     data[cnt++] = value[1];
1809:    	          }
1810:    	          else if (ix < nx_global-1)
1811:    	          {
1812:       		     col_nums[cnt] =hypre_map27(ix+1,iy-1,iz,px+1,py-1,pz,
1813: 					Cx,Cy,Cz,nx,nxy);
1814:       		     data[cnt++] = value[1];
1815:    	          }
1816:                }
1817:             }
1818:             if (ix > nx*px) 
1819:             {
1820:                col_nums[cnt] = new_row_index-1;
1821:                data[cnt++] = value[1];
1822:             }
1823:             else
1824:             {
1825:                if (ix) 
1826:                {
1827:       		  col_nums[cnt] =hypre_map27(ix-1,iy,iz,px-1,py,pz,
1828: 					Cx,Cy,Cz,nx,nxy);
1829:       		  data[cnt++] = value[1];
1830:                }
1831:             }
1832:             if (ix+1 < nx*(px+1)) 
1833:             {
1834:                col_nums[cnt] = new_row_index+1;
1835:                data[cnt++] = value[1];
1836:             }
1837:             else
1838:             {
1839:                if (ix+1 < nx_global) 
1840:                {
1841:       		  col_nums[cnt] =hypre_map27(ix+1,iy,iz,px+1,py,pz,
1842: 					Cx,Cy,Cz,nx,nxy);
1843:       		  data[cnt++] = value[1];
1844:                }
1845:             }
1846:             if (iy+1 < ny*(py+1)) 
1847:             {
1848:    	       if (ix > nx*px)
1849:    	       {
1850:                   col_nums[cnt] = new_row_index+nx-1;
1851:                   data[cnt++] = value[1];
1852:    	       }
1853:    	       else
1854:    	       {
1855:    	          if (ix) 
1856:                   {
1857:       		     col_nums[cnt] =hypre_map27(ix-1,iy+1,iz,px-1,py,pz,
1858: 					Cx,Cy,Cz,nx,nxy);
1859:       		     data[cnt++] = value[1];
1860:                   }
1861:    	       }
1862:                col_nums[cnt] = new_row_index+nx;
1863:                data[cnt++] = value[1];
1864:    	       if (ix < nx*(px+1)-1)
1865:    	       {
1866:                   col_nums[cnt] = new_row_index+nx+1;
1867:                   data[cnt++] = value[1];
1868:    	       }
1869:    	       else
1870:    	       {
1871:    	          if (ix+1 < nx_global) 
1872:                   {
1873:       		     col_nums[cnt] =hypre_map27(ix+1,iy+1,iz,px+1,py,pz,
1874: 					Cx,Cy,Cz,nx,nxy);
1875:       		     data[cnt++] = value[1];
1876:                   }
1877:    	       }
1878:             }
1879:             else
1880:             {
1881:                if (iy+1 < ny_global) 
1882:                {
1883:    	          if (ix > nx*px)
[...]
1889:    	          else if (ix)
1890:    	          {
1891:       		     col_nums[cnt] =hypre_map27(ix-1,iy+1,iz,px-1,py+1,pz,
1892: 					Cx,Cy,Cz,nx,nxy);
1893:       		     data[cnt++] = value[1];
1894:    	          }
1895:       		  col_nums[cnt] =hypre_map27(ix,iy+1,iz,px,py+1,pz,
1896: 					Cx,Cy,Cz,nx,nxy);
1897:       		  data[cnt++] = value[1];
1898:    	          if (ix < nx*(px+1)-1)
1899:    	          {
1900:       		     col_nums[cnt] =hypre_map27(ix+1,iy+1,iz,px,py+1,pz,
1901: 					Cx,Cy,Cz,nx,nxy);
1902:       		     data[cnt++] = value[1];
1903:    	          }
1904:    	          else if (ix < nx_global-1)
1905:    	          {
1906:       		     col_nums[cnt] =hypre_map27(ix+1,iy+1,iz,px+1,py+1,pz,
1907: 					Cx,Cy,Cz,nx,nxy);
1908:       		     data[cnt++] = value[1];
1909:    	          }
1910:                }
1911:             }
1912:             if (iz+1 < nz*(pz+1)) 
1913:             {
1914:                if (iy > ny*py) 
1915:                {
1916:       	          if (ix > nx*px)
1917:       	          {
1918:       	             col_nums[cnt] = new_row_index+nxy-nx-1;
1919:       	             data[cnt++] = value[1];
1920:       	          }
1921:       	          else
1922:       	          {
1923:       	             if (ix) 
1924:    	             {
1925:       		        col_nums[cnt] =hypre_map27(ix-1,iy-1,iz+1,px-1,py,pz,
1926: 					Cx,Cy,Cz,nx,nxy);
1927:       		        data[cnt++] = value[1];
1928:    	             }
1929:       	          }
1930:       	          col_nums[cnt] = new_row_index+nxy-nx;
1931:       	          data[cnt++] = value[1];
1932:       	          if (ix < nx*(px+1)-1)
1933:       	          {
1934:       	             col_nums[cnt] = new_row_index+nxy-nx+1;
1935:       	             data[cnt++] = value[1];
1936:       	          }
1937:       	          else
1938:       	          {
1939:       	             if (ix+1 < nx_global) 
1940:    	             {
1941:       		        col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px+1,py,pz,
1942: 					Cx,Cy,Cz,nx,nxy);
1943:       		        data[cnt++] = value[1];
1944:    	             }
1945:       	          }
1946:                }
1947:                else
1948:                {
1949:                   if (iy) 
1950:                   {
1951:       	             if (ix > nx*px)
[...]
1957:       	             else if (ix)
1958:       	             {
1959:       		        col_nums[cnt] =hypre_map27(ix-1,iy-1,iz+1,px-1,py-1,pz,
1960: 					Cx,Cy,Cz,nx,nxy);
1961:       		        data[cnt++] = value[1];
1962:       	             }
1963:       		     col_nums[cnt] =hypre_map27(ix,iy-1,iz+1,px,py-1,pz,
1964: 					Cx,Cy,Cz,nx,nxy);
1965:       		     data[cnt++] = value[1];
1966:       	             if (ix < nx*(px+1)-1)
1967:       	             {
1968:       		        col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px,py-1,pz,
1969: 					Cx,Cy,Cz,nx,nxy);
1970:       		        data[cnt++] = value[1];
1971:       	             }
1972:       	             else if (ix < nx_global-1)
1973:       	             {
1974:       		        col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px+1,py-1,pz,
1975: 					Cx,Cy,Cz,nx,nxy);
1976:       		        data[cnt++] = value[1];
1977:       	             }
1978:                   }
1979:                }
1980:                if (ix > nx*px) 
1981:                {
1982:                   col_nums[cnt] = new_row_index+nxy-1;
1983:                   data[cnt++] = value[1];
1984:                }
1985:                else
1986:                {
1987:                   if (ix) 
1988:                   {
1989:       		     col_nums[cnt] =hypre_map27(ix-1,iy,iz+1,px-1,py,pz,
1990: 					Cx,Cy,Cz,nx,nxy);
1991:       		     data[cnt++] = value[1];
1992:                   }
1993:                }
1994:                col_nums[cnt] = new_row_index+nxy;
1995:                data[cnt++] = value[1];
1996:                if (ix+1 < nx*(px+1)) 
1997:                {
1998:                   col_nums[cnt] = new_row_index+nxy+1;
1999:                   data[cnt++] = value[1];
2000:                }
2001:                else
2002:                {
2003:                   if (ix+1 < nx_global) 
2004:                   {
2005:       		     col_nums[cnt] =hypre_map27(ix+1,iy,iz+1,px+1,py,pz,
2006: 					Cx,Cy,Cz,nx,nxy);
2007:       		     data[cnt++] = value[1];
2008:                   }
2009:                }
2010:                if (iy+1 < ny*(py+1)) 
2011:                {
2012:       	          if (ix > nx*px)
2013:       	          {
2014:                      col_nums[cnt] = new_row_index+nxy+nx-1;
2015:                      data[cnt++] = value[1];
2016:       	          }
2017:       	          else
2018:       	          {
2019:       	             if (ix) 
2020:                      {
2021:       		        col_nums[cnt] =hypre_map27(ix-1,iy+1,iz+1,px-1,py,pz,
2022: 					Cx,Cy,Cz,nx,nxy);
2023:       		        data[cnt++] = value[1];
2024:                      }
2025:       	          }
2026:                   col_nums[cnt] = new_row_index+nxy+nx;
2027:                   data[cnt++] = value[1];
2028:       	          if (ix < nx*(px+1)-1)
2029:       	          {
2030:                      col_nums[cnt] = new_row_index+nxy+nx+1;
2031:                      data[cnt++] = value[1];
2032:       	          }
2033:       	          else
2034:       	          {
2035:       	             if (ix+1 < nx_global) 
2036:                      {
2037:       		        col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px+1,py,pz,
2038: 					Cx,Cy,Cz,nx,nxy);
2039:       		        data[cnt++] = value[1];
2040:                      }
2041:       	          }
2042:                }
2043:                else
2044:                {
2045:                   if (iy+1 < ny_global) 
2046:                   {
2047:       	             if (ix > nx*px)
[...]
2053:       	             else if (ix)
2054:       	             {
2055:       		        col_nums[cnt] =hypre_map27(ix-1,iy+1,iz+1,px-1,py+1,pz,
2056: 					Cx,Cy,Cz,nx,nxy);
2057:       		        data[cnt++] = value[1];
2058:       	             }
2059:       		     col_nums[cnt] =hypre_map27(ix,iy+1,iz+1,px,py+1,pz,
2060: 					Cx,Cy,Cz,nx,nxy);
2061:       		     data[cnt++] = value[1];
2062:       	             if (ix < nx*(px+1)-1)
2063:       	             {
2064:       		        col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px,py+1,pz,
2065: 					Cx,Cy,Cz,nx,nxy);
2066:       		        data[cnt++] = value[1];
2067:       	             }
2068:       	             else if (ix < nx_global-1)
2069:       	             {
2070:       		        col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px+1,py+1,pz,
2071: 					Cx,Cy,Cz,nx,nxy);
[...]
2079:                if (iz+1 < nz_global)
2080: 	       {
2081:                   if (iy > ny*py) 
2082:                   {
2083:       	             if (ix > nx*px)
[...]
2091:       	                if (ix) 
2092:       	                {
2093:       		           col_nums[cnt] =hypre_map27(ix-1,iy-1,iz+1,px-1,py,pz+1,
2094: 					Cx,Cy,Cz,nx,nxy);
2095:       		           data[cnt++] = value[1];
2096:       	                }
2097:       	             }
2098:       		     col_nums[cnt] =hypre_map27(ix,iy-1,iz+1,px,py,pz+1,
2099: 					Cx,Cy,Cz,nx,nxy);
2100:       		     data[cnt++] = value[1];
2101:       	             if (ix < nx*(px+1)-1)
2102:       	             {
2103:       		        col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px,py,pz+1,
[...]
2109:       	                if (ix+1 < nx_global) 
2110:       	                {
2111:       		           col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px+1,py,pz+1,
[...]
2119:                      if (iy) 
2120:                      {
2121:       	                if (ix > nx*px)
[...]
2127:       	                else if (ix)
2128:       	                {
2129:       		           col_nums[cnt] =hypre_map27(ix-1,iy-1,iz+1,px-1,py-1,pz+1,
2130: 					Cx,Cy,Cz,nx,nxy);
2131:       		           data[cnt++] = value[1];
2132:       	                }
2133:       		        col_nums[cnt] =hypre_map27(ix,iy-1,iz+1,px,py-1,pz+1,
2134: 					Cx,Cy,Cz,nx,nxy);
2135:       		        data[cnt++] = value[1];
2136:       	                if (ix < nx*(px+1)-1)
2137:       	                {
2138:       		           col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px,py-1,pz+1,
2139: 					Cx,Cy,Cz,nx,nxy);
2140:       		           data[cnt++] = value[1];
2141:       	                }
2142:       	                else if (ix < nx_global-1)
2143:       	                {
2144:       		           col_nums[cnt] =hypre_map27(ix+1,iy-1,iz+1,px+1,py-1,pz+1,
[...]
2150:                   if (ix > nx*px) 
[...]
2158:                      if (ix) 
2159:                      {
2160:       		        col_nums[cnt] =hypre_map27(ix-1,iy,iz+1,px-1,py,pz+1,
2161: 					Cx,Cy,Cz,nx,nxy);
2162:       		        data[cnt++] = value[1];
2163:                      }
2164:                   }
2165:       		  col_nums[cnt] =hypre_map27(ix,iy,iz+1,px,py,pz+1,
2166: 					Cx,Cy,Cz,nx,nxy);
2167:       		  data[cnt++] = value[1];
2168:                   if (ix+1 < nx*(px+1)) 
[...]
2176:                      if (ix+1 < nx_global) 
[...]
2183:                   if (iy+1 < ny*(py+1)) 
2184:                   {
2185:       	             if (ix > nx*px)
[...]
2193:       	                if (ix) 
2194:       	                {
2195:       		           col_nums[cnt] =hypre_map27(ix-1,iy+1,iz+1,px-1,py,pz+1,
2196: 					Cx,Cy,Cz,nx,nxy);
2197:       		           data[cnt++] = value[1];
2198:       	                }
2199:       	             }
2200:       		     col_nums[cnt] =hypre_map27(ix,iy+1,iz+1,px,py,pz+1,
2201: 					Cx,Cy,Cz,nx,nxy);
2202:       		     data[cnt++] = value[1];
2203:       	             if (ix < nx*(px+1)-1)
2204:       	             {
2205:       		        col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px,py,pz+1,
2206: 					Cx,Cy,Cz,nx,nxy);
2207:       		        data[cnt++] = value[1];
2208:       	             }
2209:       	             else
2210:       	             {
2211:       	                if (ix+1 < nx_global) 
2212:       	                {
2213:       		           col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px+1,py,pz+1,
2214: 					Cx,Cy,Cz,nx,nxy);
[...]
2221:                      if (iy+1 < ny_global) 
2222:                      {
2223:       	                if (ix > nx*px)
[...]
2229:       	                else if (ix)
2230:       	                {
2231:       		           col_nums[cnt] =hypre_map27(ix-1,iy+1,iz+1,px-1,py+1,pz+1,
2232: 					Cx,Cy,Cz,nx,nxy);
2233:       		           data[cnt++] = value[1];
2234:       	                }
2235:       		        col_nums[cnt] =hypre_map27(ix,iy+1,iz+1,px,py+1,pz+1,
2236: 					Cx,Cy,Cz,nx,nxy);
2237:       		        data[cnt++] = value[1];
2238:       	                if (ix < nx*(px+1)-1)
2239:       	                {
2240:       		           col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px,py+1,pz+1,
2241: 					Cx,Cy,Cz,nx,nxy);
2242:       		           data[cnt++] = value[1];
2243:       	                }
2244:       	                else if (ix < nx_global-1)
2245:       	                {
2246:       		           col_nums[cnt] =hypre_map27(ix+1,iy+1,iz+1,px+1,py+1,pz+1,
[...]
2254:             new_row_index++;
[...]
2344:    HYPRE_Int global_index = pz*Cz + py*Cy +px*Cx + iz*nxy + iy*nx + ix;
