13d1372b2SMartin Diehlinterface 2*0da4d79bSMartin Diehl subroutine DMDARestoreNeighbors(da, ranks, ierr) 33d1372b2SMartin Diehl use, intrinsic :: ISO_C_binding 43d1372b2SMartin Diehl import tDM 5*0da4d79bSMartin Diehl DM da 6*0da4d79bSMartin Diehl PetscMPIInt, pointer :: ranks(:) 7*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 83d1372b2SMartin Diehl end subroutine 93d1372b2SMartin Diehl 10*0da4d79bSMartin Diehl subroutine DMDARestoreOwnershipRanges(da, lx, ly, lz, ierr) 113d1372b2SMartin Diehl use, intrinsic :: ISO_C_binding 123d1372b2SMartin Diehl import tDM 13*0da4d79bSMartin Diehl DM da 143d1372b2SMartin Diehl PetscInt, pointer :: lx(:), ly(:), lz(:) 15*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 163d1372b2SMartin Diehl end subroutine 173d1372b2SMartin Diehlend interface 183d1372b2SMartin Diehl 193d1372b2SMartin Diehl#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 203d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::DMDARestoreNeighbors 213d1372b2SMartin Diehl!DEC$ ATTRIBUTES DLLEXPORT::DMDARestoreOwnershipRanges 223d1372b2SMartin Diehl#endif 233d1372b2SMartin Diehl 2402c639afSMartin Diehlinterface DMDAVecGetArray 25*0da4d79bSMartin Diehl subroutine DMDAVecGetArray1(da, vec, array, ierr) 26fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 276dd63270SBarry Smith import tDM, tVec 28*0da4d79bSMartin Diehl DM da 29*0da4d79bSMartin Diehl Vec vec 30*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:) 31*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 3202c639afSMartin Diehl end subroutine 33*0da4d79bSMartin Diehl subroutine DMDAVecGetArray2(da, vec, array, ierr) 34fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 356dd63270SBarry Smith import tDM, tVec 36*0da4d79bSMartin Diehl DM da 37*0da4d79bSMartin Diehl Vec vec 38*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :) 39*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 4002c639afSMartin Diehl end subroutine 41*0da4d79bSMartin Diehl subroutine DMDAVecGetArray3(da, vec, array, ierr) 42fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 436dd63270SBarry Smith import tDM, tVec 44*0da4d79bSMartin Diehl DM da 45*0da4d79bSMartin Diehl Vec vec 46*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :) 47*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 4802c639afSMartin Diehl end subroutine 49*0da4d79bSMartin Diehl subroutine DMDAVecGetArray4(da, vec, array, ierr) 50fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 516dd63270SBarry Smith import tDM, tVec 52*0da4d79bSMartin Diehl DM da 53*0da4d79bSMartin Diehl Vec vec 54*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :, :) 55*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 5602c639afSMartin Diehl end subroutine 5702c639afSMartin Diehlend interface DMDAVecGetArray 586dd63270SBarry Smith 5902c639afSMartin Diehlinterface DMDAVecRestoreArray 60*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArray1(da, vec, array, ierr) 61fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 626dd63270SBarry Smith import tDM, tVec 63*0da4d79bSMartin Diehl DM da 64*0da4d79bSMartin Diehl Vec vec 65*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:) 66*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 6702c639afSMartin Diehl end subroutine 68*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArray2(da, vec, array, ierr) 69fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 706dd63270SBarry Smith import tDM, tVec 71*0da4d79bSMartin Diehl DM da 72*0da4d79bSMartin Diehl Vec vec 73*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :) 74*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 7502c639afSMartin Diehl end subroutine 76*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArray3(da, vec, array, ierr) 77fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 786dd63270SBarry Smith import tDM, tVec 79*0da4d79bSMartin Diehl DM da 80*0da4d79bSMartin Diehl Vec vec 81*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :) 82*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 8302c639afSMartin Diehl end subroutine 84*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArray4(da, vec, array, ierr) 85fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 866dd63270SBarry Smith import tDM, tVec 87*0da4d79bSMartin Diehl DM da 88*0da4d79bSMartin Diehl Vec vec 89*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :, :) 90*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 9102c639afSMartin Diehl end subroutine 9202c639afSMartin Diehlend interface DMDAVecRestoreArray 936dd63270SBarry Smith 9402c639afSMartin Diehlinterface DMDAVecGetArrayRead 95*0da4d79bSMartin Diehl subroutine DMDAVecGetArrayRead1(da, vec, array, ierr) 96fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 976dd63270SBarry Smith import tDM, tVec 98*0da4d79bSMartin Diehl DM da 99*0da4d79bSMartin Diehl Vec vec 100*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:) 101*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 10202c639afSMartin Diehl end subroutine 103*0da4d79bSMartin Diehl subroutine DMDAVecGetArrayRead2(da, vec, array, ierr) 104fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1056dd63270SBarry Smith import tDM, tVec 106*0da4d79bSMartin Diehl DM da 107*0da4d79bSMartin Diehl Vec vec 108*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :) 109*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 11002c639afSMartin Diehl end subroutine 111*0da4d79bSMartin Diehl subroutine DMDAVecGetArrayRead3(da, vec, array, ierr) 112fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1136dd63270SBarry Smith import tDM, tVec 114*0da4d79bSMartin Diehl DM da 115*0da4d79bSMartin Diehl Vec vec 116*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :) 117*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 11802c639afSMartin Diehl end subroutine 119*0da4d79bSMartin Diehl subroutine DMDAVecGetArrayRead4(da, vec, array, ierr) 120fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1216dd63270SBarry Smith import tDM, tVec 122*0da4d79bSMartin Diehl DM da 123*0da4d79bSMartin Diehl Vec vec 124*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :, :) 125*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 12602c639afSMartin Diehl end subroutine 12702c639afSMartin Diehlend interface DMDAVecGetArrayRead 1286dd63270SBarry Smith 12902c639afSMartin Diehlinterface DMDAVecRestoreArrayRead 130*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArrayRead1(da, vec, array, ierr) 131fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1326dd63270SBarry Smith import tDM, tVec 133*0da4d79bSMartin Diehl DM da 134*0da4d79bSMartin Diehl Vec vec 135*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:) 136*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 13702c639afSMartin Diehl end subroutine 138*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArrayRead2(da, vec, array, ierr) 139fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1406dd63270SBarry Smith import tDM, tVec 141*0da4d79bSMartin Diehl DM da 142*0da4d79bSMartin Diehl Vec vec 143*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :) 144*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 14502c639afSMartin Diehl end subroutine 146*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArrayRead3(da, vec, array, ierr) 147fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1486dd63270SBarry Smith import tDM, tVec 149*0da4d79bSMartin Diehl DM da 150*0da4d79bSMartin Diehl Vec vec 151*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :) 152*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 15302c639afSMartin Diehl end subroutine 154*0da4d79bSMartin Diehl subroutine DMDAVecRestoreArrayRead4(da, vec, array, ierr) 155fe66ebccSMartin Diehl use, intrinsic :: ISO_C_binding 1566dd63270SBarry Smith import tDM, tVec 157*0da4d79bSMartin Diehl DM da 158*0da4d79bSMartin Diehl Vec vec 159*0da4d79bSMartin Diehl PetscScalar, pointer :: array(:, :, :, :) 160*0da4d79bSMartin Diehl PetscErrorCode, intent(out) :: ierr 16102c639afSMartin Diehl end subroutine 16202c639afSMartin Diehlend interface DMDAVecRestoreArrayRead 163