Actual source code: petscmat.h90

petsc-3.13.0 2020-03-29
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:        MPI_Comm 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:        PetscErrorCode z
 42:        end subroutine
 43:       End Interface

 45:       interface MatNullSpaceCreate
 46:       subroutine MatNullSpaceCreate1(a,b,c,d,e,z)
 47:       use petscmatdef
 48:        MPI_Comm a
 49:        PetscBool b
 50:        PetscInt c
 51:        Vec d (*)
 52:        MatNullSpace e
 53:        PetscErrorCode z
 54:        end subroutine
 55:       subroutine MatNullSpaceCreate0(a,b,c,d,e,z)
 56:       use petscmatdef
 57:        MPI_Comm a
 58:        PetscBool b
 59:        PetscInt c
 60:        Vec d
 61:        MatNullSpace e
 62:        PetscErrorCode 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:        PetscErrorCode z
 73:        end subroutine
 74:       subroutine MatGetSize10(a,b,c,z)
 75:       use petscmatdef
 76:        Mat a
 77:        PetscInt b(*)
 78:        PetscInt c
 79:        PetscErrorCode z
 80:        end subroutine
 81:       subroutine MatGetSize01(a,b,c,z)
 82:       use petscmatdef
 83:        Mat a
 84:        PetscInt b
 85:        PetscInt c(*)
 86:        PetscErrorCode 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:        PetscErrorCode z
 97:        end subroutine
 98:       subroutine MatGetLocalSize10(a,b,c,z)
 99:       use petscmatdef
100:        Mat a
101:        PetscInt b(*)
102:        PetscInt c
103:        PetscErrorCode z
104:        end subroutine
105:       subroutine MatGetLocalSize01(a,b,c,z)
106:       use petscmatdef
107:        Mat a
108:        PetscInt b
109:        PetscInt c(*)
110:        PetscErrorCode 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:           PetscErrorCode 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:           PetscErrorCode z
139:         end subroutine

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

149:         subroutine MatSeqBAIJSetPreallocation(a,b,c,d,z)
150:           use petscmatdef
151:           Mat a
152:           PetscInt b,c
153:           PetscInt d(*)
154:           PetscErrorCode z
155:         end subroutine

157:         subroutine MatMPIAIJSetPreallocation(a,b,c,d,e,z)
158:           use petscmatdef
159:           Mat a
160:           PetscInt b
161:           PetscInt c(*)
162:           PetscInt d
163:           PetscInt e(*)
164:           PetscErrorCode z
165:         end subroutine

167:         subroutine MatXAIJSetPreallocationb(a,b,c,d,e,f,z)
168:           use petscmatdef
169:           Mat a ! Mat
170:           PetscInt b ! PetscInt
171:           PetscInt c (*) ! PetscInt
172:           PetscInt d (*) ! PetscInt
173:           PetscInt e (*) ! PetscInt
174:           PetscInt f (*) ! PetscInt
175:           PetscErrorCode z
176:         end subroutine

178:         subroutine MatSetValue(myMat,i,j,va,mode,ierr)
179:           use petscmatdef
180:           Mat :: myMat
181:           PetscInt :: i,j
182:           PetscScalar :: va
183:           InsertMode :: mode
184:           PetscErrorCode, intent(out) :: ierr
185:         end subroutine

187:         subroutine MatSetValueLocal(myMat,i,j,va,mode,ierr)
188:           use petscmatdef
189:           Mat :: myMat
190:           PetscInt :: i,j
191:           PetscScalar :: va
192:           InsertMode :: mode
193:           PetscErrorCode, intent(out) :: ierr
194:         end subroutine

196:         end interface

