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: module petscis
37: use petscisdef
38: use petscsys
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
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>
54: contains
56: #include <../ftn/vec/petscsf.hf90>
57: #include <../ftn/vec/petscsection.hf90>
58: #include <../ftn/vec/petscis.hf90>
60: end module
62: module petscvecdef
63: use petscisdef
64: #include <petsc/finclude/petscvec.h>
65: #include <../ftn/vec/petscvec.h>
66: end module
68: module petscvec
69: use petscis
70: use petscvecdef
72: #include <../src/vec/ftn-mod/petscvec.h90>
73: #include <../ftn/vec/petscvec.h90>
75: contains
77: #include <../ftn/vec/petscvec.hf90>
79: end module
81: module petscaodef
82: use petscsys
83: use petscvecdef
84: #include <petsc/finclude/petscao.h>
85: #include <../ftn/vec/petscao.h>
86: end module
88: module petscao
89: use petscsys
90: use petscaodef
91: #include <../ftn/vec/petscao.h90>
92: contains
93: #include <../ftn/vec/petscao.hf90>
94: end module
96: module petscpfdef
97: use petscsys
98: use petscvecdef
99: #include <petsc/finclude/petscpf.h>
100: #include <../ftn/vec/petscpf.h>
101: end module
103: module petscpf
104: use petscsys
105: use petscpfdef
106: #include <../ftn/vec/petscpf.h90>
107: contains
108: #include <../ftn/vec/petscpf.hf90>
109: end module