Actual source code: petscvecmod.F90
1: module 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>
11: end module
13: ! Needed by Fortran stub petscsfgetgraph_()
14: subroutine 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
21: end subroutine
22: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
23: !DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dCreateSFNode
24: #endif
26: subroutine F90Array1dDestroySFNode(ptr)
27: use petscisdef
28: implicit none
29: PetscSFNode, pointer :: ptr(:)
30: nullify (ptr)
31: end subroutine
32: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
33: !DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dDestroySFNode
34: #endif
36: ! ----------------------------------------------
38: module petscis
39: use petscisdef
40: use petscsys
42: interface PetscSFDestroyRemoteOffsets
43: subroutine PetscSFDestroyRemoteOffsets(ptr, ierr)
44: use petscisdef
45: implicit none
46: PetscInt, pointer :: ptr(:)
47: PetscErrorCode :: ierr
48: end subroutine PetscSFDestroyRemoteOffsets
49: end interface
51: #include <../src/vec/ftn-mod/petscis.h90>
52: #include <../ftn/vec/petscsf.h90>
53: #include <../ftn/vec/petscsection.h90>
54: #include <../ftn/vec/petscis.h90>
56: contains
58: #include <../ftn/vec/petscsf.hf90>
59: #include <../ftn/vec/petscsection.hf90>
60: #include <../ftn/vec/petscis.hf90>
62: end module
64: ! ----------------------------------------------
66: module petscvecdef
67: use petscisdef
68: #include <petsc/finclude/petscvec.h>
69: #include <../ftn/vec/petscvec.h>
70: end module
72: ! ----------------------------------------------
74: module petscvec
75: use petscis
76: use petscvecdef
78: #include <../src/vec/ftn-mod/petscvec.h90>
79: #include <../ftn/vec/petscvec.h90>
81: contains
83: #include <../ftn/vec/petscvec.hf90>
85: end module
87: ! ----------------------------------------------
89: module petscaodef
90: use petscsys
91: use petscvecdef
92: #include <petsc/finclude/petscao.h>
93: #include <../ftn/vec/petscao.h>
94: end module
96: ! ----------------------------------------------
98: module petscao
99: use petscsys
100: use petscaodef
101: #include <../ftn/vec/petscao.h90>
102: contains
103: #include <../ftn/vec/petscao.hf90>
104: end module
106: ! ----------------------------------------------
108: module petscpfdef
109: use petscsys
110: use petscvecdef
111: #include <petsc/finclude/petscpf.h>
112: #include <../ftn/vec/petscpf.h>
113: end module
115: ! ----------------------------------------------
117: module petscpf
118: use petscsys
119: use petscpfdef
120: #include <../ftn/vec/petscpf.h90>
121: contains
122: #include <../ftn/vec/petscpf.hf90>
123: end module