xref: /petsc/src/mat/ftn-mod/petscmatmod.F90 (revision bcd4bb4a4158aa96f212e9537e87b40407faf83e)
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
16!     ----------------------------------------------
17
18module 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
53contains
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
179end module
180