xref: /petsc/src/mat/ftn-mod/petscmatmod.F90 (revision fe66ebcc023cb303106674d426ee542bea707d38)
16dd63270SBarry Smith        module petscmatdef
2*fe66ebccSMartin Diehluse, 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 Smith        end module
156dd63270SBarry Smith
166dd63270SBarry Smith!     ----------------------------------------------
176dd63270SBarry Smith
186dd63270SBarry Smith        module petscmat
196dd63270SBarry Smith        use petscmatdef
206dd63270SBarry Smith        use petscvec
216dd63270SBarry Smith
226dd63270SBarry Smith#include <../src/mat/ftn-mod/petscmat.h90>
236dd63270SBarry Smith#include <../ftn/mat/petscmat.h90>
246dd63270SBarry Smith#include <../ftn/mat/petscmatcoarsen.h90>
256dd63270SBarry Smith#include <../ftn/mat/petscpartitioner.h90>
266dd63270SBarry Smith
276dd63270SBarry Smith!     deprecated functions
286dd63270SBarry Smith
296dd63270SBarry Smith        interface MatDenseGetArrayF90
306dd63270SBarry Smith          module procedure MatDenseGetArrayF901d, MatDenseGetArrayF902d
316dd63270SBarry Smith        end interface
326dd63270SBarry Smith
336dd63270SBarry Smith        interface  MatDenseRestoreArrayF90
346dd63270SBarry Smith          module procedure MatDenseRestoreArrayF901d, MatDenseRestoreArrayF902d
356dd63270SBarry Smith        end interface
366dd63270SBarry Smith
376dd63270SBarry Smith        interface MatDenseGetArrayReadF90
386dd63270SBarry Smith          module procedure MatDenseGetArrayReadF901d, MatDenseGetArrayReadF902d
396dd63270SBarry Smith        end interface
406dd63270SBarry Smith
416dd63270SBarry Smith        interface  MatDenseRestoreArrayReadF90
426dd63270SBarry Smith          module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
436dd63270SBarry Smith        end interface
446dd63270SBarry Smith
456dd63270SBarry Smith        interface MatDenseGetArrayWriteF90
466dd63270SBarry Smith          module procedure MatDenseGetArrayWriteF901d, MatDenseGetArrayWriteF902d
476dd63270SBarry Smith        end interface
486dd63270SBarry Smith
496dd63270SBarry Smith        interface  MatDenseRestoreArrayWriteF90
506dd63270SBarry Smith          module procedure MatDenseRestoreArrayWriteF901d, MatDenseRestoreArrayWriteF902d
516dd63270SBarry Smith        end interface
526dd63270SBarry Smith
536dd63270SBarry Smith        contains
546dd63270SBarry Smith
556dd63270SBarry Smith#include <../ftn/mat/petscmat.hf90>
566dd63270SBarry Smith#include <../ftn/mat/petscmatcoarsen.hf90>
576dd63270SBarry Smith#include <../ftn/mat/petscpartitioner.hf90>
586dd63270SBarry Smith
596dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
606dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF901d
616dd63270SBarry Smith#endif
626dd63270SBarry Smith        Subroutine MatDenseGetArrayF901d(v,array,ierr)
636dd63270SBarry Smith          PetscScalar, pointer :: array(:)
646dd63270SBarry Smith          PetscErrorCode ierr
656dd63270SBarry Smith          Mat     v
666dd63270SBarry Smith          call MatDenseGetArray(v,array,ierr)
676dd63270SBarry Smith        End Subroutine
686dd63270SBarry Smith
696dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
706dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF901d
716dd63270SBarry Smith#endif
726dd63270SBarry Smith        Subroutine MatDenseRestoreArrayF901d(v,array,ierr)
736dd63270SBarry Smith          PetscScalar, pointer :: array(:)
746dd63270SBarry Smith          PetscErrorCode ierr
756dd63270SBarry Smith          Mat     v
766dd63270SBarry Smith          call MatDenseRestoreArray(v,array,ierr)
776dd63270SBarry Smith        End Subroutine
786dd63270SBarry Smith
796dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
806dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF901d
816dd63270SBarry Smith#endif
826dd63270SBarry Smith        Subroutine MatDenseGetArrayReadF901d(v,array,ierr)
836dd63270SBarry Smith          PetscScalar, pointer :: array(:)
846dd63270SBarry Smith          PetscErrorCode ierr
856dd63270SBarry Smith          Mat     v
866dd63270SBarry Smith          call MatDenseGetArrayRead(v,array,ierr)
876dd63270SBarry Smith        End Subroutine
886dd63270SBarry Smith
896dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
906dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF901d
916dd63270SBarry Smith#endif
926dd63270SBarry Smith        Subroutine MatDenseRestoreArrayReadF901d(v,array,ierr)
936dd63270SBarry Smith          PetscScalar, pointer :: array(:)
946dd63270SBarry Smith          PetscErrorCode ierr
956dd63270SBarry Smith          Mat     v
966dd63270SBarry Smith          call MatDenseRestoreArrayRead(v,array,ierr)
976dd63270SBarry Smith        End Subroutine
986dd63270SBarry Smith
996dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1006dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF901d
1016dd63270SBarry Smith#endif
1026dd63270SBarry Smith        Subroutine MatDenseGetArrayWriteF901d(v,array,ierr)
1036dd63270SBarry Smith          PetscScalar, pointer :: array(:)
1046dd63270SBarry Smith          PetscErrorCode ierr
1056dd63270SBarry Smith          Mat     v
1066dd63270SBarry Smith          call MatDenseGetArrayWrite(v,array,ierr)
1076dd63270SBarry Smith        End Subroutine
1086dd63270SBarry Smith
1096dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1106dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF901d
1116dd63270SBarry Smith#endif
1126dd63270SBarry Smith        Subroutine MatDenseRestoreArrayWriteF901d(v,array,ierr)
1136dd63270SBarry Smith          PetscScalar, pointer :: array(:)
1146dd63270SBarry Smith          PetscErrorCode ierr
1156dd63270SBarry Smith          Mat     v
1166dd63270SBarry Smith          call MatDenseRestoreArrayWrite(v,array,ierr)
1176dd63270SBarry Smith        End Subroutine
1186dd63270SBarry Smith
1196dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1206dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayF902d
1216dd63270SBarry Smith#endif
1226dd63270SBarry Smith        Subroutine MatDenseGetArrayF902d(v,array,ierr)
1236dd63270SBarry Smith          PetscScalar, pointer :: array(:,:)
1246dd63270SBarry Smith          PetscErrorCode ierr
1256dd63270SBarry Smith          Mat     v
1266dd63270SBarry Smith          call MatDenseGetArray(v,array,ierr)
1276dd63270SBarry Smith        End Subroutine
1286dd63270SBarry Smith
1296dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1306dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayF902d
1316dd63270SBarry Smith#endif
1326dd63270SBarry Smith        Subroutine MatDenseRestoreArrayF902d(v,array,ierr)
1336dd63270SBarry Smith          PetscScalar, pointer :: array(:,:)
1346dd63270SBarry Smith          PetscErrorCode ierr
1356dd63270SBarry Smith          Mat     v
1366dd63270SBarry Smith          call MatDenseRestoreArray(v,array,ierr)
1376dd63270SBarry Smith        End Subroutine
1386dd63270SBarry Smith
1396dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1406dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayReadF902d
1416dd63270SBarry Smith#endif
1426dd63270SBarry Smith        Subroutine MatDenseGetArrayReadF902d(v,array,ierr)
1436dd63270SBarry Smith          PetscScalar, pointer :: array(:,:)
1446dd63270SBarry Smith          PetscErrorCode ierr
1456dd63270SBarry Smith          Mat     v
1466dd63270SBarry Smith          call MatDenseGetArrayRead(v,array,ierr)
1476dd63270SBarry Smith        End Subroutine
1486dd63270SBarry Smith
1496dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1506dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayReadF90
1516dd63270SBarry Smith#endif
1526dd63270SBarry Smith        Subroutine MatDenseRestoreArrayReadF902d(v,array,ierr)
1536dd63270SBarry Smith          PetscScalar, pointer :: array(:,:)
1546dd63270SBarry Smith          PetscErrorCode ierr
1556dd63270SBarry Smith          Mat     v
1566dd63270SBarry Smith          call MatDenseRestoreArrayRead(v,array,ierr)
1576dd63270SBarry Smith        End Subroutine
1586dd63270SBarry Smith
1596dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1606dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseGetArrayWriteF90
1616dd63270SBarry Smith#endif
1626dd63270SBarry Smith        Subroutine MatDenseGetArrayWriteF902d(v,array,ierr)
1636dd63270SBarry Smith          PetscScalar, pointer :: array(:,:)
1646dd63270SBarry Smith          PetscErrorCode ierr
1656dd63270SBarry Smith          Mat     v
1666dd63270SBarry Smith          call MatDenseGetArrayWrite(v,array,ierr)
1676dd63270SBarry Smith        End Subroutine
1686dd63270SBarry Smith
1696dd63270SBarry Smith#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
1706dd63270SBarry Smith!DEC$ ATTRIBUTES DLLEXPORT:: MatDenseRestoreArrayWriteF90
1716dd63270SBarry Smith#endif
1726dd63270SBarry Smith        Subroutine MatDenseRestoreArrayWriteF902d(v,array,ierr)
1736dd63270SBarry Smith          PetscScalar, pointer :: array(:,:)
1746dd63270SBarry Smith          PetscErrorCode ierr
1756dd63270SBarry Smith          Mat     v
1766dd63270SBarry Smith          call MatDenseRestoreArrayWrite(v,array,ierr)
1776dd63270SBarry Smith        End Subroutine
1786dd63270SBarry Smith
1796dd63270SBarry Smith        end module
180