Date: 2015-10-02T22:32:21+00:00

Actual source code: petscmat.h
petsc-3.6.2 2015-10-02
Report Typos and Errors

      1: !
      2: !
      3: !  Include file for Fortran use of the Mat package in PETSc
      4: !
     5:  #include petsc/finclude/petscmatdef.h

      7: !
      8: !  Flag for matrix assembly
      9: !
     10:       PetscEnum MAT_FLUSH_ASSEMBLY
     11:       PetscEnum MAT_FINAL_ASSEMBLY

     13:       parameter(MAT_FLUSH_ASSEMBLY=1,MAT_FINAL_ASSEMBLY=0)
     14: !
     15: !
     16: !
     17:       PetscEnum MAT_FACTOR_NONE
     18:       PetscEnum MAT_FACTOR_LU
     19:       PetscEnum MAT_FACTOR_CHOLESKY
     20:       PetscEnum MAT_FACTOR_ILU
     21:       PetscEnum MAT_FACTOR_ICC

     23:       parameter(MAT_FACTOR_NONE=0,MAT_FACTOR_LU=1)
     24:       parameter(MAT_FACTOR_CHOLESKY=2,MAT_FACTOR_ILU=3)
     25:       parameter(MAT_FACTOR_ICC=4)

     27: ! MatGetSubMatrixOption
     28:       PetscEnum MAT_DO_NOT_GET_VALUES
     29:       PetscEnum MAT_GET_VALUES
     30:       parameter(MAT_DO_NOT_GET_VALUES=0,MAT_GET_VALUES=1)

     32: !
     33: !  Matrix options; must match those in include/petscmat.h
     34: !
     35:       PetscEnum MAT_OPTION_MIN
     36:       PetscEnum MAT_ROW_ORIENTED
     37:       PetscEnum MAT_NEW_NONZERO_LOCATIONS
     38:       PetscEnum MAT_SYMMETRIC
     39:       PetscEnum MAT_STRUCTURALLY_SYMMETRIC
     40:       PetscEnum MAT_NEW_DIAGONALS
     41:       PetscEnum MAT_IGNORE_OFF_PROC_ENTRIES
     42:       PetscEnum MAT_NEW_NONZERO_LOCATION_ERR
     43:       PetscEnum MAT_NEW_NONZERO_ALLOCATION_ERR
     44:       PetscEnum MAT_USE_HASH_TABLE
     45:       PetscEnum MAT_KEEP_NONZERO_PATTERN
     46:       PetscEnum MAT_IGNORE_ZERO_ENTRIES
     47:       PetscEnum MAT_USE_INODES
     48:       PetscEnum MAT_HERMITIAN
     49:       PetscEnum MAT_SYMMETRY_ETERNAL
     50:       PetscEnum MAT_DUMMY
     51:       PetscEnum MAT_IGNORE_LOWER_TRIANGULAR
     52:       PetscEnum MAT_ERROR_LOWER_TRIANGULAR
     53:       PetscEnum MAT_GETROW_UPPERTRIANGULAR
     54:       PetscEnum MAT_UNUSED_NONZERO_LOCATION_ERR
     55:       PetscEnum MAT_SPD
     56:       PetscEnum MAT_NO_OFF_PROC_ENTRIES
     57:       PetscEnum MAT_NO_OFF_PROC_ZERO_ROWS
     58:       PetscEnum MAT_DIAGBLOCK_CSR
     59:       PetscEnum MAT_OFFDIAGBLOCK_CSR
     60:       PetscEnum MAT_CSR
     61:       PetscEnum MAT_DIAGBLOCK_DIA
     62:       PetscEnum MAT_OFFDIAGBLOCK_DIA
     63:       PetscEnum MAT_DIA
     64:       PetscEnum MAT_DIAGBLOCK_ELL
     65:       PetscEnum MAT_OFFDIAGBLOCK_ELL
     66:       PetscEnum MAT_ELL
     67:       PetscEnum MAT_DIAGBLOCK_HYB
     68:       PetscEnum MAT_OFFDIAGBLOCK_HYB
     69:       PetscEnum MAT_HYB
     70:       PetscEnum MAT_OPTION_MAX

     72:       parameter (MAT_OPTION_MIN=-5)
     73:       parameter (MAT_NEW_NONZERO_LOCATION_ERR=-4)
     74:       parameter (MAT_UNUSED_NONZERO_LOCATION_ERR=-3)
     75:       parameter (MAT_NEW_NONZERO_ALLOCATION_ERR=-2)
     76:       parameter (MAT_ROW_ORIENTED=-1)
     77:       parameter (MAT_SYMMETRIC=1)
     78:       parameter (MAT_STRUCTURALLY_SYMMETRIC=2)
     79:       parameter (MAT_NEW_DIAGONALS=3)
     80:       parameter (MAT_IGNORE_OFF_PROC_ENTRIES=4)
     81:       parameter (MAT_USE_HASH_TABLE=5)
     82:       parameter (MAT_KEEP_NONZERO_PATTERN=6)
     83:       parameter (MAT_IGNORE_ZERO_ENTRIES=7)
     84:       parameter (MAT_USE_INODES=8)
     85:       parameter (MAT_HERMITIAN=9)
     86:       parameter (MAT_SYMMETRY_ETERNAL=10)
     87:       parameter (MAT_DUMMY=11)
     88:       parameter (MAT_IGNORE_LOWER_TRIANGULAR=12)
     89:       parameter (MAT_ERROR_LOWER_TRIANGULAR=13)
     90:       parameter (MAT_GETROW_UPPERTRIANGULAR=14)
     91:       parameter (MAT_SPD=15)
     92:       parameter (MAT_NO_OFF_PROC_ZERO_ROWS=16)
     93:       parameter (MAT_NO_OFF_PROC_ENTRIES=17)
     94:       parameter (MAT_NEW_NONZERO_LOCATIONS=18)
     95:       parameter (MAT_OPTION_MAX=19)
     96: !
     97: !  MatFactorShiftType
     98: !
     99:       PetscEnum MAT_SHIFT_NONE
    100:       PetscEnum MAT_SHIFT_NONZERO
    101:       PetscEnum MAT_SHIFT_POSITIVE_DEFINITE
    102:       PetscEnum MAT_SHIFT_INBLOCKS
    103:       parameter (MAT_SHIFT_NONE=0)
    104:       parameter (MAT_SHIFT_NONZERO=1)
    105:       parameter (MAT_SHIFT_POSITIVE_DEFINITE=2)
    106:       parameter (MAT_SHIFT_INBLOCKS=3)

    108: !
    109: !  MatDuplicateOption
    110: !
    111:       PetscEnum MAT_DO_NOT_COPY_VALUES
    112:       PetscEnum MAT_COPY_VALUES
    113:       PetscEnum MAT_SHARE_NONZERO_PATTERN
    114:       parameter (MAT_DO_NOT_COPY_VALUES=0,MAT_COPY_VALUES=1)
    115:       parameter (MAT_SHARE_NONZERO_PATTERN=2)
    116: !
    117: !  Flags for MatCopy, MatAXPY
    118: !
    119:       PetscEnum DIFFERENT_NONZERO_PATTERN
    120:       PetscEnum SUBSET_NONZERO_PATTERN
    121:       PetscEnum SAME_NONZERO_PATTERN

    123:       parameter (DIFFERENT_NONZERO_PATTERN = 0,SUBSET_NONZERO_PATTERN=1)
    124:       parameter (SAME_NONZERO_PATTERN = 2)

    126: #if !(PETSC_USE_FORTRAN_DATATYPES_)
    127:  #include petsc/finclude/petscmatinfosize.h
    128: #endif

    130:       PetscEnum MAT_INFO_BLOCK_SIZE
    131:       PetscEnum MAT_INFO_NZ_ALLOCATED
    132:       PetscEnum MAT_INFO_NZ_USED
    133:       PetscEnum MAT_INFO_NZ_UNNEEDED
    134:       PetscEnum MAT_INFO_MEMORY
    135:       PetscEnum MAT_INFO_ASSEMBLIES
    136:       PetscEnum MAT_INFO_MALLOCS
    137:       PetscEnum MAT_INFO_FILL_RATIO_GIVEN
    138:       PetscEnum MAT_INFO_FILL_RATIO_NEEDED
    139:       PetscEnum MAT_INFO_FACTOR_MALLOCS

    141:       parameter (MAT_INFO_BLOCK_SIZE=1,MAT_INFO_NZ_ALLOCATED=2)
    142:       parameter (MAT_INFO_NZ_USED=3,MAT_INFO_NZ_UNNEEDED=4)
    143:       parameter (MAT_INFO_MEMORY=5,MAT_INFO_ASSEMBLIES=6)
    144:       parameter (MAT_INFO_MALLOCS=7,MAT_INFO_FILL_RATIO_GIVEN=8)
    145:       parameter (MAT_INFO_FILL_RATIO_NEEDED=9)
    146:       parameter (MAT_INFO_FACTOR_MALLOCS=10)
    147: !
    148: !  MatReuse
    149: !
    150:       PetscEnum MAT_INITIAL_MATRIX
    151:       PetscEnum MAT_REUSE_MATRIX
    152:       PetscEnum MAT_IGNORE_MATRIX

    154:       parameter (MAT_INITIAL_MATRIX=0)
    155:       parameter (MAT_REUSE_MATRIX=1)
    156:       parameter (MAT_IGNORE_MATRIX=2)

    158: !
    159: !  MatInfoType
    160: !
    161:       PetscEnum MAT_LOCAL
    162:       PetscEnum MAT_GLOBAL_MAX
    163:       PetscEnum MAT_GLOBAL_SUM

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

    167: !
    168: !  MatCompositeType
    169: !
    170:       PetscEnum MAT_COMPOSITE_ADDITIVE
    171:       PetscEnum MAT_COMPOSITE_MULTIPLICATIVE

    173:       parameter (MAT_COMPOSITE_ADDITIVE = 0)
    174:       parameter (MAT_COMPOSITE_MULTIPLICATIVE = 1)
    175: #if !(PETSC_USE_FORTRAN_DATATYPES_)
    176:  #include petsc/finclude/petscmatfactorinfosize.h
    177: #endif
    178:       PetscEnum MAT_FACTORINFO_DIAGONAL_FILL
    179:       PetscEnum MAT_FACTORINFO_USEDT
    180:       PetscEnum MAT_FACTORINFO_DT
    181:       PetscEnum MAT_FACTORINFO_DTCOL
    182:       PetscEnum MAT_FACTORINFO_DTCOUNT
    183:       PetscEnum MAT_FACTORINFO_FILL
    184:       PetscEnum MAT_FACTORINFO_LEVELS
    185:       PetscEnum MAT_FACTORINFO_PIVOT_IN_BLOCKS
    186:       PetscEnum MAT_FACTORINFO_ZERO_PIVOT
    187:       PetscEnum MAT_FACTORINFO_SHIFT_TYPE
    188:       PetscEnum MAT_FACTORINFO_SHIFT_AMOUNT

    190:       parameter (MAT_FACTORINFO_DIAGONAL_FILL = 1)
    191:       parameter (MAT_FACTORINFO_USEDT = 2)
    192:       parameter (MAT_FACTORINFO_DT = 3)
    193:       parameter (MAT_FACTORINFO_DTCOL = 4)
    194:       parameter (MAT_FACTORINFO_DTCOUNT = 5)
    195:       parameter (MAT_FACTORINFO_FILL = 6)
    196:       parameter (MAT_FACTORINFO_LEVELS = 7)
    197:       parameter (MAT_FACTORINFO_PIVOT_IN_BLOCKS = 8)
    198:       parameter (MAT_FACTORINFO_ZERO_PIVOT = 9)
    199:       parameter (MAT_FACTORINFO_SHIFT_TYPE = 10)
    200:       parameter (MAT_FACTORINFO_SHIFT_AMOUNT = 11)

    203: !
    204: !  Options for SOR and SSOR
    205: !  MatSorType may be bitwise ORd together, so do not change the numbers
    206: !
    207:       PetscEnum SOR_FORWARD_SWEEP
    208:       PetscEnum SOR_BACKWARD_SWEEP
    209:       PetscEnum SOR_SYMMETRIC_SWEEP
    210:       PetscEnum SOR_LOCAL_FORWARD_SWEEP
    211:       PetscEnum SOR_LOCAL_BACKWARD_SWEEP
    212:       PetscEnum SOR_LOCAL_SYMMETRIC_SWEEP
    213:       PetscEnum SOR_ZERO_INITIAL_GUESS
    214:       PetscEnum SOR_EISENSTAT
    215:       PetscEnum SOR_APPLY_UPPER
    216:       PetscEnum SOR_APPLY_LOWER

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

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

    554: ! PetscScalarPrecision
    555:       PetscEnum PETSC_SCALAR_DOUBLE
    556:       PetscEnum PETSC_SCALAR_SINGLE
    557:       PetscEnum PETSC_SCALAR_LONG_DOUBLE
    558:       parameter (PETSC_SCALAR_DOUBLE=0,PETSC_SCALAR_SINGLE=1)
    559:       parameter (PETSC_SCALAR_LONG_DOUBLE=2)

    562: !
    563: !     CUSP enumerated types
    564: !
    565: #if defined(PETSC_HAVE_CUSP)
    566:       PetscEnum MAT_CUSP_CSR
    567:       PetscEnum MAT_CUSP_DIA
    568:       PetscEnum MAT_CUSP_ELL
    569:       parameter(MAT_CUSP_CSR=0,MAT_CUSP_DIA=1)
    570:       parameter(MAT_CUSP_ELL=2)
    571:       PetscEnum MAT_CUSP_MULT_DIAG
    572:       PetscEnum MAT_CUSP_MULT_OFFDIAG
    573:       PetscEnum MAT_CUSP_MULT
    574:       PetscEnum MAT_CUSP_ALL
    575:       parameter(MAT_CUSP_MULT_DIAG=0)
    576:       parameter(MAT_CUSP_MULT_OFFDIAG=1)
    577:       parameter(MAT_CUSP_MULT=2)
    578:       parameter(MAT_CUSP_ALL=3)
    579: #endif

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