Actual source code: petscmat.h

petsc-3.8.4 2018-03-24
Report Typos and Errors
  1: !
  2: !
  3: !  Include file for Fortran use of the Mat package in PETSc
  4: !
  5: #include "petsc/finclude/petscmat.h"

  7:       type tMat
  8:         sequence
  9:         PetscFortranAddr:: v
 10:       end type tMat
 11:       type tMatNullSpace
 12:         sequence
 13:         PetscFortranAddr:: v
 14:       end type tMatNullSpace
 15:       type tMatFDColoring
 16:         sequence
 17:         PetscFortranAddr:: v
 18:       end type tMatFDColoring

 20:       Mat, parameter :: PETSC_NULL_MAT = tMat(-1)
 21:       MatFDColoring, parameter :: PETSC_NULL_MATFDCOLORING               &
 22:      &               = tMatFDColoring(-1)
 23: !
 24: !  Flag for matrix assembly
 25: !
 26:       PetscEnum MAT_FLUSH_ASSEMBLY
 27:       PetscEnum MAT_FINAL_ASSEMBLY

 29:       parameter(MAT_FLUSH_ASSEMBLY=1,MAT_FINAL_ASSEMBLY=0)
 30: !
 31: !
 32: !
 33:       PetscEnum MAT_FACTOR_NONE
 34:       PetscEnum MAT_FACTOR_LU
 35:       PetscEnum MAT_FACTOR_CHOLESKY
 36:       PetscEnum MAT_FACTOR_ILU
 37:       PetscEnum MAT_FACTOR_ICC

 39:       parameter(MAT_FACTOR_NONE=0,MAT_FACTOR_LU=1)
 40:       parameter(MAT_FACTOR_CHOLESKY=2,MAT_FACTOR_ILU=3)
 41:       parameter(MAT_FACTOR_ICC=4)

 43: ! MatCreateSubMatrixOption
 44:       PetscEnum MAT_DO_NOT_GET_VALUES
 45:       PetscEnum MAT_GET_VALUES
 46:       parameter(MAT_DO_NOT_GET_VALUES=0,MAT_GET_VALUES=1)

 48: !
 49: !  MatOption; must match those in include/petscmat.h
 50: !
 51:       PetscEnum MAT_OPTION_MIN
 52:       PetscEnum MAT_UNUSED_NONZERO_LOCATION_ERR
 53:       PetscEnum MAT_ROW_ORIENTED
 54:       PetscEnum MAT_SYMMETRIC
 55:       PetscEnum MAT_STRUCTURALLY_SYMMETRIC
 56:       PetscEnum MAT_NEW_DIAGONALS
 57:       PetscEnum MAT_IGNORE_OFF_PROC_ENTRIES
 58:       PetscEnum MAT_USE_HASH_TABLE
 59:       PetscEnum MAT_KEEP_NONZERO_PATTERN
 60:       PetscEnum MAT_IGNORE_ZERO_ENTRIES
 61:       PetscEnum MAT_USE_INODES
 62:       PetscEnum MAT_HERMITIAN
 63:       PetscEnum MAT_SYMMETRY_ETERNAL
 64:       PetscEnum MAT_NEW_NONZERO_LOCATION_ERR
 65:       PetscEnum MAT_IGNORE_LOWER_TRIANGULAR
 66:       PetscEnum MAT_ERROR_LOWER_TRIANGULAR
 67:       PetscEnum MAT_GETROW_UPPERTRIANGULAR
 68:       PetscEnum MAT_SPD
 69:       PetscEnum MAT_NO_OFF_PROC_ZERO_ROWS
 70:       PetscEnum MAT_NO_OFF_PROC_ENTRIES
 71:       PetscEnum MAT_NEW_NONZERO_LOCATIONS
 72:       PetscEnum MAT_NEW_NONZERO_ALLOCATION_ERR
 73:       PetscEnum MAT_SUBSET_OFF_PROC_ENTRIES
 74:       PetscEnum MAT_SUBMAT_SINGLEIS
 75:       PetscEnum MAT_STRUCTURE_ONLY
 76:       PetscEnum MAT_OPTION_MAX

 78:       parameter(MAT_OPTION_MIN = -3)
 79:       parameter(MAT_UNUSED_NONZERO_LOCATION_ERR = -2)
 80:       parameter(MAT_ROW_ORIENTED = -1)
 81:       parameter(MAT_SYMMETRIC = 1)
 82:       parameter(MAT_STRUCTURALLY_SYMMETRIC = 2)
 83:       parameter(MAT_NEW_DIAGONALS = 3)
 84:       parameter(MAT_IGNORE_OFF_PROC_ENTRIES = 4)
 85:       parameter(MAT_USE_HASH_TABLE = 5)
 86:       parameter(MAT_KEEP_NONZERO_PATTERN = 6)
 87:       parameter(MAT_IGNORE_ZERO_ENTRIES = 7)
 88:       parameter(MAT_USE_INODES = 8)
 89:       parameter(MAT_HERMITIAN = 9)
 90:       parameter(MAT_SYMMETRY_ETERNAL = 10)
 91:       parameter(MAT_NEW_NONZERO_LOCATION_ERR = 11)
 92:       parameter(MAT_IGNORE_LOWER_TRIANGULAR = 12)
 93:       parameter(MAT_ERROR_LOWER_TRIANGULAR = 13)
 94:       parameter(MAT_GETROW_UPPERTRIANGULAR = 14)
 95:       parameter(MAT_SPD = 15)
 96:       parameter(MAT_NO_OFF_PROC_ZERO_ROWS = 16)
 97:       parameter(MAT_NO_OFF_PROC_ENTRIES = 17)
 98:       parameter(MAT_NEW_NONZERO_LOCATIONS = 18)
 99:       parameter(MAT_NEW_NONZERO_ALLOCATION_ERR = 19)
