102c639afSMartin Diehlinterface 202c639afSMartin 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 902c639afSMartin Diehl end subroutine 10*3d1372b2SMartin Diehl 11*3d1372b2SMartin Diehl subroutine MatNullSpaceRestoreVecs(a, b, c, d, z) 12*3d1372b2SMartin Diehl use, intrinsic :: ISO_C_binding 13*3d1372b2SMartin Diehl import tMatNullSpace, tVec 14*3d1372b2SMartin Diehl MatNullSpace :: a 15*3d1372b2SMartin Diehl PetscBool :: b 16*3d1372b2SMartin Diehl PetscInt :: c 17*3d1372b2SMartin Diehl Vec, pointer :: d(:) 18*3d1372b2SMartin Diehl PetscErrorCode z 19*3d1372b2SMartin Diehl end subroutine 2002c639afSMartin Diehlend interface 216dd63270SBarry Smith 22*3d1372b2SMartin Diehl#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 23*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::MatFDColoringRestorePerturbedColumns 24*3d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::MatNullSpaceRestoreVecs 25*3d1372b2SMartin Diehl#endif 26*3d1372b2SMartin Diehl 276dd63270SBarry Smithinterface MatDenseGetArray 2802c639afSMartin Diehl subroutine MatDenseGetArray1d(v, array, ierr) 29fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 306dd63270SBarry Smith import tMat 316dd63270SBarry Smith PetscScalar, pointer :: array(:) 326dd63270SBarry Smith PetscErrorCode ierr 336dd63270SBarry Smith Mat v 3402c639afSMartin Diehl end subroutine 3502c639afSMartin Diehl subroutine MatDenseGetArray2d(v, array, ierr) 36fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 376dd63270SBarry Smith import tMat 386dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 396dd63270SBarry Smith PetscErrorCode ierr 406dd63270SBarry Smith Mat v 4102c639afSMartin Diehl end subroutine 42*3d1372b2SMartin Diehlend interface MatDenseGetArray 436dd63270SBarry Smith 446dd63270SBarry Smithinterface MatDenseRestoreArray 4502c639afSMartin Diehl subroutine MatDenseRestoreArray1d(v, array, ierr) 46fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 476dd63270SBarry Smith import tMat 486dd63270SBarry Smith PetscScalar, pointer :: array(:) 496dd63270SBarry Smith PetscErrorCode ierr 506dd63270SBarry Smith Mat v 5102c639afSMartin Diehl end subroutine 5202c639afSMartin Diehl subroutine MatDenseRestoreArray2d(v, array, ierr) 53fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 546dd63270SBarry Smith import tMat 556dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 566dd63270SBarry Smith PetscErrorCode ierr 576dd63270SBarry Smith Mat v 5802c639afSMartin Diehl end subroutine 59*3d1372b2SMartin Diehlend interface MatDenseRestoreArray 606dd63270SBarry Smith 616dd63270SBarry Smithinterface MatDenseGetArrayRead 6202c639afSMartin Diehl subroutine MatDenseGetArrayRead1d(v, array, ierr) 63fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 646dd63270SBarry Smith import tMat 656dd63270SBarry Smith PetscScalar, pointer :: array(:) 666dd63270SBarry Smith PetscErrorCode ierr 676dd63270SBarry Smith Mat v 6802c639afSMartin Diehl end subroutine 6902c639afSMartin Diehl subroutine MatDenseGetArrayRead2d(v, array, ierr) 70fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 716dd63270SBarry Smith import tMat 726dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 736dd63270SBarry Smith PetscErrorCode ierr 746dd63270SBarry Smith Mat v 7502c639afSMartin Diehl end subroutine 76*3d1372b2SMartin Diehlend interface MatDenseGetArrayRead 776dd63270SBarry Smith 786dd63270SBarry Smithinterface MatDenseRestoreArrayRead 7902c639afSMartin Diehl subroutine MatDenseRestoreArrayRead1d(v, array, ierr) 80fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 816dd63270SBarry Smith import tMat 826dd63270SBarry Smith PetscScalar, pointer :: array(:) 836dd63270SBarry Smith PetscErrorCode ierr 846dd63270SBarry Smith Mat v 8502c639afSMartin Diehl end subroutine 8602c639afSMartin Diehl subroutine MatDenseRestoreArrayRead2d(v, array, ierr) 87fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 886dd63270SBarry Smith import tMat 896dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 906dd63270SBarry Smith PetscErrorCode ierr 916dd63270SBarry Smith Mat v 9202c639afSMartin Diehl end subroutine 93*3d1372b2SMartin Diehlend interface MatDenseRestoreArrayRead 946dd63270SBarry Smith 956dd63270SBarry Smithinterface MatDenseGetArrayWrite 9602c639afSMartin Diehl subroutine MatDenseGetArrayWrite1d(v, array, ierr) 97fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 986dd63270SBarry Smith import tMat 996dd63270SBarry Smith PetscScalar, pointer :: array(:) 1006dd63270SBarry Smith PetscErrorCode ierr 1016dd63270SBarry Smith Mat v 10202c639afSMartin Diehl end subroutine 10302c639afSMartin Diehl subroutine MatDenseGetArrayWrite2d(v, array, ierr) 104fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1056dd63270SBarry Smith import tMat 1066dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 1076dd63270SBarry Smith PetscErrorCode ierr 1086dd63270SBarry Smith Mat v 10902c639afSMartin Diehl end subroutine 110*3d1372b2SMartin Diehlend interface MatDenseGetArrayWrite 1116dd63270SBarry Smith 1126dd63270SBarry Smithinterface MatDenseRestoreArrayWrite 11302c639afSMartin Diehl subroutine MatDenseRestoreArrayWrite1d(v, array, ierr) 114fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1156dd63270SBarry Smith import tMat 1166dd63270SBarry Smith PetscScalar, pointer :: array(:) 1176dd63270SBarry Smith PetscErrorCode ierr 1186dd63270SBarry Smith Mat v 11902c639afSMartin Diehl end subroutine 12002c639afSMartin Diehl subroutine MatDenseRestoreArrayWrite2d(v, array, ierr) 121fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1226dd63270SBarry Smith import tMat 1236dd63270SBarry Smith PetscScalar, pointer :: array(:, :) 1246dd63270SBarry Smith PetscErrorCode ierr 1256dd63270SBarry Smith Mat v 12602c639afSMartin Diehl end subroutine 127*3d1372b2SMartin Diehlend interface MatDenseRestoreArrayWrite 128