Actual source code: petscvec.h90
petsc-3.13.6 2020-09-29
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
12: subroutine PetscSFBcastEnd(sf,unit,rarray,larray,ierr)
13: use petscisdef
14: PetscSF :: sf
15: PetscMPIInt :: unit
16: type(*) :: rarray(:)
17: type(*) :: larray(:)
18: PetscErrorCode :: ierr
19: end Subroutine PetscSFBcastEnd
20: end Interface
21: #endif
23: Interface
24: subroutine PetscSFGetGraph(sf,nroots,nleaves,ilocal,iremote,ierr)
25: use petscisdef
26: PetscSF :: sf
27: PetscInt :: nroots,nleaves
28: PetscInt, pointer :: ilocal(:)
29: type(PetscSFNode), pointer :: iremote(:)
30: PetscErrorCode :: ierr
31: end Subroutine PetscSFGetGraph
32: end Interface
34: Interface VecGetOwnershipRange
35: subroutine VecGetOwnershipRange1(x,l,h,ierr)
36: use petscvecdef
37: Vec, intent(in) :: x
38: PetscInt, intent(out) :: l,h
39: PetscErrorCode, intent(out) :: ierr
40: end subroutine
41: subroutine VecGetOwnershipRange2(x,l,h,ierr)
42: use petscvecdef
43: Vec, intent(in) :: x
44: PetscInt, intent(out) :: l(*),h
45: PetscErrorCode, intent(out) :: ierr
46: end subroutine
47: subroutine VecGetOwnershipRange3(x,l,h,ierr)
48: use petscvecdef
49: Vec, intent(in) :: x
50: PetscInt, intent(out) :: l,h(*)
51: PetscErrorCode, intent(out) :: ierr
52: end subroutine
53: end Interface
55: Interface VecMin
56: subroutine VecMin1(x,p,val,ierr)
57: use petscvecdef
58: Vec, intent(in) :: x
59: PetscInt, intent(out) :: p
60: PetscReal, intent(out) :: val
61: PetscErrorCode, intent(out) :: ierr
62: end subroutine
63: subroutine VecMin2(x,p,val,ierr)
64: use petscvecdef
65: Vec, intent(in) :: x
66: PetscInt, intent(out) :: p(*)
67: PetscReal, intent(out) :: val
68: PetscErrorCode, intent(out) :: ierr
69: end subroutine
70: end Interface
72: Interface VecMax
73: subroutine VecMax1(x,p,val,ierr)
74: use petscvecdef
75: Vec, intent(in) :: x
76: PetscInt, intent(out) :: p
77: PetscReal, intent(out) :: val
78: PetscErrorCode, intent(out) :: ierr
79: end subroutine
80: subroutine VecMax2(x,p,val,ierr)
81: use petscvecdef
82: Vec, intent(in) :: x
83: PetscInt, intent(out) :: p(*)
84: PetscReal, intent(out) :: val
85: PetscErrorCode, intent(out) :: ierr
86: end subroutine
87: end Interface
89: Interface
90: subroutine VecScatterCreateToAll(a,b,c,z)
91: use petscvecdef
92: Vec a
93: VecScatter b
94: Vec c
95: PetscErrorCode z
96: end subroutine
97: end Interface
99: Interface
100: subroutine VecScatterCreateToZero(a,b,c,z)
101: use petscvecdef
102: Vec a
103: VecScatter b
104: Vec c
105: PetscErrorCode z
106: end subroutine
107: end Interface
109: Interface VecSetValuesLocal
110: subroutine VecSetValuesLocal0(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: PetscErrorCode z
118: end subroutine
119: subroutine VecSetValuesLocal11(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: PetscErrorCode z
127: end subroutine
128: end interface VecSetValuesLocal
130: Interface VecGetValues
131: subroutine VecGetValues0(a,b,c,d,z)
132: use petscvecdef
133: Vec a ! Vec
134: PetscInt b ! PetscInt
135: PetscInt c (*) ! PetscInt
136: PetscScalar d (*) ! PetscScalar
137: PetscErrorCode z
138: end subroutine
139: subroutine VecGetValues1(a,b,c,d,z)
140: use petscvecdef
141: Vec a ! Vec
142: PetscInt b ! PetscInt
143: PetscInt c ! PetscInt
144: PetscScalar d (*) ! PetscScalar
145: PetscErrorCode z
146: end subroutine
147: subroutine VecGetValues11(a,b,c,d,z)
148: use petscvecdef
149: Vec a ! Vec
150: PetscInt b ! PetscInt
151: PetscInt c ! PetscInt
152: PetscScalar d ! PetscScalar
153: PetscErrorCode z
154: end subroutine
155: End Interface VecGetValues
157: Interface VecSetValues
158: subroutine VecSetValues0(a,b,c,d,e,z)
159: use petscvecdef
160: Vec a ! Vec
161: PetscInt b ! PetscInt
162: PetscInt c (*) ! PetscInt
163: PetscScalar d (*) ! PetscScalar
164: InsertMode e ! InsertMode
165: PetscErrorCode z
166: end subroutine
167: subroutine VecSetValues1(a,b,c,d,e,z)
168: use petscvecdef
169: Vec a ! Vec
170: PetscInt b ! PetscInt
171: PetscInt c ! PetscInt
172: PetscScalar d (*) ! PetscScalar
173: InsertMode e ! InsertMode
174: PetscErrorCode z
175: end subroutine
176: subroutine VecSetValues11(a,b,c,d,e,z)
177: use petscvecdef
178: Vec a ! Vec
179: PetscInt b ! PetscInt
180: PetscInt c ! PetscInt
181: PetscScalar d ! PetscScalar
182: InsertMode e ! InsertMode
183: PetscErrorCode z
184: end subroutine
185: End Interface VecSetValues
187: Interface VecSetValuesBlocked
188: subroutine VecSetValuesBlocked0(a,b,c,d,e,z)
189: use petscvecdef
190: Vec a ! Vec
191: PetscInt b ! PetscInt
192: PetscInt c (*) ! PetscInt
193: PetscScalar d (*) ! PetscScalar
194: InsertMode e ! InsertMode
195: PetscErrorCode z
196: end subroutine
197: subroutine VecSetValuesBlocked1(a,b,c,d,e,z)
198: use petscvecdef
199: Vec a ! Vec
200: PetscInt b ! PetscInt
201: PetscInt c ! PetscInt
202: PetscScalar d (*) ! PetscScalar
203: InsertMode e ! InsertMode
204: PetscErrorCode z
205: end subroutine
206: subroutine VecSetValuesBlocked11(a,b,c,d,e,z)
207: use petscvecdef
208: Vec a ! Vec
209: PetscInt b ! PetscInt
210: PetscInt c ! PetscInt
211: PetscScalar d ! PetscScalar
212: InsertMode e ! InsertMode
213: PetscErrorCode z
214: end subroutine
215: End Interface VecSetValuesBlocked
217: Interface
218: Subroutine VecGetArrayF90(v,array,ierr)
219: use petscvecdef
220: PetscScalar, pointer :: array(:)
221: PetscErrorCode ierr
222: Vec v
223: End Subroutine
224: End Interface
226: Interface
227: Subroutine VecRestoreArrayF90(v,array,ierr)
228: use petscvecdef
229: PetscScalar, pointer :: array(:)
230: PetscErrorCode ierr
231: Vec v
232: End Subroutine
233: End Interface
235: Interface
236: Subroutine VecGetArrayReadF90(v,array,ierr)
237: use petscvecdef
238: PetscScalar, pointer :: array(:)
239: PetscErrorCode ierr
240: Vec v
241: End Subroutine
242: End Interface
244: Interface
245: Subroutine VecRestoreArrayReadF90(v,array,ierr)
246: use petscvecdef
247: PetscScalar, pointer :: array(:)
248: PetscErrorCode ierr
249: Vec v
250: End Subroutine
251: End Interface
253: Interface
254: Subroutine VecSetValuesSectionF90(v,s,p,va,mode,ierr)
255: use petscvecdef
256: PetscScalar, pointer :: va(:)
257: PetscErrorCode ierr
258: Vec v
259: PetscSection s
260: PetscInt p
261: InsertMode mode
262: End Subroutine
263: End Interface
265: ! -------------------------------------------------------------
267: Interface
268: Subroutine VecDuplicateVecsF90(v,m,vs,ierr)
269: use petscvecdef
270: Vec, pointer :: vs(:)
271: PetscInt m
272: PetscErrorCode ierr
273: Vec v
274: End Subroutine
275: End Interface
276: !
277: ! Question: should VecDestroyVecsF90() take the m argument since
278: ! the array of vectors already knows how long it is? Yes, to
279: ! match calling sequence for C/C++.
280: !
281: Interface
282: Subroutine VecDestroyVecsF90(m,vs,ierr)
283: use petscvecdef
284: Vec, pointer :: vs(:)
285: PetscInt m
286: PetscErrorCode ierr
287: End Subroutine
288:
289: subroutine VecSetType(a,b,ierr)
290: use petscvecdef
291: Vec a
292: character(*) b
293: PetscErrorCode ierr
294: end subroutine
296: subroutine VecView(a,b,ierr)
297: use petscvecdef
298: Vec a
299: PetscViewer b
300: PetscErrorCode ierr
301: end subroutine
302:
303: subroutine VecScatterRemap(a,b,c,ierr)
304: use petscvecdef
305: VecScatter a ! VecScatter
306: PetscInt b (*) ! PetscInt
307: PetscInt c (*) ! PetscInt
308: PetscErrorCode ierr
309: end subroutine
311: subroutine VecLoad(a,b,ierr)
312: use petscvecdef
313: Vec a
314: PetscViewer b
315: PetscErrorCode ierr
316: end subroutine
317:
318: end Interface