100:       parameter(MAT_SUBSET_OFF_PROC_ENTRIES = 20)
101:       parameter(MAT_SUBMAT_SINGLEIS = 21)
102:       parameter(MAT_STRUCTURE_ONLY = 22)
103:       parameter(MAT_OPTION_MAX = 23)
104: !
105: !  MatFactorShiftType
106: !
107:       PetscEnum MAT_SHIFT_NONE
108:       PetscEnum MAT_SHIFT_NONZERO
109:       PetscEnum MAT_SHIFT_POSITIVE_DEFINITE
110:       PetscEnum MAT_SHIFT_INBLOCKS
111:       parameter (MAT_SHIFT_NONE=0)
112:       parameter (MAT_SHIFT_NONZERO=1)
113:       parameter (MAT_SHIFT_POSITIVE_DEFINITE=2)
114:       parameter (MAT_SHIFT_INBLOCKS=3)
115: !
116: !  MatFactorError
117: !
118:       PetscEnum MAT_FACTOR_NOERROR
119:       PetscEnum MAT_FACTOR_STRUCT_ZEROPIVOT
120:       PetscEnum MAT_FACTOR_NUMERIC_ZEROPIVOT
121:       PetscEnum MAT_FACTOR_OUTMEMORY
122:       PetscEnum MAT_FACTOR_OTHER

124:       parameter (MAT_FACTOR_NOERROR=0)
125:       parameter (MAT_FACTOR_STRUCT_ZEROPIVOT=1)
126:       parameter (MAT_FACTOR_NUMERIC_ZEROPIVOT=2)
127:       parameter (MAT_FACTOR_OUTMEMORY=3)
128:       parameter (MAT_FACTOR_OTHER=4)
129: !
130: !  MatDuplicateOption
131: !
132:       PetscEnum MAT_DO_NOT_COPY_VALUES
133:       PetscEnum MAT_COPY_VALUES
134:       PetscEnum MAT_SHARE_NONZERO_PATTERN
135:       parameter (MAT_DO_NOT_COPY_VALUES=0,MAT_COPY_VALUES=1)
136:       parameter (MAT_SHARE_NONZERO_PATTERN=2)
137: !
138: !  Flags for MatCopy, MatAXPY
139: !
140:       PetscEnum DIFFERENT_NONZERO_PATTERN
141:       PetscEnum SUBSET_NONZERO_PATTERN
142:       PetscEnum SAME_NONZERO_PATTERN

144:       parameter (DIFFERENT_NONZERO_PATTERN = 0,SUBSET_NONZERO_PATTERN=1)
145:       parameter (SAME_NONZERO_PATTERN = 2)

147: #include "../src/mat/f90-mod/petscmatinfosize.h"

149:       PetscEnum MAT_INFO_BLOCK_SIZE
150:       PetscEnum MAT_INFO_NZ_ALLOCATED
151:       PetscEnum MAT_INFO_NZ_USED
152:       PetscEnum MAT_INFO_NZ_UNNEEDED
153:       PetscEnum MAT_INFO_MEMORY
154:       PetscEnum MAT_INFO_ASSEMBLIES
155:       PetscEnum MAT_INFO_MALLOCS
156:       PetscEnum MAT_INFO_FILL_RATIO_GIVEN
157:       PetscEnum MAT_INFO_FILL_RATIO_NEEDED
158:       PetscEnum MAT_INFO_FACTOR_MALLOCS

160:       parameter (MAT_INFO_BLOCK_SIZE=1,MAT_INFO_NZ_ALLOCATED=2)
161:       parameter (MAT_INFO_NZ_USED=3,MAT_INFO_NZ_UNNEEDED=4)
162:       parameter (MAT_INFO_MEMORY=5,MAT_INFO_ASSEMBLIES=6)
163:       parameter (MAT_INFO_MALLOCS=7,MAT_INFO_FILL_RATIO_GIVEN=8)
164:       parameter (MAT_INFO_FILL_RATIO_NEEDED=9)
165:       parameter (MAT_INFO_FACTOR_MALLOCS=10)
166: !
167: !  MatReuse
168: !
169:       PetscEnum MAT_INITIAL_MATRIX
170:       PetscEnum MAT_REUSE_MATRIX
171:       PetscEnum MAT_IGNORE_MATRIX
172:       PetscEnum MAT_INPLACE_MATRIX

