Actual source code: petscmatmod.F90

  1:         module 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>

 14:         end module

 16: !     ----------------------------------------------

 18:         module petscmat
 19:         use petscmatdef
 20:         use petscvec

 22: #include <../src/mat/ftn-mod/petscmat.h90>
 23: #include <../ftn/mat/petscmat.h90>
 24: #include <../ftn/mat/petscmatcoarsen.h90>
 25: #include <../ftn/mat/petscpartitioner.h90>

 27: !     deprecated functions

 29:         interface MatDenseGetArrayF90
 30:           module procedure MatDenseGetArrayF901d, MatDenseGetArrayF902d
 31:         end interface

 33:         interface  MatDenseRestoreArrayF90
 34:           module procedure MatDenseRestoreArrayF901d, MatDenseRestoreArrayF902d
 35:         end interface

 37:         interface MatDenseGetArrayReadF90
 38:           module procedure MatDenseGetArrayReadF901d, MatDenseGetArrayReadF902d
 39:         end interface

 41:         interface  MatDenseRestoreArrayReadF90
 42:           module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
 43:         end interface

 45:         interface MatDenseGetArrayWriteF90
 46:           module procedure MatDenseGetArrayWriteF901d, MatDenseGetArrayWriteF902d
 47:         end interface

 49:         interface  MatDenseRestoreArrayWriteF90
 50:           module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
 51:         end interface

 53:         contains

 55: #include <../ftn/mat/petscmat.hf90>
 56: #include <../ftn/mat/petscmatcoarsen.hf90>
 57: #include <../ftn/mat/petscpartitioner.hf90>

 59: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 60: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF901d
 61: #endif
 62:         Subroutine MatDenseGetArrayF901d(v,array,ierr)
 63:           PetscScalar, pointer :: array(:)
 64:           PetscErrorCode ierr
 65:           Mat     v
 66:           call MatDenseGetArray(v,array,ierr)
 67:         End Subroutine

 69: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 70: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF901d
 71: #endif
 72:         Subroutine MatDenseRestoreArrayF901d(v,array,ierr)
 73:           PetscScalar, pointer :: array(:)
 74:           PetscErrorCode ierr
 75:           Mat     v
 76:           call MatDenseRestoreArray(v,array,ierr)
 77:         End Subroutine

 79: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 80: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF901d
 81: #endif
 82:         Subroutine MatDenseGetArrayReadF901d(v,array,ierr)
 83:           PetscScalar, pointer :: array(:)
 84:           PetscErrorCode ierr
 85:           Mat     v
 86:           call MatDenseGetArrayRead(v,array,ierr)
 87:         End Subroutine

 89: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 90: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF901d
 91: #endif
 92:         Subroutine MatDenseRestoreArrayReadF901d(v,array,ierr)
 93:           PetscScalar, pointer :: array(:)
 94:           PetscErrorCode ierr
 95:           Mat     v
 96:           call MatDenseRestoreArrayRead(v,array,ierr)
 97:         End Subroutine

 99: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
100: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF901d
101: #endif
102:         Subroutine MatDenseGetArrayWriteF901d(v,array,ierr)
103:           PetscScalar, pointer :: array(:)
104:           PetscErrorCode ierr
105:           Mat     v
106:           call MatDenseGetArrayWrite(v,array,ierr)
107:         End Subroutine

109: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
110: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF901d
111: #endif
112:         Subroutine MatDenseRestoreArrayWriteF901d(v,array,ierr)
113:           PetscScalar, pointer :: array(:)
114:           PetscErrorCode ierr
115:           Mat     v
116:           call MatDenseRestoreArrayWrite(v,array,ierr)
117:         End Subroutine

119: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
120: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF902d
121: #endif
122:         Subroutine MatDenseGetArrayF902d(v,array,ierr)
123:           PetscScalar, pointer :: array(:,:)
124:           PetscErrorCode ierr
125:           Mat     v
126:           call MatDenseGetArray(v,array,ierr)
127:         End Subroutine

129: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
130: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF902d
131: #endif
132:         Subroutine MatDenseRestoreArrayF902d(v,array,ierr)
133:           PetscScalar, pointer :: array(:,:)
134:           PetscErrorCode ierr
135:           Mat     v
136:           call MatDenseRestoreArray(v,array,ierr)
137:         End Subroutine

139: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
140: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF902d
141: #endif
142:         Subroutine MatDenseGetArrayReadF902d(v,array,ierr)
143:           PetscScalar, pointer :: array(:,:)
144:           PetscErrorCode ierr
145:           Mat     v
146:           call MatDenseGetArrayRead(v,array,ierr)
147:         End Subroutine

149: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
150: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF90
151: #endif
152:         Subroutine MatDenseRestoreArrayReadF902d(v,array,ierr)
153:           PetscScalar, pointer :: array(:,:)
154:           PetscErrorCode ierr
155:           Mat     v
156:           call MatDenseRestoreArrayRead(v,array,ierr)
157:         End Subroutine

159: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
160: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF90
161: #endif
162:         Subroutine MatDenseGetArrayWriteF902d(v,array,ierr)
163:           PetscScalar, pointer :: array(:,:)
164:           PetscErrorCode ierr
165:           Mat     v
166:           call MatDenseGetArrayWrite(v,array,ierr)
167:         End Subroutine

169: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
170: !DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF90
171: #endif
172:         Subroutine MatDenseRestoreArrayWriteF902d(v,array,ierr)
173:           PetscScalar, pointer :: array(:,:)
174:           PetscErrorCode ierr
175:           Mat     v
176:           call MatDenseRestoreArrayWrite(v,array,ierr)
177:         End Subroutine

179:         end module