Actual source code: petscmat.h

petsc-3.9.4 2018-09-11
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 PETSC_FORTRAN_TYPE_INITIALIZE
 10:       end type tMat
 11:       type tMatNullSpace
 12:         sequence
 13:         PetscFortranAddr:: v PETSC_FORTRAN_TYPE_INITIALIZE
 14:       end type tMatNullSpace
 15:       type tMatFDColoring
 16:         sequence
 17:         PetscFortranAddr:: v PETSC_FORTRAN_TYPE_INITIALIZE
 18:       end type tMatFDColoring

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

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

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

 45: ! MatCreateSubMatrixOption
 46:       PetscEnum MAT_DO_NOT_GET_VALUES
 47:       PetscEnum MAT_GET_VALUES
 48:       parameter(MAT_DO_NOT_GET_VALUES=0,MAT_GET_VALUES=1)

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

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

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

146:       parameter (DIFFERENT_NONZERO_PATTERN = 0,SUBSET_NONZERO_PATTERN=1)
147:       parameter (SAME_NONZERO_PATTERN = 2)

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

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

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

176:       parameter (MAT_INITIAL_MATRIX=0)
177:       parameter (MAT_REUSE_MATRIX=1)
178:       parameter (MAT_IGNORE_MATRIX=2)
179:       parameter (MAT_INPLACE_MATRIX=3)

181: !
182: !  MatInfoType
183: !
184:       PetscEnum MAT_LOCAL
185:       PetscEnum MAT_GLOBAL_MAX
186:       PetscEnum MAT_GLOBAL_SUM

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

190: !
191: !  MatCompositeType
192: !
193:       PetscEnum MAT_COMPOSITE_ADDITIVE
194:       PetscEnum MAT_COMPOSITE_MULTIPLICATIVE

196:       parameter (MAT_COMPOSITE_ADDITIVE = 0)
197:       parameter (MAT_COMPOSITE_MULTIPLICATIVE = 1)

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

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

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


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

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

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

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


585: !
586: !     CUSPARSE enumerated types
587: !
588: #if defined(PETSC_HAVE_CUDA)
589:       PetscEnum MAT_CUSPARSE_CSR
590:       PetscEnum MAT_CUSPARSE_ELL
591:       PetscEnum MAT_CUSPARSE_HYB
592:       parameter(MAT_CUSPARSE_CSR=0,MAT_CUSPARSE_ELL=1)
593:       parameter(MAT_CUSPARSE_HYB=2)
594:       PetscEnum MAT_CUSPARSE_MULT_DIAG
595:       PetscEnum MAT_CUSPARSE_MULT_OFFDIAG
596:       PetscEnum MAT_CUSPARSE_MULT
597:       PetscEnum MAT_CUSPARSE_ALL
598:       parameter(MAT_CUSPARSE_MULT_DIAG=0)
599:       parameter(MAT_CUSPARSE_MULT_OFFDIAG=1)
600:       parameter(MAT_CUSPARSE_MULT=2)
601:       parameter(MAT_CUSPARSE_ALL=3)
602: #endif
603: !
604: !  End of Fortran include file for the Mat package in PETSc
605: !