174:       parameter (MAT_INITIAL_MATRIX=0)
175:       parameter (MAT_REUSE_MATRIX=1)
176:       parameter (MAT_IGNORE_MATRIX=2)
177:       parameter (MAT_INPLACE_MATRIX=3)

179: !
180: !  MatInfoType
181: !
182:       PetscEnum MAT_LOCAL
183:       PetscEnum MAT_GLOBAL_MAX
184:       PetscEnum MAT_GLOBAL_SUM

186:       parameter (MAT_LOCAL=1,MAT_GLOBAL_MAX=2,MAT_GLOBAL_SUM=3)

188: !
189: !  MatCompositeType
190: !
191:       PetscEnum MAT_COMPOSITE_ADDITIVE
192:       PetscEnum MAT_COMPOSITE_MULTIPLICATIVE

194:       parameter (MAT_COMPOSITE_ADDITIVE = 0)
195:       parameter (MAT_COMPOSITE_MULTIPLICATIVE = 1)

197: #include "../src/mat/f90-mod/petscmatfactorinfosize.h"

199:       PetscEnum MAT_FACTORINFO_DIAGONAL_FILL
200:       PetscEnum MAT_FACTORINFO_USEDT
201:       PetscEnum MAT_FACTORINFO_DT
202:       PetscEnum MAT_FACTORINFO_DTCOL
203:       PetscEnum MAT_FACTORINFO_DTCOUNT
204:       PetscEnum MAT_FACTORINFO_FILL
205:       PetscEnum MAT_FACTORINFO_LEVELS
206:       PetscEnum MAT_FACTORINFO_PIVOT_IN_BLOCKS
207:       PetscEnum MAT_FACTORINFO_ZERO_PIVOT
208:       PetscEnum MAT_FACTORINFO_SHIFT_TYPE
209:       PetscEnum MAT_FACTORINFO_SHIFT_AMOUNT

211:       parameter (MAT_FACTORINFO_DIAGONAL_FILL = 1)
212:       parameter (MAT_FACTORINFO_USEDT = 2)
213:       parameter (MAT_FACTORINFO_DT = 3)
214:       parameter (MAT_FACTORINFO_DTCOL = 4)
215:       parameter (MAT_FACTORINFO_DTCOUNT = 5)
216:       parameter (MAT_FACTORINFO_FILL = 6)
217:       parameter (MAT_FACTORINFO_LEVELS = 7)
218:       parameter (MAT_FACTORINFO_PIVOT_IN_BLOCKS = 8)
219:       parameter (MAT_FACTORINFO_ZERO_PIVOT = 9)
220:       parameter (MAT_FACTORINFO_SHIFT_TYPE = 10)
221:       parameter (MAT_FACTORINFO_SHIFT_AMOUNT = 11)


224: !
225: !  Options for SOR and SSOR
226: !  MatSorType may be bitwise ORd together, so do not change the numbers
227: !
228:       PetscEnum SOR_FORWARD_SWEEP
229:       PetscEnum SOR_BACKWARD_SWEEP
230:       PetscEnum SOR_SYMMETRIC_SWEEP
231:       PetscEnum SOR_LOCAL_FORWARD_SWEEP
232:       PetscEnum SOR_LOCAL_BACKWARD_SWEEP
233:       PetscEnum SOR_LOCAL_SYMMETRIC_SWEEP
234:       PetscEnum SOR_ZERO_INITIAL_GUESS
235:       PetscEnum SOR_EISENSTAT
236:       PetscEnum SOR_APPLY_UPPER
237:       PetscEnum SOR_APPLY_LOWER

