Actual source code: petscmat.h90
petsc-3.11.4 2019-09-28
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 MatSeqBAIJSetPreallocation(a,b,c,d,z)
150: use petscmatdef
151: Mat a
152: PetscInt b,c
153: PetscInt d(*)
154: integer 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: integer 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: integer 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: integer, 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: integer, intent(out) :: ierr
194: end subroutine
196: end interface
198: Interface MatSetValues
199: ! picky Fortran requires seperate prototypes if args
200: ! are arrays or scalars
201: subroutine MatSetValues0(a,b,c,d,e,f,g,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: InsertMode g ! InsertMode
210: integer z
211: end subroutine
212: subroutine MatSetValuesnn1(a,b,c,d,e,f,g,z)
213: use petscmatdef
214: Mat a ! Mat
215: PetscInt b ! PetscInt
216: PetscInt c (*) ! PetscInt
217: PetscInt d ! PetscInt
218: PetscInt e (*) ! PetscInt
219: PetscScalar f ! PetscScalar
220: InsertMode g ! InsertMode
221: integer z
222: end subroutine
223: subroutine MatSetValuesnnnn(a,b,c,d,e,f,g,z)
224: use petscmatdef
225: Mat a ! Mat
226: PetscInt b ! PetscInt
227: PetscInt c (*) ! PetscInt
228: PetscInt d ! PetscInt
229: PetscInt e (*) ! PetscInt
230: PetscScalar f(1,1) ! PetscScalar
231: InsertMode g ! InsertMode
232: integer z
233: end subroutine
234: subroutine MatSetValues11(a,b,c,d,e,f,g,z)
235: use petscmatdef
236: Mat a ! Mat
237: PetscInt b ! PetscInt
238: PetscInt c ! PetscInt
239: PetscInt d ! PetscInt
240: PetscInt e ! PetscInt
241: PetscScalar f ! PetscScalar
242: InsertMode g ! InsertMode
243: integer z
244: end subroutine
245: subroutine MatSetValues1n(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 MatSetValuesn1(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: End Interface MatSetValues
269: Interface MatSetValuesLocal
270: ! picky Fortran requires seperate prototypes if args
271: ! are arrays or scalars
272: subroutine MatSetValuesLocal0(a,b,c,d,e,f,g,z)
273: use petscmatdef
274: Mat a ! Mat
275: PetscInt b ! PetscInt
276: PetscInt c (*) ! PetscInt
277: PetscInt d ! PetscInt
278: PetscInt e (*) ! PetscInt
279: PetscScalar f (*) ! PetscScalar
280: InsertMode g ! InsertMode
281: integer z
282: end subroutine
283: subroutine MatSetValuesLocal11(a,b,c,d,e,f,g,z)
284: use petscmatdef
285: Mat a ! Mat
286: PetscInt b ! PetscInt
287: PetscInt c ! PetscInt
288: PetscInt d ! PetscInt
289: PetscInt e ! PetscInt
290: PetscScalar f(*) ! PetscScalar
291: InsertMode g ! InsertMode
292: integer z
293: end subroutine
294: subroutine MatSetValuesLocal11nn(a,b,c,d,e,f,g,z)
295: use petscmatdef
296: Mat a ! Mat
297: PetscInt b ! PetscInt
298: PetscInt c ! PetscInt
299: PetscInt d ! PetscInt
300: PetscInt e ! PetscInt
301: PetscScalar f(1,1) ! PetscScalar
302: InsertMode g ! InsertMode
303: integer z
304: end subroutine
305: subroutine MatSetValuesLocal111(a,b,c,d,e,f,g,z)
306: use petscmatdef
307: Mat a ! Mat
308: PetscInt b ! PetscInt
309: PetscInt c ! PetscInt
310: PetscInt d ! PetscInt
311: PetscInt e ! PetscInt
312: PetscScalar f ! PetscScalar
313: InsertMode g ! InsertMode
314: integer z
315: end subroutine
316: subroutine MatSetValuesLocal1n(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 MatSetValuesLocaln1(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: End Interface MatSetValuesLocal
340: Interface MatSetValuesBlockedLocal
341: ! picky Fortran requires seperate prototypes if args
342: ! are arrays or scalars
343: subroutine MatSetValuesBlockedLocal0(a,b,c,d,e,f,g,z)
344: use petscmatdef
345: Mat a ! Mat
346: PetscInt b ! PetscInt
347: PetscInt c (*) ! PetscInt
348: PetscInt d ! PetscInt
349: PetscInt e (*) ! PetscInt
350: PetscScalar f (*) ! PetscScalar
351: InsertMode g ! InsertMode
352: integer z
353: end subroutine
354: subroutine MatSetValuesBlockedLocal11(a,b,c,d,e,f,g,z)
355: use petscmatdef
356: Mat a ! Mat
357: PetscInt b ! PetscInt
358: PetscInt c ! PetscInt
359: PetscInt d ! PetscInt
360: PetscInt e ! PetscInt
361: PetscScalar f(*) ! PetscScalar
362: InsertMode g ! InsertMode
363: integer z
364: end subroutine
365: subroutine MatSetValuesBlockedLocal111(a,b,c,d,e,f,g,z)
366: use petscmatdef
367: Mat a ! Mat
368: PetscInt b ! PetscInt
369: PetscInt c ! PetscInt
370: PetscInt d ! PetscInt
371: PetscInt e ! PetscInt
372: PetscScalar f(1,1) ! PetscScalar
373: InsertMode g ! InsertMode
374: integer z
375: end subroutine
376: subroutine MatSetValuesBlockedLocal1n(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 f (*) ! PetscScalar
384: InsertMode g ! InsertMode
385: integer z
386: end subroutine
387: subroutine MatSetValuesBlockedLocaln1(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: End Interface MatSetValuesBlockedLocal
400: Interface MatSetValuesBlocked
401: ! picky Fortran requires seperate prototypes if args
402: ! are arrays or scalars
403: subroutine MatSetValuesBlocked2(a,b,c,d,e,f,g,z)
404: use petscmatdef
405: Mat a ! Mat
406: PetscInt b ! PetscInt
407: PetscInt c (*) ! PetscInt
408: PetscInt d ! PetscInt
409: PetscInt e (*) ! PetscInt
410: PetscScalar, pointer :: f (:,:)
411: InsertMode g ! InsertMode
412: integer z
413: end subroutine
414: subroutine MatSetValuesBlocked0(a,b,c,d,e,f,g,z)
415: use petscmatdef
416: Mat a ! Mat
417: PetscInt b ! PetscInt
418: PetscInt c (*) ! PetscInt
419: PetscInt d ! PetscInt
420: PetscInt e (*) ! PetscInt
421: PetscScalar f (*) ! PetscScalar
422: InsertMode g ! InsertMode
423: integer z
424: end subroutine
425: subroutine MatSetValuesBlocked11(a,b,c,d,e,f,g,z)
426: use petscmatdef
427: Mat a ! Mat
428: PetscInt b ! PetscInt
429: PetscInt c ! PetscInt
430: PetscInt d ! PetscInt
431: PetscInt e ! PetscInt
432: PetscScalar f(*) ! PetscScalar
433: InsertMode g ! InsertMode
434: integer z
435: end subroutine
436: subroutine MatSetValuesBlocked111(a,b,c,d,e,f,g,z)
437: use petscmatdef
438: Mat a ! Mat
439: PetscInt b ! PetscInt
440: PetscInt c ! PetscInt
441: PetscInt d ! PetscInt
442: PetscInt e ! PetscInt
443: PetscScalar f(1,1) ! PetscScalar
444: InsertMode g ! InsertMode
445: integer z
446: end subroutine
447: subroutine MatSetValuesBlocked1n(a,b,c,d,e,f,g,z)
448: use petscmatdef
449: Mat a ! Mat
450: PetscInt b ! PetscInt
451: PetscInt c ! PetscInt
452: PetscInt d ! PetscInt
453: PetscInt e (*) ! PetscInt
454: PetscScalar f (*) ! PetscScalar
455: InsertMode g ! InsertMode
456: integer z
457: end subroutine
458: subroutine MatSetValuesBlockedn1(a,b,c,d,e,f,g,z)
459: use petscmatdef
460: Mat xa ! Mat
461: PetscInt b ! PetscInt
462: PetscInt c (*) ! PetscInt
463: PetscInt d ! PetscInt
464: PetscInt e ! PetscInt
465: PetscScalar f (*) ! PetscScalar
466: InsertMode g ! InsertMode
467: integer z
468: end subroutine
469: End Interface MatSetValuesBlocked
471: Interface
472: Subroutine MatGetRow(v,row,ncols,cols,vals,ierr)
473: use petscmatdef
474: PetscInt cols(*)
475: PetscInt row,ncols
476: PetscScalar vals(*)
477: PetscErrorCode ierr
478: Mat v
479: End Subroutine
480: End Interface
482: Interface
483: Subroutine MatRestoreRow(v,row,ncols,cols,vals,ierr)
484: use petscmatdef
485: PetscInt cols(*)
486: PetscInt row,ncols
487: PetscScalar vals(*)
488: PetscErrorCode ierr
489: Mat v
490: End Subroutine
491: End Interface
493: Interface
494: Subroutine MatGetRowIJF90(v,sh,sym,bl,n,ia,ja,d,ierr)
495: use petscmatdef
496: PetscInt, pointer :: ia(:), ja(:)
497: PetscInt n,sh
498: PetscBool sym,bl,d
499: PetscErrorCode ierr
500: Mat v
501: End Subroutine
502: End Interface
504: Interface
505: Subroutine MatRestoreRowIJF90(v,s,sy,b,n,ia,ja,d,ierr)
506: use petscmatdef
507: PetscInt, pointer :: ia(:), ja(:)
508: PetscInt n,s
509: PetscBool sy,b,d
510: PetscErrorCode ierr
511: Mat v
512: End Subroutine
513: End Interface
515: Interface
516: Subroutine MatDenseGetArrayF90(v,array,ierr)
517: use petscmatdef
518: PetscScalar, pointer :: array(:,:)
519: PetscErrorCode ierr
520: Mat v
521: End Subroutine
522: End Interface
525: Interface
526: Subroutine MatDenseRestoreArrayF90(v,array,ierr)
527: use petscmatdef
528: PetscScalar, pointer :: array(:,:)
529: PetscErrorCode ierr
530: Mat v
531: End Subroutine
532: End Interface
534: Interface
535: Subroutine MatSeqAIJGetArrayF90(v,array,ierr)
536: use petscmatdef
537: PetscScalar, pointer :: array(:)
538: PetscErrorCode ierr
539: Mat v
540: End Subroutine
541: End Interface
544: Interface
545: Subroutine MatSeqAIJRestoreArrayF90(v,array,ierr)
546: use petscmatdef
547: PetscScalar, pointer :: array(:)
548: PetscErrorCode ierr
549: Mat v
550: End Subroutine
551: End Interface
553: Interface
554: Subroutine MatGetGhostsF90(v,array,ierr)
555: use petscmatdef
556: PetscInt, pointer :: array(:)
557: PetscErrorCode ierr
558: Mat v
559: End Subroutine
560: End Interface
562: Interface
563: Subroutine MatGetInfo(v, flag, info ,ierr)
564: use petscmatdef
565: Mat v
566: MatInfoType flag
567: #include "../src/mat/f90-mod/petscmatinfosize.h"
568: MatInfo info(MAT_INFO_SIZE)
569: PetscErrorCode ierr
570: End Subroutine
571: End Interface
573: Interface
574: subroutine MatLUFactor(v, row, col, info ,ierr)
575: use petscmatdef
576: Mat v
577: IS row
578: IS col
579: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
580: MatFactorInfo info(MAT_FACTORINFO_SIZE)
581: PetscErrorCode ierr
582: end subroutine
583: End Interface
585: Interface
586: subroutine MatILUFactor(v, row, col, info ,ierr)
587: use petscmatdef
588: Mat v
589: IS row
590: IS col
591: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
592: MatFactorInfo info(MAT_FACTORINFO_SIZE)
593: PetscErrorCode ierr
594: end subroutine
595: End Interface
597: Interface
598: subroutine MatLUFactorSymbolic(fact, v, row, col, info ,ierr)
599: use petscmatdef
600: Mat fact
601: Mat v
602: IS row
603: IS col
604: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
605: MatFactorInfo info(MAT_FACTORINFO_SIZE)
606: PetscErrorCode ierr
607: end subroutine
608: End Interface
610: Interface
611: subroutine MatLUFactorNumeric(fact, v, info ,ierr)
612: use petscmatdef
613: Mat fact
614: Mat v
615: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
616: MatFactorInfo info(MAT_FACTORINFO_SIZE)
617: PetscErrorCode ierr
618: end subroutine
619: End Interface
621: Interface
622: subroutine MatCholeskyFactor(v, perm, info ,ierr)
623: use petscmatdef
624: Mat v
625: IS perm
626: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
627: MatFactorInfo info(MAT_FACTORINFO_SIZE)
628: PetscErrorCode ierr
629: end subroutine
630: End Interface
632: Interface
633: subroutine MatCholeskyFactorSymbolic(fact,v,perm,info,ierr)
634: use petscmatdef
635: Mat fact
636: Mat v
637: IS perm
638: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
639: MatFactorInfo info(MAT_FACTORINFO_SIZE)
640: PetscErrorCode ierr
641: end subroutine
642: End Interface
644: Interface
645: subroutine MatCholeskyFactorNumeric(fact, v, info ,ierr)
646: use petscmatdef
647: Mat fact
648: Mat v
649: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
650: MatFactorInfo info(MAT_FACTORINFO_SIZE)
651: PetscErrorCode ierr
652: end subroutine
653: End Interface
655: Interface
656: subroutine MatILUFactorSymbolic(fact,v,row,col,info,ierr)
657: use petscmatdef
658: Mat fact
659: Mat v
660: IS row
661: IS col
662: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
663: MatFactorInfo info(MAT_FACTORINFO_SIZE)
664: PetscErrorCode ierr
665: end subroutine
666: End Interface
668: Interface
669: subroutine MatICCFactorSymbolic(fact, v, perm, info ,ierr)
670: use petscmatdef
671: Mat fact
672: Mat v
673: IS perm
674: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
675: MatFactorInfo info(MAT_FACTORINFO_SIZE)
676: PetscErrorCode ierr
677: end subroutine
678: End Interface
680: Interface
681: subroutine MatICCFactor(v, row, info ,ierr)
682: use petscmatdef
683: Mat v
684: IS row
685: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
686: MatFactorInfo info(MAT_FACTORINFO_SIZE)
687: PetscErrorCode ierr
688: end subroutine
689: End Interface
691: Interface
692: subroutine MatGetGetNullSpace(A,n,ierr)
693: use petscmatdef
694: Mat A
695: MatNullSpace n
696: PetscErrorCode ierr
697: end subroutine
698: End Interface
700: Interface
701: subroutine MatFactorInfoInitialize(info ,ierr)
702: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
703: MatFactorInfo info(MAT_FACTORINFO_SIZE)
704: PetscErrorCode ierr
705: end subroutine
706: End Interface
708: Interface
709: subroutine MatSetType(a,b,z)
710: use petscmatdef
711: Mat a
712: character(*) b
713: integer z
714: end subroutine
715: end Interface
717: Interface
718: subroutine MatView(a,b,z)
719: use petscmatdef
720: Mat a
721: PetscViewer b
722: integer z
723: end subroutine
724: end Interface
726: Interface MatZeroRowsLocal
727: subroutine MatZeroRowsLocal0(a,b,c,d,e,f,z)
728: use petscmatdef
729: Mat a ! Mat
730: PetscInt b ! PetscInt
731: PetscInt c (*) ! PetscInt
732: PetscScalar d ! PetscScalar
733: Vec e ! Vec
734: Vec f ! Vec
735: integer z
736: end subroutine
737: subroutine MatZeroRowsLocal1(a,b,c,d,e,f,z)
738: use petscmatdef
739: Mat a ! Mat
740: PetscInt b ! PetscInt
741: PetscInt c ! PetscInt
742: PetscScalar d ! PetscScalar
743: Vec e ! Vec
744: Vec f ! Vec
745: integer z
746: end subroutine
747: End Interface
749: interface MatGetOwnershipRange
750: subroutine MatGetOwnershipRange00(a,b,c,ierr)
751: use petscmatdef
752: Mat,intent(in) :: a ! Mat
753: PetscInt :: b,c ! PetscInt
754: PetscErrorCode,intent(out) :: ierr
755: end subroutine
756: subroutine MatGetOwnershipRange10(a,b,c,ierr)
757: use petscmatdef
758: Mat,intent(in) :: a ! Mat
759: PetscInt,dimension(:) :: b ! PetscInt
760: PetscInt :: c ! PetscInt
761: PetscErrorCode,intent(out) :: ierr
762: end subroutine
763: subroutine MatGetOwnershipRange01(a,b,c,ierr)
764: use petscmatdef
765: Mat,intent(in) :: a ! Mat
766: PetscInt :: b ! PetscInt
767: PetscInt,dimension(:) :: c ! PetscInt
768: PetscErrorCode,intent(out) :: ierr
769: end subroutine
770: subroutine MatGetOwnershipRange11(a,b,c,ierr)
771: use petscmatdef
772: Mat,intent(in) :: a ! Mat
773: PetscInt,dimension(:) :: b,c ! PetscInt
774: PetscErrorCode,intent(out) :: ierr
775: end subroutine
776: end interface
778: interface
779: subroutine MatGetFactor(m,t,ft,f,ierr)
780: use petscmatdef
781: Mat, intent(in) :: m
782: character(*), intent(in) :: t
783: MatFactorType,intent(in) :: ft
784: Mat, intent(out) :: f
785: PetscErrorCode,intent(out) :: ierr
786: end subroutine
788: subroutine MatPartitioningCreate(a,b,ierr)
789: use petscmatdef
790: integer, intent(in) :: a ! MPI_comm
791: MatPartitioning, intent(out) :: b
792: PetscErrorCode,intent(out) :: ierr
793: end subroutine
795: subroutine MatPartitioningDestroy(a,ierr)
796: use petscmatdef
797: MatPartitioning, intent(in) :: a
798: PetscErrorCode,intent(out) :: ierr
799: end subroutine
801: subroutine MatPartitioningSetAdjacency(a,b,ierr)
802: use petscmatdef
803: MatPartitioning, intent(in) :: a
804: Mat, intent(in) :: b
805: PetscErrorCode,intent(out) :: ierr
806: end subroutine
808: subroutine MatPartitioningSetFromOptions(a,ierr)
809: use petscmatdef
810: MatPartitioning, intent(in) :: a
811: PetscErrorCode,intent(out) :: ierr
812: end subroutine
814: subroutine MatPartitioningApply(a,b,ierr)
815: use petscmatdef
816: MatPartitioning, intent(in) :: a
817: IS, intent(out) :: b
818: PetscErrorCode :: ierr
819: end subroutine
820:
821: end interface
823: ! revert MAT_INFO_SIZE and MAT_FACTORINFO_SIZE defines
824: #undef MAT_INFO_SIZE
825: #undef MAT_FACTORINFO_SIZE