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