1module petscmatdef 2 use, intrinsic :: ISO_C_binding 3 use petscvecdef 4#include "petsc/finclude/petscmat.h" 5#include "petsc/finclude/petscmatcoarsen.h" 6#include "petsc/finclude/petscpartitioner.h" 7#include "petsc/finclude/petscmathypre.h" 8#include "petsc/finclude/petscmathtool.h" 9#include "petsc/finclude/petscmatelemental.h" 10#include <../ftn/mat/petscmat.h> 11#include <../ftn/mat/petscmatcoarsen.h> 12#include <../ftn/mat/petscpartitioner.h> 13 14end module 15 16module petscmat 17 use petscmatdef 18 use petscvec 19 20#include <../src/mat/ftn-mod/petscmat.h90> 21#include <../ftn/mat/petscmat.h90> 22#include <../ftn/mat/petscmatcoarsen.h90> 23#include <../ftn/mat/petscpartitioner.h90> 24 25! deprecated functions 26 27 interface MatDenseGetArrayF90 28 module procedure MatDenseGetArrayF901d, MatDenseGetArrayF902d 29 end interface 30 31 interface MatDenseRestoreArrayF90 32 module procedure MatDenseRestoreArrayF901d, MatDenseRestoreArrayF902d 33 end interface 34 35 interface MatDenseGetArrayReadF90 36 module procedure MatDenseGetArrayReadF901d, MatDenseGetArrayReadF902d 37 end interface 38 39 interface MatDenseRestoreArrayReadF90 40 module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d 41 end interface 42 43 interface MatDenseGetArrayWriteF90 44 module procedure MatDenseGetArrayWriteF901d, MatDenseGetArrayWriteF902d 45 end interface 46 47 interface MatDenseRestoreArrayWriteF90 48 module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d 49 end interface 50 51contains 52 53#include <../ftn/mat/petscmat.hf90> 54#include <../ftn/mat/petscmatcoarsen.hf90> 55#include <../ftn/mat/petscpartitioner.hf90> 56 57#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 58!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF901d 59#endif 60 subroutine MatDenseGetArrayF901d(v, array, ierr) 61 PetscScalar, pointer :: array(:) 62 PetscErrorCode ierr 63 Mat v 64 call MatDenseGetArray(v, array, ierr) 65 end subroutine 66 67#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 68!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF901d 69#endif 70 subroutine MatDenseRestoreArrayF901d(v, array, ierr) 71 PetscScalar, pointer :: array(:) 72 PetscErrorCode ierr 73 Mat v 74 call MatDenseRestoreArray(v, array, ierr) 75 end subroutine 76 77#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 78!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF901d 79#endif 80 subroutine MatDenseGetArrayReadF901d(v, array, ierr) 81 PetscScalar, pointer :: array(:) 82 PetscErrorCode ierr 83 Mat v 84 call MatDenseGetArrayRead(v, array, ierr) 85 end subroutine 86 87#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 88!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF901d 89#endif 90 subroutine MatDenseRestoreArrayReadF901d(v, array, ierr) 91 PetscScalar, pointer :: array(:) 92 PetscErrorCode ierr 93 Mat v 94 call MatDenseRestoreArrayRead(v, array, ierr) 95 end subroutine 96 97#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 98!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF901d 99#endif 100 subroutine MatDenseGetArrayWriteF901d(v, array, ierr) 101 PetscScalar, pointer :: array(:) 102 PetscErrorCode ierr 103 Mat v 104 call MatDenseGetArrayWrite(v, array, ierr) 105 end subroutine 106 107#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 108!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF901d 109#endif 110 subroutine MatDenseRestoreArrayWriteF901d(v, array, ierr) 111 PetscScalar, pointer :: array(:) 112 PetscErrorCode ierr 113 Mat v 114 call MatDenseRestoreArrayWrite(v, array, ierr) 115 end subroutine 116 117#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 118!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF902d 119#endif 120 subroutine MatDenseGetArrayF902d(v, array, ierr) 121 PetscScalar, pointer :: array(:, :) 122 PetscErrorCode ierr 123 Mat v 124 call MatDenseGetArray(v, array, ierr) 125 end subroutine 126 127#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 128!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF902d 129#endif 130 subroutine MatDenseRestoreArrayF902d(v, array, ierr) 131 PetscScalar, pointer :: array(:, :) 132 PetscErrorCode ierr 133 Mat v 134 call MatDenseRestoreArray(v, array, ierr) 135 end subroutine 136 137#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 138!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF902d 139#endif 140 subroutine MatDenseGetArrayReadF902d(v, array, ierr) 141 PetscScalar, pointer :: array(:, :) 142 PetscErrorCode ierr 143 Mat v 144 call MatDenseGetArrayRead(v, array, ierr) 145 end subroutine 146 147#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 148!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF90 149#endif 150 subroutine MatDenseRestoreArrayReadF902d(v, array, ierr) 151 PetscScalar, pointer :: array(:, :) 152 PetscErrorCode ierr 153 Mat v 154 call MatDenseRestoreArrayRead(v, array, ierr) 155 end subroutine 156 157#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 158!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF90 159#endif 160 subroutine MatDenseGetArrayWriteF902d(v, array, ierr) 161 PetscScalar, pointer :: array(:, :) 162 PetscErrorCode ierr 163 Mat v 164 call MatDenseGetArrayWrite(v, array, ierr) 165 end subroutine 166 167#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 168!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF90 169#endif 170 subroutine MatDenseRestoreArrayWriteF902d(v, array, ierr) 171 PetscScalar, pointer :: array(:, :) 172 PetscErrorCode ierr 173 Mat v 174 call MatDenseRestoreArrayWrite(v, array, ierr) 175 end subroutine 176 177end module 178