239:       parameter (SOR_FORWARD_SWEEP=1,SOR_BACKWARD_SWEEP=2)
240:       parameter (SOR_SYMMETRIC_SWEEP=3,SOR_LOCAL_FORWARD_SWEEP=4)
241:       parameter (SOR_LOCAL_BACKWARD_SWEEP=8)
242:       parameter (SOR_LOCAL_SYMMETRIC_SWEEP=12)
243:       parameter (SOR_ZERO_INITIAL_GUESS=16,SOR_EISENSTAT=32)
244:       parameter (SOR_APPLY_UPPER=64,SOR_APPLY_LOWER=128)
245: !
246: !  MatOperation
247: !
248:       PetscEnum MATOP_SET_VALUES
249:       PetscEnum MATOP_GET_ROW
250:       PetscEnum MATOP_RESTORE_ROW
251:       PetscEnum MATOP_MULT
252:       PetscEnum MATOP_MULT_ADD
253:       PetscEnum MATOP_MULT_TRANSPOSE
254:       PetscEnum MATOP_MULT_TRANSPOSE_ADD
255:       PetscEnum MATOP_SOLVE
256:       PetscEnum MATOP_SOLVE_ADD
257:       PetscEnum MATOP_SOLVE_TRANSPOSE
258:       PetscEnum MATOP_SOLVE_TRANSPOSE_ADD
259:       PetscEnum MATOP_LUFACTOR
260:       PetscEnum MATOP_CHOLESKYFACTOR
261:       PetscEnum MATOP_SOR
262:       PetscEnum MATOP_TRANSPOSE
263:       PetscEnum MATOP_GETINFO
264:       PetscEnum MATOP_EQUAL
265:       PetscEnum MATOP_GET_DIAGONAL
266:       PetscEnum MATOP_DIAGONAL_SCALE
267:       PetscEnum MATOP_NORM
268:       PetscEnum MATOP_ASSEMBLY_BEGIN
269:       PetscEnum MATOP_ASSEMBLY_END
270:       PetscEnum MATOP_SET_OPTION
271:       PetscEnum MATOP_ZERO_ENTRIES
272:       PetscEnum MATOP_ZERO_ROWS
273:       PetscEnum MATOP_LUFACTOR_SYMBOLIC
274:       PetscEnum MATOP_LUFACTOR_NUMERIC
275:       PetscEnum MATOP_CHOLESKY_FACTOR_SYMBOLIC
276:       PetscEnum MATOP_CHOLESKY_FACTOR_NUMERIC
277:       PetscEnum MATOP_SETUP_PREALLOCATION
278:       PetscEnum MATOP_ILUFACTOR_SYMBOLIC
279:       PetscEnum MATOP_ICCFACTOR_SYMBOLIC
280:       PetscEnum MATOP_GET_DIAGONAL_BLOCK
281: !     PetscEnum MATOP_PLACEHOLDER_33
282:       PetscEnum MATOP_DUPLICATE
283:       PetscEnum MATOP_FORWARD_SOLVE
284:       PetscEnum MATOP_BACKWARD_SOLVE
285:       PetscEnum MATOP_ILUFACTOR
286:       PetscEnum MATOP_ICCFACTOR
287:       PetscEnum MATOP_AXPY
288:       PetscEnum MATOP_CREATE_SUBMATRICES
289:       PetscEnum MATOP_INCREASE_OVERLAP
290:       PetscEnum MATOP_GET_VALUES
291:       PetscEnum MATOP_COPY
292:       PetscEnum MATOP_GET_ROW_MAX
293:       PetscEnum MATOP_SCALE
294:       PetscEnum MATOP_SHIFT
295:       PetscEnum MATOP_DIAGONAL_SET
296:       PetscEnum MATOP_ZERO_ROWS_COLUMNS
297:       PetscEnum MATOP_SET_RANDOM
298:       PetscEnum MATOP_GET_ROW_IJ
299:       PetscEnum MATOP_RESTORE_ROW_IJ
300:       PetscEnum MATOP_GET_COLUMN_IJ
301:       PetscEnum MATOP_RESTORE_COLUMN_IJ
302:       PetscEnum MATOP_FDCOLORING_CREATE
303:       PetscEnum MATOP_COLORING_PATCH
304:       PetscEnum MATOP_SET_UNFACTORED
305:       PetscEnum MATOP_PERMUTE
306:       PetscEnum MATOP_SET_VALUES_BLOCKED
307:       PetscEnum MATOP_CREATE_SUBMATRIX
308:       PetscEnum MATOP_DESTROY
309:       PetscEnum MATOP_VIEW
310:       PetscEnum MATOP_CONVERT_FROM
311:       PetscEnum MATOP_MATMAT_MULT
312:       PetscEnum MATOP_MATMAT_MULT_SYMBOLIC
313:       PetscEnum MATOP_MATMAT_MULT_NUMERIC
314:       PetscEnum MATOP_SET_LOCAL_TO_GLOBAL_MAP
315:       PetscEnum MATOP_SET_VALUES_LOCAL
316:       PetscEnum MATOP_ZERO_ROWS_LOCAL
317:       PetscEnum MATOP_GET_ROW_MAX_ABS
318:       PetscEnum MATOP_GET_ROW_MIN_ABS
319:       PetscEnum MATOP_CONVERT
320:       PetscEnum MATOP_SET_COLORING
321: !     PetscEnum MATOP_PLACEHOLDER_73
322:       PetscEnum MATOP_SET_VALUES_ADIFOR
323:       PetscEnum MATOP_FD_COLORING_APPLY
324:       PetscEnum MATOP_SET_FROM_OPTIONS
325:       PetscEnum MATOP_MULT_CONSTRAINED
326:       PetscEnum MATOP_MULT_TRANSPOSE_CONSTRAIN
327:       PetscEnum MATOP_FIND_ZERO_DIAGONALS
328:       PetscEnum MATOP_MULT_MULTIPLE
329:       PetscEnum MATOP_SOLVE_MULTIPLE
330:       PetscEnum MATOP_GET_INERTIA
331:       PetscEnum MATOP_LOAD
332:       PetscEnum MATOP_IS_SYMMETRIC
333:       PetscEnum MATOP_IS_HERMITIAN
334:       PetscEnum MATOP_IS_STRUCTURALLY_SYMMETRIC
335:       PetscEnum MATOP_SET_VALUES_BLOCKEDLOCAL
336:       PetscEnum MATOP_CREATE_VECS
337:       PetscEnum MATOP_MAT_MULT
338:       PetscEnum MATOP_MAT_MULT_SYMBOLIC
339:       PetscEnum MATOP_MAT_MULT_NUMERIC
340:       PetscEnum MATOP_PTAP
341:       PetscEnum MATOP_PTAP_SYMBOLIC
342:       PetscEnum MATOP_PTAP_NUMERIC
343:       PetscEnum MATOP_MAT_TRANSPOSE_MULT
344:       PetscEnum MATOP_MAT_TRANSPOSE_MULT_SYMBO
345:       PetscEnum MATOP_MAT_TRANSPOSE_MULT_NUMER
346: !     PetscEnum MATOP_PLACEHOLDER_98
347: !     PetscEnum MATOP_PLACEHOLDER_99
348: !     PetscEnum MATOP_PLACEHOLDER_100
349: !     PetscEnum MATOP_PLACEHOLDER_101
350:       PetscEnum MATOP_CONJUGATE
351: !     PetscEnum MATOP_PLACEHOLDER_103
352:       PetscEnum MATOP_SET_VALUES_ROW
353:       PetscEnum MATOP_REAL_PART
354:       PetscEnum MATOP_IMAGINARY_PART
355:       PetscEnum MATOP_GET_ROW_UPPER_TRIANGULAR
356:       PetscEnum MATOP_RESTORE_ROW_UPPER_TRIANG
357:       PetscEnum MATOP_MAT_SOLVE
358:       PetscEnum MATOP_MAT_SOLVE_TRANSPOSE
359:       PetscEnum MATOP_GET_ROW_MIN
360:       PetscEnum MATOP_GET_COLUMN_VECTOR
361:       PetscEnum MATOP_MISSING_DIAGONAL
362:       PetscEnum MATOP_GET_SEQ_NONZERO_STRUCTUR
363:       PetscEnum MATOP_CREATE
364:       PetscEnum MATOP_GET_GHOSTS
365:       PetscEnum MATOP_GET_LOCAL_SUB_MATRIX
366:       PetscEnum MATOP_RESTORE_LOCALSUB_MATRIX
367:       PetscEnum MATOP_MULT_DIAGONAL_BLOCK
368:       PetscEnum MATOP_HERMITIAN_TRANSPOSE
369:       PetscEnum MATOP_MULT_HERMITIAN_TRANSPOSE
370:       PetscEnum MATOP_MULT_HERMITIAN_TRANS_ADD
371:       PetscEnum MATOP_GET_MULTI_PROC_BLOCK
372:       PetscEnum MATOP_FIND_NONZERO_ROWS
373:       PetscEnum MATOP_GET_COLUMN_NORMS
374:       PetscEnum MATOP_INVERT_BLOCK_DIAGONAL
375: !     PetscEnum MATOP_PLACEHOLDER_127
376:       PetscEnum MATOP_CREATE_SUB_MATRICES_MPI
377:       PetscEnum MATOP_SET_VALUES_BATCH
378:       PetscEnum MATOP_TRANSPOSE_MAT_MULT
379:       PetscEnum MATOP_TRANSPOSE_MAT_MULT_SYMBO
380:       PetscEnum MATOP_TRANSPOSE_MAT_MULT_NUMER
381:       PetscEnum MATOP_TRANSPOSE_COLORING_CREAT
382:       PetscEnum MATOP_TRANS_COLORING_APPLY_SPT
383:       PetscEnum MATOP_TRANS_COLORING_APPLY_DEN
384:       PetscEnum MATOP_RART
385:       PetscEnum MATOP_RART_SYMBOLIC
386:       PetscEnum MATOP_RART_NUMERIC
387:       PetscEnum MATOP_SET_BLOCK_SIZES
388:       PetscEnum MATOP_AYPX
389:       PetscEnum MATOP_RESIDUAL
390:       PetscEnum MATOP_FDCOLORING_SETUP
391:       PetscEnum MATOP_MPICONCATENATESEQ

