Actual source code: petscvec.h90
petsc-3.12.5 2020-03-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: integer 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: integer 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: integer 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: integer z
127: end subroutine
128: end interface VecSetValuesLocal
130: Interface VecSetValues
131: subroutine VecSetValues0(a,b,c,d,e,z)
132: use petscvecdef
133: Vec a ! Vec
134: PetscInt b ! PetscInt
135: PetscInt c (*) ! PetscInt
136: PetscScalar d (*) ! PetscScalar
137: InsertMode e ! InsertMode
138: integer z
139: end subroutine
140: subroutine VecSetValues1(a,b,c,d,e,z)
141: use petscvecdef
142: Vec a ! Vec
143: PetscInt b ! PetscInt
144: PetscInt c ! PetscInt
145: PetscScalar d (*) ! PetscScalar
146: InsertMode e ! InsertMode
147: integer z
148: end subroutine
149: subroutine VecSetValues11(a,b,c,d,e,z)
150: use petscvecdef
151: Vec a ! Vec
152: PetscInt b ! PetscInt
153: PetscInt c ! PetscInt
154: PetscScalar d ! PetscScalar
155: InsertMode e ! InsertMode
156: integer z
157: end subroutine
158: End Interface VecSetValues
160: Interface VecSetValuesBlocked
161: subroutine VecSetValuesBlocked0(a,b,c,d,e,z)
162: use petscvecdef
163: Vec a ! Vec
164: PetscInt b ! PetscInt
165: PetscInt c (*) ! PetscInt
166: PetscScalar d (*) ! PetscScalar
167: InsertMode e ! InsertMode
168: integer z
169: end subroutine
170: subroutine VecSetValuesBlocked1(a,b,c,d,e,z)
171: use petscvecdef
172: Vec a ! Vec
173: PetscInt b ! PetscInt
174: PetscInt c ! PetscInt
175: PetscScalar d (*) ! PetscScalar
176: InsertMode e ! InsertMode
177: integer z
178: end subroutine
179: subroutine VecSetValuesBlocked11(a,b,c,d,e,z)
180: use petscvecdef
181: Vec a ! Vec
182: PetscInt b ! PetscInt
183: PetscInt c ! PetscInt
184: PetscScalar d ! PetscScalar
185: InsertMode e ! InsertMode
186: integer z
187: end subroutine
188: End Interface VecSetValuesBlocked
190: Interface
191: Subroutine VecGetArrayF90(v,array,ierr)
192: use petscvecdef
193: PetscScalar, pointer :: array(:)
194: PetscErrorCode ierr
195: Vec v
196: End Subroutine
197: End Interface
199: Interface
200: Subroutine VecRestoreArrayF90(v,array,ierr)
201: use petscvecdef
202: PetscScalar, pointer :: array(:)
203: PetscErrorCode ierr
204: Vec v
205: End Subroutine
206: End Interface
208: Interface
209: Subroutine VecGetArrayReadF90(v,array,ierr)
210: use petscvecdef
211: PetscScalar, pointer :: array(:)
212: PetscErrorCode ierr
213: Vec v
214: End Subroutine
215: End Interface
217: Interface
218: Subroutine VecRestoreArrayReadF90(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 VecSetValuesSectionF90(v,s,p,va,mode,ierr)
228: use petscvecdef
229: PetscScalar, pointer :: va(:)
230: PetscErrorCode ierr
231: Vec v
232: PetscSection s
233: PetscInt p
234: InsertMode mode
235: End Subroutine
236: End Interface
238: ! -------------------------------------------------------------
240: Interface
241: Subroutine VecDuplicateVecsF90(v,m,vs,ierr)
242: use petscvecdef
243: Vec, pointer :: vs(:)
244: PetscInt m
245: PetscErrorCode ierr
246: Vec v
247: End Subroutine
248: End Interface
249: !
250: ! Question: should VecDestroyVecsF90() take the m argument since
251: ! the array of vectors already knows how long it is? Yes, to
252: ! match calling sequence for C/C++.
253: !
254: Interface
255: Subroutine VecDestroyVecsF90(m,vs,ierr)
256: use petscvecdef
257: Vec, pointer :: vs(:)
258: PetscInt m
259: PetscErrorCode ierr
260: End Subroutine
261:
262: subroutine VecSetType(a,b,ierr)
263: use petscvecdef
264: Vec a
265: character(*) b
266: PetscErrorCode ierr
267: end subroutine
269: subroutine VecView(a,b,ierr)
270: use petscvecdef
271: Vec a
272: PetscViewer b
273: PetscErrorCode ierr
274: end subroutine
275:
276: subroutine VecScatterRemap(a,b,c,ierr)
277: use petscvecdef
278: VecScatter a ! VecScatter
279: PetscInt b (*) ! PetscInt
280: PetscInt c (*) ! PetscInt
281: PetscErrorCode ierr
282: end subroutine
284: subroutine VecLoad(a,b,ierr)
285: use petscvecdef
286: Vec a
287: PetscViewer b
288: PetscErrorCode ierr
289: end subroutine
290:
291: end Interface