Actual source code: petscvec.h90

petsc-3.12.5 2020-03-29
Report Typos and Errors
  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