1*02c639afSMartin Diehl interface 2*02c639afSMartin Diehl subroutine MatFDColoringRestorePerturbedColumns(i, len, array, ierr) 3fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 46dd63270SBarry Smith import tMatFDColoring 56dd63270SBarry Smith PetscInt, pointer :: array(:) 66dd63270SBarry Smith PetscInt len 76dd63270SBarry Smith PetscErrorCode ierr 86dd63270SBarry Smith MatFDColoring i 9*02c639afSMartin Diehl end subroutine 10*02c639afSMartin Diehl end interface 116dd63270SBarry Smith 126dd63270SBarry Smith interface MatDenseGetArray 13*02c639afSMartin Diehl subroutine MatDenseGetArray1d(v, array, ierr) 14fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 156dd63270SBarry Smith import tMat 166dd63270SBarry Smith PetscScalar, pointer :: array(:) 176dd63270SBarry Smith PetscErrorCode ierr 186dd63270SBarry Smith Mat v 19*02c639afSMartin Diehl end subroutine 20*02c639afSMartin Diehl subroutine MatDenseGetArray2d(v, array, ierr) 21fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 226dd63270SBarry Smith import tMat 236dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 246dd63270SBarry Smith PetscErrorCode ierr 256dd63270SBarry Smith Mat v 26*02c639afSMartin Diehl end subroutine 276dd63270SBarry Smith end interface 286dd63270SBarry Smith 296dd63270SBarry Smith interface MatDenseRestoreArray 30*02c639afSMartin Diehl subroutine MatDenseRestoreArray1d(v, array, ierr) 31fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 326dd63270SBarry Smith import tMat 336dd63270SBarry Smith PetscScalar, pointer :: array(:) 346dd63270SBarry Smith PetscErrorCode ierr 356dd63270SBarry Smith Mat v 36*02c639afSMartin Diehl end subroutine 37*02c639afSMartin Diehl subroutine MatDenseRestoreArray2d(v, array, ierr) 38fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 396dd63270SBarry Smith import tMat 406dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 416dd63270SBarry Smith PetscErrorCode ierr 426dd63270SBarry Smith Mat v 43*02c639afSMartin Diehl end subroutine 446dd63270SBarry Smith end interface 456dd63270SBarry Smith 466dd63270SBarry Smith interface MatDenseGetArrayRead 47*02c639afSMartin Diehl subroutine MatDenseGetArrayRead1d(v, array, ierr) 48fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 496dd63270SBarry Smith import tMat 506dd63270SBarry Smith PetscScalar, pointer :: array(:) 516dd63270SBarry Smith PetscErrorCode ierr 526dd63270SBarry Smith Mat v 53*02c639afSMartin Diehl end subroutine 54*02c639afSMartin Diehl subroutine MatDenseGetArrayRead2d(v, array, ierr) 55fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 566dd63270SBarry Smith import tMat 576dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 586dd63270SBarry Smith PetscErrorCode ierr 596dd63270SBarry Smith Mat v 60*02c639afSMartin Diehl end subroutine 616dd63270SBarry Smith end interface 626dd63270SBarry Smith 636dd63270SBarry Smith interface MatDenseRestoreArrayRead 64*02c639afSMartin Diehl subroutine MatDenseRestoreArrayRead1d(v, array, ierr) 65fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 666dd63270SBarry Smith import tMat 676dd63270SBarry Smith PetscScalar, pointer :: array(:) 686dd63270SBarry Smith PetscErrorCode ierr 696dd63270SBarry Smith Mat v 70*02c639afSMartin Diehl end subroutine 71*02c639afSMartin Diehl subroutine MatDenseRestoreArrayRead2d(v, array, ierr) 72fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 736dd63270SBarry Smith import tMat 746dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 756dd63270SBarry Smith PetscErrorCode ierr 766dd63270SBarry Smith Mat v 77*02c639afSMartin Diehl end subroutine 786dd63270SBarry Smith end interface 796dd63270SBarry Smith 806dd63270SBarry Smith interface MatDenseGetArrayWrite 81*02c639afSMartin Diehl subroutine MatDenseGetArrayWrite1d(v, array, ierr) 82fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 836dd63270SBarry Smith import tMat 846dd63270SBarry Smith PetscScalar, pointer :: array(:) 856dd63270SBarry Smith PetscErrorCode ierr 866dd63270SBarry Smith Mat v 87*02c639afSMartin Diehl end subroutine 88*02c639afSMartin Diehl subroutine MatDenseGetArrayWrite2d(v, array, ierr) 89fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 906dd63270SBarry Smith import tMat 916dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 926dd63270SBarry Smith PetscErrorCode ierr 936dd63270SBarry Smith Mat v 94*02c639afSMartin Diehl end subroutine 956dd63270SBarry Smith end interface 966dd63270SBarry Smith 976dd63270SBarry Smith interface MatDenseRestoreArrayWrite 98*02c639afSMartin Diehl subroutine MatDenseRestoreArrayWrite1d(v, array, ierr) 99fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1006dd63270SBarry Smith import tMat 1016dd63270SBarry Smith PetscScalar, pointer :: array(:) 1026dd63270SBarry Smith PetscErrorCode ierr 1036dd63270SBarry Smith Mat v 104*02c639afSMartin Diehl end subroutine 105*02c639afSMartin Diehl subroutine MatDenseRestoreArrayWrite2d(v, array, ierr) 106fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1076dd63270SBarry Smith import tMat 1086dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 1096dd63270SBarry Smith PetscErrorCode ierr 1106dd63270SBarry Smith Mat v 111*02c639afSMartin Diehl end subroutine 1126dd63270SBarry Smith end interface 1138c31b630SBarry Smith 1148c31b630SBarry Smith interface 1158c31b630SBarry Smith subroutine MatNullSpaceRestoreVecs(a, b, c, d, z) 1168c31b630SBarry Smith use, intrinsic :: ISO_C_binding 1178c31b630SBarry Smith import tMatNullSpace, tVec 1188c31b630SBarry Smith MatNullSpace :: a 1198c31b630SBarry Smith PetscBool :: b 1208c31b630SBarry Smith PetscInt :: c 1218c31b630SBarry Smith Vec, pointer :: d(:) 1228c31b630SBarry Smith PetscErrorCode z 1238c31b630SBarry Smith end subroutine 1248c31b630SBarry Smith end interface 1258c31b630SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 1268c31b630SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT::MatNullSpaceRestoreVecs 1278c31b630SBarry Smith#endif 128