198:         Interface MatGetValues
199:         ! picky Fortran requires separate prototypes if args
200:         ! are arrays or scalars
201:         subroutine MatGetValues0(a,b,c,d,e,f,z)
202:           use petscmatdef
203:           Mat a ! Mat
204:           PetscInt b ! PetscInt
205:           PetscInt c (*) ! PetscInt
206:           PetscInt d ! PetscInt
207:           PetscInt e (*) ! PetscInt
208:           PetscScalar f (*) ! PetscScalar
209:           PetscErrorCode z
210:         end subroutine
211:         subroutine MatGetValuesnn1(a,b,c,d,e,f,z)
212:           use petscmatdef
213:           Mat a ! Mat
214:           PetscInt b ! PetscInt
215:           PetscInt c (*) ! PetscInt
216:           PetscInt d ! PetscInt
217:           PetscInt e (*) ! PetscInt
218:           PetscScalar f  ! PetscScalar
219:           PetscErrorCode z
220:         end subroutine
221:         subroutine MatGetValuesnnnn(a,b,c,d,e,f,z)
222:           use petscmatdef
223:           Mat a ! Mat
224:           PetscInt b ! PetscInt
225:           PetscInt c (*) ! PetscInt
226:           PetscInt d ! PetscInt
227:           PetscInt e (*) ! PetscInt
228:           PetscScalar f(1,1)  ! PetscScalar
229:           PetscErrorCode z
230:         end subroutine
231:         subroutine MatGetValues11(a,b,c,d,e,f,z)
232:           use petscmatdef
233:           Mat a ! Mat
234:           PetscInt b ! PetscInt
235:           PetscInt c ! PetscInt
236:           PetscInt d ! PetscInt
237:           PetscInt e ! PetscInt
238:           PetscScalar f  ! PetscScalar
239:           PetscErrorCode z
240:         end subroutine
241:         subroutine MatGetValues1n(a,b,c,d,e,f,z)
242:           use petscmatdef
243:           Mat a ! Mat
244:           PetscInt b ! PetscInt
245:           PetscInt c ! PetscInt
246:           PetscInt d ! PetscInt
247:           PetscInt e (*) ! PetscInt
248:           PetscScalar f (*)  ! PetscScalar
249:           PetscErrorCode z
250:         end subroutine
251:         subroutine MatGetValuesn1(a,b,c,d,e,f,z)
252:           use petscmatdef
253:           Mat a ! Mat
254:           PetscInt b ! PetscInt
255:           PetscInt c (*) ! PetscInt
256:           PetscInt d ! PetscInt
257:           PetscInt e ! PetscInt
258:           PetscScalar f (*) ! PetscScalar
259:           PetscErrorCode z
260:         end subroutine
261:       End Interface MatGetValues


