xref: /petsc/src/mat/ftn-mod/petscmatmod.F90 (revision 2ff79c18c26c94ed8cb599682f680f231dca6444)
1        module petscmatdef
2use, 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
14        end module
15
16!     ----------------------------------------------
17
18        module petscmat
19        use petscmatdef
20        use petscvec
21
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>
26
27!     deprecated functions
28
29        interface MatDenseGetArrayF90
30          module procedure MatDenseGetArrayF901d, MatDenseGetArrayF902d
31        end interface
32
33        interface  MatDenseRestoreArrayF90
34          module procedure MatDenseRestoreArrayF901d, MatDenseRestoreArrayF902d
35        end interface
36
37        interface MatDenseGetArrayReadF90
38          module procedure MatDenseGetArrayReadF901d, MatDenseGetArrayReadF902d
39        end interface
40
41        interface  MatDenseRestoreArrayReadF90
42          module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
43        end interface
44
45        interface MatDenseGetArrayWriteF90
46          module procedure MatDenseGetArrayWriteF901d, MatDenseGetArrayWriteF902d
47        end interface
48
49        interface  MatDenseRestoreArrayWriteF90
50          module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
51        end interface
52
53        contains
54
55#include <../ftn/mat/petscmat.hf90>
56#include <../ftn/mat/petscmatcoarsen.hf90>
57#include <../ftn/mat/petscpartitioner.hf90>
58
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
68
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
78
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
88
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
98
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
108
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
118
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
128
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
138
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
148
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
158
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
168
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
178
179        end module
180