xref: /petsc/src/mat/ftn-mod/petscmatmod.F90 (revision 03047865b8d8757cf1cf9cda45785c1537b01dc1)
16dd63270SBarry Smithmodule petscmatdef
2fe66ebccSMartin Diehl  use, intrinsic :: ISO_C_binding
36dd63270SBarry Smith  use petscvecdef
46dd63270SBarry Smith#include "petsc/finclude/petscmat.h"
56dd63270SBarry Smith#include "petsc/finclude/petscmatcoarsen.h"
66dd63270SBarry Smith#include "petsc/finclude/petscpartitioner.h"
76dd63270SBarry Smith#include "petsc/finclude/petscmathypre.h"
86dd63270SBarry Smith#include "petsc/finclude/petscmathtool.h"
96dd63270SBarry Smith#include "petsc/finclude/petscmatelemental.h"
106dd63270SBarry Smith#include <../ftn/mat/petscmat.h>
116dd63270SBarry Smith#include <../ftn/mat/petscmatcoarsen.h>
126dd63270SBarry Smith#include <../ftn/mat/petscpartitioner.h>
136dd63270SBarry Smith
146dd63270SBarry Smithend module
156dd63270SBarry Smith
166dd63270SBarry Smithmodule petscmat
176dd63270SBarry Smith  use petscmatdef
186dd63270SBarry Smith  use petscvec
196dd63270SBarry Smith
206dd63270SBarry Smith#include <../src/mat/ftn-mod/petscmat.h90>
216dd63270SBarry Smith#include <../ftn/mat/petscmat.h90>
226dd63270SBarry Smith#include <../ftn/mat/petscmatcoarsen.h90>
236dd63270SBarry Smith#include <../ftn/mat/petscpartitioner.h90>
246dd63270SBarry Smith
256dd63270SBarry Smith!     deprecated functions
266dd63270SBarry Smith
276dd63270SBarry Smith  interface MatDenseGetArrayF90
286dd63270SBarry Smith    module procedure MatDenseGetArrayF901d, MatDenseGetArrayF902d
296dd63270SBarry Smith  end interface
306dd63270SBarry Smith
316dd63270SBarry Smith  interface MatDenseRestoreArrayF90
326dd63270SBarry Smith    module procedure MatDenseRestoreArrayF901d, MatDenseRestoreArrayF902d
336dd63270SBarry Smith  end interface
346dd63270SBarry Smith
356dd63270SBarry Smith  interface MatDenseGetArrayReadF90
366dd63270SBarry Smith    module procedure MatDenseGetArrayReadF901d, MatDenseGetArrayReadF902d
376dd63270SBarry Smith  end interface
386dd63270SBarry Smith
396dd63270SBarry Smith  interface MatDenseRestoreArrayReadF90
406dd63270SBarry Smith    module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
416dd63270SBarry Smith  end interface
426dd63270SBarry Smith
436dd63270SBarry Smith  interface MatDenseGetArrayWriteF90
446dd63270SBarry Smith    module procedure MatDenseGetArrayWriteF901d, MatDenseGetArrayWriteF902d
456dd63270SBarry Smith  end interface
466dd63270SBarry Smith
476dd63270SBarry Smith  interface MatDenseRestoreArrayWriteF90
486dd63270SBarry Smith    module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
496dd63270SBarry Smith  end interface
506dd63270SBarry Smith
516dd63270SBarry Smithcontains
526dd63270SBarry Smith
536dd63270SBarry Smith#include <../ftn/mat/petscmat.hf90>
546dd63270SBarry Smith#include <../ftn/mat/petscmatcoarsen.hf90>
556dd63270SBarry Smith#include <../ftn/mat/petscpartitioner.hf90>
566dd63270SBarry Smith
576dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
586dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF901d
596dd63270SBarry Smith#endif
60*02c639afSMartin Diehl  subroutine MatDenseGetArrayF901d(v, array, ierr)
616dd63270SBarry Smith    PetscScalar, pointer :: array(:)
626dd63270SBarry Smith    PetscErrorCode ierr
636dd63270SBarry Smith    Mat v
646dd63270SBarry Smith    call MatDenseGetArray(v, array, ierr)
65*02c639afSMartin Diehl  end subroutine
666dd63270SBarry Smith
676dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
686dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF901d
696dd63270SBarry Smith#endif
70*02c639afSMartin Diehl  subroutine MatDenseRestoreArrayF901d(v, array, ierr)
716dd63270SBarry Smith    PetscScalar, pointer :: array(:)
726dd63270SBarry Smith    PetscErrorCode ierr
736dd63270SBarry Smith    Mat v
746dd63270SBarry Smith    call MatDenseRestoreArray(v, array, ierr)
75*02c639afSMartin Diehl  end subroutine
766dd63270SBarry Smith
776dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
786dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF901d
796dd63270SBarry Smith#endif
80*02c639afSMartin Diehl  subroutine MatDenseGetArrayReadF901d(v, array, ierr)
816dd63270SBarry Smith    PetscScalar, pointer :: array(:)
826dd63270SBarry Smith    PetscErrorCode ierr
836dd63270SBarry Smith    Mat v
846dd63270SBarry Smith    call MatDenseGetArrayRead(v, array, ierr)
85*02c639afSMartin Diehl  end subroutine
866dd63270SBarry Smith
876dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
886dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF901d
896dd63270SBarry Smith#endif
90*02c639afSMartin Diehl  subroutine MatDenseRestoreArrayReadF901d(v, array, ierr)
916dd63270SBarry Smith    PetscScalar, pointer :: array(:)
926dd63270SBarry Smith    PetscErrorCode ierr
936dd63270SBarry Smith    Mat v
946dd63270SBarry Smith    call MatDenseRestoreArrayRead(v, array, ierr)
95*02c639afSMartin Diehl  end subroutine
966dd63270SBarry Smith
976dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
986dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF901d
996dd63270SBarry Smith#endif
100*02c639afSMartin Diehl  subroutine MatDenseGetArrayWriteF901d(v, array, ierr)
1016dd63270SBarry Smith    PetscScalar, pointer :: array(:)
1026dd63270SBarry Smith    PetscErrorCode ierr
1036dd63270SBarry Smith    Mat v
1046dd63270SBarry Smith    call MatDenseGetArrayWrite(v, array, ierr)
105*02c639afSMartin Diehl  end subroutine
1066dd63270SBarry Smith
1076dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1086dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF901d
1096dd63270SBarry Smith#endif
110*02c639afSMartin Diehl  subroutine MatDenseRestoreArrayWriteF901d(v, array, ierr)
1116dd63270SBarry Smith    PetscScalar, pointer :: array(:)
1126dd63270SBarry Smith    PetscErrorCode ierr
1136dd63270SBarry Smith    Mat v
1146dd63270SBarry Smith    call MatDenseRestoreArrayWrite(v, array, ierr)
115*02c639afSMartin Diehl  end subroutine
1166dd63270SBarry Smith
1176dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1186dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF902d
1196dd63270SBarry Smith#endif
120*02c639afSMartin Diehl  subroutine MatDenseGetArrayF902d(v, array, ierr)
1216dd63270SBarry Smith    PetscScalar, pointer :: array(:, :)
1226dd63270SBarry Smith    PetscErrorCode ierr
1236dd63270SBarry Smith    Mat v
1246dd63270SBarry Smith    call MatDenseGetArray(v, array, ierr)
125*02c639afSMartin Diehl  end subroutine
1266dd63270SBarry Smith
1276dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1286dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF902d
1296dd63270SBarry Smith#endif
130*02c639afSMartin Diehl  subroutine MatDenseRestoreArrayF902d(v, array, ierr)
1316dd63270SBarry Smith    PetscScalar, pointer :: array(:, :)
1326dd63270SBarry Smith    PetscErrorCode ierr
1336dd63270SBarry Smith    Mat v
1346dd63270SBarry Smith    call MatDenseRestoreArray(v, array, ierr)
135*02c639afSMartin Diehl  end subroutine
1366dd63270SBarry Smith
1376dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1386dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF902d
1396dd63270SBarry Smith#endif
140*02c639afSMartin Diehl  subroutine MatDenseGetArrayReadF902d(v, array, ierr)
1416dd63270SBarry Smith    PetscScalar, pointer :: array(:, :)
1426dd63270SBarry Smith    PetscErrorCode ierr
1436dd63270SBarry Smith    Mat v
1446dd63270SBarry Smith    call MatDenseGetArrayRead(v, array, ierr)
145*02c639afSMartin Diehl  end subroutine
1466dd63270SBarry Smith
1476dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1486dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF90
1496dd63270SBarry Smith#endif
150*02c639afSMartin Diehl  subroutine MatDenseRestoreArrayReadF902d(v, array, ierr)
1516dd63270SBarry Smith    PetscScalar, pointer :: array(:, :)
1526dd63270SBarry Smith    PetscErrorCode ierr
1536dd63270SBarry Smith    Mat v
1546dd63270SBarry Smith    call MatDenseRestoreArrayRead(v, array, ierr)
155*02c639afSMartin Diehl  end subroutine
1566dd63270SBarry Smith
1576dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1586dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF90
1596dd63270SBarry Smith#endif
160*02c639afSMartin Diehl  subroutine MatDenseGetArrayWriteF902d(v, array, ierr)
1616dd63270SBarry Smith    PetscScalar, pointer :: array(:, :)
1626dd63270SBarry Smith    PetscErrorCode ierr
1636dd63270SBarry Smith    Mat v
1646dd63270SBarry Smith    call MatDenseGetArrayWrite(v, array, ierr)
165*02c639afSMartin Diehl  end subroutine
1666dd63270SBarry Smith
1676dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1686dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF90
1696dd63270SBarry Smith#endif
170*02c639afSMartin Diehl  subroutine MatDenseRestoreArrayWriteF902d(v, array, ierr)
1716dd63270SBarry Smith    PetscScalar, pointer :: array(:, :)
1726dd63270SBarry Smith    PetscErrorCode ierr
1736dd63270SBarry Smith    Mat v
1746dd63270SBarry Smith    call MatDenseRestoreArrayWrite(v, array, ierr)
175*02c639afSMartin Diehl  end subroutine
1766dd63270SBarry Smith
1776dd63270SBarry Smithend module
178