264:         Interface MatSetValues
265:         ! picky Fortran requires separate prototypes if args
266:         ! are arrays or scalars
267:         subroutine MatSetValues0(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 (*) ! PetscScalar
275:           InsertMode g ! InsertMode
276:           PetscErrorCode z
277:         end subroutine
278:         subroutine MatSetValuesnn1(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:           PetscErrorCode z
288:         end subroutine
289:         subroutine MatSetValuesnnnn(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(1,1)  ! PetscScalar
297:           InsertMode g ! InsertMode
298:           PetscErrorCode z
299:         end subroutine
300:         subroutine MatSetValues11(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:           PetscErrorCode z
310:         end subroutine
311:         subroutine MatSetValues1n(a,b,c,d,e,f,g,z)
312:           use petscmatdef
313:           Mat a ! Mat
314:           PetscInt b ! PetscInt
315:           PetscInt c ! PetscInt
316:           PetscInt d ! PetscInt
317:           PetscInt e (*) ! PetscInt
318:           PetscScalar f (*)  ! PetscScalar
319:           InsertMode g ! InsertMode
320:           PetscErrorCode z
321:         end subroutine
322:         subroutine MatSetValuesn1(a,b,c,d,e,f,g,z)
323:           use petscmatdef
324:           Mat a ! Mat
325:           PetscInt b ! PetscInt
326:           PetscInt c (*) ! PetscInt
327:           PetscInt d ! PetscInt
328:           PetscInt e ! PetscInt
329:           PetscScalar f (*) ! PetscScalar
330:           InsertMode g ! InsertMode
331:           PetscErrorCode z
332:         end subroutine
333:       End Interface MatSetValues

335:       Interface MatSetValuesLocal
336:         ! picky Fortran requires separate prototypes if args
337:         ! are arrays or scalars
338:         subroutine MatSetValuesLocal0(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 (*) ! PetscScalar
346:           InsertMode g ! InsertMode
347:           PetscErrorCode z
348:         end subroutine
349:         subroutine MatSetValuesLocal11(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:           PetscErrorCode z
359:         end subroutine
360:         subroutine MatSetValuesLocal11nn(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(1,1)  ! PetscScalar
368:           InsertMode g ! InsertMode
369:           PetscErrorCode z
370:         end subroutine
371:         subroutine MatSetValuesLocal111(a,b,c,d,e,f,g,z)
372:           use petscmatdef
373:           Mat a ! Mat
374:           PetscInt b ! PetscInt
375:           PetscInt c ! PetscInt
376:           PetscInt d ! PetscInt
377:           PetscInt e ! PetscInt
378:           PetscScalar f  ! PetscScalar
379:           InsertMode g ! InsertMode
380:           PetscErrorCode z
381:         end subroutine
382:         subroutine MatSetValuesLocal1n(a,b,c,d,e,f,g,z)
383:           use petscmatdef
384:           Mat a ! Mat
385:           PetscInt b ! PetscInt
386:           PetscInt c ! PetscInt
387:           PetscInt d ! PetscInt
388:           PetscInt e (*) ! PetscInt
389:           PetscScalar f (*)  ! PetscScalar
390:           InsertMode g ! InsertMode
391:           PetscErrorCode z
392:         end subroutine
393:         subroutine MatSetValuesLocaln1(a,b,c,d,e,f,g,z)
394:           use petscmatdef
395:           Mat a ! Mat
396:           PetscInt b ! PetscInt
397:           PetscInt c (*) ! PetscInt
398:           PetscInt d ! PetscInt
399:           PetscInt e ! PetscInt
400:           PetscScalar f (*) ! PetscScalar
401:           InsertMode g ! InsertMode
402:           PetscErrorCode z
403:         end subroutine
404:       End Interface MatSetValuesLocal

406:       Interface MatSetValuesBlockedLocal
407:         ! picky Fortran requires separate prototypes if args
408:         ! are arrays or scalars
409:         subroutine MatSetValuesBlockedLocal0(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 (*) ! PetscScalar
417:           InsertMode g ! InsertMode
418:           PetscErrorCode z
419:         end subroutine
420:         subroutine MatSetValuesBlockedLocal11(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:           PetscErrorCode z
430:         end subroutine
431:         subroutine MatSetValuesBlockedLocal111(a,b,c,d,e,f,g,z)
432:           use petscmatdef
433:           Mat a ! Mat
434:           PetscInt b ! PetscInt
435:           PetscInt c ! PetscInt
436:           PetscInt d ! PetscInt
437:           PetscInt e ! PetscInt
438:           PetscScalar f(1,1)  ! PetscScalar
439:           InsertMode g ! InsertMode
440:           PetscErrorCode z
441:         end subroutine
442:         subroutine MatSetValuesBlockedLocal1n(a,b,c,d,e,f,g,z)
443:           use petscmatdef
444:           Mat a ! Mat
445:           PetscInt b ! PetscInt
446:           PetscInt c ! PetscInt
447:           PetscInt d ! PetscInt
448:           PetscInt e (*) ! PetscInt
449:           PetscScalar f (*)  ! PetscScalar
450:           InsertMode g ! InsertMode
451:           PetscErrorCode z
452:         end subroutine
453:         subroutine MatSetValuesBlockedLocaln1(a,b,c,d,e,f,g,z)
454:           use petscmatdef
455:           Mat a ! Mat
456:           PetscInt b ! PetscInt
457:           PetscInt c (*) ! PetscInt
458:           PetscInt d ! PetscInt
459:           PetscInt e ! PetscInt
460:           PetscScalar f (*) ! PetscScalar
461:           InsertMode g ! InsertMode
462:           PetscErrorCode z
463:         end subroutine
464:       End Interface MatSetValuesBlockedLocal

466:       Interface MatSetValuesBlocked
467:         ! picky Fortran requires separate prototypes if args
468:         ! are arrays or scalars
469:         subroutine MatSetValuesBlocked2(a,b,c,d,e,f,g,z)
470:           use petscmatdef
471:           Mat a ! Mat
472:           PetscInt b ! PetscInt
473:           PetscInt c (*) ! PetscInt
474:           PetscInt d ! PetscInt
475:           PetscInt e (*) ! PetscInt
476:           PetscScalar, pointer :: f (:,:)
477:           InsertMode g ! InsertMode
478:           PetscErrorCode z
479:         end subroutine
480:         subroutine MatSetValuesBlocked0(a,b,c,d,e,f,g,z)
481:           use petscmatdef
482:           Mat a ! Mat
483:           PetscInt b ! PetscInt
484:           PetscInt c (*) ! PetscInt
485:           PetscInt d ! PetscInt
486:           PetscInt e (*) ! PetscInt
487:           PetscScalar f (*) ! PetscScalar
488:           InsertMode g ! InsertMode
489:           PetscErrorCode z
490:         end subroutine
491:         subroutine MatSetValuesBlocked11(a,b,c,d,e,f,g,z)
492:           use petscmatdef
493:           Mat a ! Mat
494:           PetscInt b ! PetscInt
495:           PetscInt c ! PetscInt
496:           PetscInt d ! PetscInt
497:           PetscInt e ! PetscInt
498:           PetscScalar f(*)  ! PetscScalar
499:           InsertMode g ! InsertMode
500:           PetscErrorCode z
501:         end subroutine
502:         subroutine MatSetValuesBlocked111(a,b,c,d,e,f,g,z)
503:           use petscmatdef
504:           Mat a ! Mat
505:           PetscInt b ! PetscInt
506:           PetscInt c ! PetscInt
507:           PetscInt d ! PetscInt
508:           PetscInt e ! PetscInt
509:           PetscScalar f(1,1)  ! PetscScalar
510:           InsertMode g ! InsertMode
511:           PetscErrorCode z
512:         end subroutine
513:         subroutine MatSetValuesBlocked1n(a,b,c,d,e,f,g,z)
514:           use petscmatdef
515:           Mat a ! Mat
516:           PetscInt b ! PetscInt
517:           PetscInt c ! PetscInt
518:           PetscInt d ! PetscInt
519:           PetscInt e (*) ! PetscInt
520:           PetscScalar f (*)  ! PetscScalar
521:           InsertMode g ! InsertMode
522:           PetscErrorCode z
523:         end subroutine
524:         subroutine MatSetValuesBlockedn1(a,b,c,d,e,f,g,z)
525:           use petscmatdef
526:           Mat a ! Mat
527:           PetscInt b ! PetscInt
528:           PetscInt c (*) ! PetscInt
529:           PetscInt d ! PetscInt
530:           PetscInt e ! PetscInt
531:           PetscScalar f (*) ! PetscScalar
532:           InsertMode g ! InsertMode
533:           PetscErrorCode z
534:         end subroutine
535:       End Interface MatSetValuesBlocked

537:       Interface
538:         Subroutine MatGetRow(v,row,ncols,cols,vals,ierr)
539:           use petscmatdef
540:           PetscInt cols(*)
541:           PetscInt  row,ncols
542:           PetscScalar vals(*)
543:           PetscErrorCode ierr
544:           Mat     v
545:         End Subroutine
546:       End Interface

548:       Interface
549:         Subroutine MatRestoreRow(v,row,ncols,cols,vals,ierr)
550:           use petscmatdef
551:           PetscInt  cols(*)
552:           PetscInt  row,ncols
553:           PetscScalar vals(*)
554:           PetscErrorCode ierr
555:           Mat     v
556:         End Subroutine
557:       End Interface

559:       Interface
560:         Subroutine MatGetRowIJF90(v,sh,sym,bl,n,ia,ja,d,ierr)
561:           use petscmatdef
562:           PetscInt, pointer :: ia(:), ja(:)
563:           PetscInt  n,sh
564:           PetscBool  sym,bl,d
565:           PetscErrorCode ierr
566:           Mat     v
567:         End Subroutine
568:       End Interface

570:       Interface
571:         Subroutine MatRestoreRowIJF90(v,s,sy,b,n,ia,ja,d,ierr)
572:           use petscmatdef
573:           PetscInt, pointer :: ia(:), ja(:)
574:           PetscInt  n,s
575:           PetscBool  sy,b,d
576:           PetscErrorCode ierr
577:           Mat     v
578:         End Subroutine
579:       End Interface

581:       Interface
582:         Subroutine MatDenseGetArrayF90(v,array,ierr)
583:           use petscmatdef
584:           PetscScalar, pointer :: array(:,:)
585:           PetscErrorCode ierr
586:           Mat     v
587:         End Subroutine
588:       End Interface


591:       Interface
592:         Subroutine MatDenseRestoreArrayF90(v,array,ierr)
593:           use petscmatdef
594:           PetscScalar, pointer :: array(:,:)
595:           PetscErrorCode ierr
596:           Mat     v
597:         End Subroutine
598:       End Interface

600:       Interface
601:         Subroutine MatSeqAIJGetArrayF90(v,array,ierr)
602:           use petscmatdef
603:           PetscScalar, pointer :: array(:)
604:           PetscErrorCode ierr
605:           Mat     v
606:         End Subroutine
607:       End Interface


610:       Interface
611:         Subroutine MatSeqAIJRestoreArrayF90(v,array,ierr)
612:           use petscmatdef
613:           PetscScalar, pointer :: array(:)
614:           PetscErrorCode ierr
615:           Mat     v
616:         End Subroutine
617:       End Interface

619:       Interface
620:         Subroutine MatGetGhostsF90(v,array,ierr)
621:           use petscmatdef
622:           PetscInt, pointer :: array(:)
623:           PetscErrorCode ierr
624:           Mat     v
625:         End Subroutine
626:       End Interface

628:       Interface
629:          Subroutine MatGetInfo(v, flag, info ,ierr)
630:          use petscmatdef
631:          Mat  v
632:          MatInfoType flag
633: #include "../src/mat/f90-mod/petscmatinfosize.h"
634:          MatInfo info(MAT_INFO_SIZE)
635:          PetscErrorCode ierr
636:        End Subroutine
637:       End Interface

639:       Interface
640:          subroutine MatLUFactor(v, row, col, info ,ierr)
641:          use petscmatdef
642:          Mat  v
643:          IS row
644:          IS col
645: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
646:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
647:          PetscErrorCode ierr
648:          end subroutine
649:       End Interface

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

663:       Interface
664:          subroutine MatLUFactorSymbolic(fact, v, row, col, info ,ierr)
665:          use petscmatdef
666:          Mat  fact
667:          Mat  v
668:          IS row
669:          IS col
670: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
671:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
672:          PetscErrorCode ierr
673:          end subroutine
674:       End Interface

676:       Interface
677:          subroutine MatLUFactorNumeric(fact, v, info ,ierr)
678:          use petscmatdef
679:          Mat  fact
680:          Mat  v
681: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
682:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
683:          PetscErrorCode ierr
684:          end subroutine
685:       End Interface

687:       Interface
688:          subroutine MatCholeskyFactor(v, perm, info ,ierr)
689:          use petscmatdef
690:          Mat  v
691:          IS perm
692: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
693:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
694:          PetscErrorCode ierr
695:          end subroutine
696:       End Interface

698:       Interface
699:          subroutine MatCholeskyFactorSymbolic(fact,v,perm,info,ierr)
700:          use petscmatdef
701:          Mat  fact
702:          Mat  v
703:          IS perm
704: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
705:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
706:          PetscErrorCode ierr
707:          end subroutine
708:       End Interface

710:       Interface
711:          subroutine MatCholeskyFactorNumeric(fact, v, info ,ierr)
712:          use petscmatdef
713:          Mat  fact
714:          Mat  v
715: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
716:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
717:          PetscErrorCode ierr
718:          end subroutine
719:       End Interface

721:       Interface
722:          subroutine MatILUFactorSymbolic(fact,v,row,col,info,ierr)
723:          use petscmatdef
724:          Mat  fact
725:          Mat  v
726:          IS row
727:          IS col
728: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
729:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
730:          PetscErrorCode ierr
731:          end subroutine
732:       End Interface

734:       Interface
735:          subroutine MatICCFactorSymbolic(fact, v, perm, info ,ierr)
736:          use petscmatdef
737:          Mat  fact
738:          Mat  v
739:          IS perm
740: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
741:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
742:          PetscErrorCode ierr
743:          end subroutine
744:       End Interface

746:       Interface
747:          subroutine MatICCFactor(v, row, info ,ierr)
748:          use petscmatdef
749:          Mat  v
750:          IS row
751: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
752:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
753:          PetscErrorCode ierr
754:          end subroutine
755:       End Interface

757:       Interface
758:          subroutine MatGetGetNullSpace(A,n,ierr)
759:          use petscmatdef
760:          Mat  A
761:          MatNullSpace n
762:          PetscErrorCode ierr
763:          end subroutine
764:       End Interface

766:       Interface
767:          subroutine MatFactorInfoInitialize(info ,ierr)
768: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
769:          MatFactorInfo info(MAT_FACTORINFO_SIZE)
770:          PetscErrorCode ierr
771:          end subroutine
772:       End Interface

774:       Interface
775:       subroutine MatSetType(a,b,z)
776:       use petscmatdef
777:        Mat a
778:        character(*) b
779:        PetscErrorCode z
780:        end subroutine
781:       end Interface

783:       Interface
784:       subroutine MatView(a,b,z)
785:       use petscmatdef
786:        Mat a
787:        PetscViewer b
788:        PetscErrorCode z
789:        end subroutine
790:       end Interface

792:       Interface MatZeroRowsLocal
793:       subroutine MatZeroRowsLocal0(a,b,c,d,e,f,z)
794:       use petscmatdef
795:        Mat a ! Mat
796:        PetscInt b ! PetscInt
797:        PetscInt c (*) ! PetscInt
798:        PetscScalar d ! PetscScalar
799:        Vec e ! Vec
800:        Vec f ! Vec
801:        PetscErrorCode z
802:        end subroutine
803:       subroutine MatZeroRowsLocal1(a,b,c,d,e,f,z)
804:       use petscmatdef
805:        Mat a ! Mat
806:        PetscInt b ! PetscInt
807:        PetscInt c ! PetscInt
808:        PetscScalar d ! PetscScalar
809:        Vec e ! Vec
810:        Vec f ! Vec
811:        PetscErrorCode z
812:        end subroutine
813:       End Interface

815:       interface MatGetOwnershipRange
816:       subroutine MatGetOwnershipRange00(a,b,c,ierr)
817:        use petscmatdef
818:        Mat,intent(in) :: a ! Mat
819:        PetscInt :: b,c ! PetscInt
820:        PetscErrorCode,intent(out) :: ierr
821:       end subroutine
822:       subroutine MatGetOwnershipRange10(a,b,c,ierr)
823:        use petscmatdef
824:        Mat,intent(in) :: a ! Mat
825:        PetscInt,dimension(:) :: b ! PetscInt
826:        PetscInt              :: c ! PetscInt
827:        PetscErrorCode,intent(out) :: ierr
828:       end subroutine
829:       subroutine MatGetOwnershipRange01(a,b,c,ierr)
830:        use petscmatdef
831:        Mat,intent(in) :: a ! Mat
832:        PetscInt              :: b ! PetscInt
833:        PetscInt,dimension(:) :: c ! PetscInt
834:        PetscErrorCode,intent(out) :: ierr
835:       end subroutine
836:       subroutine MatGetOwnershipRange11(a,b,c,ierr)
837:        use petscmatdef
838:        Mat,intent(in) :: a ! Mat
839:        PetscInt,dimension(:) :: b,c ! PetscInt
840:        PetscErrorCode,intent(out) :: ierr
841:       end subroutine
842:       end interface

844:       interface
845:       subroutine MatGetFactor(m,t,ft,f,ierr)
846:       use petscmatdef
847:        Mat, intent(in) ::  m
848:        character(*), intent(in) :: t
849:        MatFactorType,intent(in) :: ft
850:        Mat, intent(out) ::  f
851:        PetscErrorCode,intent(out) :: ierr
852:       end subroutine

854:       subroutine MatPartitioningCreate(a,b,ierr)
855:       use petscmatdef
856:        MPI_Comm, intent(in) :: a ! MPI_comm
857:        MatPartitioning, intent(out) ::  b
858:        PetscErrorCode,intent(out) :: ierr
859:       end subroutine

861:       subroutine MatPartitioningDestroy(a,ierr)
862:       use petscmatdef
863:        MatPartitioning, intent(in) ::  a
864:        PetscErrorCode,intent(out) :: ierr
865:       end subroutine

867:       subroutine MatPartitioningSetAdjacency(a,b,ierr)
868:       use petscmatdef
869:        MatPartitioning, intent(in) ::  a
870:        Mat, intent(in) ::  b
871:        PetscErrorCode,intent(out) :: ierr
872:       end subroutine

874:       subroutine MatPartitioningSetFromOptions(a,ierr)
875:       use petscmatdef
876:        MatPartitioning, intent(in) ::  a
877:        PetscErrorCode,intent(out) :: ierr
878:       end subroutine

880:       subroutine MatPartitioningApply(a,b,ierr)
881:       use petscmatdef
882:        MatPartitioning, intent(in) ::  a
883:        IS, intent(out) :: b
884:        PetscErrorCode :: ierr
885:       end subroutine
886: 
887:       end interface

889: ! revert MAT_INFO_SIZE and MAT_FACTORINFO_SIZE defines
890: #undef MAT_INFO_SIZE
891: #undef MAT_FACTORINFO_SIZE