Actual source code: petscmat.h90
petsc-3.9.4 2018-09-11
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 MatCreateSchurComplement(a,b,c,d,e,f,z)
131: use petscmatdef
132: Mat a,b,c,d,e,f
133: integer z
134: end subroutine
136: subroutine MatCreateSeqAIJ(a,b,c,d,e,f,z)
137: use petscmatdef
138: MPI_Comm a
139: PetscInt b
140: PetscInt c
141: PetscInt d
142: PetscInt e(*)
143: Mat f
144: integer z
145: end subroutine
147: subroutine MatSeqAIJSetPreallocation(a,b,c,z)
148: use petscmatdef
149: Mat a
150: PetscInt b
151: PetscInt c(*)
152: integer z
153: end subroutine
155: subroutine MatMPIAIJSetPreallocation(a,b,c,d,e,z)
156: use petscmatdef
157: Mat a
158: PetscInt b
159: PetscInt c(*)
160: PetscInt d
161: PetscInt e(*)
162: integer z
163: end subroutine
165: subroutine MatXAIJSetPreallocationb(a,b,c,d,e,f,z)
166: use petscmatdef
167: Mat a ! Mat
168: PetscInt b ! PetscInt
169: PetscInt c (*) ! PetscInt
170: PetscInt d (*) ! PetscInt
171: PetscInt e (*) ! PetscInt
172: PetscInt f (*) ! PetscInt
173: integer z
174: end subroutine
175: end interface
177: Interface MatSetValues
178: ! picky Fortran requires seperate prototypes if args
179: ! are arrays or scalars
180: subroutine MatSetValues0(a,b,c,d,e,f,g,z)
181: use petscmatdef
182: Mat a ! Mat
183: PetscInt b ! PetscInt
184: PetscInt c (*) ! PetscInt
185: PetscInt d ! PetscInt
186: PetscInt e (*) ! PetscInt
187: PetscScalar f (*) ! PetscScalar
188: InsertMode g ! InsertMode
189: integer z
190: end subroutine
191: subroutine MatSetValuesnn1(a,b,c,d,e,f,g,z)
192: use petscmatdef
193: Mat a ! Mat
194: PetscInt b ! PetscInt
195: PetscInt c (*) ! PetscInt
196: PetscInt d ! PetscInt
197: PetscInt e (*) ! PetscInt
198: PetscScalar f ! PetscScalar
199: InsertMode g ! InsertMode
200: integer z
201: end subroutine
202: subroutine MatSetValuesnnnn(a,b,c,d,e,f,g,z)
203: use petscmatdef
204: Mat a ! Mat
205: PetscInt b ! PetscInt
206: PetscInt c (*) ! PetscInt
207: PetscInt d ! PetscInt
208: PetscInt e (*) ! PetscInt
209: PetscScalar f(1,1) ! PetscScalar
210: InsertMode g ! InsertMode
211: integer z
212: end subroutine
213: subroutine MatSetValues11(a,b,c,d,e,f,g,z)
214: use petscmatdef
215: Mat a ! Mat
216: PetscInt b ! PetscInt
217: PetscInt c ! PetscInt
218: PetscInt d ! PetscInt
219: PetscInt e ! PetscInt
220: PetscScalar f ! PetscScalar
221: InsertMode g ! InsertMode
222: integer z
223: end subroutine
224: subroutine MatSetValues1n(a,b,c,d,e,f,g,z)
225: use petscmatdef
226: Mat a ! Mat
227: PetscInt b ! PetscInt
228: PetscInt c ! PetscInt
229: PetscInt d ! PetscInt
230: PetscInt e (*) ! PetscInt
231: PetscScalar f (*) ! PetscScalar
232: InsertMode g ! InsertMode
233: integer z
234: end subroutine
235: subroutine MatSetValuesn1(a,b,c,d,e,f,g,z)
236: use petscmatdef
237: Mat a ! Mat
238: PetscInt b ! PetscInt
239: PetscInt c (*) ! PetscInt
240: PetscInt d ! PetscInt
241: PetscInt e ! PetscInt
242: PetscScalar f (*) ! PetscScalar
243: InsertMode g ! InsertMode
244: integer z
245: end subroutine
246: End Interface MatSetValues
248: Interface MatSetValuesLocal
249: ! picky Fortran requires seperate prototypes if args
250: ! are arrays or scalars
251: subroutine MatSetValuesLocal0(a,b,c,d,e,f,g,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: InsertMode g ! InsertMode
260: integer z
261: end subroutine
262: subroutine MatSetValuesLocal11(a,b,c,d,e,f,g,z)
263: use petscmatdef
264: Mat a ! Mat
265: PetscInt b ! PetscInt
266: PetscInt c ! PetscInt
267: PetscInt d ! PetscInt
268: PetscInt e ! PetscInt
269: PetscScalar f(*) ! PetscScalar
270: InsertMode g ! InsertMode
271: integer z
272: end subroutine
273: subroutine MatSetValuesLocal11nn(a,b,c,d,e,f,g,z)
274: use petscmatdef
275: Mat a ! Mat
276: PetscInt b ! PetscInt
277: PetscInt c ! PetscInt
278: PetscInt d ! PetscInt
279: PetscInt e ! PetscInt
280: PetscScalar f(1,1) ! PetscScalar
281: InsertMode g ! InsertMode
282: integer z
283: end subroutine
284: subroutine MatSetValuesLocal111(a,b,c,d,e,f,g,z)
285: use petscmatdef
286: Mat a ! Mat
287: PetscInt b ! PetscInt
288: PetscInt c ! PetscInt
289: PetscInt d ! PetscInt
290: PetscInt e ! PetscInt
291: PetscScalar f ! PetscScalar
292: InsertMode g ! InsertMode
293: integer z
294: end subroutine
295: subroutine MatSetValuesLocal1n(a,b,c,d,e,f,g,z)
296: use petscmatdef
297: Mat a ! Mat
298: PetscInt b ! PetscInt
299: PetscInt c ! PetscInt
300: PetscInt d ! PetscInt
301: PetscInt e (*) ! PetscInt
302: PetscScalar f (*) ! PetscScalar
303: InsertMode g ! InsertMode
304: integer z
305: end subroutine
306: subroutine MatSetValuesLocaln1(a,b,c,d,e,f,g,z)
307: use petscmatdef
308: Mat a ! Mat
309: PetscInt b ! PetscInt
310: PetscInt c (*) ! PetscInt
311: PetscInt d ! PetscInt
312: PetscInt e ! PetscInt
313: PetscScalar f (*) ! PetscScalar
314: InsertMode g ! InsertMode
315: integer z
316: end subroutine
317: End Interface MatSetValuesLocal
319: Interface MatSetValuesBlockedLocal
320: ! picky Fortran requires seperate prototypes if args
321: ! are arrays or scalars
322: subroutine MatSetValuesBlockedLocal0(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: integer z
332: end subroutine
333: subroutine MatSetValuesBlockedLocal11(a,b,c,d,e,f,g,z)
334: use petscmatdef
335: Mat a ! Mat
336: PetscInt b ! PetscInt
337: PetscInt c ! PetscInt
338: PetscInt d ! PetscInt
339: PetscInt e ! PetscInt
340: PetscScalar f(*) ! PetscScalar
341: InsertMode g ! InsertMode
342: integer z
343: end subroutine
344: subroutine MatSetValuesBlockedLocal111(a,b,c,d,e,f,g,z)
345: use petscmatdef
346: Mat a ! Mat
347: PetscInt b ! PetscInt
348: PetscInt c ! PetscInt
349: PetscInt d ! PetscInt
350: PetscInt e ! PetscInt
351: PetscScalar f(1,1) ! PetscScalar
352: InsertMode g ! InsertMode
353: integer z
354: end subroutine
355: subroutine MatSetValuesBlockedLocal1n(a,b,c,d,e,f,g,z)
356: use petscmatdef
357: Mat a ! Mat
358: PetscInt b ! PetscInt
359: PetscInt c ! PetscInt
360: PetscInt d ! PetscInt
361: PetscInt e (*) ! PetscInt
362: PetscScalar f (*) ! PetscScalar
363: InsertMode g ! InsertMode
364: integer z
365: end subroutine
366: subroutine MatSetValuesBlockedLocaln1(a,b,c,d,e,f,g,z)
367: use petscmatdef
368: Mat a ! Mat
369: PetscInt b ! PetscInt
370: PetscInt c (*) ! PetscInt
371: PetscInt d ! PetscInt
372: PetscInt e ! PetscInt
373: PetscScalar f (*) ! PetscScalar
374: InsertMode g ! InsertMode
375: integer z
376: end subroutine
377: End Interface MatSetValuesBlockedLocal
379: Interface MatSetValuesBlocked
380: ! picky Fortran requires seperate prototypes if args
381: ! are arrays or scalars
382: subroutine MatSetValuesBlocked2(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, pointer :: f (:,:)
390: InsertMode g ! InsertMode
391: integer z
392: end subroutine
393: subroutine MatSetValuesBlocked0(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: integer z
403: end subroutine
404: subroutine MatSetValuesBlocked11(a,b,c,d,e,f,g,z)
405: use petscmatdef
406: Mat a ! Mat
407: PetscInt b ! PetscInt
408: PetscInt c ! PetscInt
409: PetscInt d ! PetscInt
410: PetscInt e ! PetscInt
411: PetscScalar f(*) ! PetscScalar
412: InsertMode g ! InsertMode
413: integer z
414: end subroutine
415: subroutine MatSetValuesBlocked111(a,b,c,d,e,f,g,z)
416: use petscmatdef
417: Mat a ! Mat
418: PetscInt b ! PetscInt
419: PetscInt c ! PetscInt
420: PetscInt d ! PetscInt
421: PetscInt e ! PetscInt
422: PetscScalar f(1,1) ! PetscScalar
423: InsertMode g ! InsertMode
424: integer z
425: end subroutine
426: subroutine MatSetValuesBlocked1n(a,b,c,d,e,f,g,z)
427: use petscmatdef
428: Mat a ! Mat
429: PetscInt b ! PetscInt
430: PetscInt c ! PetscInt
431: PetscInt d ! PetscInt
432: PetscInt e (*) ! PetscInt
433: PetscScalar f (*) ! PetscScalar
434: InsertMode g ! InsertMode
435: integer z
436: end subroutine
437: subroutine MatSetValuesBlockedn1(a,b,c,d,e,f,g,z)
438: use petscmatdef
439: Mat xa ! Mat
440: PetscInt b ! PetscInt
441: PetscInt c (*) ! PetscInt
442: PetscInt d ! PetscInt
443: PetscInt e ! PetscInt
444: PetscScalar f (*) ! PetscScalar
445: InsertMode g ! InsertMode
446: integer z
447: end subroutine
448: End Interface MatSetValuesBlocked
450: Interface
451: Subroutine MatGetRow(v,row,ncols,cols,vals,ierr)
452: use petscmatdef
453: PetscInt cols(*)
454: PetscInt row,ncols
455: PetscScalar vals(*)
456: PetscErrorCode ierr
457: Mat v
458: End Subroutine
459: End Interface
461: Interface
462: Subroutine MatRestoreRow(v,row,ncols,cols,vals,ierr)
463: use petscmatdef
464: PetscInt cols(*)
465: PetscInt row,ncols
466: PetscScalar vals(*)
467: PetscErrorCode ierr
468: Mat v
469: End Subroutine
470: End Interface
472: Interface
473: Subroutine MatGetRowIJF90(v,sh,sym,bl,n,ia,ja,d,ierr)
474: use petscmatdef
475: PetscInt, pointer :: ia(:), ja(:)
476: PetscInt n,sh
477: PetscBool sym,bl,d
478: PetscErrorCode ierr
479: Mat v
480: End Subroutine
481: End Interface
483: Interface
484: Subroutine MatRestoreRowIJF90(v,s,sy,b,n,ia,ja,d,ierr)
485: use petscmatdef
486: PetscInt, pointer :: ia(:), ja(:)
487: PetscInt n,s
488: PetscBool sy,b,d
489: PetscErrorCode ierr
490: Mat v
491: End Subroutine
492: End Interface
494: Interface
495: Subroutine MatDenseGetArrayF90(v,array,ierr)
496: use petscmatdef
497: PetscScalar, pointer :: array(:,:)
498: PetscErrorCode ierr
499: Mat v
500: End Subroutine
501: End Interface
504: Interface
505: Subroutine MatDenseRestoreArrayF90(v,array,ierr)
506: use petscmatdef
507: PetscScalar, pointer :: array(:,:)
508: PetscErrorCode ierr
509: Mat v
510: End Subroutine
511: End Interface
513: Interface
514: Subroutine MatSeqAIJGetArrayF90(v,array,ierr)
515: use petscmatdef
516: PetscScalar, pointer :: array(:)
517: PetscErrorCode ierr
518: Mat v
519: End Subroutine
520: End Interface
523: Interface
524: Subroutine MatSeqAIJRestoreArrayF90(v,array,ierr)
525: use petscmatdef
526: PetscScalar, pointer :: array(:)
527: PetscErrorCode ierr
528: Mat v
529: End Subroutine
530: End Interface
532: Interface
533: Subroutine MatGetGhostsF90(v,array,ierr)
534: use petscmatdef
535: PetscInt, pointer :: array(:)
536: PetscErrorCode ierr
537: Mat v
538: End Subroutine
539: End Interface
541: Interface
542: Subroutine MatGetInfo(v, flag, info ,ierr)
543: use petscmatdef
544: Mat v
545: MatInfoType flag
546: #include "../src/mat/f90-mod/petscmatinfosize.h"
547: MatInfo info(MAT_INFO_SIZE)
548: PetscErrorCode ierr
549: End Subroutine
550: End Interface
552: Interface
553: subroutine MatLUFactor(v, row, col, info ,ierr)
554: use petscmatdef
555: Mat v
556: IS row
557: IS col
558: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
559: MatFactorInfo info(MAT_FACTORINFO_SIZE)
560: PetscErrorCode ierr
561: end subroutine
562: End Interface
564: Interface
565: subroutine MatILUFactor(v, row, col, info ,ierr)
566: use petscmatdef
567: Mat v
568: IS row
569: IS col
570: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
571: MatFactorInfo info(MAT_FACTORINFO_SIZE)
572: PetscErrorCode ierr
573: end subroutine
574: End Interface
576: Interface
577: subroutine MatLUFactorSymbolic(fact, v, row, col, info ,ierr)
578: use petscmatdef
579: Mat fact
580: Mat v
581: IS row
582: IS col
583: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
584: MatFactorInfo info(MAT_FACTORINFO_SIZE)
585: PetscErrorCode ierr
586: end subroutine
587: End Interface
589: Interface
590: subroutine MatLUFactorNumeric(fact, v, info ,ierr)
591: use petscmatdef
592: Mat fact
593: Mat v
594: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
595: MatFactorInfo info(MAT_FACTORINFO_SIZE)
596: PetscErrorCode ierr
597: end subroutine
598: End Interface
600: Interface
601: subroutine MatCholeskyFactor(v, perm, info ,ierr)
602: use petscmatdef
603: Mat v
604: IS perm
605: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
606: MatFactorInfo info(MAT_FACTORINFO_SIZE)
607: PetscErrorCode ierr
608: end subroutine
609: End Interface
611: Interface
612: subroutine MatCholeskyFactorSymbolic(fact,v,perm,info,ierr)
613: use petscmatdef
614: Mat fact
615: Mat v
616: IS perm
617: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
618: MatFactorInfo info(MAT_FACTORINFO_SIZE)
619: PetscErrorCode ierr
620: end subroutine
621: End Interface
623: Interface
624: subroutine MatCholeskyFactorNumeric(fact, v, info ,ierr)
625: use petscmatdef
626: Mat fact
627: Mat v
628: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
629: MatFactorInfo info(MAT_FACTORINFO_SIZE)
630: PetscErrorCode ierr
631: end subroutine
632: End Interface
634: Interface
635: subroutine MatILUFactorSymbolic(fact,v,row,col,info,ierr)
636: use petscmatdef
637: Mat fact
638: Mat v
639: IS row
640: IS col
641: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
642: MatFactorInfo info(MAT_FACTORINFO_SIZE)
643: PetscErrorCode ierr
644: end subroutine
645: End Interface
647: Interface
648: subroutine MatICCFactorSymbolic(fact, v, perm, info ,ierr)
649: use petscmatdef
650: Mat fact
651: Mat v
652: IS perm
653: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
654: MatFactorInfo info(MAT_FACTORINFO_SIZE)
655: PetscErrorCode ierr
656: end subroutine
657: End Interface
659: Interface
660: subroutine MatICCFactor(v, row, info ,ierr)
661: use petscmatdef
662: Mat v
663: IS row
664: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"
665: MatFactorInfo info(MAT_FACTORINFO_SIZE)
666: PetscErrorCode ierr
667: end subroutine
668: End Interface
670: Interface
671: subroutine MatGetGetNullSpace(A,n,ierr)
672: use petscmatdef
673: Mat A
674: MatNullSpace n
675: PetscErrorCode ierr
676: end subroutine
677: End Interface
679: Interface
680: subroutine MatFactorInfoInitialize(info ,ierr)
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 MatSetType(a,b,z)
689: use petscmatdef
690: Mat a
691: character(*) b
692: integer z
693: end subroutine
694: end Interface
696: Interface
697: subroutine MatView(a,b,z)
698: use petscmatdef
699: Mat a
700: PetscViewer b
701: integer z
702: end subroutine
703: end Interface
705: ! revert MAT_INFO_SIZE and MAT_FACTORINFO_SIZE defines
706: #undef MAT_INFO_SIZE
707: #undef MAT_FACTORINFO_SIZE