393:       parameter(MATOP_SET_VALUES=0)
394:       parameter(MATOP_GET_ROW=1)
395:       parameter(MATOP_RESTORE_ROW=2)
396:       parameter(MATOP_MULT=3)
397:       parameter(MATOP_MULT_ADD=4)
398:       parameter(MATOP_MULT_TRANSPOSE=5)
399:       parameter(MATOP_MULT_TRANSPOSE_ADD=6)
400:       parameter(MATOP_SOLVE=7)
401:       parameter(MATOP_SOLVE_ADD=8)
402:       parameter(MATOP_SOLVE_TRANSPOSE=9)
403:       parameter(MATOP_SOLVE_TRANSPOSE_ADD=10)
404:       parameter(MATOP_LUFACTOR=11)
405:       parameter(MATOP_CHOLESKYFACTOR=12)
406:       parameter(MATOP_SOR=13)
407:       parameter(MATOP_TRANSPOSE=14)
408:       parameter(MATOP_GETINFO=15)
409:       parameter(MATOP_EQUAL=16)
410:       parameter(MATOP_GET_DIAGONAL=17)
411:       parameter(MATOP_DIAGONAL_SCALE=18)
412:       parameter(MATOP_NORM=19)
413:       parameter(MATOP_ASSEMBLY_BEGIN=20)
414:       parameter(MATOP_ASSEMBLY_END=21)
415:       parameter(MATOP_SET_OPTION=22)
416:       parameter(MATOP_ZERO_ENTRIES=23)
417:       parameter(MATOP_ZERO_ROWS=24)
418:       parameter(MATOP_LUFACTOR_SYMBOLIC=25)
419:       parameter(MATOP_LUFACTOR_NUMERIC=26)
420:       parameter(MATOP_CHOLESKY_FACTOR_SYMBOLIC=27)
421:       parameter(MATOP_CHOLESKY_FACTOR_NUMERIC=28)
422:       parameter(MATOP_SETUP_PREALLOCATION=29)
423:       parameter(MATOP_ILUFACTOR_SYMBOLIC=30)
424:       parameter(MATOP_ICCFACTOR_SYMBOLIC=31)
425:       parameter(MATOP_GET_DIAGONAL_BLOCK=32)
426: !     parameter(MATOP_PLACEHOLDER_33=33)
427:       parameter(MATOP_DUPLICATE=34)
428:       parameter(MATOP_FORWARD_SOLVE=35)
429:       parameter(MATOP_BACKWARD_SOLVE=36)
430:       parameter(MATOP_ILUFACTOR=37)
431:       parameter(MATOP_ICCFACTOR=38)
432:       parameter(MATOP_AXPY=39)
433:       parameter(MATOP_CREATE_SUBMATRICES=40)
434:       parameter(MATOP_INCREASE_OVERLAP=41)
435:       parameter(MATOP_GET_VALUES=42)
436:       parameter(MATOP_COPY=43)
437:       parameter(MATOP_GET_ROW_MAX=44)
438:       parameter(MATOP_SCALE=45)
439:       parameter(MATOP_SHIFT=46)
440:       parameter(MATOP_DIAGONAL_SET=47)
441:       parameter(MATOP_ZERO_ROWS_COLUMNS=48)
442:       parameter(MATOP_SET_RANDOM=49)
443:       parameter(MATOP_GET_ROW_IJ=50)
444:       parameter(MATOP_RESTORE_ROW_IJ=51)
445:       parameter(MATOP_GET_COLUMN_IJ=52)
446:       parameter(MATOP_RESTORE_COLUMN_IJ=53)
447:       parameter(MATOP_FDCOLORING_CREATE=54)
448:       parameter(MATOP_COLORING_PATCH=55)
449:       parameter(MATOP_SET_UNFACTORED=56)
450:       parameter(MATOP_PERMUTE=57)
451:       parameter(MATOP_SET_VALUES_BLOCKED=58)
452:       parameter(MATOP_CREATE_SUBMATRIX=59)
453:       parameter(MATOP_DESTROY=60)
454:       parameter(MATOP_VIEW=61)
455:       parameter(MATOP_CONVERT_FROM=62)
456:       parameter(MATOP_MATMAT_MULT=63)
457:       parameter(MATOP_MATMAT_MULT_SYMBOLIC=64)
458:       parameter(MATOP_MATMAT_MULT_NUMERIC=65)
459:       parameter(MATOP_SET_LOCAL_TO_GLOBAL_MAP=66)
460:       parameter(MATOP_SET_VALUES_LOCAL=67)
461:       parameter(MATOP_ZERO_ROWS_LOCAL=68)
462:       parameter(MATOP_GET_ROW_MAX_ABS=69)
463:       parameter(MATOP_GET_ROW_MIN_ABS=70)
464:       parameter(MATOP_CONVERT=71)
465:       parameter(MATOP_SET_COLORING=72)
466: !     parameter(MATOP_PLACEHOLDER_73=73)
467:       parameter(MATOP_SET_VALUES_ADIFOR=74)
468:       parameter(MATOP_FD_COLORING_APPLY=75)
469:       parameter(MATOP_SET_FROM_OPTIONS=76)
470:       parameter(MATOP_MULT_CONSTRAINED=77)
471:       parameter(MATOP_MULT_TRANSPOSE_CONSTRAIN=78)
472:       parameter(MATOP_FIND_ZERO_DIAGONALS=79)
473:       parameter(MATOP_MULT_MULTIPLE=80)
474:       parameter(MATOP_SOLVE_MULTIPLE=81)
475:       parameter(MATOP_GET_INERTIA=82)
476:       parameter(MATOP_LOAD=83)
477:       parameter(MATOP_IS_SYMMETRIC=84)
478:       parameter(MATOP_IS_HERMITIAN=85)
479:       parameter(MATOP_IS_STRUCTURALLY_SYMMETRIC=86)
480:       parameter(MATOP_SET_VALUES_BLOCKEDLOCAL=87)
481:       parameter(MATOP_CREATE_VECS=88)
482:       parameter(MATOP_MAT_MULT=89)
483:       parameter(MATOP_MAT_MULT_SYMBOLIC=90)
484:       parameter(MATOP_MAT_MULT_NUMERIC=91)
485:       parameter(MATOP_PTAP=92)
486:       parameter(MATOP_PTAP_SYMBOLIC=93)
487:       parameter(MATOP_PTAP_NUMERIC=94)
488:       parameter(MATOP_MAT_TRANSPOSE_MULT=95)
489:       parameter(MATOP_MAT_TRANSPOSE_MULT_SYMBO=96)
490:       parameter(MATOP_MAT_TRANSPOSE_MULT_NUMER=97)
491: !     parameter(MATOP_PLACEHOLDER_98=98)
492: !     parameter(MATOP_PLACEHOLDER_99=99)
493: !     parameter(MATOP_PLACEHOLDER_100=100)
494: !     parameter(MATOP_PLACEHOLDER_101=101)
495:       parameter(MATOP_CONJUGATE=102)
496: !     parameter(MATOP_PLACEHOLDER_103=103)
497:       parameter(MATOP_SET_VALUES_ROW=104)
498:       parameter(MATOP_REAL_PART=105)
499:       parameter(MATOP_IMAGINARY_PART=106)
500:       parameter(MATOP_GET_ROW_UPPER_TRIANGULAR=107)
501:       parameter(MATOP_RESTORE_ROW_UPPER_TRIANG=108)
502:       parameter(MATOP_MAT_SOLVE=109)
503:       parameter(MATOP_MAT_SOLVE_TRANSPOSE=110)
504:       parameter(MATOP_GET_ROW_MIN=111)
505:       parameter(MATOP_GET_COLUMN_VECTOR=112)
506:       parameter(MATOP_MISSING_DIAGONAL=113)
507:       parameter(MATOP_GET_SEQ_NONZERO_STRUCTUR=114)
508:       parameter(MATOP_CREATE=115)
509:       parameter(MATOP_GET_GHOSTS=116)
510:       parameter(MATOP_GET_LOCAL_SUB_MATRIX=117)
511:       parameter(MATOP_RESTORE_LOCALSUB_MATRIX=118)
512:       parameter(MATOP_MULT_DIAGONAL_BLOCK=119)
513:       parameter(MATOP_HERMITIAN_TRANSPOSE=120)
514:       parameter(MATOP_MULT_HERMITIAN_TRANSPOSE=121)
515:       parameter(MATOP_MULT_HERMITIAN_TRANS_ADD=122)
516:       parameter(MATOP_GET_MULTI_PROC_BLOCK=123)
517:       parameter(MATOP_FIND_NONZERO_ROWS=124)
518:       parameter(MATOP_GET_COLUMN_NORMS=125)
519:       parameter(MATOP_INVERT_BLOCK_DIAGONAL=126)
520: !     parameter(MATOP_PLACEHOLDER_127=127)
521:       parameter(MATOP_CREATE_SUB_MATRICES_MPI=128)
522:       parameter(MATOP_SET_VALUES_BATCH=129)
523:       parameter(MATOP_TRANSPOSE_MAT_MULT=130)
524:       parameter(MATOP_TRANSPOSE_MAT_MULT_SYMBO=131)
525:       parameter(MATOP_TRANSPOSE_MAT_MULT_NUMER=132)
526:       parameter(MATOP_TRANSPOSE_COLORING_CREAT=133)
527:       parameter(MATOP_TRANS_COLORING_APPLY_SPT=134)
528:       parameter(MATOP_TRANS_COLORING_APPLY_DEN=135)
529:       parameter(MATOP_RART=136)
530:       parameter(MATOP_RART_SYMBOLIC=137)
531:       parameter(MATOP_RART_NUMERIC=138)
532:       parameter(MATOP_SET_BLOCK_SIZES=139)
533:       parameter(MATOP_AYPX=140)
534:       parameter(MATOP_RESIDUAL=141)
535:       parameter(MATOP_FDCOLORING_SETUP=142)
536:       parameter(MATOP_MPICONCATENATESEQ=144)
537: !
538: !
539: !
540:       PetscEnum MATRIX_BINARY_FORMAT_DENSE
541:       parameter (MATRIX_BINARY_FORMAT_DENSE=-1)
542: !
543: ! MPChacoGlobalType
544:       PetscEnum MP_CHACO_MULTILEVEL_KL
545:       PetscEnum MP_CHACO_SPECTRAL
546:       PetscEnum MP_CHACO_LINEAR
547:       PetscEnum MP_CHACO_RANDOM
548:       PetscEnum MP_CHACO_SCATTERED
549:       parameter (MP_CHACO_MULTILEVEL_KL=0,MP_CHACO_SPECTRAL=1)
550:       parameter (MP_CHACO_LINEAR=2,MP_CHACO_RANDOM=3)
551:       parameter (MP_CHACO_SCATTERED=4)
552: !
553: ! MPChacoLocalType
554:       PetscEnum MP_CHACO_KERNIGHAN_LIN
555:       PetscEnum MP_CHACO_NONE
556:       parameter (MP_CHACO_KERNIGHAN_LIN=0, MP_CHACO_NONE=1)
557: !
558: ! MPChacoEigenType
559:       PetscEnum MP_CHACO_LANCZOS
560:       PetscEnum MP_CHACO_RQI_SYMMLQ
561:       parameter (MP_CHACO_LANCZOS=0, MP_CHACO_RQI_SYMMLQ=1)
562: !
563: ! MPPTScotchStrategyType
564:       PetscEnum MP_PTSCOTCH_QUALITY
565:       PetscEnum MP_PTSCOTCH_SPEED
566:       PetscEnum MP_PTSCOTCH_BALANCE
567:       PetscEnum MP_PTSCOTCH_SAFETY
568:       PetscEnum MP_PTSCOTCH_SCALABILITY
569:       parameter (MP_PTSCOTCH_QUALITY = 0)
570:       parameter (MP_PTSCOTCH_SPEED = 1)
571:       parameter (MP_PTSCOTCH_BALANCE = 2)
572:       parameter (MP_PTSCOTCH_SAFETY = 3)
573:       parameter (MP_PTSCOTCH_SCALABILITY = 4)

