Actual source code: petscmat.h

      1: !
      2: !
      3: !  Include file for Fortran use of the Mat package in PETSc
      4: !
      5: #if !defined (__PETSCMAT_H)

      8: #define Mat PetscFortranAddr
      9: #define MatFDColoring PetscFortranAddr
     10: #define MatPartitioning PetscFortranAddr
     11: #define MatAIJIndices PetscFortranAddr
     12: #define MatType character*(80)
     13: #define MatOption PetscEnum
     14: #define MatAssemblyType PetscEnum
     15: #define MatOrderingType character*(80)
     16: #define MatSORType PetscEnum
     17: #define MatInfoType PetscEnum
     18: #define MatReuse PetscEnum
     19: #define MatOperation PetscEnum
     20: #define MatColoringType character*(80)
     21: #define MatInfo double precision
     22: #define MatFactorInfo double precision
     23: #define MatDuplicateOption PetscEnum
     24: #define MatStructure PetscEnum
     25: #define MatPartitioningType character*(80)
     26: #define MatNullSpace PetscFortranAddr

     28: #define MatStencil PetscInt
     29: #define MatStencil_k 1
     30: #define MatStencil_j 2
     31: #define MatStencil_i 3
     32: #define MatStencil_c 4

     34: #define MATPARTITIONING_CURRENT 'current'
     35: #define MATPARTITIONING_PARMETIS 'parmetis'

     37: #define MATCOLORING_NATURAL 'natural'
     38: #define MATCOLORING_SL 'sl'
     39: #define MATCOLORING_LF 'lf'
     40: #define MATCOLORING_ID 'id'

     42: #define MATORDERING_NATURAL 'natural'
     43: #define MATORDERING_ND 'nd'
     44: #define MATORDERING_1WD '1wd'
     45: #define MATORDERING_RCM 'rcm'
     46: #define MATORDERING_QMD 'qmd'
     47: #define MATORDERING_ROWLENGTH 'rowlength'
     48: #define MATORDERING_DSC_ND 'dsc_nd'
     49: #define MATORDERING_DSC_MMD 'dsc_mmd'
     50: #define MATORDERING_DSC_MDF 'dsc_mdf'

     52: #endif

     54: !
     55: !  Matrix types
     56: !
     57: #define MATSAME            'same'
     58: #define MATSEQMAIJ         'seqmaij'
     59: #define MATMPIMAIJ         'mpimaij'
     60: #define MATMAIJ            'maij'
     61: #define MATIS              'is'
     62: #define MATMPIROWBS        'mpirowbs'
     63: #define MATSEQAIJ          'seqaij'
     64: #define MATMPIAIJ          'mpiaij'
     65: #define MATAIJ             'aij'
     66: #define MATSHELL           'shell'
     67: #define MATSEQBDIAG        'seqbdiag'
     68: #define MATMPIBDIAG        'mpibdiag'
     69: #define MATBDIAG           'bdiag'
     70: #define MATSEQDENSE        'seqdense'
     71: #define MATMPIDENSE        'mpidense'
     72: #define MATDENSE           'dense'
     73: #define MATSEQBAIJ         'seqbaij'
     74: #define MATMPIBAIJ         'mpibaij'
     75: #define MATBAIJ            'baij'
     76: #define MATMPIADJ          'mpiadj'
     77: #define MATSEQSBAIJ        'seqsbaij'
     78: #define MATMPISBAIJ        'mpisbaij'
     79: #define MATSBAIJ           'sbaij'
     80: #define MATDAAD            'daad'
     81: #define MATMFFD            'mffd'
     82: #define MATESI             'esi'
     83: #define MATPETSCESI        'petscesi'
     84: #define MATNORMAL          'normal'
     85: #define MATSEQAIJSPOOLES   'seqaijspooles'
     86: #define MATMPIAIJSPOOLES   'mpiaijspooles'
     87: #define MATSEQSBAIJSPOOLES 'seqsbaijspooles'
     88: #define MATMPISBAIJSPOOLES 'mpisbaijspooles'
     89: #define MATSUPERLU         'superlu'
     90: #define MATSUPERLU_DIST    'superlu_dist'
     91: #define MATUMFPACK         'umfpack'
     92: #define MATESSL            'essl'
     93: #define MATLUSOL           'lusol'
     94: #define MATAIJMUMPS        'aijmumps'
     95: #define MATSBAIJMUMPS      'sbaijmumps'
     96: #define MATDSCPACK         'dscpack'
     97: #define MATMATLAB          'matlab'

     99: #if !defined (PETSC_AVOID_DECLARATIONS)

    101: !
    102: !  Flag for matrix assembly
    103: !
    104:       PetscEnum MAT_FLUSH_ASSEMBLY,MAT_FINAL_ASSEMBLY

    106:       parameter(MAT_FLUSH_ASSEMBLY=1,MAT_FINAL_ASSEMBLY=0)
    107: !
    108: !  Matrix options; must match those in include/petscmat.h
    109: !
    110:       PetscEnum MAT_ROW_ORIENTED,MAT_COLUMN_ORIENTED,MAT_ROWS_SORTED
    111:       PetscEnum MAT_COLUMNS_SORTED,MAT_NO_NEW_NONZERO_LOCATIONS
    112:       PetscEnum MAT_YES_NEW_NONZERO_LOCATIONS,MAT_SYMMETRIC
    113:       PetscEnum MAT_STRUCTURALLY_SYMMETRIC,MAT_NO_NEW_DIAGONALS
    114:       PetscEnum MAT_YES_NEW_DIAGONALS,MAT_INODE_LIMIT_1
    115:       PetscEnum MAT_INODE_LIMIT_2,MAT_INODE_LIMIT_3,MAT_INODE_LIMIT_4
    116:       PetscEnum MAT_INODE_LIMIT_5,MAT_IGNORE_OFF_PROC_ENTRIES
    117:       PetscEnum MAT_ROWS_UNSORTED,MAT_COLUMNS_UNSORTED
    118:       PetscEnum MAT_NEW_NONZERO_LOCATION_ERR
    119:       PetscEnum MAT_NEW_NONZERO_ALLOCATION_ERR,MAT_USE_HASH_TABLE
    120:       PetscEnum MAT_KEEP_ZEROED_ROWS,MAT_IGNORE_ZERO_ENTRIES
    121:       PetscEnum MAT_USE_INODES,MAT_DO_NOT_USE_INODES
    122:       PetscEnum MAT_NOT_SYMMETRIC,MAT_HERMITIAN
    123:       PetscEnum MAT_NOT_STRUCTURALLY_SYMMETRIC,MAT_NOT_HERMITIAN
    124:       PetscEnum MAT_SYMMETRY_ETERNAL,MAT_NOT_SYMMETRY_ETERNAL
    125:       PetscEnum MAT_USE_COMPRESSEDROW,MAT_DO_NOT_USE_COMPRESSEDROW
    126:       PetscEnum MAT_IGNORE_LOWER_TRIANGULAR,MAT_ERROR_LOWER_TRIANGULAR
    127:       PetscEnum MAT_GETROW_UPPERTRIANGULAR

    129:       parameter (MAT_ROW_ORIENTED=0,MAT_COLUMN_ORIENTED=1)
    130:       parameter (MAT_ROWS_SORTED=2,MAT_COLUMNS_SORTED=3)
    131:       parameter (MAT_NO_NEW_NONZERO_LOCATIONS=4)
    132:       parameter (MAT_YES_NEW_NONZERO_LOCATIONS=5)
    133:       parameter (MAT_SYMMETRIC=6,MAT_STRUCTURALLY_SYMMETRIC=7)
    134:       parameter (MAT_NO_NEW_DIAGONALS=8,MAT_YES_NEW_DIAGONALS=9)
    135:       parameter (MAT_INODE_LIMIT_1=10,MAT_INODE_LIMIT_2=11)
    136:       parameter (MAT_INODE_LIMIT_3=12,MAT_INODE_LIMIT_4=13)
    137:       parameter (MAT_INODE_LIMIT_5=14,MAT_IGNORE_OFF_PROC_ENTRIES=15)
    138:       parameter (MAT_ROWS_UNSORTED=16,MAT_COLUMNS_UNSORTED=17)
    139:       parameter (MAT_NEW_NONZERO_LOCATION_ERR=18)
    140:       parameter (MAT_NEW_NONZERO_ALLOCATION_ERR=19)
    141:       parameter (MAT_USE_HASH_TABLE=20)
    142:       parameter (MAT_KEEP_ZEROED_ROWS=21)
    143:       parameter (MAT_IGNORE_ZERO_ENTRIES=22)
    144:       parameter (MAT_USE_INODES=23,MAT_DO_NOT_USE_INODES=24)
    145:       parameter (MAT_NOT_SYMMETRIC=25,MAT_HERMITIAN=26)
    146:       parameter (MAT_NOT_STRUCTURALLY_SYMMETRIC=27)
    147:       parameter (MAT_NOT_HERMITIAN=28)
    148:       parameter (MAT_SYMMETRY_ETERNAL=29,MAT_NOT_SYMMETRY_ETERNAL=30)
    149:       parameter (MAT_USE_COMPRESSEDROW=31)
    150:       parameter (MAT_DO_NOT_USE_COMPRESSEDROW=32)
    151:       parameter (MAT_IGNORE_LOWER_TRIANGULAR=33)
    152:       parameter (MAT_ERROR_LOWER_TRIANGULAR=34)
    153:       parameter (MAT_GETROW_UPPERTRIANGULAR=35)

    155: !
    156: !  MatDuplicateOption
    157: !
    158:       PetscEnum MAT_DO_NOT_COPY_VALUES,MAT_COPY_VALUES
    159:       parameter (MAT_DO_NOT_COPY_VALUES=0,MAT_COPY_VALUES=1)
    160: !
    161: !  Flags for PCSetOperators()
    162: !
    163:       PetscEnum SAME_NONZERO_PATTERN,DIFFERENT_NONZERO_PATTERN
    164:       PetscEnum SAME_PRECONDITIONER

    166:       parameter (SAME_NONZERO_PATTERN = 0,DIFFERENT_NONZERO_PATTERN = 1)
    167:       parameter (SAME_PRECONDITIONER = 2)

    169: !
    170: !  Note: MAT_INFO_SIZE must equal # elements in MatInfo structure
    171: !  (See petsc/include/petscmat.h)
    172: !
    173:       PetscEnum   MAT_INFO_SIZE

    175:       parameter (MAT_INFO_SIZE=14)

    177:       PetscEnum MAT_INFO_ROWS_GLOBAL,MAT_INFO_COLUMNS_GLOBAL
    178:       PetscEnum MAT_INFO_ROWS_LOCAL,MAT_INFO_COLUMNS_LOCAL
    179:       PetscEnum MAT_INFO_BLOCK_SIZE,MAT_INFO_NZ_ALLOCATED
    180:       PetscEnum MAT_INFO_NZ_USED,MAT_INFO_NZ_UNNEEDED
    181:       PetscEnum MAT_INFO_MEMORY,MAT_INFO_ASSEMBLIES
    182:       PetscEnum MAT_INFO_MALLOCS,MAT_INFO_FILL_RATIO_GIVEN
    183:       PetscEnum MAT_INFO_FILL_RATIO_NEEDED,MAT_INFO_FACTOR_MALLOCS

    185:       parameter (MAT_INFO_ROWS_GLOBAL=1,MAT_INFO_COLUMNS_GLOBAL=2)
    186:       parameter (MAT_INFO_ROWS_LOCAL=3,MAT_INFO_COLUMNS_LOCAL=4)
    187:       parameter (MAT_INFO_BLOCK_SIZE=5,MAT_INFO_NZ_ALLOCATED=6)
    188:       parameter (MAT_INFO_NZ_USED=7,MAT_INFO_NZ_UNNEEDED=8)
    189:       parameter (MAT_INFO_MEMORY=9,MAT_INFO_ASSEMBLIES=10)
    190:       parameter (MAT_INFO_MALLOCS=11,MAT_INFO_FILL_RATIO_GIVEN=12)
    191:       parameter (MAT_INFO_FILL_RATIO_NEEDED=13)
    192:       parameter (MAT_INFO_FACTOR_MALLOCS=14)
    193: !
    194: !  MatReuse
    195: !
    196:       PetscEnum MAT_INITIAL_MATRIX,MAT_REUSE_MATRIX

    198:       parameter (MAT_INITIAL_MATRIX=0,MAT_REUSE_MATRIX=1)

    200: !
    201: !  MatInfoType
    202: !
    203:       PetscEnum MAT_LOCAL,MAT_GLOBAL_MAX,MAT_GLOBAL_SUM

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

    207: !
    208: !  Note: MAT_FACTORINFO_SIZE must equal # elements in MatFactorInfo structure
    209: !  (See petsc/include/petscmat.h)
    210: !
    211:       PetscEnum   MAT_FACTORINFO_SIZE

    213:       parameter (MAT_FACTORINFO_SIZE=11)

    215:       PetscEnum MAT_FACTORINFO_LEVELS
    216:       PetscEnum MAT_FACTORINFO_FILL
    217:       PetscEnum MAT_FACTORINFO_DIAGONAL_FILL
    218:       PetscEnum MAT_FACTORINFO_DT
    219:       PetscEnum MAT_FACTORINFO_DTCOL
    220:       PetscEnum MAT_FACTORINFO_DTCOUNT
    221:       PetscEnum MAT_FACTORINFO_DAMPING
    222:       PetscEnum MAT_FACTORINFO_SHIFT
    223:       PetscEnum MAT_FACTORINFO_SHIFT_FRACTION
    224:       PetscEnum MAT_FACTORINFO_ZERO_PIVOT
    225:       PetscEnum MAT_FACTORINFO_PIVOT_IN_BLOCKS

    227:       parameter (MAT_FACTORINFO_DAMPING = 1)
    228:       parameter (MAT_FACTORINFO_SHIFT = 2)
    229:       parameter (MAT_FACTORINFO_SHIFT_FRACTION = 3)
    230:       parameter (MAT_FACTORINFO_DIAGONAL_FILL = 4)
    231:       parameter (MAT_FACTORINFO_DT = 5)
    232:       parameter (MAT_FACTORINFO_DTCOL = 6)
    233:       parameter (MAT_FACTORINFO_DTCOUNT = 7)
    234:       parameter (MAT_FACTORINFO_LEVELS = 8)
    235:       parameter (MAT_FACTORINFO_FILL = 9)
    236:       parameter (MAT_FACTORINFO_PIVOT_IN_BLOCKS = 10)
    237:       parameter (MAT_FACTORINFO_ZERO_PIVOT = 11)

    240: !
    241: !  Options for SOR and SSOR
    242: !  MatSorType may be bitwise ORd together, so do not change the numbers
    243: !
    244:       PetscEnum SOR_FORWARD_SWEEP,SOR_BACKWARD_SWEEP,SOR_SYMMETRIC_SWEEP
    245:       PetscEnum SOR_LOCAL_FORWARD_SWEEP,SOR_LOCAL_BACKWARD_SWEEP
    246:       PetscEnum SOR_LOCAL_SYMMETRIC_SWEEP,SOR_ZERO_INITIAL_GUESS
    247:       PetscEnum SOR_EISENSTAT,SOR_APPLY_UPPER,SOR_APPLY_LOWER

    249:       parameter (SOR_FORWARD_SWEEP=1,SOR_BACKWARD_SWEEP=2)
    250:       parameter (SOR_SYMMETRIC_SWEEP=3,SOR_LOCAL_FORWARD_SWEEP=4)
    251:       parameter (SOR_LOCAL_BACKWARD_SWEEP=8)
    252:       parameter (SOR_LOCAL_SYMMETRIC_SWEEP=12)
    253:       parameter (SOR_ZERO_INITIAL_GUESS=16,SOR_EISENSTAT=32)
    254:       parameter (SOR_APPLY_UPPER=64,SOR_APPLY_LOWER=128)
    255: !
    256: !  MatOperation
    257: !
    258:       PetscEnum MATOP_SET_VALUES
    259:       PetscEnum MATOP_GET_ROW
    260:       PetscEnum MATOP_RESTORE_ROW
    261:       PetscEnum MATOP_MULT
    262:       PetscEnum MATOP_MULT_ADD
    263:       PetscEnum MATOP_MULT_TRANSPOSE
    264:       PetscEnum MATOP_MULT_TRANSPOSE_ADD
    265:       PetscEnum MATOP_SOLVE
    266:       PetscEnum MATOP_SOLVE_ADD
    267:       PetscEnum MATOP_SOLVE_TRANSPOSE
    268:       PetscEnum MATOP_SOLVE_TRANSPOSE_ADD
    269:       PetscEnum MATOP_LUFACTOR
    270:       PetscEnum MATOP_CHOLESKYFACTOR
    271:       PetscEnum MATOP_RELAX
    272:       PetscEnum MATOP_TRANSPOSE
    273:       PetscEnum MATOP_GETINFO
    274:       PetscEnum MATOP_EQUAL
    275:       PetscEnum MATOP_GET_DIAGONAL
    276:       PetscEnum MATOP_DIAGONAL_SCALE
    277:       PetscEnum MATOP_NORM
    278:       PetscEnum MATOP_ASSEMBLY_BEGIN
    279:       PetscEnum MATOP_ASSEMBLY_END
    280:       PetscEnum MATOP_COMPRESS
    281:       PetscEnum MATOP_SET_OPTION
    282:       PetscEnum MATOP_ZERO_ENTRIES
    283:       PetscEnum MATOP_ZERO_ROWS
    284:       PetscEnum MATOP_LUFACTOR_SYMBOLIC
    285:       PetscEnum MATOP_LUFACTOR_NUMERIC
    286:       PetscEnum MATOP_CHOLESKY_FACTOR_SYMBOLIC
    287:       PetscEnum MATOP_CHOLESKY_FACTOR_NUMERIC
    288:       PetscEnum MATOP_SETUP_PREALLOCATION
    289:       PetscEnum MATOP_ILUFACTOR_SYMBOLIC
    290:       PetscEnum MATOP_ICCFACTOR_SYMBOLIC
    291:       PetscEnum MATOP_GET_ARRAY
    292:       PetscEnum MATOP_RESTORE_ARRAY

    294:       PetscEnum MATOP_DUPLICATE
    295:       PetscEnum MATOP_FORWARD_SOLVE
    296:       PetscEnum MATOP_BACKWARD_SOLVE
    297:       PetscEnum MATOP_ILUFACTOR
    298:       PetscEnum MATOP_ICCFACTOR
    299:       PetscEnum MATOP_AXPY
    300:       PetscEnum MATOP_GET_SUBMATRICES
    301:       PetscEnum MATOP_INCREASE_OVERLAP
    302:       PetscEnum MATOP_GET_VALUES
    303:       PetscEnum MATOP_COPY
    304:       PetscEnum MATOP_PRINT_HELP
    305:       PetscEnum MATOP_SCALE
    306:       PetscEnum MATOP_SHIFT
    307:       PetscEnum MATOP_DIAGONAL_SHIFT
    308:       PetscEnum MATOP_ILUDT_FACTOR
    309:       PetscEnum MATOP_GET_BLOCK_SIZE

    311:       PetscEnum MATOP_GET_ROW_IJ
    312:       PetscEnum MATOP_RESTORE_ROW_IJ
    313:       PetscEnum MATOP_GET_COLUMN_IJ
    314:       PetscEnum MATOP_RESTORE_COLUMN_IJ
    315:       PetscEnum MATOP_FDCOLORING_CREATE
    316:       PetscEnum MATOP_COLORING_PATCH
    317:       PetscEnum MATOP_SET_UNFACTORED
    318:       PetscEnum MATOP_PERMUTE
    319:       PetscEnum MATOP_SET_VALUES_BLOCKED
    320:       PetscEnum MATOP_GET_SUBMATRIX
    321:       PetscEnum MATOP_DESTROY
    322:       PetscEnum MATOP_VIEW
    323:       PetscEnum MATOP_GET_MAPS
    324:       PetscEnum MATOP_USE_SCALED_FORM
    325:       PetscEnum MATOP_SCALE_SYSTEM
    326:       PetscEnum MATOP_UNSCALE_SYSTEM
    327:       PetscEnum MATOP_SET_LOCAL_TO_GLOBAL_MAP
    328:       PetscEnum MATOP_SET_VALUES_LOCAL
    329:       PetscEnum MATOP_ZERO_ROWS_LOCAL
    330:       PetscEnum MATOP_GET_ROW_MAX
    331:       PetscEnum MATOP_CONVERT
    332:       PetscEnum MATOP_SET_COLORING
    333:       PetscEnum MATOP_SET_VALUES_ADIC
    334:       PetscEnum MATOP_SET_VALUES_ADIFOR
    335:       PetscEnum MATOP_FD_COLORING_APPLY
    336:       PetscEnum MATOP_SET_FROM_OPTIONS
    337:       PetscEnum MATOP_MULT_CON
    338:       PetscEnum MATOP_MULT_TRANSPOSE_CON
    339:       PetscEnum MATOP_ILU_FACTOR_SYMBOLIC_CON
    340:       PetscEnum MATOP_PERMUTE_SPARSIFY
    341:       PetscEnum MATOP_MULT_MULTIPLE
    342:       PetscEnum MATOP_SOLVE_MULTIPLE
    343:       PetscEnum MATOP_GET_INERTIA
    344:       PetscEnum MATOP_LOAD
    345:       PetscEnum MATOP_IS_SYMMETRIC
    346:       PetscEnum MATOP_IS_HERMITIAN
    347:       PetscEnum MATOP_IS_STRUCTURALLY_SYMMETRIC
    348:       PetscEnum MATOP_PB_RELAX
    349:       PetscEnum MATOP_GET_VECS
    350:       PetscEnum MATOP_MAT_MULT
    351:       PetscEnum MATOP_MAT_MULT_SYMBOLIC
    352:       PetscEnum MATOP_MAT_MULT_NUMERIC
    353:       PetscEnum MATOP_PTAP
    354:       PetscEnum MATOP_PTAP_SYMBOLIC
    355:       PetscEnum MATOP_PTAP_NUMERIC
    356:       PetscEnum MATOP_MAT_MULT_TRANSPOSE
    357:       PetscEnum MATOP_MAT_MULT_TRANSPOSE_SYM
    358:       PetscEnum MATOP_MAT_MULT_TRANSPOSE_NUM
    359:       PetscEnum MATOP_PTAP_SYMBOLIC_SEQAIJ
    360:       PetscEnum MATOP_PTAP_NUMERIC_SEQAIJ
    361:       PetscEnum MATOP_PTAP_SYMBOLIC_MPIAIJ
    362:       PetscEnum MATOP_PTAP_NUMERIC_MPIAIJ
    363:       PetscEnum MATOP_SET_VALUES_ROW
    364:       PetscEnum MATOP_GET_ROW_UTRIANGULAR
    365:       PetscEnum MATOP_RESTORE_ROW_UTRIANGULAR
    366:       PetscEnum MATOP_MATSOLVE
    367:
    368:       parameter(MATOP_SET_VALUES=0)
    369:       parameter(MATOP_GET_ROW=1)
    370:       parameter(MATOP_RESTORE_ROW=2)
    371:       parameter(MATOP_MULT=3)
    372:       parameter(MATOP_MULT_ADD=4)
    373:       parameter(MATOP_MULT_TRANSPOSE=5)
    374:       parameter(MATOP_MULT_TRANSPOSE_ADD=6)
    375:       parameter(MATOP_SOLVE=7)
    376:       parameter(MATOP_SOLVE_ADD=8)
    377:       parameter(MATOP_SOLVE_TRANSPOSE=9)
    378:       parameter(MATOP_SOLVE_TRANSPOSE_ADD=10)
    379:       parameter(MATOP_LUFACTOR=11)
    380:       parameter(MATOP_CHOLESKYFACTOR=12)
    381:       parameter(MATOP_RELAX=13)
    382:       parameter(MATOP_TRANSPOSE=14)
    383:       parameter(MATOP_GETINFO=15)
    384:       parameter(MATOP_EQUAL=16)
    385:       parameter(MATOP_GET_DIAGONAL=17)
    386:       parameter(MATOP_DIAGONAL_SCALE=18)
    387:       parameter(MATOP_NORM=19)
    388:       parameter(MATOP_ASSEMBLY_BEGIN=20)
    389:       parameter(MATOP_ASSEMBLY_END=21)
    390:       parameter(MATOP_COMPRESS=22)
    391:       parameter(MATOP_SET_OPTION=23)
    392:       parameter(MATOP_ZERO_ENTRIES=24)
    393:       parameter(MATOP_ZERO_ROWS=25)
    394:       parameter(MATOP_LUFACTOR_SYMBOLIC=26)
    395:       parameter(MATOP_LUFACTOR_NUMERIC=27)
    396:       parameter(MATOP_CHOLESKY_FACTOR_SYMBOLIC=28)
    397:       parameter(MATOP_CHOLESKY_FACTOR_NUMERIC=29)
    398:       parameter(MATOP_SETUP_PREALLOCATION=30)
    399:       parameter(MATOP_ILUFACTOR_SYMBOLIC=31)
    400:       parameter(MATOP_ICCFACTOR_SYMBOLIC=32)
    401:       parameter(MATOP_GET_ARRAY=33)
    402:       parameter(MATOP_RESTORE_ARRAY=34)
    403:       parameter(MATOP_DUPLICATE=35)
    404:       parameter(MATOP_FORWARD_SOLVE=36)
    405:       parameter(MATOP_BACKWARD_SOLVE=37)
    406:       parameter(MATOP_ILUFACTOR=38)
    407:       parameter(MATOP_ICCFACTOR=39)
    408:       parameter(MATOP_AXPY=40)
    409:       parameter(MATOP_GET_SUBMATRICES=41)
    410:       parameter(MATOP_INCREASE_OVERLAP=42)
    411:       parameter(MATOP_GET_VALUES=43)
    412:       parameter(MATOP_COPY=44)
    413:       parameter(MATOP_PRINT_HELP=45)
    414:       parameter(MATOP_SCALE=46)
    415:       parameter(MATOP_SHIFT=47)
    416:       parameter(MATOP_DIAGONAL_SHIFT=48)
    417:       parameter(MATOP_ILUDT_FACTOR=49)
    418:       parameter(MATOP_GET_BLOCK_SIZE=50)
    419:       parameter(MATOP_GET_ROW_IJ=51)
    420:       parameter(MATOP_RESTORE_ROW_IJ=52)
    421:       parameter(MATOP_GET_COLUMN_IJ=53)
    422:       parameter(MATOP_RESTORE_COLUMN_IJ=54)
    423:       parameter(MATOP_FDCOLORING_CREATE=55)
    424:       parameter(MATOP_COLORING_PATCH=56)
    425:       parameter(MATOP_SET_UNFACTORED=57)
    426:       parameter(MATOP_PERMUTE=58)
    427:       parameter(MATOP_SET_VALUES_BLOCKED=59)
    428:       parameter(MATOP_GET_SUBMATRIX=60)
    429:       parameter(MATOP_DESTROY=61)
    430:       parameter(MATOP_VIEW=62)
    431:       parameter(MATOP_GET_MAPS=63)
    432:       parameter(MATOP_USE_SCALED_FORM=64)
    433:       parameter(MATOP_SCALE_SYSTEM=65)
    434:       parameter(MATOP_UNSCALE_SYSTEM=66)
    435:       parameter(MATOP_SET_LOCAL_TO_GLOBAL_MAP=67)
    436:       parameter(MATOP_SET_VALUES_LOCAL=68)
    437:       parameter(MATOP_ZERO_ROWS_LOCAL=69)
    438:       parameter(MATOP_GET_ROW_MAX=70)
    439:       parameter(MATOP_CONVERT=71)
    440:       parameter(MATOP_SET_COLORING=72)
    441:       parameter(MATOP_SET_VALUES_ADIC=73)
    442:       parameter(MATOP_SET_VALUES_ADIFOR=74)
    443:       parameter(MATOP_FD_COLORING_APPLY=75)
    444:       parameter(MATOP_SET_FROM_OPTIONS=76)
    445:       parameter(MATOP_MULT_CON=77)
    446:       parameter(MATOP_MULT_TRANSPOSE_CON=78)
    447:       parameter(MATOP_ILU_FACTOR_SYMBOLIC_CON=79)
    448:       parameter(MATOP_PERMUTE_SPARSIFY=80)
    449:       parameter(MATOP_MULT_MULTIPLE=81)
    450:       parameter(MATOP_SOLVE_MULTIPLE=82)
    451:       parameter(MATOP_GET_INERTIA=83)
    452:       parameter(MATOP_LOAD=84)
    453:       parameter(MATOP_IS_SYMMETRIC=85)
    454:       parameter(MATOP_IS_HERMITIAN=86)
    455:       parameter(MATOP_IS_STRUCTURALLY_SYMMETRIC=87)
    456:       parameter(MATOP_PB_RELAX=88)
    457:       parameter(MATOP_GET_VECS=89)
    458:       parameter(MATOP_MAT_MULT=90)
    459:       parameter(MATOP_MAT_MULT_SYMBOLIC=91)
    460:       parameter(MATOP_MAT_MULT_NUMERIC=92)
    461:       parameter(MATOP_PTAP=93)
    462:       parameter(MATOP_PTAP_SYMBOLIC=94)
    463:       parameter(MATOP_PTAP_NUMERIC=95)
    464:       parameter(MATOP_MAT_MULT_TRANSPOSE=96)
    465:       parameter(MATOP_MAT_MULT_TRANSPOSE_SYM=97)
    466:       parameter(MATOP_MAT_MULT_TRANSPOSE_NUM=98)
    467:       parameter(MATOP_PTAP_SYMBOLIC_SEQAIJ=99)
    468:       parameter(MATOP_PTAP_NUMERIC_SEQAIJ=100)
    469:       parameter(MATOP_PTAP_SYMBOLIC_MPIAIJ=101)
    470:       parameter(MATOP_PTAP_NUMERIC_MPIAIJ=102)
    471:       parameter(MATOP_SET_VALUES_ROW=105)
    472:       parameter(MATOP_GET_ROW_UTRIANGULAR=108)
    473:       parameter(MATOP_RESTORE_ROW_UTRIANGULAR=109)
    474:       parameter(MATOP_MATSOLVE=110)
    475: !
    476: !
    477: !
    478:       PetscEnum MATRIX_BINARY_FORMAT_DENSE
    479:       parameter (MATRIX_BINARY_FORMAT_DENSE=-1)
    480: !
    481: !  End of Fortran include file for the Mat package in PETSc
    482: !
    483: #endif