Actual source code: petscvec.h90
petsc-3.9.4 2018-09-11
1: #if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
2: Interface
3: subroutine PetscSFBcastBegin(sf,unit,rarray,larray,ierr)
4: use petscisdef
5: PetscSF :: sf
6: PetscMPIInt :: unit
7: type(*) :: rarray(:)
8: type(*) :: larray(:)
9: PetscErrorCode :: ierr
10: end Subroutine PetscSFBcastBegin
11: end Interface
12: #endif
14: #if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
15: Interface
16: subroutine PetscSFBcastEnd(sf,unit,rarray,larray,ierr)
17: use petscisdef
18: PetscSF :: sf
19: PetscMPIInt :: unit
20: type(*) :: rarray(:)
21: type(*) :: larray(:)
22: PetscErrorCode :: ierr
23: end Subroutine PetscSFBcastEnd
24: end Interface
25: #endif
27: Interface
28: subroutine PetscSFGetGraph(sf,nroots,nleaves,ilocal,iremote,ierr)
29: use petscisdef
30: PetscSF :: sf
31: PetscInt :: nroots,nleaves
32: PetscInt, pointer :: ilocal(:)
33: type(PetscSFNode), pointer :: iremote(:)
34: PetscErrorCode :: ierr
35: end Subroutine PetscSFGetGraph
36: end Interface
38: Interface
39: subroutine VecScatterCreateToAll(a,b,c,z)
40: use petscvecdef
41: Vec a
42: VecScatter b
43: Vec c
44: integer z
45: end subroutine
46: end Interface
48: Interface
49: subroutine VecScatterCreateToZero(a,b,c,z)
50: use petscvecdef
51: Vec a
52: VecScatter b
53: Vec c
54: integer z
55: end subroutine
56: end Interface
58: Interface VecSetValuesLocal
59: subroutine VecSetValuesLocal0(a,b,c,d,e,z)
60: use petscvecdef
61: Vec a ! Vec
62: PetscInt b ! PetscInt
63: PetscInt c (*) ! PetscInt
64: PetscScalar d (*) ! PetscScalar
65: InsertMode e ! InsertMode
66: integer z
67: end subroutine
68: subroutine VecSetValuesLocal11(a,b,c,d,e,z)
69: use petscvecdef
70: Vec a ! Vec
71: PetscInt b ! PetscInt
72: PetscInt c ! PetscInt
73: PetscScalar d ! PetscScalar
74: InsertMode e ! InsertMode
75: integer z
76: end subroutine
77: end interface VecSetValuesLocal
79: Interface VecSetValues
80: subroutine VecSetValues0(a,b,c,d,e,z)
81: use petscvecdef
82: Vec a ! Vec
83: PetscInt b ! PetscInt
84: PetscInt c (*) ! PetscInt
85: PetscScalar d (*) ! PetscScalar
86: InsertMode e ! InsertMode
87: integer z
88: end subroutine
89: subroutine VecSetValues1(a,b,c,d,e,z)
90: use petscvecdef
91: Vec a ! Vec
92: PetscInt b ! PetscInt
93: PetscInt c ! PetscInt
94: PetscScalar d (*) ! PetscScalar
95: InsertMode e ! InsertMode
96: integer z
97: end subroutine
98: subroutine VecSetValues11(a,b,c,d,e,z)
99: use petscvecdef
100: Vec a ! Vec
101: PetscInt b ! PetscInt
102: PetscInt c ! PetscInt
103: PetscScalar d ! PetscScalar
104: InsertMode e ! InsertMode
105: integer z
106: end subroutine
107: End Interface VecSetValues
109: Interface VecSetValuesBlocked
110: subroutine VecSetValuesBlocked0(a,b,c,d,e,z)
111: use petscvecdef
112: Vec a ! Vec
113: PetscInt b ! PetscInt
114: PetscInt c (*) ! PetscInt
115: PetscScalar d (*) ! PetscScalar
116: InsertMode e ! InsertMode
117: integer z
118: end subroutine
119: subroutine VecSetValuesBlocked1(a,b,c,d,e,z)
120: use petscvecdef
121: Vec a ! Vec
122: PetscInt b ! PetscInt
123: PetscInt c ! PetscInt
124: PetscScalar d (*) ! PetscScalar
125: InsertMode e ! InsertMode
126: integer z
127: end subroutine
128: subroutine VecSetValuesBlocked11(a,b,c,d,e,z)
129: use petscvecdef
130: Vec a ! Vec
131: PetscInt b ! PetscInt
132: PetscInt c ! PetscInt
133: PetscScalar d ! PetscScalar
134: InsertMode e ! InsertMode
135: integer z
136: end subroutine
137: End Interface VecSetValuesBlocked
139: Interface
140: Subroutine VecGetArrayF90(v,array,ierr)
141: use petscvecdef
142: PetscScalar, pointer :: array(:)
143: PetscErrorCode ierr
144: Vec v
145: End Subroutine
146: End Interface
148: Interface
149: Subroutine VecRestoreArrayF90(v,array,ierr)
150: use petscvecdef
151: PetscScalar, pointer :: array(:)
152: PetscErrorCode ierr
153: Vec v
154: End Subroutine
155: End Interface
157: Interface
158: Subroutine VecGetArrayReadF90(v,array,ierr)
159: use petscvecdef
160: PetscScalar, pointer :: array(:)
161: PetscErrorCode ierr
162: Vec v
163: End Subroutine
164: End Interface
166: Interface
167: Subroutine VecRestoreArrayReadF90(v,array,ierr)
168: use petscvecdef
169: PetscScalar, pointer :: array(:)
170: PetscErrorCode ierr
171: Vec v
172: End Subroutine
173: End Interface
175: Interface
176: Subroutine VecSetValuesSectionF90(v,s,p,va,mode,ierr)
177: use petscvecdef
178: PetscScalar, pointer :: va(:)
179: PetscErrorCode ierr
180: Vec v
181: PetscSection s
182: PetscInt p
183: InsertMode mode
184: End Subroutine
185: End Interface
187: ! -------------------------------------------------------------
189: Interface
190: Subroutine VecDuplicateVecsF90(v,m,vs,ierr)
191: use petscvecdef
192: Vec, pointer :: vs(:)
193: PetscInt m
194: PetscErrorCode ierr
195: Vec v
196: End Subroutine
197: End Interface
198: !
199: ! Question: should VecDestroyVecsF90() take the m argument since
200: ! the array of vectors already knows how long it is? Yes, to
201: ! match calling sequence for C/C++.
202: !
203: Interface
204: Subroutine VecDestroyVecsF90(m,vs,ierr)
205: use petscvecdef
206: Vec, pointer :: vs(:)
207: PetscInt m
208: PetscErrorCode ierr
209: End Subroutine
210: End Interface
212: Interface
213: subroutine VecSetType(a,b,z)
214: use petscvecdef
215: Vec a
216: character(*) b
217: integer z
218: end subroutine
219: end Interface
221: Interface
222: subroutine VecView(a,b,z)
223: use petscvecdef
224: Vec a
225: PetscViewer b
226: integer z
227: end subroutine
228: end Interface