575: ! PetscScalarPrecision
576:       PetscEnum PETSC_SCALAR_DOUBLE
577:       PetscEnum PETSC_SCALAR_SINGLE
578:       PetscEnum PETSC_SCALAR_LONG_DOUBLE
579:       parameter (PETSC_SCALAR_DOUBLE=0,PETSC_SCALAR_SINGLE=1)
580:       parameter (PETSC_SCALAR_LONG_DOUBLE=2)


583: !
584: !     CUSP enumerated types
585: !
586: #if defined(PETSC_HAVE_CUSP)
587:       PetscEnum MAT_CUSP_CSR
588:       PetscEnum MAT_CUSP_DIA
589:       PetscEnum MAT_CUSP_ELL
590:       parameter(MAT_CUSP_CSR=0,MAT_CUSP_DIA=1)
591:       parameter(MAT_CUSP_ELL=2)
592:       PetscEnum MAT_CUSP_MULT_DIAG
593:       PetscEnum MAT_CUSP_MULT_OFFDIAG
594:       PetscEnum MAT_CUSP_MULT
595:       PetscEnum MAT_CUSP_ALL
596:       parameter(MAT_CUSP_MULT_DIAG=0)
597:       parameter(MAT_CUSP_MULT_OFFDIAG=1)
598:       parameter(MAT_CUSP_MULT=2)
599:       parameter(MAT_CUSP_ALL=3)
600: #endif


603: !
604: !     CUSPARSE enumerated types
605: !
606: #if defined(PETSC_HAVE_CUDA)
607:       PetscEnum MAT_CUSPARSE_CSR
608:       PetscEnum MAT_CUSPARSE_ELL
609:       PetscEnum MAT_CUSPARSE_HYB
610:       parameter(MAT_CUSPARSE_CSR=0,MAT_CUSPARSE_ELL=1)
611:       parameter(MAT_CUSPARSE_HYB=2)
612:       PetscEnum MAT_CUSPARSE_MULT_DIAG
613:       PetscEnum MAT_CUSPARSE_MULT_OFFDIAG
614:       PetscEnum MAT_CUSPARSE_MULT
615:       PetscEnum MAT_CUSPARSE_ALL
616:       parameter(MAT_CUSPARSE_MULT_DIAG=0)
617:       parameter(MAT_CUSPARSE_MULT_OFFDIAG=1)
618:       parameter(MAT_CUSPARSE_MULT=2)
619:       parameter(MAT_CUSPARSE_ALL=3)
620: #endif
621: !
622: !  End of Fortran include file for the Mat package in PETSc
623: !