Actual source code: petscmat.h90
petsc-3.13.0 2020-03-29
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