xref: /petsc/src/vec/ftn-mod/petscvecmod.F90 (revision 03047865b8d8757cf1cf9cda45785c1537b01dc1)
1module petscisdef
2  use, intrinsic :: ISO_C_binding
3  use petscsysdef
4#include <petsc/finclude/petscis.h>
5#include <../ftn/vec/petscis.h>
6#include <petsc/finclude/petscsf.h>
7#include <../ftn/vec/petscsf.h>
8#include <petsc/finclude/petscsection.h>
9#include <../ftn/vec/petscsection.h>
10
11end module
12
13!     Needed by Fortran stub petscsfgetgraph_()
14subroutine F90Array1dCreateSFNode(array, start, len, ptr)
15  use petscisdef
16  implicit none
17  PetscInt start, len
18  PetscSFNode, target :: array(start:start + len - 1)
19  PetscSFNode, pointer :: ptr(:)
20  ptr => array
21end subroutine
22#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
23!DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dCreateSFNode
24#endif
25
26subroutine F90Array1dDestroySFNode(ptr)
27  use petscisdef
28  implicit none
29  PetscSFNode, pointer :: ptr(:)
30  nullify (ptr)
31end subroutine
32#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
33!DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dDestroySFNode
34#endif
35
36module petscis
37  use petscisdef
38  use petscsys
39
40  interface PetscSFDestroyRemoteOffsets
41    subroutine PetscSFDestroyRemoteOffsets(ptr, ierr)
42      use petscisdef
43      implicit none
44      PetscInt, pointer :: ptr(:)
45      PetscErrorCode :: ierr
46    end subroutine PetscSFDestroyRemoteOffsets
47  end interface
48
49#include <../src/vec/ftn-mod/petscis.h90>
50#include <../ftn/vec/petscsf.h90>
51#include <../ftn/vec/petscsection.h90>
52#include <../ftn/vec/petscis.h90>
53
54contains
55
56#include <../ftn/vec/petscsf.hf90>
57#include <../ftn/vec/petscsection.hf90>
58#include <../ftn/vec/petscis.hf90>
59
60end module
61
62module petscvecdef
63  use petscisdef
64#include <petsc/finclude/petscvec.h>
65#include <../ftn/vec/petscvec.h>
66end module
67
68module petscvec
69  use petscis
70  use petscvecdef
71
72#include <../src/vec/ftn-mod/petscvec.h90>
73#include <../ftn/vec/petscvec.h90>
74
75contains
76
77#include <../ftn/vec/petscvec.hf90>
78
79end module
80
81module petscaodef
82  use petscsys
83  use petscvecdef
84#include <petsc/finclude/petscao.h>
85#include <../ftn/vec/petscao.h>
86end module
87
88module petscao
89  use petscsys
90  use petscaodef
91#include <../ftn/vec/petscao.h90>
92contains
93#include <../ftn/vec/petscao.hf90>
94end module
95
96module petscpfdef
97  use petscsys
98  use petscvecdef
99#include <petsc/finclude/petscpf.h>
100#include <../ftn/vec/petscpf.h>
101end module
102
103module petscpf
104  use petscsys
105  use petscpfdef
106#include <../ftn/vec/petscpf.h90>
107contains
108#include <../ftn/vec/petscpf.hf90>
109end module
110