Actual source code: petscmat.h90
petsc-3.10.5 2019-03-28
Report Typos and Errors

      3: ! rename MAT_INFO_SIZE and MAT_FACTORINFO_SIZE to enable reuse here
      4: #define MAT_INFO_SIZE MAT_INFO_SIZE_MOD
      5: #define MAT_FACTORINFO_SIZE MAT_FACTORINFO_SIZE_MOD
      6:       Interface
      7:         Subroutine MatFDColoringGetPerturbedColumnsF90(i,array,ierr)
      8:           use petscmatdef
      9:           PetscInt, pointer :: array(:)
     10:           PetscErrorCode  ierr
     11:          MatFDColoring       i
     12:         End Subroutine
     13:       End Interface

     16:       Interface
     17:         Subroutine MatFDColoringRestorePerturbedColumnsF90(i,array,ierr)
     18:           use petscmatdef
     19:           PetscInt, pointer :: array(:)
     20:           PetscErrorCode ierr
     21:          MatFDColoring      i
     22:         End Subroutine
     23:       End Interface

     25:       Interface
     26:       subroutine MatCreateMPIAIJWithSplitArrays(a,b,c,d,e,f,g,h,i,j,k,l,&
     27:      &z)
     28:        use petscmatdef
     29:        integer a ! MPI_Comm
     30:        PetscInt b ! PetscInt
     31:        PetscInt c ! PetscInt
     32:        PetscInt d ! PetscInt
     33:        PetscInt e ! PetscInt
     34:        PetscInt f (*) ! PetscInt
     35:        PetscInt g (*) ! PetscInt
     36:        PetscScalar h (*) ! PetscScalar
     37:        PetscInt i (*) ! PetscInt
     38:        PetscInt j (*) ! PetscInt
     39:        PetscScalar k (*) ! PetscScalar
     40:        Mat l ! Mat
     41:        integer z
     42:        end subroutine
     43:       End Interface

     45:       interface MatNullSpaceCreate
     46:       subroutine MatNullSpaceCreate1(a,b,c,d,e,z)
     47:       use petscmatdef
     48:        integer a
     49:        PetscBool b
     50:        PetscInt c
     51:        Vec d (*)
     52:        MatNullSpace e
     53:        integer z
     54:        end subroutine
     55:       subroutine MatNullSpaceCreate0(a,b,c,d,e,z)
     56:       use petscmatdef
     57:        integer a
     58:        PetscBool b
     59:        PetscInt c
     60:        Vec d
     61:        MatNullSpace e
     62:        integer z
     63:        end subroutine
     64:       end interface

     66:       interface MatGetSize
     67:       subroutine MatGetSize00(a,b,c,z)
     68:       use petscmatdef
     69:        Mat a
     70:        PetscInt b
     71:        PetscInt c
     72:        integer z
     73:        end subroutine
     74:       subroutine MatGetSize10(a,b,c,z)
     75:       use petscmatdef
     76:        Mat a
     77:        PetscInt b(*)
     78:        PetscInt c
     79:        integer z
     80:        end subroutine
     81:       subroutine MatGetSize01(a,b,c,z)
     82:       use petscmatdef
     83:        Mat a
     84:        PetscInt b
     85:        PetscInt c(*)
     86:        integer z
     87:        end subroutine
     88:       end interface

     90:       interface MatGetLocalSize
     91:       subroutine MatGetLocalSize00(a,b,c,z)
     92:       use petscmatdef
     93:        Mat a
     94:        PetscInt b
     95:        PetscInt c
     96:        integer z
     97:        end subroutine
     98:       subroutine MatGetLocalSize10(a,b,c,z)
     99:       use petscmatdef
    100:        Mat a
    101:        PetscInt b(*)
    102:        PetscInt c
    103:        integer z
    104:        end subroutine
    105:       subroutine MatGetLocalSize01(a,b,c,z)
    106:       use petscmatdef
    107:        Mat a
    108:        PetscInt b
    109:        PetscInt c(*)
    110:        integer z
    111:        end subroutine
    112:        end interface

    114:         Interface
    115:         subroutine MatCreateMPIAIJ(a,b,c,d,e,f,g,h,i,j,z)
    116:           use petscmatdef
    117:           MPI_Comm a
    118:           PetscInt b
    119:           PetscInt c
    120:           PetscInt d
    121:           PetscInt e
    122:           PetscInt f
    123:           PetscInt g (*)
    124:           PetscInt h
    125:           PetscInt i (*)
    126:           Mat j
    127:           integer z
    128:         end subroutine

    130:         subroutine MatCreateSeqAIJ(a,b,c,d,e,f,z)
    131:           use petscmatdef
    132:           MPI_Comm a
    133:           PetscInt b
    134:           PetscInt c
    135:           PetscInt d
    136:           PetscInt e(*)
    137:           Mat f
    138:           integer z
    139:         end subroutine

    141:         subroutine MatSeqAIJSetPreallocation(a,b,c,z)
    142:           use petscmatdef
    143:           Mat a
    144:           PetscInt b
    145:           PetscInt c(*)
    146:           integer z
    147:         end subroutine

    149:         subroutine MatMPIAIJSetPreallocation(a,b,c,d,e,z)
    150:           use petscmatdef
    151:           Mat a
    152:           PetscInt b
    153:           PetscInt c(*)
    154:           PetscInt d
    155:           PetscInt e(*)
    156:           integer z
    157:         end subroutine

    159:         subroutine MatXAIJSetPreallocationb(a,b,c,d,e,f,z)
    160:           use petscmatdef
    161:           Mat a ! Mat
    162:           PetscInt b ! PetscInt
    163:           PetscInt c (*) ! PetscInt
    164:           PetscInt d (*) ! PetscInt
    165:           PetscInt e (*) ! PetscInt
    166:           PetscInt f (*) ! PetscInt
    167:           integer z
    168:         end subroutine
    169:         end interface

    171:         Interface MatSetValues
    172:         ! picky Fortran requires seperate prototypes if args
    173:         ! are arrays or scalars
    174:         subroutine MatSetValues0(a,b,c,d,e,f,g,z)
    175:           use petscmatdef
    176:           Mat a ! Mat
    177:           PetscInt b ! PetscInt
    178:           PetscInt c (*) ! PetscInt
    179:           PetscInt d ! PetscInt
    180:           PetscInt e (*) ! PetscInt
    181:           PetscScalar f (*) ! PetscScalar
    182:           InsertMode g ! InsertMode
    183:           integer z
    184:         end subroutine
    185:         subroutine MatSetValuesnn1(a,b,c,d,e,f,g,z)
    186:           use petscmatdef
    187:           Mat a ! Mat
    188:           PetscInt b ! PetscInt
    189:           PetscInt c (*) ! PetscInt
    190:           PetscInt d ! PetscInt
    191:           PetscInt e (*) ! PetscInt
    192:           PetscScalar f  ! PetscScalar
    193:           InsertMode g ! InsertMode
    194:           integer z
    195:         end subroutine
    196:         subroutine MatSetValuesnnnn(a,b,c,d,e,f,g,z)
    197:           use petscmatdef
    198:           Mat a ! Mat
    199:           PetscInt b ! PetscInt
    200:           PetscInt c (*) ! PetscInt
    201:           PetscInt d ! PetscInt
    202:           PetscInt e (*) ! PetscInt
    203:           PetscScalar f(1,1)  ! PetscScalar
    204:           InsertMode g ! InsertMode
    205:           integer z
    206:         end subroutine
    207:         subroutine MatSetValues11(a,b,c,d,e,f,g,z)
    208:           use petscmatdef
    209:           Mat a ! Mat
    210:           PetscInt b ! PetscInt
    211:           PetscInt c ! PetscInt
    212:           PetscInt d ! PetscInt
    213:           PetscInt e ! PetscInt
    214:           PetscScalar f  ! PetscScalar
    215:           InsertMode g ! InsertMode
    216:           integer z
    217:         end subroutine
    218:         subroutine MatSetValues1n(a,b,c,d,e,f,g,z)
    219:           use petscmatdef
    220:           Mat a ! Mat
    221:           PetscInt b ! PetscInt
    222:           PetscInt c ! PetscInt
    223:           PetscInt d ! PetscInt
    224:           PetscInt e (*) ! PetscInt
    225:           PetscScalar f (*)  ! PetscScalar
    226:           InsertMode g ! InsertMode
    227:           integer z
    228:         end subroutine
    229:         subroutine MatSetValuesn1(a,b,c,d,e,f,g,z)
    230:           use petscmatdef
    231:           Mat a ! Mat
    232:           PetscInt b ! PetscInt
    233:           PetscInt c (*) ! PetscInt
    234:           PetscInt d ! PetscInt
    235:           PetscInt e ! PetscInt
    236:           PetscScalar f (*) ! PetscScalar
    237:           InsertMode g ! InsertMode
    238:           integer z
    239:         end subroutine
    240:       End Interface MatSetValues

    242:       Interface MatSetValuesLocal
    243:         ! picky Fortran requires seperate prototypes if args
    244:         ! are arrays or scalars
    245:         subroutine MatSetValuesLocal0(a,b,c,d,e,f,g,z)
    246:           use petscmatdef
    247:           Mat a ! Mat
    248:           PetscInt b ! PetscInt
    249:           PetscInt c (*) ! PetscInt
    250:           PetscInt d ! PetscInt
    251:           PetscInt e (*) ! PetscInt
    252:           PetscScalar f (*) ! PetscScalar
    253:           InsertMode g ! InsertMode
    254:           integer z
    255:         end subroutine
    256:         subroutine MatSetValuesLocal11(a,b,c,d,e,f,g,z)
    257:           use petscmatdef
    258:           Mat a ! Mat
    259:           PetscInt b ! PetscInt
    260:           PetscInt c ! PetscInt
    261:           PetscInt d ! PetscInt
    262:           PetscInt e ! PetscInt
    263:           PetscScalar f(*)  ! PetscScalar
    264:           InsertMode g ! InsertMode
    265:           integer z
    266:         end subroutine
    267:         subroutine MatSetValuesLocal11nn(a,b,c,d,e,f,g,z)
    268:           use petscmatdef
    269:           Mat a ! Mat
    270:           PetscInt b ! PetscInt
    271:           PetscInt c ! PetscInt
    272:           PetscInt d ! PetscInt
    273:           PetscInt e ! PetscInt
    274:           PetscScalar f(1,1)  ! PetscScalar
    275:           InsertMode g ! InsertMode
    276:           integer z
    277:         end subroutine
    278:         subroutine MatSetValuesLocal111(a,b,c,d,e,f,g,z)
    279:           use petscmatdef
    280:           Mat a ! Mat
    281:           PetscInt b ! PetscInt
    282:           PetscInt c ! PetscInt
    283:           PetscInt d ! PetscInt
    284:           PetscInt e ! PetscInt
    285:           PetscScalar f  ! PetscScalar
    286:           InsertMode g ! InsertMode
    287:           integer z
    288:         end subroutine
    289:         subroutine MatSetValuesLocal1n(a,b,c,d,e,f,g,z)
    290:           use petscmatdef
    291:           Mat a ! Mat
    292:           PetscInt b ! PetscInt
    293:           PetscInt c ! PetscInt
    294:           PetscInt d ! PetscInt
    295:           PetscInt e (*) ! PetscInt
    296:           PetscScalar f (*)  ! PetscScalar
    297:           InsertMode g ! InsertMode
    298:           integer z
    299:         end subroutine
    300:         subroutine MatSetValuesLocaln1(a,b,c,d,e,f,g,z)
    301:           use petscmatdef
    302:           Mat a ! Mat
    303:           PetscInt b ! PetscInt
    304:           PetscInt c (*) ! PetscInt
    305:           PetscInt d ! PetscInt
    306:           PetscInt e ! PetscInt
    307:           PetscScalar f (*) ! PetscScalar
    308:           InsertMode g ! InsertMode
    309:           integer z
    310:         end subroutine
    311:       End Interface MatSetValuesLocal

    313:       Interface MatSetValuesBlockedLocal
    314:         ! picky Fortran requires seperate prototypes if args
    315:         ! are arrays or scalars
    316:         subroutine MatSetValuesBlockedLocal0(a,b,c,d,e,f,g,z)
    317:           use petscmatdef
    318:           Mat a ! Mat
    319:           PetscInt b ! PetscInt
    320:           PetscInt c (*) ! PetscInt
    321:           PetscInt d ! PetscInt
    322:           PetscInt e (*) ! PetscInt
    323:           PetscScalar f (*) ! PetscScalar
    324:           InsertMode g ! InsertMode
    325:           integer z
    326:         end subroutine
    327:         subroutine MatSetValuesBlockedLocal11(a,b,c,d,e,f,g,z)
    328:           use petscmatdef
    329:           Mat a ! Mat
    330:           PetscInt b ! PetscInt
    331:           PetscInt c ! PetscInt
    332:           PetscInt d ! PetscInt
    333:           PetscInt e ! PetscInt
    334:           PetscScalar f(*)  ! PetscScalar
    335:           InsertMode g ! InsertMode
    336:           integer z
    337:         end subroutine
    338:         subroutine MatSetValuesBlockedLocal111(a,b,c,d,e,f,g,z)
    339:           use petscmatdef
    340:           Mat a ! Mat
    341:           PetscInt b ! PetscInt
    342:           PetscInt c ! PetscInt
    343:           PetscInt d ! PetscInt
    344:           PetscInt e ! PetscInt
    345:           PetscScalar f(1,1)  ! PetscScalar
    346:           InsertMode g ! InsertMode
    347:           integer z
    348:         end subroutine
    349:         subroutine MatSetValuesBlockedLocal1n(a,b,c,d,e,f,g,z)
    350:           use petscmatdef
    351:           Mat a ! Mat
    352:           PetscInt b ! PetscInt
    353:           PetscInt c ! PetscInt
    354:           PetscInt d ! PetscInt
    355:           PetscInt e (*) ! PetscInt
    356:           PetscScalar f (*)  ! PetscScalar
    357:           InsertMode g ! InsertMode
    358:           integer z
    359:         end subroutine
    360:         subroutine MatSetValuesBlockedLocaln1(a,b,c,d,e,f,g,z)
    361:           use petscmatdef
    362:           Mat a ! Mat
    363:           PetscInt b ! PetscInt
    364:           PetscInt c (*) ! PetscInt
    365:           PetscInt d ! PetscInt
    366:           PetscInt e ! PetscInt
    367:           PetscScalar f (*) ! PetscScalar
    368:           InsertMode g ! InsertMode
    369:           integer z
    370:         end subroutine
    371:       End Interface MatSetValuesBlockedLocal

    373:       Interface MatSetValuesBlocked
    374:         ! picky Fortran requires seperate prototypes if args
    375:         ! are arrays or scalars
    376:         subroutine MatSetValuesBlocked2(a,b,c,d,e,f,g,z)
    377:           use petscmatdef
    378:           Mat a ! Mat
    379:           PetscInt b ! PetscInt
    380:           PetscInt c (*) ! PetscInt
    381:           PetscInt d ! PetscInt
    382:           PetscInt e (*) ! PetscInt
    383:           PetscScalar, pointer :: f (:,:)
    384:           InsertMode g ! InsertMode
    385:           integer z
    386:         end subroutine
    387:         subroutine MatSetValuesBlocked0(a,b,c,d,e,f,g,z)
    388:           use petscmatdef
    389:           Mat a ! Mat
    390:           PetscInt b ! PetscInt
    391:           PetscInt c (*) ! PetscInt
    392:           PetscInt d ! PetscInt
    393:           PetscInt e (*) ! PetscInt
    394:           PetscScalar f (*) ! PetscScalar
    395:           InsertMode g ! InsertMode
    396:           integer z
    397:         end subroutine
    398:         subroutine MatSetValuesBlocked11(a,b,c,d,e,f,g,z)
    399:           use petscmatdef
    400:           Mat a ! Mat
    401:           PetscInt b ! PetscInt
    402:           PetscInt c ! PetscInt
    403:           PetscInt d ! PetscInt
    404:           PetscInt e ! PetscInt
    405:           PetscScalar f(*)  ! PetscScalar
    406:           InsertMode g ! InsertMode
    407:           integer z
    408:         end subroutine
    409:         subroutine MatSetValuesBlocked111(a,b,c,d,e,f,g,z)
    410:           use petscmatdef
    411:           Mat a ! Mat
    412:           PetscInt b ! PetscInt
    413:           PetscInt c ! PetscInt
    414:           PetscInt d ! PetscInt
    415:           PetscInt e ! PetscInt
    416:           PetscScalar f(1,1)  ! PetscScalar
    417:           InsertMode g ! InsertMode
    418:           integer z
    419:         end subroutine
    420:         subroutine MatSetValuesBlocked1n(a,b,c,d,e,f,g,z)
    421:           use petscmatdef
    422:           Mat a ! Mat
    423:           PetscInt b ! PetscInt
    424:           PetscInt c ! PetscInt
    425:           PetscInt d ! PetscInt
    426:           PetscInt e (*) ! PetscInt
    427:           PetscScalar f (*)  ! PetscScalar
    428:           InsertMode g ! InsertMode
    429:           integer z
    430:         end subroutine
    431:         subroutine MatSetValuesBlockedn1(a,b,c,d,e,f,g,z)
    432:           use petscmatdef
    433:           Mat xa ! Mat
    434:           PetscInt b ! PetscInt
    435:           PetscInt c (*) ! PetscInt
    436:           PetscInt d ! PetscInt
    437:           PetscInt e ! PetscInt
    438:           PetscScalar f (*) ! PetscScalar
    439:           InsertMode g ! InsertMode
    440:           integer z
    441:         end subroutine
    442:       End Interface MatSetValuesBlocked

    444:       Interface
    445:         Subroutine MatGetRow(v,row,ncols,cols,vals,ierr)
    446:           use petscmatdef
    447:           PetscInt cols(*)
    448:           PetscInt  row,ncols
    449:           PetscScalar vals(*)
    450:           PetscErrorCode ierr
    451:           Mat     v
    452:         End Subroutine
    453:       End Interface

    455:       Interface
    456:         Subroutine MatRestoreRow(v,row,ncols,cols,vals,ierr)
    457:           use petscmatdef
    458:           PetscInt  cols(*)
    459:           PetscInt  row,ncols
    460:           PetscScalar vals(*)
    461:           PetscErrorCode ierr
    462:           Mat     v
    463:         End Subroutine
    464:       End Interface

    466:       Interface
    467:         Subroutine MatGetRowIJF90(v,sh,sym,bl,n,ia,ja,d,ierr)
    468:           use petscmatdef
    469:           PetscInt, pointer :: ia(:), ja(:)
    470:           PetscInt  n,sh
    471:           PetscBool  sym,bl,d
    472:           PetscErrorCode ierr
    473:           Mat     v
    474:         End Subroutine
    475:       End Interface

    477:       Interface
    478:         Subroutine MatRestoreRowIJF90(v,s,sy,b,n,ia,ja,d,ierr)
    479:           use petscmatdef
    480:           PetscInt, pointer :: ia(:), ja(:)
    481:           PetscInt  n,s
    482:           PetscBool  sy,b,d
    483:           PetscErrorCode ierr
    484:           Mat     v
    485:         End Subroutine
    486:       End Interface

    488:       Interface
    489:         Subroutine MatDenseGetArrayF90(v,array,ierr)
    490:           use petscmatdef
    491:           PetscScalar, pointer :: array(:,:)
    492:           PetscErrorCode ierr
    493:           Mat     v
    494:         End Subroutine
    495:       End Interface

    498:       Interface
    499:         Subroutine MatDenseRestoreArrayF90(v,array,ierr)
    500:           use petscmatdef
    501:           PetscScalar, pointer :: array(:,:)
    502:           PetscErrorCode ierr
    503:           Mat     v
    504:         End Subroutine
    505:       End Interface

    507:       Interface
    508:         Subroutine MatSeqAIJGetArrayF90(v,array,ierr)
    509:           use petscmatdef
    510:           PetscScalar, pointer :: array(:)
    511:           PetscErrorCode ierr
    512:           Mat     v
    513:         End Subroutine
    514:       End Interface

    517:       Interface
    518:         Subroutine MatSeqAIJRestoreArrayF90(v,array,ierr)
    519:           use petscmatdef
    520:           PetscScalar, pointer :: array(:)
    521:           PetscErrorCode ierr
    522:           Mat     v
    523:         End Subroutine
    524:       End Interface

    526:       Interface
    527:         Subroutine MatGetGhostsF90(v,array,ierr)
    528:           use petscmatdef
    529:           PetscInt, pointer :: array(:)
    530:           PetscErrorCode ierr
    531:           Mat     v
    532:         End Subroutine
    533:       End Interface

    535:       Interface
    536:          Subroutine MatGetInfo(v, flag, info ,ierr)
    537:          use petscmatdef
    538:          Mat  v
    539:          MatInfoType flag
    540: #include "../src/mat/f90-mod/petscmatinfosize.h"
    541:          MatInfo info(MAT_INFO_SIZE)
    542:          PetscErrorCode ierr
    543:        End Subroutine
    544:       End Interface

    546:       Interface
    547:          subroutine MatLUFactor(v, row, col, info ,ierr)
    548:          use petscmatdef
    549:          Mat  v
    550:          IS row
    551:          IS col
    552: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    553:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    554:          PetscErrorCode ierr
    555:          end subroutine
    556:       End Interface

    558:       Interface
    559:          subroutine MatILUFactor(v, row, col, info ,ierr)
    560:          use petscmatdef
    561:          Mat  v
    562:          IS row
    563:          IS col
    564: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    565:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    566:          PetscErrorCode ierr
    567:          end subroutine
    568:       End Interface

    570:       Interface
    571:          subroutine MatLUFactorSymbolic(fact, v, row, col, info ,ierr)
    572:          use petscmatdef
    573:          Mat  fact
    574:          Mat  v
    575:          IS row
    576:          IS col
    577: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    578:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    579:          PetscErrorCode ierr
    580:          end subroutine
    581:       End Interface

    583:       Interface
    584:          subroutine MatLUFactorNumeric(fact, v, info ,ierr)
    585:          use petscmatdef
    586:          Mat  fact
    587:          Mat  v
    588: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    589:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    590:          PetscErrorCode ierr
    591:          end subroutine
    592:       End Interface

    594:       Interface
    595:          subroutine MatCholeskyFactor(v, perm, info ,ierr)
    596:          use petscmatdef
    597:          Mat  v
    598:          IS perm
    599: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    600:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    601:          PetscErrorCode ierr
    602:          end subroutine
    603:       End Interface

    605:       Interface
    606:          subroutine MatCholeskyFactorSymbolic(fact,v,perm,info,ierr)
    607:          use petscmatdef
    608:          Mat  fact
    609:          Mat  v
    610:          IS perm
    611: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    612:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    613:          PetscErrorCode ierr
    614:          end subroutine
    615:       End Interface

    617:       Interface
    618:          subroutine MatCholeskyFactorNumeric(fact, v, info ,ierr)
    619:          use petscmatdef
    620:          Mat  fact
    621:          Mat  v
    622: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    623:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    624:          PetscErrorCode ierr
    625:          end subroutine
    626:       End Interface

    628:       Interface
    629:          subroutine MatILUFactorSymbolic(fact,v,row,col,info,ierr)
    630:          use petscmatdef
    631:          Mat  fact
    632:          Mat  v
    633:          IS row
    634:          IS col
    635: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    636:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    637:          PetscErrorCode ierr
    638:          end subroutine
    639:       End Interface

    641:       Interface
    642:          subroutine MatICCFactorSymbolic(fact, v, perm, info ,ierr)
    643:          use petscmatdef
    644:          Mat  fact
    645:          Mat  v
    646:          IS perm
    647: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    648:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    649:          PetscErrorCode ierr
    650:          end subroutine
    651:       End Interface

    653:       Interface
    654:          subroutine MatICCFactor(v, row, info ,ierr)
    655:          use petscmatdef
    656:          Mat  v
    657:          IS row
    658: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    659:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    660:          PetscErrorCode ierr
    661:          end subroutine
    662:       End Interface

    664:       Interface
    665:          subroutine MatGetGetNullSpace(A,n,ierr)
    666:          use petscmatdef
    667:          Mat  A
    668:          MatNullSpace n
    669:          PetscErrorCode ierr
    670:          end subroutine
    671:       End Interface

    673:       Interface
    674:          subroutine MatFactorInfoInitialize(info ,ierr)
    675: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
    676:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
    677:          PetscErrorCode ierr
    678:          end subroutine
    679:       End Interface

    681:       Interface
    682:       subroutine MatSetType(a,b,z)
    683:       use petscmatdef
    684:        Mat a
    685:        character(*) b
    686:        integer z
    687:        end subroutine
    688:       end Interface

    690:       Interface
    691:       subroutine MatView(a,b,z)
    692:       use petscmatdef
    693:        Mat a
    694:        PetscViewer b
    695:        integer z
    696:        end subroutine
    697:       end Interface

    699:       Interface MatZeroRowsLocal
    700:       subroutine MatZeroRowsLocal0(a,b,c,d,e,f,z)
    701:       use petscmatdef
    702:        Mat a ! Mat
    703:        PetscInt b ! PetscInt
    704:        PetscInt c (*) ! PetscInt
    705:        PetscScalar d ! PetscScalar
    706:        Vec e ! Vec
    707:        Vec f ! Vec
    708:        integer z
    709:        end subroutine
    710:       subroutine MatZeroRowsLocal1(a,b,c,d,e,f,z)
    711:       use petscmatdef
    712:        Mat a ! Mat
    713:        PetscInt b ! PetscInt
    714:        PetscInt c ! PetscInt
    715:        PetscScalar d ! PetscScalar
    716:        Vec e ! Vec
    717:        Vec f ! Vec
    718:        integer z
    719:        end subroutine
    720:       End Interface

    722: ! revert MAT_INFO_SIZE and MAT_FACTORINFO_SIZE defines
    723: #undef MAT_INFO_SIZE
    724: #undef MAT_FACTORINFO_SIZE