60 #include "petscversion.h" 61 #include "petsc/finclude/petsc.h" 70 insertmode,
PARAMETER :: petsc_insert_values = insert_values
71 insertmode,
PARAMETER :: petsc_add_values = add_values
75 scattermode,
PARAMETER :: petsc_scatter_forward = scatter_forward
76 scattermode,
PARAMETER :: petsc_scatter_reverse = scatter_reverse
83 ksptype,
PARAMETER :: petsc_ksprichardson = ksprichardson
84 ksptype,
PARAMETER :: petsc_kspchebyshev = kspchebyshev
85 ksptype,
PARAMETER :: petsc_kspcg = kspcg
86 ksptype,
PARAMETER :: petsc_kspcgne = kspcgne
87 ksptype,
PARAMETER :: petsc_kspnash = kspnash
88 ksptype,
PARAMETER :: petsc_kspstcg = kspstcg
89 ksptype,
PARAMETER :: petsc_kspgltr = kspgltr
90 ksptype,
PARAMETER :: petsc_kspgmres = kspgmres
91 ksptype,
PARAMETER :: petsc_kspfgmres = kspfgmres
92 ksptype,
PARAMETER :: petsc_ksplgmres = ksplgmres
93 ksptype,
PARAMETER :: petsc_kspdgmres = kspdgmres
94 ksptype,
PARAMETER :: petsc_ksppgmres = ksppgmres
95 ksptype,
PARAMETER :: petsc_ksptcqmr = ksptcqmr
96 ksptype,
PARAMETER :: petsc_kspbcgs = kspbcgs
97 ksptype,
PARAMETER :: petsc_kspibcgs = kspibcgs
98 ksptype,
PARAMETER :: petsc_kspfbcgs = kspfbcgs
99 ksptype,
PARAMETER :: petsc_kspfbcgsr = kspfbcgsr
100 ksptype,
PARAMETER :: petsc_kspbcgsl = kspbcgsl
101 ksptype,
PARAMETER :: petsc_kspcgs = kspcgs
102 ksptype,
PARAMETER :: petsc_ksptfqmr = ksptfqmr
103 ksptype,
PARAMETER :: petsc_kspcr = kspcr
104 ksptype,
PARAMETER :: petsc_ksplsqr = ksplsqr
105 ksptype,
PARAMETER :: petsc_ksppreonly = ksppreonly
106 ksptype,
PARAMETER :: petsc_kspqcg = kspqcg
107 ksptype,
PARAMETER :: petsc_kspbicg = kspbicg
108 ksptype,
PARAMETER :: petsc_kspminres = kspminres
109 ksptype,
PARAMETER :: petsc_kspsymmlq = kspsymmlq
110 ksptype,
PARAMETER :: petsc_ksplcd = ksplcd
111 ksptype,
PARAMETER :: petsc_ksppython = ksppython
112 ksptype,
PARAMETER :: petsc_kspgcr = kspgcr
116 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_rtol = ksp_converged_rtol
117 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_atol = ksp_converged_atol
118 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_its = ksp_converged_its
119 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_iterating = ksp_converged_iterating
120 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_cg_neg_curve = ksp_converged_cg_neg_curve
121 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_cg_constrained = ksp_converged_cg_constrained
122 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_step_length = ksp_converged_step_length
123 kspconvergedreason,
PARAMETER :: petsc_ksp_converged_happy_breakdown = ksp_converged_happy_breakdown
124 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_null = ksp_diverged_null
125 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_its = ksp_diverged_its
126 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_dtol = ksp_diverged_dtol
127 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_breakdown = ksp_diverged_breakdown
128 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_breakdown_bicg = ksp_diverged_breakdown_bicg
129 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_nonsymmetric = ksp_diverged_nonsymmetric
130 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_indefinite_pc = ksp_diverged_indefinite_pc
131 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_nanorinf = ksp_diverged_nanorinf
132 kspconvergedreason,
PARAMETER :: petsc_ksp_diverged_indefinite_mat = ksp_diverged_indefinite_mat
135 kspnormtype,
PARAMETER :: petsc_ksp_norm_none = ksp_norm_none
136 kspnormtype,
PARAMETER :: petsc_ksp_norm_preconditioned = ksp_norm_preconditioned
137 kspnormtype,
PARAMETER :: petsc_ksp_norm_unpreconditioned = ksp_norm_unpreconditioned
138 kspnormtype,
PARAMETER :: petsc_ksp_norm_natural = ksp_norm_natural
141 matassemblytype,
PARAMETER :: petsc_mat_flush_assembly = mat_flush_assembly
142 matassemblytype,
PARAMETER :: petsc_mat_final_assembly = mat_final_assembly
145 matduplicateoption,
PARAMETER :: petsc_mat_do_not_copy_values = mat_do_not_copy_values
146 matduplicateoption,
PARAMETER :: petsc_mat_copy_values = mat_copy_values
147 matduplicateoption,
PARAMETER :: petsc_mat_share_nonzero_pattern = mat_share_nonzero_pattern
150 matfactortype,
PARAMETER :: petsc_mat_factor_none = mat_factor_none
151 matfactortype,
PARAMETER :: petsc_mat_factor_lu = mat_factor_lu
152 matfactortype,
PARAMETER :: petsc_mat_factor_cholesky = mat_factor_cholesky
153 matfactortype,
PARAMETER :: petsc_mat_factor_ilu = mat_factor_ilu
154 matfactortype,
PARAMETER :: petsc_mat_factor_icc = mat_factor_icc
157 matinfo,
PARAMETER :: petsc_mat_info_size = mat_info_size
158 matinfo,
PARAMETER :: petsc_mat_info_block_size = mat_info_block_size
159 matinfo,
PARAMETER :: petsc_mat_info_nz_allocated = mat_info_nz_allocated
160 matinfo,
PARAMETER :: petsc_mat_info_nz_used = mat_info_nz_used
161 matinfo,
PARAMETER :: petsc_mat_info_nz_unneeded = mat_info_nz_unneeded
162 matinfo,
PARAMETER :: petsc_mat_info_memory = mat_info_memory
163 matinfo,
PARAMETER :: petsc_mat_info_assemblies = mat_info_assemblies
164 matinfo,
PARAMETER :: petsc_mat_info_mallocs = mat_info_mallocs
165 matinfo,
PARAMETER :: petsc_mat_info_fill_ratio_given = mat_info_fill_ratio_given
166 matinfo,
PARAMETER :: petsc_mat_info_fill_ratio_needed = mat_info_fill_ratio_needed
167 matinfo,
PARAMETER :: petsc_mat_info_factor_mallocs = mat_info_factor_mallocs
170 matinfotype,
PARAMETER :: petsc_mat_local = mat_local
171 matinfotype,
PARAMETER :: petsc_mat_global_max = mat_global_max
172 matinfotype,
PARAMETER :: petsc_mat_global_sum = mat_global_sum
179 matoption,
PARAMETER :: petsc_mat_row_oriented = mat_row_oriented
180 matoption,
PARAMETER :: petsc_mat_new_nonzero_locations = mat_new_nonzero_locations
181 matoption,
PARAMETER :: petsc_mat_symmetric = mat_symmetric
182 matoption,
PARAMETER :: petsc_mat_structurally_symmetric = mat_structurally_symmetric
183 matoption,
PARAMETER :: petsc_mat_new_diagonals = mat_new_diagonals
184 matoption,
PARAMETER :: petsc_mat_ignore_off_proc_entries = mat_ignore_off_proc_entries
185 matoption,
PARAMETER :: petsc_mat_new_nonzero_location_err = mat_new_nonzero_location_err
186 matoption,
PARAMETER :: petsc_mat_new_nonzero_allocation_err = mat_new_nonzero_allocation_err
187 matoption,
PARAMETER :: petsc_mat_use_hash_table = mat_use_hash_table
188 matoption,
PARAMETER :: petsc_mat_keep_nonzero_pattern = mat_keep_nonzero_pattern
189 matoption,
PARAMETER :: petsc_mat_ignore_zero_entries = mat_ignore_zero_entries
190 matoption,
PARAMETER :: petsc_mat_use_inodes = mat_use_inodes
191 matoption,
PARAMETER :: petsc_mat_hermitian = mat_hermitian
192 matoption,
PARAMETER :: petsc_mat_symmetry_eternal = mat_symmetry_eternal
193 matoption,
PARAMETER :: petsc_mat_dummy = mat_dummy
194 matoption,
PARAMETER :: petsc_mat_ignore_lower_triangular = mat_ignore_lower_triangular
195 matoption,
PARAMETER :: petsc_mat_error_lower_triangular = mat_error_lower_triangular
196 matoption,
PARAMETER :: petsc_mat_getrow_uppertriangular = mat_getrow_uppertriangular
197 matoption,
PARAMETER :: petsc_mat_unused_nonzero_location_err = mat_unused_nonzero_location_err
198 matoption,
PARAMETER :: petsc_num_mat_options = mat_option_max
199 matoption,
PARAMETER :: petsc_mat_spd = mat_spd
200 matoption,
PARAMETER :: petsc_mat_no_off_proc_entries = mat_no_off_proc_entries
201 matoption,
PARAMETER :: petsc_mat_no_off_proc_zero_rows = mat_no_off_proc_zero_rows
205 matsolverpackage,
PARAMETER :: petsc_mat_solver_superlu = matsolversuperlu
206 matsolverpackage,
PARAMETER :: petsc_mat_solver_superlu_dist = matsolversuperlu_dist
207 matsolverpackage,
PARAMETER :: petsc_mat_solver_umfpack = matsolverumfpack
208 matsolverpackage,
PARAMETER :: petsc_mat_solver_cholmod = matsolvercholmod
209 matsolverpackage,
PARAMETER :: petsc_mat_solver_essl = matsolveressl
210 matsolverpackage,
PARAMETER :: petsc_mat_solver_lusol = matsolverlusol
211 matsolverpackage,
PARAMETER :: petsc_mat_solver_mumps = matsolvermumps
212 matsolverpackage,
PARAMETER :: petsc_mat_solver_pastix = matsolverpastix
213 matsolverpackage,
PARAMETER :: petsc_mat_solver_matlab = matsolvermatlab
214 matsolverpackage,
PARAMETER :: petsc_mat_solver_petsc = matsolverpetsc
215 matsolverpackage,
PARAMETER :: petsc_mat_solver_bas = matsolverbas
216 matsolverpackage,
PARAMETER :: petsc_mat_solver_cusparse = matsolvercusparse
217 matsolverpackage,
PARAMETER :: petsc_mat_solver_bstrm = matsolverbstrm
218 matsolverpackage,
PARAMETER :: petsc_mat_solver_sbstrm = matsolversbstrm
221 matstructure,
PARAMETER :: petsc_different_nonzero_pattern = different_nonzero_pattern
222 matstructure,
PARAMETER :: petsc_subset_nonzero_pattern = subset_nonzero_pattern
223 matstructure,
PARAMETER :: petsc_same_nonzero_pattern = same_nonzero_pattern
226 matreuse,
PARAMETER :: petsc_mat_initial_matrix = mat_initial_matrix
227 matreuse,
PARAMETER :: petsc_mat_reuse_matrix = mat_reuse_matrix
228 matreuse,
PARAMETER :: petsc_mat_ignore_matrix = mat_ignore_matrix
231 matcoloringtype,
PARAMETER :: petsc_matcoloring_natural = matcoloringnatural
232 matcoloringtype,
PARAMETER :: petsc_matcoloring_sl = matcoloringsl
233 matcoloringtype,
PARAMETER :: petsc_matcoloring_lf = matcoloringlf
234 matcoloringtype,
PARAMETER :: petsc_matcoloring_id = matcoloringid
235 matcoloringtype,
PARAMETER :: petsc_matcoloring_greedy = matcoloringgreedy
236 matcoloringtype,
PARAMETER :: petsc_matcoloring_jp = matcoloringjp
239 normtype,
PARAMETER :: petsc_norm_1 = norm_1
240 normtype,
PARAMETER :: petsc_norm_2 = norm_2
241 normtype,
PARAMETER :: petsc_norm_infinity = norm_infinity
244 pctype,
PARAMETER :: petsc_pcnone = pcnone
245 pctype,
PARAMETER :: petsc_pcjacobi = pcjacobi
246 pctype,
PARAMETER :: petsc_pcsor = pcsor
247 pctype,
PARAMETER :: petsc_pclu = pclu
248 pctype,
PARAMETER :: petsc_pcshell = pcshell
249 pctype,
PARAMETER :: petsc_pcbjacobi = pcbjacobi
250 pctype,
PARAMETER :: petsc_pcmg = pcmg
251 pctype,
PARAMETER :: petsc_pceisenstat = pceisenstat
252 pctype,
PARAMETER :: petsc_pcilu = pcilu
253 pctype,
PARAMETER :: petsc_pcicc = pcicc
254 pctype,
PARAMETER :: petsc_pcasm = pcasm
255 pctype,
PARAMETER :: petsc_pcksp = pcksp
256 pctype,
PARAMETER :: petsc_pccomposite = pccomposite
257 pctype,
PARAMETER :: petsc_pcredundant = pcredundant
258 pctype,
PARAMETER :: petsc_pcspai = pcspai
259 pctype,
PARAMETER :: petsc_pcnn = pcnn
260 pctype,
PARAMETER :: petsc_pccholesky = pccholesky
261 pctype,
PARAMETER :: petsc_pcpbjacobi = pcpbjacobi
262 pctype,
PARAMETER :: petsc_pcmat = pcmat
263 pctype,
PARAMETER :: petsc_pchypre = pchypre
264 pctype,
PARAMETER :: petsc_pcparms = pcparms
265 pctype,
PARAMETER :: petsc_pcfieldsplit = pcfieldsplit
266 pctype,
PARAMETER :: petsc_pctfs = pctfs
267 pctype,
PARAMETER :: petsc_pcml = pcml
268 pctype,
PARAMETER :: petsc_pcgalerkin = pcgalerkin
269 pctype,
PARAMETER :: petsc_pcexotic = pcexotic
270 pctype,
PARAMETER :: petsc_pcsupportgraph = pcsupportgraph
271 pctype,
PARAMETER :: petsc_pccp = pccp
272 pctype,
PARAMETER :: petsc_pcbfbt = pcbfbt
273 pctype,
PARAMETER :: petsc_pclsc = pclsc
274 pctype,
PARAMETER :: petsc_pcpython = pcpython
275 pctype,
PARAMETER :: petsc_pcpfmg = pcpfmg
276 pctype,
PARAMETER :: petsc_pcsyspfmg = pcsyspfmg
277 pctype,
PARAMETER :: petsc_pcredistribute = pcredistribute
278 pctype,
PARAMETER :: petsc_pcsvd = pcsvd
279 pctype,
PARAMETER :: petsc_pcgamg = pcgamg
280 pctype,
PARAMETER :: petsc_pcgasm = pcgasm
281 pctype,
PARAMETER :: petsc_pcsacusp = pcsacusp
282 pctype,
PARAMETER :: petsc_pcsacusppoly = pcsacusppoly
283 pctype,
PARAMETER :: petsc_pcbicgstabcusp = pcbicgstabcusp
284 pctype,
PARAMETER :: petsc_pcainvcusp = pcainvcusp
285 pctype,
PARAMETER :: petsc_pcbddc = pcbddc
288 snestype,
PARAMETER :: petsc_snesnewtonls = snesnewtonls
289 snestype,
PARAMETER :: petsc_snesnewtontr = snesnewtontr
290 snestype,
PARAMETER :: petsc_snespython = snespython
291 snestype,
PARAMETER :: petsc_snestest = snestest
292 snestype,
PARAMETER :: petsc_snesnrichardson = snesnrichardson
293 snestype,
PARAMETER :: petsc_snesksponly = snesksponly
294 snestype,
PARAMETER :: petsc_snesvinewtonrsls = snesvinewtonrsls
295 snestype,
PARAMETER :: petsc_snesvinewtonssls = snesvinewtonssls
296 snestype,
PARAMETER :: petsc_snesngmres = snesngmres
297 snestype,
PARAMETER :: petsc_snesqn = snesqn
298 snestype,
PARAMETER :: petsc_snesshell = snesshell
299 snestype,
PARAMETER :: petsc_snesncg = snesncg
300 snestype,
PARAMETER :: petsc_snesfas = snesfas
301 snestype,
PARAMETER :: petsc_snesms = snesms
304 snesconvergedreason,
PARAMETER :: petsc_snes_converged_fnorm_abs = snes_converged_fnorm_abs
305 snesconvergedreason,
PARAMETER :: petsc_snes_converged_fnorm_relative = snes_converged_fnorm_relative
306 snesconvergedreason,
PARAMETER :: petsc_snes_converged_snorm_relative = snes_converged_snorm_relative
307 snesconvergedreason,
PARAMETER :: petsc_snes_converged_its = snes_converged_its
308 snesconvergedreason,
PARAMETER :: petsc_snes_converged_tr_delta = snes_converged_tr_delta
309 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_function_domain = snes_diverged_function_domain
310 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_function_count = snes_diverged_function_count
311 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_linear_solve = snes_diverged_linear_solve
312 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_fnorm_nan = snes_diverged_fnorm_nan
313 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_max_it = snes_diverged_max_it
314 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_line_search = snes_diverged_line_search
315 snesconvergedreason,
PARAMETER :: petsc_snes_diverged_local_min = snes_diverged_local_min
316 snesconvergedreason,
PARAMETER :: petsc_snes_converged_iterating = snes_converged_iterating
319 sneslinesearchtype,
PARAMETER :: petsc_snes_linesearch_basic = sneslinesearchbasic
320 sneslinesearchtype,
PARAMETER :: petsc_snes_linesearch_bt = sneslinesearchbt
321 sneslinesearchtype,
PARAMETER :: petsc_snes_linesearch_l2 = sneslinesearchl2
322 sneslinesearchtype,
PARAMETER :: petsc_snes_linesearch_cp = sneslinesearchcp
323 sneslinesearchtype,
PARAMETER :: petsc_snes_linesearch_shell = sneslinesearchshell
326 sneslinesearchorder,
PARAMETER :: petsc_snes_linesearch_order_linear = snes_linesearch_order_linear
327 sneslinesearchorder,
PARAMETER :: petsc_snes_linesearch_order_quadratic = snes_linesearch_order_quadratic
328 sneslinesearchorder,
PARAMETER :: petsc_snes_linesearch_order_cubic = snes_linesearch_order_cubic
331 snesnormschedule,
PARAMETER :: petsc_snes_norm_default = snes_norm_default
332 snesnormschedule,
PARAMETER :: petsc_snes_norm_none = snes_norm_none
333 snesnormschedule,
PARAMETER :: petsc_snes_norm_always = snes_norm_always
334 snesnormschedule,
PARAMETER :: petsc_snes_norm_initial_only = snes_norm_initial_only
335 snesnormschedule,
PARAMETER :: petsc_snes_norm_final_only = snes_norm_final_only
336 snesnormschedule,
PARAMETER :: petsc_snes_norm_initial_final_only = snes_norm_initial_final_only
339 snesqntype,
PARAMETER :: petsc_snes_qn_lbfgs = snes_qn_lbfgs
340 snesqntype,
PARAMETER :: petsc_snes_qn_broyden = snes_qn_broyden
341 snesqntype,
PARAMETER :: petsc_snes_qn_badbroyden = snes_qn_badbroyden
344 snesqnrestarttype,
PARAMETER :: petsc_snes_qn_restart_default = snes_qn_restart_default
345 snesqnrestarttype,
PARAMETER :: petsc_snes_qn_restart_none = snes_qn_restart_none
346 snesqnrestarttype,
PARAMETER :: petsc_snes_qn_restart_powell = snes_qn_restart_powell
347 snesqnrestarttype,
PARAMETER :: petsc_snes_qn_restart_periodic = snes_qn_restart_periodic
350 snesqnscaletype,
PARAMETER :: petsc_snes_qn_scale_default = snes_qn_scale_default
351 snesqnscaletype,
PARAMETER :: petsc_snes_qn_scale_none = snes_qn_scale_none
352 snesqnscaletype,
PARAMETER :: petsc_snes_qn_scale_shanno = snes_qn_scale_shanno
353 snesqnscaletype,
PARAMETER :: petsc_snes_qn_scale_linesearch = snes_qn_scale_linesearch
354 snesqnscaletype,
PARAMETER :: petsc_snes_qn_scale_jacobian = snes_qn_scale_jacobian
357 tstype,
PARAMETER :: petsc_ts_euler = tseuler
358 tstype,
PARAMETER :: petsc_ts_beuler = tsbeuler
359 tstype,
PARAMETER :: petsc_ts_pseudo = tspseudo
360 tstype,
PARAMETER :: petsc_ts_cn = tscn
361 tstype,
PARAMETER :: petsc_ts_sundials = tssundials
362 tstype,
PARAMETER :: petsc_ts_rk = tsrk
363 tstype,
PARAMETER :: petsc_ts_python = tspython
364 tstype,
PARAMETER :: petsc_ts_theta = tstheta
365 tstype,
PARAMETER :: petsc_ts_alpha = tsalpha
366 tstype,
PARAMETER :: petsc_ts_gl = tsgl
367 tstype,
PARAMETER :: petsc_ts_ssp = tsssp
368 tstype,
PARAMETER :: petsc_ts_arkimex = tsarkimex
369 tstype,
PARAMETER :: petsc_ts_rosw = tsrosw
370 tstype,
PARAMETER :: petsc_ts_eimex = tseimex
373 tsconvergedreason,
PARAMETER :: petsc_ts_converged_iterating = ts_converged_iterating
374 tsconvergedreason,
PARAMETER :: petsc_ts_converged_time = ts_converged_time
375 tsconvergedreason,
PARAMETER :: petsc_ts_converged_its = ts_converged_its
376 tsconvergedreason,
PARAMETER :: petsc_ts_diverged_nonlinear_solve = ts_diverged_nonlinear_solve
377 tsconvergedreason,
PARAMETER :: petsc_ts_diverged_step_rejected = ts_diverged_step_rejected
380 tsproblemtype,
PARAMETER :: petsc_ts_linear = ts_linear
381 tsproblemtype,
PARAMETER :: petsc_ts_nonlinear = ts_nonlinear
384 tssundialstype,
PARAMETER :: petsc_sundials_adams = sundials_adams
385 tssundialstype,
PARAMETER :: petsc_sundials_bdf = sundials_bdf
388 tssundialsgramschmidttype,
PARAMETER :: petsc_sundials_modified_gs = sundials_modified_gs
389 tssundialsgramschmidttype,
PARAMETER :: petsc_sundials_classical_gs = sundials_classical_gs
403 SUBROUTINE petscfinalize(ierr)
405 END SUBROUTINE petscfinalize
407 SUBROUTINE petscinitialize(file,ierr)
408 CHARACTER(LEN=*) file
410 END SUBROUTINE petscinitialize
412 SUBROUTINE petscpopsignalhandler(ierr)
414 END SUBROUTINE petscpopsignalhandler
416 SUBROUTINE petsclogview(viewer,ierr)
419 END SUBROUTINE petsclogview
423 SUBROUTINE isdestroy(indexset,ierr)
426 END SUBROUTINE isdestroy
430 SUBROUTINE iscoloringdestroy(iscoloring,ierr)
431 iscoloring iscoloring
433 END SUBROUTINE iscoloringdestroy
437 SUBROUTINE islocaltoglobalmappingapply(islocaltoglobalmapping,n,idxin,idxout,ierr)
438 islocaltoglobalmapping islocaltoglobalmapping
443 END SUBROUTINE islocaltoglobalmappingapply
445 SUBROUTINE islocaltoglobalmappingapplyis(islocaltoglobalmapping,isin,isout,ierr)
446 islocaltoglobalmapping islocaltoglobalmapping
450 END SUBROUTINE islocaltoglobalmappingapplyis
452 SUBROUTINE islocaltoglobalmappingcreate(comm,blockSize,n,indices,mode,islocaltoglobalmapping,ierr)
458 islocaltoglobalmapping islocaltoglobalmapping
460 END SUBROUTINE islocaltoglobalmappingcreate
462 SUBROUTINE islocaltoglobalmappingdestroy(islocaltoglobalmapping,ierr)
463 islocaltoglobalmapping islocaltoglobalmapping
465 END SUBROUTINE islocaltoglobalmappingdestroy
469 SUBROUTINE kspcreate(comm,ksp,ierr)
473 END SUBROUTINE kspcreate
475 SUBROUTINE kspdestroy(ksp,ierr)
478 END SUBROUTINE kspdestroy
480 SUBROUTINE kspgetconvergedreason(ksp,reason,ierr)
482 kspconvergedreason reason
484 END SUBROUTINE kspgetconvergedreason
486 SUBROUTINE kspgetiterationnumber(ksp,its,ierr)
490 END SUBROUTINE kspgetiterationnumber
492 SUBROUTINE kspgetpc(ksp,pc,ierr)
496 END SUBROUTINE kspgetpc
498 SUBROUTINE kspgetresidualnorm(ksp,rnorm,ierr)
502 END SUBROUTINE kspgetresidualnorm
504 SUBROUTINE kspgmressetrestart(ksp,restart,ierr)
508 END SUBROUTINE kspgmressetrestart
510 SUBROUTINE kspsetfromoptions(ksp,ierr)
513 END SUBROUTINE kspsetfromoptions
515 SUBROUTINE kspsetinitialguessnonzero(ksp,flg,ierr)
519 END SUBROUTINE kspsetinitialguessnonzero
521 SUBROUTINE kspsetoperators(ksp,amat,pmat,ierr)
526 END SUBROUTINE kspsetoperators
528 SUBROUTINE kspsetreusepreconditioner(ksp,flag,ierr)
532 END SUBROUTINE kspsetreusepreconditioner
534 SUBROUTINE kspsettolerances(ksp,rtol,atol,dtol,maxits,ierr)
541 END SUBROUTINE kspsettolerances
543 SUBROUTINE kspsettype(ksp,method,ierr)
547 END SUBROUTINE kspsettype
549 SUBROUTINE kspsetup(ksp,ierr)
552 END SUBROUTINE kspsetup
554 SUBROUTINE kspsolve(ksp,b,x,ierr)
559 END SUBROUTINE kspsolve
563 SUBROUTINE matassemblybegin(A,assemblytype,ierr)
565 matassemblytype assemblytype
567 END SUBROUTINE matassemblybegin
569 SUBROUTINE matassemblyend(A,assemblytype,ierr)
571 matassemblytype assemblytype
573 END SUBROUTINE matassemblyend
575 SUBROUTINE matcreate(comm,A,ierr)
579 END SUBROUTINE matcreate
581 SUBROUTINE matcreateaij(comm,localm,localn,globalm,globaln,diagnumbernzperrow,diagnumbernzeachrow,offdiagnumbernzperrow, &
582 & offdiagnumbernzeachrow,a,ierr)
588 petscint diagnumbernzperrow
589 petscint diagnumbernzeachrow(*)
590 petscint offdiagnumbernzperrow
591 petscint offdiagnumbernzeachrow(*)
594 END SUBROUTINE matcreateaij
596 SUBROUTINE matcreatedense(comm,localm,localn,globalm,globaln,matrixdata,A,ierr)
602 petscscalar matrixdata(*)
605 END SUBROUTINE matcreatedense
607 SUBROUTINE matcreateseqaij(comm,m,n,numbernzperrow,numbernzeachrow,A,ierr)
611 petscint numbernzperrow
612 petscint numbernzeachrow(*)
615 END SUBROUTINE matcreateseqaij
617 SUBROUTINE matcreateseqdense(comm,m,n,matrixdata,A,ierr)
621 petscscalar matrixdata(*)
624 END SUBROUTINE matcreateseqdense
626 SUBROUTINE matdensegetarrayf90(A,array,ierr)
628 petscscalar,
POINTER :: array(:,:)
630 END SUBROUTINE matdensegetarrayf90
632 SUBROUTINE matdenserestorearrayf90(A,array,ierr)
634 petscscalar,
POINTER :: array(:,:)
636 END SUBROUTINE matdenserestorearrayf90
638 SUBROUTINE matdestroy(A,ierr)
641 END SUBROUTINE matdestroy
643 SUBROUTINE matgetinfo(A,flag,info,ierr)
648 END SUBROUTINE matgetinfo
650 SUBROUTINE matgetownershiprange(A,firstrow,lastrow,ierr)
655 END SUBROUTINE matgetownershiprange
657 SUBROUTINE matgetrow(A,row,ncols,cols,values,ierr)
662 petscscalar values(*)
664 END SUBROUTINE matgetrow
666 SUBROUTINE matgetvalues(A,m,idxm,n,idxn,values,ierr)
672 petscscalar values(*)
674 END SUBROUTINE matgetvalues
676 SUBROUTINE matmumpsseticntl(A,icntl,ival,ierr)
681 END SUBROUTINE matmumpsseticntl
683 SUBROUTINE matmumpssetcntl(A,icntl,val,ierr)
688 END SUBROUTINE matmumpssetcntl
690 SUBROUTINE matrestorerow(A,row,ncols,cols,values,ierr)
695 petscscalar values(*)
697 END SUBROUTINE matrestorerow
699 SUBROUTINE matseqaijgetarrayf90(A,array,ierr)
701 petscscalar,
POINTER :: array(:,:)
703 END SUBROUTINE matseqaijgetarrayf90
705 SUBROUTINE matseqaijgetmaxrownonzeros(A,maxNumberNonZeros,ierr)
707 petscint maxnumbernonzeros
709 END SUBROUTINE matseqaijgetmaxrownonzeros
711 SUBROUTINE matseqaijrestorearrayf90(A,array,ierr)
713 petscscalar,
POINTER :: array(:,:)
715 END SUBROUTINE matseqaijrestorearrayf90
717 SUBROUTINE matsetlocaltoglobalmapping(A,ctx,ierr)
719 islocaltoglobalmapping ctx
721 END SUBROUTINE matsetlocaltoglobalmapping
723 SUBROUTINE matsetoption(A,option,flag,ierr)
728 END SUBROUTINE matsetoption
730 SUBROUTINE matsetsizes(A,localm,localn,globalM,globalN,ierr)
737 END SUBROUTINE matsetsizes
739 SUBROUTINE matsettype(A,matrixtype,ierr)
743 END SUBROUTINE matsettype
745 SUBROUTINE matsetvalue(A,row,col,value,insertmode,ierr)
750 insertmode insertmode
752 END SUBROUTINE matsetvalue
754 SUBROUTINE matsetvalues(A,m,mindices,n,nindices,values,insertmode,ierr)
760 petscscalar values(*)
761 insertmode insertmode
763 END SUBROUTINE matsetvalues
765 SUBROUTINE matsetvaluelocal(A,row,col,value,insertmode,ierr)
770 insertmode insertmode
772 END SUBROUTINE matsetvaluelocal
774 SUBROUTINE matsetvalueslocal(A,m,mindices,n,nindices,values,insertmode,ierr)
780 petscscalar values(*)
781 insertmode insertmode
783 END SUBROUTINE matsetvalueslocal
785 SUBROUTINE matview(A,v,ierr)
789 END SUBROUTINE matview
791 SUBROUTINE matzeroentries(A,ierr)
794 END SUBROUTINE matzeroentries
798 SUBROUTINE matcoloringapply(coloring,isColoring,ierr)
800 iscoloring iscoloring
802 END SUBROUTINE matcoloringapply
804 SUBROUTINE matcoloringcreate(A,coloring,ierr)
808 END SUBROUTINE matcoloringcreate
810 SUBROUTINE matcoloringdestroy(coloring,ierr)
813 END SUBROUTINE matcoloringdestroy
815 SUBROUTINE matcoloringsetfromoptions(coloring,ierr)
818 END SUBROUTINE matcoloringsetfromoptions
820 SUBROUTINE matcoloringsettype(coloring,coloringType,ierr)
822 matcoloringtype coloringtype
824 END SUBROUTINE matcoloringsettype
828 SUBROUTINE matfdcoloringcreate(A,iscoloring,fdcoloring,ierr)
830 iscoloring iscoloring
831 matfdcoloring fdcoloring
833 END SUBROUTINE matfdcoloringcreate
835 SUBROUTINE matfdcoloringdestroy(fdcoloring,ierr)
836 matfdcoloring fdcoloring
838 END SUBROUTINE matfdcoloringdestroy
840 SUBROUTINE matfdcoloringsetfromoptions(fdcoloring,ierr)
841 matfdcoloring fdcoloring
843 END SUBROUTINE matfdcoloringsetfromoptions
845 SUBROUTINE matfdcoloringsetfunction(fdcoloring,ffunction,ctx,ierr)
847 matfdcoloring fdcoloring
851 END SUBROUTINE matfdcoloringsetfunction
853 SUBROUTINE matfdcoloringsetparameters(fdcoloring,rerror,umin,ierr)
854 matfdcoloring fdcoloring
858 END SUBROUTINE matfdcoloringsetparameters
860 SUBROUTINE matfdcoloringsetup(A,iscoloring,fdcoloring,ierr)
862 iscoloring iscoloring
863 matfdcoloring fdcoloring
865 END SUBROUTINE matfdcoloringsetup
869 SUBROUTINE pcfactorgetmatrix(pc,A,ierr)
873 END SUBROUTINE pcfactorgetmatrix
875 SUBROUTINE pcfactorsetmatsolverpackage(pc,solverpackage,ierr)
877 matsolverpackage solverpackage
879 END SUBROUTINE pcfactorsetmatsolverpackage
881 SUBROUTINE pcfactorsetupmatsolverpackage(pc,ierr)
884 END SUBROUTINE pcfactorsetupmatsolverpackage
886 SUBROUTINE pcsetfromoptions(pc,ierr)
889 END SUBROUTINE pcsetfromoptions
891 SUBROUTINE pcsetreusepreconditioner(pc,flag,ierr)
895 END SUBROUTINE pcsetreusepreconditioner
897 SUBROUTINE pcsettype(pc,method,ierr)
901 END SUBROUTINE pcsettype
905 SUBROUTINE snescreate(comm,snes,ierr)
909 END SUBROUTINE snescreate
911 SUBROUTINE snesdestroy(snes,ierr)
914 END SUBROUTINE snesdestroy
916 SUBROUTINE snesgetapplicationcontext(snes,ctx,ierr)
921 END SUBROUTINE snesgetapplicationcontext
923 SUBROUTINE snesgetconvergedreason(snes,reason,ierr)
925 snesconvergedreason reason
927 END SUBROUTINE snesgetconvergedreason
929 SUBROUTINE snesgetfunction(snes,f,ffunction,ctx,ierr)
936 END SUBROUTINE snesgetfunction
938 SUBROUTINE snesgetiterationnumber(snes,iter,ierr)
942 END SUBROUTINE snesgetiterationnumber
944 SUBROUTINE snesgetjacobian(snes,A,B,Jfunction,ctx,ierr)
952 END SUBROUTINE snesgetjacobian
954 SUBROUTINE snesgetksp(snes,ksp,ierr)
958 END SUBROUTINE snesgetksp
960 SUBROUTINE snesgetlinesearch(snes,linesearch,ierr)
962 sneslinesearch linesearch
964 END SUBROUTINE snesgetlinesearch
966 SUBROUTINE snesgetsolutionupdate(snes,solutionUpdate,ierr)
970 END SUBROUTINE snesgetsolutionupdate
972 SUBROUTINE snesmonitorset(snes,mfunction,mctx,monitordestroy,ierr)
977 EXTERNAL monitordestroy
979 END SUBROUTINE snesmonitorset
981 SUBROUTINE snesqnsetrestarttype(snes,rtype,ierr)
983 snesqnrestarttype rtype
985 END SUBROUTINE snesqnsetrestarttype
987 SUBROUTINE snesqnsetscaletype(snes,stype,ierr)
989 snesqnscaletype stype
991 END SUBROUTINE snesqnsetscaletype
993 SUBROUTINE snesqnsettype(snes,qtype,ierr)
997 END SUBROUTINE snesqnsettype
999 SUBROUTINE snessetapplicationcontext(snes,ctx,ierr)
1004 END SUBROUTINE snessetapplicationcontext
1006 SUBROUTINE snessetconvergencetest(snes,cfunction,ctx,destroyFunction,ierr)
1011 EXTERNAL destroyfunction
1013 END SUBROUTINE snessetconvergencetest
1015 SUBROUTINE snessetfromoptions(snes,ierr)
1018 END SUBROUTINE snessetfromoptions
1020 SUBROUTINE snessetfunction(snes,f,ffunction,ctx,ierr)
1027 END SUBROUTINE snessetfunction
1029 SUBROUTINE snessetjacobian(snes,A,B,Jfunction,ctx,ierr)
1037 END SUBROUTINE snessetjacobian
1039 SUBROUTINE snessetksp(snes,ksp,ierr)
1043 END SUBROUTINE snessetksp
1045 SUBROUTINE snessetnormschedule(snes,normschedule,ierr)
1047 snesnormschedule normschedule
1049 END SUBROUTINE snessetnormschedule
1051 SUBROUTINE snessettolerances(snes,abstol,rtol,stol,maxit,maxf,ierr)
1059 END SUBROUTINE snessettolerances
1061 SUBROUTINE snessettrustregiontolerance(snes,trtol,ierr)
1065 END SUBROUTINE snessettrustregiontolerance
1067 SUBROUTINE snessettype(snes,method,ierr)
1071 END SUBROUTINE snessettype
1073 SUBROUTINE snessolve(snes,b,x,ierr)
1078 END SUBROUTINE snessolve
1082 SUBROUTINE sneslinesearchbtsetalpha(linesearch,alpha,ierr)
1083 sneslinesearch linesearch
1086 END SUBROUTINE sneslinesearchbtsetalpha
1088 SUBROUTINE sneslinesearchcomputenorms(linesearch,ierr)
1089 sneslinesearch linesearch
1091 END SUBROUTINE sneslinesearchcomputenorms
1093 SUBROUTINE sneslinesearchgetnorms(linesearch,xnorm,fnorm,ynorm,ierr)
1094 sneslinesearch linesearch
1099 END SUBROUTINE sneslinesearchgetnorms
1101 SUBROUTINE sneslinesearchgetvecs(linesearch,x,f,y,w,g,ierr)
1102 sneslinesearch linesearch
1109 END SUBROUTINE sneslinesearchgetvecs
1111 SUBROUTINE sneslinesearchsetcomputenorms(linesearch,flag,ierr)
1112 sneslinesearch linesearch
1115 END SUBROUTINE sneslinesearchsetcomputenorms
1117 SUBROUTINE sneslinesearchsetmonitor(linesearch,flag,ierr)
1118 sneslinesearch linesearch
1121 END SUBROUTINE sneslinesearchsetmonitor
1123 SUBROUTINE sneslinesearchsetnorms(snes,xnorm,fnorm,ynorm,ierr)
1129 END SUBROUTINE sneslinesearchsetnorms
1131 SUBROUTINE sneslinesearchsetorder(linesearch,linesearchorder,ierr)
1132 sneslinesearch linesearch
1133 sneslinesearchorder linesearchorder
1135 END SUBROUTINE sneslinesearchsetorder
1137 SUBROUTINE sneslinesearchsettolerances(linesearch,steptol,maxstep,rtol,atol,ltol,maxIt,ierr)
1138 sneslinesearch linesearch
1146 END SUBROUTINE sneslinesearchsettolerances
1148 SUBROUTINE sneslinesearchsettype(linesearch,linesearchtype,ierr)
1149 sneslinesearch linesearch
1150 sneslinesearchtype linesearchtype
1152 END SUBROUTINE sneslinesearchsettype
1156 SUBROUTINE tscreate(comm,ts,ierr)
1160 END SUBROUTINE tscreate
1162 SUBROUTINE tsdestroy(ts,ierr)
1165 END SUBROUTINE tsdestroy
1167 SUBROUTINE tsgetsolution(ts,currentsolution,ierr)
1171 END SUBROUTINE tsgetsolution
1173 SUBROUTINE tsmonitorset(ts,mfunction,mctx,monitordestroy,ierr)
1178 EXTERNAL monitordestroy
1180 END SUBROUTINE tsmonitorset
1182 SUBROUTINE tssetduration(ts,maxsteps,maxtime,ierr)
1187 END SUBROUTINE tssetduration
1189 SUBROUTINE tssetexactfinaltime(ts,eftopt,ierr)
1193 END SUBROUTINE tssetexactfinaltime
1195 SUBROUTINE tssetfromoptions(ts,ierr)
1198 END SUBROUTINE tssetfromoptions
1200 SUBROUTINE tssetinitialtimestep(ts,initial_time,time_step,ierr)
1202 petscreal initial_time
1205 END SUBROUTINE tssetinitialtimestep
1207 SUBROUTINE tssetproblemtype(ts,probtype,ierr)
1209 tsproblemtype probtype
1211 END SUBROUTINE tssetproblemtype
1213 SUBROUTINE tssetrhsfunction(ts,r,rhsfunc,ctx,ierr)
1220 END SUBROUTINE tssetrhsfunction
1222 SUBROUTINE tssetsolution(ts,initialsolution,ierr)
1226 END SUBROUTINE tssetsolution
1228 SUBROUTINE tssettimestep(ts,time_step,ierr)
1232 END SUBROUTINE tssettimestep
1234 SUBROUTINE tssettype(ts,tstype,ierr)
1238 END SUBROUTINE tssettype
1240 SUBROUTINE tssolve(ts,x,ftime,ierr)
1245 END SUBROUTINE tssolve
1247 SUBROUTINE tsstep(ts,steps,ptime,ierr)
1252 END SUBROUTINE tsstep
1254 SUBROUTINE tssundialssettolerance(ts,abstol,reltol,ierr)
1259 END SUBROUTINE tssundialssettolerance
1261 SUBROUTINE tssundialssettype(ts,sundialstype,ierr)
1263 tssundialstype sundialstype
1265 END SUBROUTINE tssundialssettype
1269 SUBROUTINE vecassemblybegin(x,ierr)
1272 END SUBROUTINE vecassemblybegin
1274 SUBROUTINE vecassemblyend(x,ierr)
1277 END SUBROUTINE vecassemblyend
1279 SUBROUTINE veccopy(x,y,ierr)
1283 END SUBROUTINE veccopy
1285 SUBROUTINE veccreate(comm,x,ierr)
1289 END SUBROUTINE veccreate
1291 SUBROUTINE veccreateghost(comm,localm,globalm,nghost,ghosts,x,ierr)
1299 END SUBROUTINE veccreateghost
1301 SUBROUTINE veccreateghostwitharray(comm,localm,globalm,nghost,ghosts,array,x,ierr)
1307 petscscalar array(*)
1310 END SUBROUTINE veccreateghostwitharray
1312 SUBROUTINE veccreatempi(comm,localm,globalm,x,ierr)
1318 END SUBROUTINE veccreatempi
1320 SUBROUTINE veccreatempiwitharray(comm,localn,globaln,array,x,ierr)
1324 petscscalar array(*)
1327 END SUBROUTINE veccreatempiwitharray
1329 SUBROUTINE veccreateseq(comm,m,x,ierr)
1334 END SUBROUTINE veccreateseq
1336 SUBROUTINE veccreateseqwitharray(comm,n,array,x,ierr)
1339 petscscalar array(*)
1342 END SUBROUTINE veccreateseqwitharray
1344 SUBROUTINE vecdestroy(x,ierr)
1347 END SUBROUTINE vecdestroy
1349 SUBROUTINE vecduplicate(old,new,ierr)
1352 END SUBROUTINE vecduplicate
1354 SUBROUTINE vecdot(x,y,val,ierr)
1359 END SUBROUTINE vecdot
1361 SUBROUTINE vecgetarrayf90(x,vec_data,ierr)
1363 petscscalar,
POINTER :: vec_data(:)
1365 END SUBROUTINE vecgetarrayf90
1367 SUBROUTINE vecgetarrayreadf90(x,vec_data,ierr)
1369 petscscalar,
POINTER :: vec_data(:)
1371 END SUBROUTINE vecgetarrayreadf90
1373 SUBROUTINE vecgetlocalsize(x,size,ierr)
1377 END SUBROUTINE vecgetlocalsize
1379 SUBROUTINE vecgetownershiprange(x,low,high,ierr)
1384 END SUBROUTINE vecgetownershiprange
1386 SUBROUTINE vecgetsize(x,size,ierr)
1390 END SUBROUTINE vecgetsize
1392 SUBROUTINE vecgetvalues(x,n,indices,values,ierr)
1396 petscscalar values(*)
1398 END SUBROUTINE vecgetvalues
1400 SUBROUTINE vecghostgetlocalform(g,l,ierr)
1404 END SUBROUTINE vecghostgetlocalform
1406 SUBROUTINE vecghostrestorelocalform(g,l,ierr)
1410 END SUBROUTINE vecghostrestorelocalform
1412 SUBROUTINE vecghostupdatebegin(x,insertmode,scattermode,ierr)
1414 insertmode insertmode
1415 scattermode scattermode
1417 END SUBROUTINE vecghostupdatebegin
1419 SUBROUTINE vecghostupdateend(x,insertmode,scattermode,ierr)
1421 insertmode insertmode
1422 scattermode scattermode
1424 END SUBROUTINE vecghostupdateend
1426 SUBROUTINE vecnorm(x,ntype,val,ierr)
1431 END SUBROUTINE vecnorm
1433 SUBROUTINE vecrestorearrayf90(x,vec_data,ierr)
1435 petscscalar,
POINTER :: vec_data(:)
1437 END SUBROUTINE vecrestorearrayf90
1439 SUBROUTINE vecrestorearrayreadf90(x,vec_data,ierr)
1441 petscscalar,
POINTER :: vec_data(:)
1443 END SUBROUTINE vecrestorearrayreadf90
1445 SUBROUTINE vecscale(x,alpha,ierr)
1449 END SUBROUTINE vecscale
1451 SUBROUTINE vecset(x,value,ierr)
1455 END SUBROUTINE vecset
1457 SUBROUTINE vecsetfromoptions(x,ierr)
1460 END SUBROUTINE vecsetfromoptions
1462 SUBROUTINE vecsetlocaltoglobalmapping(v,ctx,ierr)
1464 islocaltoglobalmapping ctx
1466 END SUBROUTINE vecsetlocaltoglobalmapping
1468 SUBROUTINE vecsetsizes(x,localm,globalm,ierr)
1470 petscint localm,globalm
1472 END SUBROUTINE vecsetsizes
1474 SUBROUTINE vecsetvalues(x,n,indices,values,insertmode,ierr)
1478 petscscalar values(*)
1479 insertmode insertmode
1481 END SUBROUTINE vecsetvalues
1483 SUBROUTINE vecsetvalueslocal(x,n,indices,values,insertmode,ierr)
1487 petscscalar values(*)
1488 insertmode insertmode
1490 END SUBROUTINE vecsetvalueslocal
1492 SUBROUTINE vecview(x,v,ierr)
1496 END SUBROUTINE vecview
1511 PUBLIC petsc_true,petsc_false
1513 PUBLIC petsc_null_bool,petsc_null_character,petsc_null_function,petsc_null_integer,petsc_null_double,petsc_null_object, &
1514 & petsc_null_scalar,petsc_null_real
1516 PUBLIC petsc_default_integer,petsc_default_real
1520 PUBLIC petsc_comm_world,petsc_comm_self
1522 PUBLIC petsc_viewer_stdout_world,petsc_viewer_stdout_self,petsc_viewer_draw_world,petsc_viewer_draw_self
1532 PUBLIC petsc_add_values,petsc_insert_values
1534 PUBLIC petsc_scatter_forward,petsc_scatter_reverse
1538 PUBLIC petsc_norm_1,petsc_norm_2,petsc_norm_infinity
1561 PUBLIC petsc_ksprichardson,petsc_kspchebyshev,petsc_kspcg,petsc_kspcgne,petsc_kspnash,petsc_kspstcg,petsc_kspgltr, &
1562 & petsc_kspgmres,petsc_kspfgmres,petsc_ksplgmres,petsc_kspdgmres,petsc_ksppgmres,petsc_ksptcqmr,petsc_kspbcgs, &
1563 & petsc_kspibcgs,petsc_kspfbcgs,petsc_kspfbcgsr,petsc_kspbcgsl,petsc_kspcgs,petsc_ksptfqmr,petsc_kspcr,petsc_ksplsqr, &
1564 & petsc_ksppreonly,petsc_kspqcg,petsc_kspbicg,petsc_kspminres,petsc_kspsymmlq,petsc_ksplcd,petsc_ksppython,petsc_kspgcr
1566 PUBLIC petsc_ksp_converged_rtol,petsc_ksp_converged_atol,petsc_ksp_converged_its,petsc_ksp_converged_iterating, &
1567 & petsc_ksp_converged_cg_neg_curve,petsc_ksp_converged_cg_constrained,petsc_ksp_converged_step_length, &
1568 & petsc_ksp_converged_happy_breakdown,petsc_ksp_diverged_null,petsc_ksp_diverged_its,petsc_ksp_diverged_dtol, &
1569 & petsc_ksp_diverged_breakdown,petsc_ksp_diverged_breakdown_bicg,petsc_ksp_diverged_nonsymmetric, &
1570 & petsc_ksp_diverged_indefinite_pc,petsc_ksp_diverged_nanorinf,petsc_ksp_diverged_indefinite_mat
1572 PUBLIC petsc_ksp_norm_none,petsc_ksp_norm_preconditioned,petsc_ksp_norm_unpreconditioned,petsc_ksp_norm_natural
1583 PUBLIC petsc_mat_flush_assembly,petsc_mat_final_assembly
1585 PUBLIC petsc_mat_do_not_copy_values,petsc_mat_copy_values,petsc_mat_share_nonzero_pattern
1587 PUBLIC petsc_mat_info_size,petsc_mat_info_block_size,petsc_mat_info_nz_allocated,petsc_mat_info_nz_used, &
1588 & petsc_mat_info_nz_unneeded,petsc_mat_info_memory,petsc_mat_info_assemblies,petsc_mat_info_mallocs, &
1589 & petsc_mat_info_fill_ratio_given,petsc_mat_info_fill_ratio_needed,petsc_mat_info_factor_mallocs
1591 PUBLIC petsc_mat_local,petsc_mat_global_max,petsc_mat_global_sum
1593 PUBLIC petsc_mat_row_oriented,petsc_mat_new_nonzero_locations,petsc_mat_symmetric,petsc_mat_structurally_symmetric, &
1594 & petsc_mat_new_diagonals,petsc_mat_ignore_off_proc_entries,petsc_mat_new_nonzero_location_err, &
1595 & petsc_mat_new_nonzero_allocation_err,petsc_mat_use_hash_table,petsc_mat_keep_nonzero_pattern, &
1596 & petsc_mat_ignore_zero_entries,petsc_mat_use_inodes,petsc_mat_hermitian,petsc_mat_symmetry_eternal, &
1597 & petsc_mat_dummy,petsc_mat_ignore_lower_triangular,petsc_mat_error_lower_triangular,petsc_mat_getrow_uppertriangular, &
1598 & petsc_mat_unused_nonzero_location_err,petsc_mat_spd,petsc_mat_no_off_proc_entries,petsc_mat_no_off_proc_zero_rows
1600 PUBLIC petsc_mat_solver_superlu,petsc_mat_solver_superlu_dist,petsc_mat_solver_umfpack,petsc_mat_solver_cholmod, &
1601 & petsc_mat_solver_essl,petsc_mat_solver_lusol,petsc_mat_solver_mumps,petsc_mat_solver_pastix,petsc_mat_solver_matlab, &
1602 & petsc_mat_solver_petsc,petsc_mat_solver_bas,petsc_mat_solver_cusparse,petsc_mat_solver_bstrm,petsc_mat_solver_sbstrm
1604 PUBLIC petsc_different_nonzero_pattern,petsc_subset_nonzero_pattern,petsc_same_nonzero_pattern
1606 PUBLIC petsc_mat_initial_matrix,petsc_mat_reuse_matrix,petsc_mat_ignore_matrix
1619 PUBLIC petsc_matcoloring_natural,petsc_matcoloring_sl,petsc_matcoloring_lf,petsc_matcoloring_id,petsc_matcoloring_greedy, &
1620 & petsc_matcoloring_jp
1636 PUBLIC petsc_pcnone,petsc_pcjacobi,petsc_pcsor,petsc_pclu,petsc_pcshell,petsc_pcbjacobi,petsc_pcmg,petsc_pceisenstat, &
1637 & petsc_pcilu,petsc_pcicc,petsc_pcasm,petsc_pcksp,petsc_pccomposite,petsc_pcredundant,petsc_pcspai,petsc_pcnn, &
1638 & petsc_pccholesky,petsc_pcpbjacobi,petsc_pcmat,petsc_pchypre,petsc_pcparms,petsc_pcfieldsplit,petsc_pctfs,petsc_pcml, &
1639 & petsc_pcgalerkin,petsc_pcexotic,petsc_pcsupportgraph,petsc_pccp,petsc_pcbfbt,petsc_pclsc,petsc_pcpython,petsc_pcpfmg, &
1640 & petsc_pcsyspfmg,petsc_pcredistribute,petsc_pcsvd,petsc_pcgamg,petsc_pcgasm,petsc_pcsacusp,petsc_pcsacusppoly, &
1641 & petsc_pcbicgstabcusp,petsc_pcainvcusp,petsc_pcbddc
1650 PUBLIC petsc_snesnewtonls,petsc_snesnewtontr,petsc_snespython,petsc_snestest,petsc_snesnrichardson,petsc_snesksponly, &
1651 & petsc_snesvinewtonrsls,petsc_snesvinewtonssls,petsc_snesngmres,petsc_snesqn,petsc_snesshell,petsc_snesncg,petsc_snesfas, &
1654 PUBLIC petsc_snes_converged_fnorm_abs,petsc_snes_converged_fnorm_relative,petsc_snes_converged_snorm_relative, &
1655 & petsc_snes_converged_its,petsc_snes_converged_tr_delta,petsc_snes_diverged_function_domain, &
1656 & petsc_snes_diverged_function_count,petsc_snes_diverged_linear_solve,petsc_snes_diverged_fnorm_nan, &
1657 & petsc_snes_diverged_max_it,petsc_snes_diverged_line_search,petsc_snes_diverged_local_min,petsc_snes_converged_iterating
1659 PUBLIC petsc_snes_norm_default,petsc_snes_norm_none,petsc_snes_norm_always,petsc_snes_norm_initial_only, &
1660 & petsc_snes_norm_final_only,petsc_snes_norm_initial_final_only
1662 PUBLIC petsc_snes_qn_lbfgs,petsc_snes_qn_broyden,petsc_snes_qn_badbroyden
1664 PUBLIC petsc_snes_qn_restart_none,petsc_snes_qn_restart_powell,petsc_snes_qn_restart_periodic
1666 PUBLIC petsc_snes_qn_scale_default,petsc_snes_qn_scale_none,petsc_snes_qn_scale_shanno,petsc_snes_qn_scale_linesearch, &
1667 & petsc_snes_qn_scale_jacobian
1682 PUBLIC petsc_snes_linesearch_basic,petsc_snes_linesearch_bt,petsc_snes_linesearch_l2,petsc_snes_linesearch_cp, &
1683 & petsc_snes_linesearch_shell
1685 PUBLIC petsc_snes_linesearch_order_linear,petsc_snes_linesearch_order_quadratic,petsc_snes_linesearch_order_cubic
1695 PUBLIC petsc_ts_euler,petsc_ts_beuler,petsc_ts_pseudo,petsc_ts_cn,petsc_ts_sundials,petsc_ts_rk,petsc_ts_python, &
1696 & petsc_ts_theta,petsc_ts_alpha,petsc_ts_gl,petsc_ts_ssp,petsc_ts_arkimex,petsc_ts_rosw,petsc_ts_eimex
1698 PUBLIC petsc_ts_converged_iterating,petsc_ts_converged_time,petsc_ts_converged_its,petsc_ts_diverged_nonlinear_solve, &
1699 & petsc_ts_diverged_step_rejected
1701 PUBLIC petsc_ts_linear,petsc_ts_nonlinear
1703 PUBLIC petsc_sundials_adams,petsc_sundials_bdf
1705 PUBLIC petsc_sundials_modified_gs,petsc_sundials_classical_gs
1734 INTEGER(INTG),
INTENT(OUT) :: err
1738 enters(
"Petsc_ErrorHandlingSetOff",err,error,*999)
1742 exits(
"Petsc_ErrorHandlingSetOff")
1744 999 errorsexits(
"Petsc_ErrorHandlingSetOff",err,error)
1757 INTEGER(INTG),
INTENT(OUT) :: err
1761 enters(
"Petsc_ErrorHandlingSetOn",err,error,*999)
1765 exits(
"Petsc_ErrorHandlingSetOn")
1767 999 errorsexits(
"Petsc_ErrorHandlingSetOn",err,error)
1779 INTEGER(INTG),
INTENT(OUT) :: err
1783 enters(
"Petsc_Finalise",err,error,*999)
1785 CALL petscfinalize(err)
1790 CALL flagerror(
"PETSc error in PetscFinalize.",err,error,*999)
1793 exits(
"Petsc_Finalise")
1795 999 errorsexits(
"Petsc_Finalise",err,error)
1808 CHARACTER(LEN=*),
INTENT(IN) :: file
1809 INTEGER(INTG),
INTENT(OUT) :: err
1813 enters(
"Petsc_Initialise",err,error,*999)
1816 CALL petscinitialize(file,err)
1821 CALL flagerror(
"PETSc error in PetscInitialize.",err,error,*999)
1824 CALL petscpopsignalhandler(err)
1829 CALL flagerror(
"PETSc error in PetscPopSignalHandler.",err,error,*999)
1832 exits(
"Petsc_Initialise")
1834 999 errorsexits(
"Petsc_Initialise",err,error)
1847 petscviewer,
INTENT(IN) :: viewer
1848 INTEGER(INTG),
INTENT(OUT) :: err
1852 enters(
"Petsc_LogView",err,error,*999)
1854 CALL petsclogview(viewer,err)
1859 CALL flagerror(
"PETSc error in PetscLogView.",err,error,*999)
1862 exits(
"Petsc_LogView")
1864 999 errorsexits(
"Petsc_LogView",err,error)
1878 INTEGER(INTG),
INTENT(OUT) :: err
1882 enters(
"Petsc_ISFinalise",err,error,*999)
1884 IF(is%is/=petsc_null_object)
THEN 1888 exits(
"Petsc_ISFinalise")
1890 999 errorsexits(
"Petsc_ISFinalise",err,error)
1904 INTEGER(INTG),
INTENT(OUT) :: err
1908 enters(
"Petsc_ISInitialise",err,error,*999)
1910 is%is=petsc_null_object
1912 exits(
"Petsc_ISInitialise")
1914 999 errorsexits(
"Petsc_ISInitialise",err,error)
1928 INTEGER(INTG),
INTENT(OUT) :: err
1932 enters(
"Petsc_ISDestroy",err,error,*999)
1934 CALL isdestroy(is%is,err)
1939 CALL flagerror(
"PETSc error in ISDestroy.",err,error,*999)
1941 is%is=petsc_null_object
1943 exits(
"Petsc_ISDestroy")
1945 999 errorsexits(
"Petsc_ISDestroy",err,error)
1960 INTEGER(INTG),
INTENT(OUT) :: err
1964 enters(
"Petsc_ISColoringFinalise",err,error,*999)
1966 IF(iscoloring%iscoloring/=petsc_null_object)
THEN 1970 exits(
"Petsc_ISColoringFinalise")
1972 999 errorsexits(
"Petsc_ISColoringFinalise",err,error)
1986 INTEGER(INTG),
INTENT(OUT) :: err
1990 enters(
"Petsc_ISColoringInitialise",err,error,*999)
1992 iscoloring%iscoloring=petsc_null_object
1994 exits(
"Petsc_ISColoringInitialise")
1996 999 errorsexits(
"Petsc_ISColoringInitialise",err,error)
2010 INTEGER(INTG),
INTENT(OUT) :: err
2014 enters(
"Petsc_ISColoringDestroy",err,error,*999)
2016 CALL iscoloringdestroy(iscoloring%iscoloring,err)
2021 CALL flagerror(
"PETSc error in ISColoringDestroy.",err,error,*999)
2023 iscoloring%iscoloring=petsc_null_object
2025 exits(
"Petsc_ISColoringDestroy")
2027 999 errorsexits(
"Petsc_ISColoringDestroy",err,error)
2041 INTEGER(INTG),
INTENT(OUT) :: err
2045 enters(
"Petsc_ISLocalToGlobalMappingFinalise",err,error,*999)
2047 IF(islocaltoglobalmapping%isLocalToGlobalMapping/=petsc_null_object)
THEN 2051 exits(
"Petsc_ISLocalToGlobalMappingFinalise")
2053 999 errorsexits(
"Petsc_ISLocalToGlobalMappingFinalise",err,error)
2067 INTEGER(INTG),
INTENT(OUT) :: err
2071 enters(
"Petsc_ISLocalToGlobalMappingInitialise",err,error,*999)
2073 islocaltoglobalmapping%isLocalToGlobalMapping=petsc_null_object
2075 exits(
"Petsc_ISLocalToGlobalMappingInitialise")
2077 999 errorsexits(
"Petsc_ISLocalToGlobalMappingInitialise",err,error)
2091 INTEGER(INTG),
INTENT(IN) :: n
2092 INTEGER(INTG),
INTENT(IN) :: idxIn(:)
2093 INTEGER(INTG),
INTENT(OUT) :: idxOut(:)
2094 INTEGER(INTG),
INTENT(OUT) :: err
2098 enters(
"Petsc_ISLocalToGlobalMappingApply",err,error,*999)
2100 CALL islocaltoglobalmappingapply(islocaltoglobalmapping%isLocalToGlobalMapping,n,idxin,idxout,err)
2105 CALL flagerror(
"PETSc error in ISLocalToGlobalMappingApply.",err,error,*999)
2107 islocaltoglobalmapping%isLocalToGlobalMapping=petsc_null_object
2109 exits(
"Petsc_ISLocalToGlobalMappingApply")
2111 999 errorsexits(
"Petsc_ISLocalToGlobalMappingApply",err,error)
2127 INTEGER(INTG),
INTENT(OUT) :: err
2131 enters(
"Petsc_ISLocalToGlobalMappingApplyIS",err,error,*999)
2133 CALL islocaltoglobalmappingapplyis(islocaltoglobalmapping%isLocalToGlobalMapping,isin%is,isout%is,err)
2138 CALL flagerror(
"PETSc error in ISLocalToGlobalMappingApplyIS.",err,error,*999)
2141 exits(
"Petsc_ISLocalToGlobalMappingApplyIS")
2143 999 errorsexits(
"Petsc_ISLocalToGlobalMappingApplyIS",err,error)
2156 mpi_comm,
INTENT(IN) :: communicator
2157 INTEGER(INTG),
INTENT(IN) :: blockSize
2158 INTEGER(INTG),
INTENT(IN) :: n
2159 INTEGER(INTG),
INTENT(IN) :: indices(:)
2160 petsccopymode,
INTENT(IN) :: mode
2162 INTEGER(INTG),
INTENT(OUT) :: err
2166 enters(
"Petsc_ISLocalToGlobalMappingCreate",err,error,*999)
2168 CALL islocaltoglobalmappingcreate(communicator,blocksize,n,indices,mode,islocaltoglobalmapping%isLocalToGlobalMapping,err)
2173 CALL flagerror(
"PETSc error in ISLocalToGlobalMappingCreate.",err,error,*999)
2176 exits(
"Petsc_ISLocalToGlobalMappingCreate")
2178 999 errorsexits(
"Petsc_ISLocalToGlobalMappingCreate",err,error)
2192 INTEGER(INTG),
INTENT(OUT) :: err
2196 enters(
"Petsc_ISLocalToGlobalMappingDestroy",err,error,*999)
2198 CALL islocaltoglobalmappingdestroy(islocaltoglobalmapping%isLocalToGlobalMapping,err)
2203 CALL flagerror(
"PETSc error in ISLocalToGlobalMappingDestroy.",err,error,*999)
2205 islocaltoglobalmapping%isLocalToGlobalMapping=petsc_null_object
2207 exits(
"Petsc_ISLocalToGlobalMappingDestroy")
2209 999 errorsexits(
"Petsc_ISLocalToGlobalMappingDestroy",err,error)
2223 INTEGER(INTG),
INTENT(OUT) :: err
2227 enters(
"Petsc_KSPFinalise",err,error,*999)
2229 IF(ksp%ksp/=petsc_null_object)
THEN 2233 exits(
"Petsc_KSPFinalise")
2235 999 errorsexits(
"Petsc_KSPFinalise",err,error)
2249 INTEGER(INTG),
INTENT(OUT) :: err
2253 enters(
"Petsc_KSPInitialise",err,error,*999)
2255 ksp%ksp=petsc_null_object
2257 exits(
"Petsc_KSPInitialise")
2259 999 errorsexits(
"Petsc_KSPInitialise",err,error)
2272 mpi_comm,
INTENT(IN) :: communicator
2274 INTEGER(INTG),
INTENT(OUT) :: err
2278 enters(
"Petsc_KSPCreate",err,error,*999)
2280 CALL kspcreate(communicator,ksp%ksp,err)
2285 CALL flagerror(
"PETSc error in KSPCreate.",err,error,*999)
2288 exits(
"Petsc_KSPCreate")
2290 999 errorsexits(
"Petsc_KSPCreate",err,error)
2304 INTEGER(INTG),
INTENT(OUT) :: err
2308 enters(
"Petsc_KSPDestroy",err,error,*999)
2310 CALL kspdestroy(ksp%ksp,err)
2315 CALL flagerror(
"PETSc error in KSPDestroy.",err,error,*999)
2317 ksp%ksp=petsc_null_object
2319 exits(
"Petsc_KSPDestroy")
2321 999 errorsexits(
"Petsc_KSPDestroy",err,error)
2335 INTEGER(INTG),
INTENT(OUT) :: reason
2336 INTEGER(INTG),
INTENT(OUT) :: err
2340 enters(
"Petsc_KSPGetConvergedReason",err,error,*999)
2342 CALL kspgetconvergedreason(ksp%ksp,reason,err)
2347 CALL flagerror(
"PETSc error in KSPGetConvergedReason.",err,error,*999)
2350 exits(
"Petsc_KSPGetConvergedReason")
2352 999 errorsexits(
"Petsc_KSPGetConvergedReason",err,error)
2365 INTEGER(INTG),
INTENT(OUT) :: iterationNumber
2366 INTEGER(INTG),
INTENT(OUT) :: err
2370 enters(
"Petsc_KSPGetIterationNumber",err,error,*999)
2372 CALL kspgetiterationnumber(ksp%ksp,iterationnumber,err)
2377 CALL flagerror(
"PETSc error in KSPGetIterationNumber.",err,error,*999)
2380 exits(
"Petsc_KSPGetIterationNumber")
2382 999 errorsexits(
"Petsc_KSPGetIterationNumber",err,error)
2397 INTEGER(INTG),
INTENT(OUT) :: err
2401 enters(
"Petsc_KSPGetPC",err,error,*999)
2403 CALL kspgetpc(ksp%ksp,pc%pc,err)
2408 CALL flagerror(
"PETSc error in KSPGetPC.",err,error,*999)
2411 exits(
"Petsc_KSPGetPC")
2413 999 errorsexits(
"Petsc_KSPGetPC",err,error)
2427 REAL(DP),
INTENT(OUT) :: residualNorm
2428 INTEGER(INTG),
INTENT(OUT) :: err
2432 enters(
"Petsc_KSPGetResidualNorm",err,error,*999)
2434 CALL kspgetresidualnorm(ksp%ksp,residualnorm,err)
2439 CALL flagerror(
"PETSc error in KSPGetResidualNorm.",err,error,*999)
2442 exits(
"Petsc_KSPGetResidualNorm")
2444 999 errorsexits(
"Petsc_KSPGetResidualNorm",err,error)
2458 INTEGER(INTG),
INTENT(OUT) :: restart
2459 INTEGER(INTG),
INTENT(OUT) :: err
2463 enters(
"Petsc_KSPGMRESSetRestart",err,error,*999)
2465 CALL kspgmressetrestart(ksp%ksp,restart,err)
2470 CALL flagerror(
"PETSc error in KSPGMRESSetRestart.",err,error,*999)
2473 exits(
"Petsc_KSPGMRESSetRestart")
2475 999 errorsexits(
"Petsc_KSPGMRESSetRestart",err,error)
2489 INTEGER(INTG),
INTENT(OUT) :: err
2493 enters(
"Petsc_KSPSetFromOptions",err,error,*999)
2495 CALL kspsetfromoptions(ksp%ksp,err)
2500 CALL flagerror(
"PETSc error in KSPSetFromOptions.",err,error,*999)
2503 exits(
"Petsc_KSPSetFromOptions")
2505 999 errorsexits(
"Petsc_KSPSetFromOptions",err,error)
2519 LOGICAL,
INTENT(IN) :: flag
2520 INTEGER(INTG),
INTENT(OUT) :: err
2524 enters(
"Petsc_KSPSetInitialGuessNonZero",err,error,*999)
2527 CALL kspsetinitialguessnonzero(ksp%ksp,petsc_true,err)
2529 CALL kspsetinitialguessnonzero(ksp%ksp,petsc_false,err)
2535 CALL flagerror(
"PETSc error in KSPSetInitialGuessNonzero.",err,error,*999)
2538 exits(
"Petsc_KSPSetInitialGuessNonZero")
2540 999 errorsexits(
"Petsc_KSPSetInitialGuessNonZero",err,error)
2556 INTEGER(INTG),
INTENT(OUT) :: err
2560 enters(
"Petsc_KSPSetOperators",err,error,*999)
2562 CALL kspsetoperators(ksp%ksp,amat%mat,pmat%mat,err)
2567 CALL flagerror(
"PETSc error in KSPSetFromOperators.",err,error,*999)
2570 exits(
"Petsc_KSPSetOperators")
2572 999 errorsexits(
"Petsc_KSPSetOperators",err,error)
2586 LOGICAL,
INTENT(IN) :: flag
2587 INTEGER(INTG),
INTENT(OUT) :: err
2591 enters(
"Petsc_KSPSetReusePreconditioner",err,error,*999)
2594 CALL kspsetreusepreconditioner(ksp%ksp,petsc_true,err)
2596 CALL kspsetreusepreconditioner(ksp%ksp,petsc_false,err)
2602 CALL flagerror(
"PETSc error in KSPSetReusePreconditioner.",err,error,*999)
2605 exits(
"Petsc_KSPSetReusePreconditioner")
2607 999 errorsexits(
"Petsc_KSPSetReusePreconditioner",err,error)
2621 REAL(DP),
INTENT(IN) :: rTol
2622 REAL(DP),
INTENT(IN) :: aTol
2623 REAL(DP),
INTENT(IN) :: dTol
2624 INTEGER(INTG),
INTENT(IN) :: maxIterations
2625 INTEGER(INTG),
INTENT(OUT) :: err
2629 enters(
"Petsc_KSPSetTolerances",err,error,*999)
2631 CALL kspsettolerances(ksp%ksp,rtol,atol,dtol,maxiterations,err)
2636 CALL flagerror(
"PETSc error in KSPSetTolerances.",err,error,*999)
2639 exits(
"Petsc_KSPSetTolerances")
2641 999 errorsexits(
"Petsc_KSPSetTolerances",err,error)
2655 ksptype,
INTENT(IN) :: method
2656 INTEGER(INTG),
INTENT(OUT) :: err
2660 enters(
"Petsc_KSPSetType",err,error,*999)
2662 CALL kspsettype(ksp%ksp,method,err)
2667 CALL flagerror(
"PETSc error in KSPSetType.",err,error,*999)
2670 exits(
"Petsc_KSPSetType")
2672 999 errorsexits(
"Petsc_KSPSetType",err,error)
2686 INTEGER(INTG),
INTENT(OUT) :: err
2690 enters(
"Petsc_KSPSetUp",err,error,*999)
2692 CALL kspsetup(ksp%ksp,err)
2697 CALL flagerror(
"PETSc error in KSPSetUp.",err,error,*999)
2700 exits(
"Petsc_KSPSetUp")
2702 999 errorsexits(
"Petsc_KSPSetUp",err,error)
2718 INTEGER(INTG),
INTENT(OUT) :: err
2722 enters(
"Petsc_KSPSolve",err,error,*999)
2724 CALL kspsolve(ksp%ksp,b%vec,x%vec,err)
2729 CALL flagerror(
"PETSc error in KSPSolve.",err,error,*999)
2732 exits(
"Petsc_KSPSolve")
2734 999 errorsexits(
"Petsc_KSPSolve",err,error)
2748 INTEGER(INTG),
INTENT(OUT) :: err
2752 enters(
"Petsc_MatFinalise",err,error,*999)
2754 IF(a%mat/=petsc_null_object)
THEN 2758 exits(
"Petsc_MatFinalise")
2760 999 errorsexits(
"Petsc_MatFinalise",err,error)
2774 INTEGER(INTG),
INTENT(OUT) :: err
2778 enters(
"Petsc_MatInitialise",err,error,*999)
2780 a%mat=petsc_null_object
2782 exits(
"Petsc_MatInitialise")
2784 999 errorsexits(
"Petsc_MatInitialise",err,error)
2798 matassemblytype,
INTENT(IN) :: assemblytype
2799 INTEGER(INTG),
INTENT(OUT) :: err
2803 enters(
"Petsc_MatAssemblyBegin",err,error,*999)
2805 CALL matassemblybegin(a%mat,assemblytype,err)
2810 CALL flagerror(
"PETSc error in MatAssemblyBegin.",err,error,*999)
2813 exits(
"Petsc_MatAssemblyBegin")
2815 999 errorsexits(
"Petsc_MatAssemblyBegin",err,error)
2829 matassemblytype,
INTENT(IN) :: assemblytype
2830 INTEGER(INTG),
INTENT(OUT) :: err
2834 enters(
"Petsc_MatAssemblyEnd",err,error,*999)
2836 CALL matassemblyend(a%mat,assemblytype,err)
2841 CALL flagerror(
"PETSc error in MatAssemblyEnd.",err,error,*999)
2844 exits(
"Petsc_MatAssemblyEnd")
2846 999 errorsexits(
"Petsc_MatAssemblyEnd",err,error)
2859 mpi_comm,
INTENT(IN) :: communicator
2861 INTEGER(INTG),
INTENT(OUT) :: err
2865 enters(
"Petsc_MatCreate",err,error,*999)
2867 CALL matcreate(communicator,a%mat,err)
2872 CALL flagerror(
"PETSc error in MatCreate.",err,error,*999)
2875 exits(
"Petsc_MatCreate")
2877 999 errorsexits(
"Petsc_MatCreate",err,error)
2887 SUBROUTINE petsc_matcreateaij(communicator,localM,localN,globalM,globalN,diagNumberNonZerosPerRow,diagNumberNonZerosEachRow, &
2888 & offdiagnumbernonzerosperrow,offdiagnumbernonzeroseachrow,a,err,error,*)
2891 mpi_comm,
INTENT(IN) :: communicator
2892 INTEGER(INTG),
INTENT(IN) :: localM
2893 INTEGER(INTG),
INTENT(IN) :: localN
2894 INTEGER(INTG),
INTENT(IN) :: globalM
2895 INTEGER(INTG),
INTENT(IN) :: globalN
2896 INTEGER(INTG),
INTENT(IN) :: diagNumberNonZerosPerRow
2897 INTEGER(INTG),
INTENT(IN) :: diagNumberNonZerosEachRow(:)
2898 INTEGER(INTG),
INTENT(IN) :: offDiagNumberNonZerosPerRow
2899 INTEGER(INTG),
INTENT(IN) :: offDiagNumberNonZerosEachRow(:)
2901 INTEGER(INTG),
INTENT(OUT) :: err
2905 enters(
"Petsc_MatCreateAIJ",err,error,*999)
2907 CALL matcreateaij(communicator,localm,localn,globalm,globaln,diagnumbernonzerosperrow,diagnumbernonzeroseachrow, &
2908 & offdiagnumbernonzerosperrow,offdiagnumbernonzeroseachrow,a%mat,err)
2913 CALL flagerror(
"PETSc error in MatCreateAIJ.",err,error,*999)
2916 exits(
"Petsc_MatCreateAIJ")
2918 999 errorsexits(
"Petsc_MatCreateAIJ",err,error)
2928 SUBROUTINE petsc_matcreatedense(communicator,localM,localN,globalM,globalN,matrixData,a,err,error,*)
2931 mpi_comm,
INTENT(IN) :: communicator
2932 INTEGER(INTG),
INTENT(IN) :: localM
2933 INTEGER(INTG),
INTENT(IN) :: localN
2934 INTEGER(INTG),
INTENT(IN) :: globalM
2935 INTEGER(INTG),
INTENT(IN) :: globalN
2936 REAL(DP),
INTENT(IN) :: matrixData(:)
2938 INTEGER(INTG),
INTENT(OUT) :: err
2942 enters(
"Petsc_MatCreateDense",err,error,*999)
2944 CALL matcreatedense(communicator,localm,localn,globalm,globaln,matrixdata,a%mat,err)
2949 CALL flagerror(
"PETSc error in MatCreateDense.",err,error,*999)
2952 exits(
"Petsc_MatCreateDense")
2954 999 errorsexits(
"Petsc_MatCreateDense",err,error)
2964 SUBROUTINE petsc_matcreateseqaij(communicator,m,n,numberNonZerosPerRow,numberNonZerosEachRow,a,err,error,*)
2967 mpi_comm,
INTENT(IN) :: communicator
2968 INTEGER(INTG),
INTENT(IN) :: m
2969 INTEGER(INTG),
INTENT(IN) :: n
2970 INTEGER(INTG),
INTENT(IN) :: numberNonZerosPerRow
2971 INTEGER(INTG),
INTENT(IN) :: numberNonZerosEachRow(:)
2973 INTEGER(INTG),
INTENT(OUT) :: err
2977 enters(
"Petsc_MatCreateSeqAIJ",err,error,*999)
2979 CALL matcreateseqaij(communicator,m,n,numbernonzerosperrow,numbernonzeroseachrow,a%mat,err)
2984 CALL flagerror(
"PETSc error in MatCreateSeqAIJ.",err,error,*999)
2987 exits(
"Petsc_MatCreateSeqAIJ")
2989 999 errorsexits(
"Petsc_MatCreateSeqAIJ",err,error)
3002 mpi_comm,
INTENT(IN) :: communicator
3003 INTEGER(INTG),
INTENT(IN) :: m
3004 INTEGER(INTG),
INTENT(IN) :: n
3005 REAL(DP),
INTENT(IN) :: matrixData(*)
3007 INTEGER(INTG),
INTENT(OUT) :: err
3011 enters(
"Petsc_MatCreateSeqDense",err,error,*999)
3013 CALL matcreateseqdense(communicator,m,n,matrixdata,a%mat,err)
3018 CALL flagerror(
"PETSc error in MatCreateSeqDense.",err,error,*999)
3021 exits(
"Petsc_MatCreateSeqDense")
3023 999 errorsexits(
"Petsc_MatCreateSeqDense",err,error)
3037 REAL(DP),
POINTER :: array(:,:)
3038 INTEGER(INTG),
INTENT(OUT) :: err
3042 enters(
"Petsc_MatDenseGetArrayF90",err,error,*999)
3044 IF(
ASSOCIATED(array))
THEN 3045 CALL flagerror(
"Array is already associated.",err,error,*999)
3047 CALL matdensegetarrayf90(a%mat,array,err)
3052 CALL flagerror(
"PETSc error in MatDenseGetArrayF90.",err,error,*999)
3056 exits(
"Petsc_MatDenseGetArrayF90")
3058 999 errorsexits(
"Petsc_MatDenseGetArrayF90",err,error)
3072 REAL(DP),
POINTER :: array(:,:)
3073 INTEGER(INTG),
INTENT(OUT) :: err
3077 enters(
"Petsc_MatDenseRestoreArrayF90",err,error,*999)
3079 CALL matdenserestorearrayf90(a%mat,array,err)
3084 CALL flagerror(
"PETSc error in MatDenseRestoreArrayF90.",err,error,*999)
3087 exits(
"Petsc_MatDenseRestoreArrayF90")
3089 999 errorsexits(
"Petsc_MatDenseRestoreArrayF90",err,error)
3103 INTEGER(INTG),
INTENT(OUT) :: err
3107 enters(
"Petsc_MatDestroy",err,error,*999)
3109 CALL matdestroy(a%mat,err)
3114 CALL flagerror(
"PETSc error in MatDestroy.",err,error,*999)
3116 a%mat=petsc_null_object
3118 exits(
"Petsc_MatDestroy")
3120 999 errorsexits(
"Petsc_MatDestroy",err,error)
3134 matinfotype,
INTENT(IN) :: flag
3135 matinfo,
INTENT(OUT) :: info(mat_info_size)
3136 INTEGER(INTG),
INTENT(OUT) :: err
3140 enters(
"Petsc_MatGetInfo",err,error,*999)
3142 CALL matgetinfo(a%mat,flag,info,err)
3147 CALL flagerror(
"PETSc error in MatGetInfo.",err,error,*999)
3150 exits(
"Petsc_MatGetInfo")
3152 999 errorsexits(
"Petsc_MatGetInfo",err,error)
3166 INTEGER(INTG),
INTENT(OUT) :: firstRow
3167 INTEGER(INTG),
INTENT(OUT) :: lastRow
3168 INTEGER(INTG),
INTENT(OUT) :: err
3172 enters(
"Petsc_MatGetOwnershipRange",err,error,*999)
3174 CALL matgetownershiprange(a%mat,firstrow,lastrow,err)
3179 CALL flagerror(
"PETSc error in MatGetOwnershipRange.",err,error,*999)
3182 exits(
"Petsc_MatGetOwnershipRange")
3184 999 errorsexits(
"Petsc_MatGetOwnershipRange",err,error)
3194 SUBROUTINE petsc_matgetrow(A,rowNumber,numberOfColumns,columns,values,err,error,*)
3198 INTEGER(INTG),
INTENT(IN) :: rowNumber
3199 INTEGER(INTG),
INTENT(OUT) :: numberOfColumns
3200 INTEGER(INTG),
INTENT(OUT) :: columns(:)
3201 REAL(DP),
INTENT(OUT) :: values(:)
3202 INTEGER(INTG),
INTENT(OUT) :: err
3206 enters(
"Petsc_MatGetRow",err,error,*999)
3208 CALL matgetrow(a%mat,rownumber,numberofcolumns,columns,values,err)
3213 CALL flagerror(
"PETSc error in MatGetRow.",err,error,*999)
3216 exits(
"Petsc_MatGetRow")
3218 999 errorsexits(
"Petsc_MatGetRow",err,error)
3232 INTEGER(INTG),
INTENT(IN) :: m
3233 INTEGER(INTG),
INTENT(IN) :: mIndices(*)
3234 INTEGER(INTG),
INTENT(IN) :: n
3235 INTEGER(INTG),
INTENT(IN) :: nIndices(*)
3236 REAL(DP),
INTENT(OUT) :: values(*)
3237 INTEGER(INTG),
INTENT(OUT) :: err
3241 enters(
"Petsc_MatGetValues",err,error,*999)
3243 CALL matgetvalues(a%mat,m,mindices,n,nindices,values,err)
3248 CALL flagerror(
"PETSc error in MatGetValues.",err,error,*999)
3251 exits(
"Petsc_MatGetValues")
3253 999 errorsexits(
"Petsc_MatGetValues",err,error)
3267 INTEGER(INTG),
INTENT(IN) :: icntl
3268 INTEGER(INTG),
INTENT(IN) :: ival
3269 INTEGER(INTG),
INTENT(OUT) :: err
3273 enters(
"Petsc_MatMumpsSetIcntl",err,error,*999)
3275 CALL matmumpsseticntl(factoredmatrix%mat,icntl,ival,err)
3280 CALL flagerror(
"PETSc error in MatMumpsSetIcntl.",err,error,*999)
3283 exits(
"Petsc_MatMumpsSetIcntl")
3285 999 errorsexits(
"Petsc_MatMumpsSetIcntl",err,error)
3299 INTEGER(INTG),
INTENT(IN) :: icntl
3300 REAL(DP),
INTENT(IN) :: val
3301 INTEGER(INTG),
INTENT(OUT) :: err
3305 enters(
"Petsc_MatMumpsSetCntl",err,error,*999)
3307 CALL matmumpssetcntl(factoredmatrix%mat,icntl,val,err)
3312 CALL flagerror(
"PETSc error in MatMumpsSetCntl.",err,error,*999)
3315 exits(
"Petsc_MatMumpsSetCntl")
3317 999 errorsexits(
"Petsc_MatMumpsSetCntl",err,error)
3331 INTEGER(INTG),
INTENT(IN) :: rowNumber
3332 INTEGER(INTG),
INTENT(OUT) :: numberOfColumns
3333 INTEGER(INTG),
INTENT(OUT) :: columns(:)
3334 REAL(DP),
INTENT(OUT) :: values(:)
3335 INTEGER(INTG),
INTENT(OUT) :: err
3339 enters(
"Petsc_MatRestoreRow",err,error,*999)
3341 CALL matrestorerow(a%mat,rownumber,numberofcolumns,columns,values,err)
3346 CALL flagerror(
"PETSc error in MatRestoreRow.",err,error,*999)
3349 exits(
"Petsc_MatRestoreRow")
3351 999 errorsexits(
"Petsc_MatRestoreRow",err,error)
3365 REAL(DP),
POINTER :: array(:,:)
3366 INTEGER(INTG),
INTENT(OUT) :: err
3370 enters(
"Petsc_MatSeqAIJGetArrayF90",err,error,*999)
3372 IF(
ASSOCIATED(array))
THEN 3373 CALL flagerror(
"Array is already associated.",err,error,*999)
3375 CALL matseqaijgetarrayf90(a%mat,array,err)
3380 CALL flagerror(
"PETSc error in MatSeqAIJGetArrayF90.",err,error,*999)
3384 exits(
"Petsc_MatSeqAIJGetArrayF90")
3386 999 errorsexits(
"Petsc_MatSeqAIJGetArrayF90",err,error)
3400 INTEGER(INTG),
INTENT(OUT) :: maxNumberNonZeros
3401 INTEGER(INTG),
INTENT(OUT) :: err
3405 enters(
"Petsc_MatSeqAIJGetMaxRowNonzeros",err,error,*999)
3409 CALL flagerror(
"Not implemented.",err,error,*999)
3414 CALL flagerror(
"PETSc error in MatSeqAIJGetMaxRowNonzeros.",err,error,*999)
3417 exits(
"Petsc_MatSeqAIJGetMaxRowNonzeros")
3419 999 errorsexits(
"Petsc_MatSeqAIJGetMaxRowNonzeros",err,error)
3433 REAL(DP),
POINTER :: array(:,:)
3434 INTEGER(INTG),
INTENT(OUT) :: err
3438 enters(
"MatSeqAIJRestoreArrayF90",err,error,*999)
3440 CALL matseqaijrestorearrayf90(a%mat,array,err)
3445 CALL flagerror(
"PETSc error in MatSeqAIJRestoreArrayF90.",err,error,*999)
3448 exits(
"MatSeqAIJRestoreArrayF90")
3450 999 errorsexits(
"MatSeqAIJRestoreArrayF90",err,error)
3465 INTEGER(INTG),
INTENT(OUT) :: err
3469 enters(
"Petsc_MatSetLocalToGlobalMapping",err,error,*999)
3471 CALL matsetlocaltoglobalmapping(a%mat,islocaltoglobalmapping%isLocalToGlobalMapping,err)
3476 CALL flagerror(
"PETSc error in MatSetLocalToGlobalMapping.",err,error,*999)
3479 exits(
"Petsc_MatSetLocalToGlobalMapping")
3481 999 errorsexits(
"Petsc_MatSetLocalToGlobalMapping",err,error)
3495 matoption,
INTENT(IN) :: option
3496 LOGICAL,
INTENT(IN) :: flag
3497 INTEGER(INTG),
INTENT(OUT) :: err
3501 enters(
"Petsc_MatSetOption",err,error,*999)
3504 CALL matsetoption(a%mat,option,petsc_true,err)
3506 CALL matsetoption(a%mat,option,petsc_false,err)
3512 CALL flagerror(
"PETSc error in MatSetOption.",err,error,*999)
3515 exits(
"Petsc_MatSetOption")
3517 999 errorsexits(
"Petsc_MatSetOption",err,error)
3531 INTEGER(INTG),
INTENT(IN) :: localM
3532 INTEGER(INTG),
INTENT(IN) :: localN
3533 INTEGER(INTG),
INTENT(IN) :: globalM
3534 INTEGER(INTG),
INTENT(IN) :: globalN
3535 INTEGER(INTG),
INTENT(OUT) :: err
3539 enters(
"Petsc_MatSetSizes",err,error,*999)
3541 CALL matsetsizes(a%mat,localm,localn,globalm,globaln,err)
3546 CALL flagerror(
"PETSc error in MatSetSizes.",err,error,*999)
3549 exits(
"Petsc_MatSetSizes")
3551 999 errorsexits(
"Petsc_MatSetSizes",err,error)
3565 mattype,
INTENT(IN) :: matrixtype
3566 INTEGER(INTG),
INTENT(OUT) :: err
3570 enters(
"Petsc_MatSetType",err,error,*999)
3572 CALL matsettype(a%mat,matrixtype,err)
3577 CALL flagerror(
"PETSc error in MatSetType.",err,error,*999)
3580 exits(
"Petsc_MatSetType")
3582 999 errorsexits(
"Petsc_MatSetType",err,error)
3596 INTEGER(INTG),
INTENT(IN) :: row
3597 INTEGER(INTG),
INTENT(IN) :: col
3598 REAL(DP),
INTENT(IN) ::
value 3599 insertmode,
INTENT(IN) :: insertmode
3600 INTEGER(INTG),
INTENT(OUT) :: err
3604 enters(
"Petsc_MatSetValue",err,error,*999)
3606 CALL matsetvalue(a%mat,row,col,
value,insertmode,err)
3611 CALL flagerror(
"PETSc error in MatSetValue.",err,error,*999)
3614 exits(
"Petsc_MatSetValue")
3616 999 errorsexits(
"Petsc_MatSetValue",err,error)
3630 INTEGER(INTG),
INTENT(IN) :: m
3631 INTEGER(INTG),
INTENT(IN) :: mIndices(*)
3632 INTEGER(INTG),
INTENT(IN) :: n
3633 INTEGER(INTG),
INTENT(IN) :: nIndices(*)
3634 REAL(DP),
INTENT(IN) :: values(*)
3635 insertmode,
INTENT(IN) :: insertmode
3636 INTEGER(INTG),
INTENT(OUT) :: err
3640 enters(
"Petsc_MatSetValues",err,error,*999)
3642 CALL matsetvalues(a%mat,m,mindices,n,nindices,values,insertmode,err)
3647 CALL flagerror(
"PETSc error in MatSetValues.",err,error,*999)
3650 exits(
"Petsc_MatSetValues")
3652 999 errorsexits(
"Petsc_MatSetValues",err,error)
3664 INTEGER(INTG),
INTENT(IN) :: row
3665 INTEGER(INTG),
INTENT(IN) :: col
3666 REAL(DP),
INTENT(IN) ::
value 3667 insertmode,
INTENT(IN) :: insertmode
3668 INTEGER(INTG),
INTENT(OUT) :: err
3672 enters(
"Petsc_MatSetValueLocal",err,error,*999)
3674 CALL matsetvaluelocal(a%mat,row,col,
value,insertmode,err)
3679 CALL flagerror(
"PETSc error in MatSetValueLocal.",err,error,*999)
3682 exits(
"Petsc_MatSetValueLocal")
3684 999 errorsexits(
"Petsc_MatSetValueLocal",err,error)
3697 INTEGER(INTG),
INTENT(IN) :: m
3698 INTEGER(INTG),
INTENT(IN) :: mIndices(:)
3699 INTEGER(INTG),
INTENT(IN) :: n
3700 INTEGER(INTG),
INTENT(IN) :: nIndices(:)
3701 REAL(DP),
INTENT(IN) :: values(:)
3702 insertmode,
INTENT(IN) :: insertmode
3703 INTEGER(INTG),
INTENT(OUT) :: err
3707 enters(
"Petsc_MatSetValuesLocal",err,error,*999)
3709 CALL matsetvalueslocal(a%mat,m,mindices,n,nindices,values,insertmode,err)
3714 CALL flagerror(
"PETSc error in MatSetValuesLocal.",err,error,*999)
3717 exits(
"Petsc_MatSetValuesLocal")
3719 999 errorsexits(
"Petsc_MatSetValuesLocal",err,error)
3733 petscviewer,
INTENT(IN) :: viewer
3734 INTEGER(INTG),
INTENT(OUT) :: err
3738 enters(
"Petsc_MatView",err,error,*999)
3740 CALL matview(a%mat,viewer,err)
3745 CALL flagerror(
"PETSc error in MatView.",err,error,*999)
3748 exits(
"Petsc_MatView")
3750 999 errorsexits(
"Petsc_MatView",err,error)
3764 INTEGER(INTG),
INTENT(OUT) :: err
3768 enters(
"Petsc_MatZeroEntries",err,error,*999)
3770 CALL matzeroentries(a%mat,err)
3775 CALL flagerror(
"PETSc error in MatZeroEntries.",err,error,*999)
3778 exits(
"Petsc_MatZeroEntries")
3780 999 errorsexits(
"Petsc_MatZeroEntries",err,error)
3794 INTEGER(INTG),
INTENT(OUT) :: err
3798 enters(
"Petsc_MatColoringFinalise",err,error,*999)
3800 IF(matcoloring%matColoring/=petsc_null_object)
THEN 3804 exits(
"Petsc_MatColoringFinalise")
3806 999 errorsexits(
"Petsc_MatColoringFinalise",err,error)
3820 INTEGER(INTG),
INTENT(OUT) :: err
3824 enters(
"Petsc_MatColoringInitialise",err,error,*999)
3826 matcoloring%matColoring=petsc_null_object
3828 exits(
"Petsc_MatColoringInitialise")
3830 999 errorsexits(
"Petsc_MatColoringInitialise",err,error)
3845 INTEGER(INTG),
INTENT(OUT) :: err
3849 enters(
"Petsc_MatColoringApply",err,error,*999)
3851 CALL matcoloringapply(matcoloring%matColoring,iscoloring%isColoring,err)
3856 CALL flagerror(
"PETSc error in MatColoringApply.",err,error,*999)
3859 exits(
"Petsc_MatColoringApply")
3861 999 errorsexits(
"Petsc_MatColoringApply",err,error)
3876 INTEGER(INTG),
INTENT(OUT) :: err
3880 enters(
"Petsc_MatColoringCreate",err,error,*999)
3882 CALL matcoloringcreate(a%mat,matcoloring%matColoring,err)
3887 CALL flagerror(
"PETSc error in MatColoringCreate.",err,error,*999)
3890 exits(
"Petsc_MatColoringCreate")
3892 999 errorsexits(
"Petsc_MatColoringCreate",err,error)
3906 INTEGER(INTG),
INTENT(OUT) :: err
3910 enters(
"Petsc_MatColoringDestroy",err,error,*999)
3912 CALL matcoloringdestroy(matcoloring%matColoring,err)
3917 CALL flagerror(
"PETSc error in MatColoringDestroy.",err,error,*999)
3919 matcoloring%matColoring=petsc_null_object
3921 exits(
"Petsc_MatColoringDestroy")
3923 999 errorsexits(
"Petsc_MatColoringDestroy",err,error)
3924 exits(
"Petsc_MatColoringDestroy")
3938 INTEGER(INTG),
INTENT(OUT) :: err
3942 enters(
"Petsc_MatColoringSetFromOptions",err,error,*999)
3944 CALL matcoloringsetfromoptions(matcoloring%matColoring,err)
3949 CALL flagerror(
"PETSc error in MatColoringSetFromOptions.",err,error,*999)
3952 exits(
"Petsc_MatColoringSetFromOptions")
3954 999 errorsexits(
"Petsc_MatColoringSetFromOptions",err,error)
3968 matcoloringtype,
INTENT(IN) :: coloringtype
3969 INTEGER(INTG),
INTENT(OUT) :: err
3973 enters(
"Petsc_MatColoringSetType",err,error,*999)
3975 CALL matcoloringsettype(matcoloring%matColoring,coloringtype,err)
3980 CALL flagerror(
"PETSc error in MatColoringSetType.",err,error,*999)
3983 exits(
"Petsc_MatColoringSetType")
3985 999 errorsexits(
"Petsc_MatColoringSetType",err,error)
3999 INTEGER(INTG),
INTENT(OUT) :: err
4003 enters(
"Petsc_MatFDColoringFinalise",err,error,*999)
4005 IF(matfdcoloring%matFDColoring/=petsc_null_object)
THEN 4009 exits(
"Petsc_MatFDColoringFinalise")
4011 999 errorsexits(
"Petsc_MatFDColoringFinalise",err,error)
4025 INTEGER(INTG),
INTENT(OUT) :: err
4029 enters(
"Petsc_MatFDColoringInitialise",err,error,*999)
4031 matfdcoloring%matFDColoring=petsc_null_object
4033 exits(
"Petsc_MatFDColoringInitialise")
4035 999 errorsexits(
"Petsc_MatFDColoringInitialise",err,error)
4051 INTEGER(INTG),
INTENT(OUT) :: err
4055 enters(
"Petsc_MatFDColoringCreate",err,error,*999)
4057 CALL matfdcoloringcreate(a%mat,iscoloring%isColoring,matfdcoloring%matFDColoring,err)
4062 CALL flagerror(
"PETSc error in MatFDColoringCreate.",err,error,*999)
4065 exits(
"Petsc_MatFDColoringCreate")
4067 999 errorsexits(
"Petsc_MatFDColoringCreate",err,error)
4081 INTEGER(INTG),
INTENT(OUT) :: err
4085 enters(
"Petsc_MatFDColoringDestroy",err,error,*999)
4087 CALL matfdcoloringdestroy(matfdcoloring%matFDColoring,err)
4092 CALL flagerror(
"PETSc error in MatFDColoringDestroy.",err,error,*999)
4094 matfdcoloring%matFDColoring=petsc_null_object
4096 exits(
"Petsc_MatFDColoringDestroy")
4098 999 errorsexits(
"Petsc_MatFDColoringDestroy",err,error)
4112 INTEGER(INTG),
INTENT(OUT) :: err
4116 enters(
"Petsc_MatFDColoringSetFromOptions",err,error,*999)
4118 CALL matfdcoloringsetfromoptions(matfdcoloring%matFDColoring,err)
4123 CALL flagerror(
"PETSc error in MatFDColoringSetFromOptions.",err,error,*999)
4126 exits(
"Petsc_MatFDColoringSetFromOptions")
4128 999 errorsexits(
"Petsc_MatFDColoringSetFromOptions",err,error)
4144 INTEGER(INTG),
INTENT(OUT) :: err
4148 enters(
"Petsc_MatFDColoringSetParameters",err,error,*999)
4150 CALL matfdcoloringsetparameters(matfdcoloring%matFDColoring,rerror,umin,err)
4155 CALL flagerror(
"PETSc error in MatFDColoringSetParameters.",err,error,*999)
4158 exits(
"Petsc_MatFDColoringSetParameters")
4160 999 errorsexits(
"Petsc_MatFDColoringSetParameters",err,error)
4176 INTEGER(INTG),
INTENT(OUT) :: err
4180 enters(
"Petsc_MatFDColoringSetFunction",err,error,*999)
4182 CALL matfdcoloringsetfunction(matfdcoloring%matFDColoring,ffunction,ctx,err)
4187 CALL flagerror(
"PETSc error in MatFDColoringSetFunction.",err,error,*999)
4190 exits(
"Petsc_MatFDColoringSetFunction")
4192 999 errorsexits(
"Petsc_MatFDColoringSetFunction",err,error)
4208 INTEGER(INTG),
INTENT(OUT) :: err
4212 enters(
"Petsc_MatFDColoringSetup",err,error,*999)
4214 CALL matfdcoloringsetup(a%mat,iscoloring%isColoring,matfdcoloring%matFDColoring,err)
4219 CALL flagerror(
"PETSc error in MatFDColoringSetup.",err,error,*999)
4222 exits(
"Petsc_MatFDColoringSetup")
4224 999 errorsexits(
"Petsc_MatFDColoringSetup",err,error)
4238 INTEGER(INTG),
INTENT(OUT) :: err
4242 enters(
"Petsc_PCFinalise",err,error,*999)
4244 IF(pc%pc/=petsc_null_object)
THEN 4248 exits(
"Petsc_PCFinalise")
4250 999 errorsexits(
"Petsc_PCFinalise",err,error)
4264 INTEGER(INTG),
INTENT(OUT) :: err
4268 enters(
"Petsc_PCInitialise",err,error,*999)
4270 pc%pc=petsc_null_object
4272 exits(
"Petsc_PCInitialise")
4274 999 errorsexits(
"Petsc_PCInitialise",err,error)
4289 INTEGER(INTG),
INTENT(OUT) :: err
4293 enters(
"Petsc_PCFactorGetMatrix",err,error,*999)
4295 CALL pcfactorgetmatrix(pc%pc,factoredmatrix%mat,err)
4300 CALL flagerror(
"PETSc error in PCFactorGetMatrix",err,error,*999)
4303 exits(
"Petsc_PCFactorGetMatrix")
4305 999 errorsexits(
"Petsc_PCFactorGetMatrix",err,error)
4319 matsolverpackage,
INTENT(IN) :: solverpackage
4320 INTEGER(INTG),
INTENT(OUT) :: err
4324 enters(
"Petsc_PCFactorSetMatSolverPackage",err,error,*999)
4326 CALL pcfactorsetmatsolverpackage(pc%pc,solverpackage,err)
4331 CALL flagerror(
"PETSc error in PCFactorSetMatSolverPackage.",err,error,*999)
4334 exits(
"Petsc_PCFactorSetMatSolverPackage")
4336 999 errorsexits(
"Petsc_PCFactorSetMatSolverPackage",err,error)
4350 INTEGER(INTG),
INTENT(OUT) :: err
4354 enters(
"Petsc_PCFactorSetUpMatSolverPackage",err,error,*999)
4356 CALL pcfactorsetupmatsolverpackage(pc%pc,err)
4361 CALL flagerror(
"PETSc error in PCFactorSetUpMatSolverPackage.",err,error,*999)
4364 exits(
"Petsc_PCFactorSetUpMatSolverPackage")
4366 999 errorsexits(
"Petsc_PCFactorSetUpMatSolverPackage",err,error)
4380 LOGICAL,
INTENT(IN) :: flag
4381 INTEGER(INTG),
INTENT(OUT) :: err
4385 enters(
"Petsc_PCSetReusePreconditioner",err,error,*999)
4388 CALL pcsetreusepreconditioner(pc%pc,petsc_true,err)
4390 CALL pcsetreusepreconditioner(pc%pc,petsc_false,err)
4396 CALL flagerror(
"PETSc error in PCSetReusePreconditioner.",err,error,*999)
4399 exits(
"Petsc_PCSetReusePreconditioner")
4401 999 errorsexits(
"Petsc_PCSetReusePreconditioner",err,error)
4415 INTEGER(INTG),
INTENT(OUT) :: err
4419 enters(
"Petsc_PCSetFromOptions",err,error,*999)
4421 CALL pcsetfromoptions(pc%pc,err)
4426 CALL flagerror(
"PETSc error in PCSetFromOptions.",err,error,*999)
4429 exits(
"Petsc_PCSetFromOptions")
4431 999 errorsexits(
"Petsc_PCSetFromOptions",err,error)
4445 pctype,
INTENT(IN) :: method
4446 INTEGER(INTG),
INTENT(OUT) :: err
4450 enters(
"Petsc_PCSetType",err,error,*999)
4452 CALL pcsettype(pc%pc,method,err)
4457 CALL flagerror(
"PETSc error in PCSetType.",err,error,*999)
4460 exits(
"Petsc_PCSetType")
4462 999 errorsexits(
"Petsc_PCSetType",err,error)
4476 INTEGER(INTG),
INTENT(OUT) :: err
4480 enters(
"Petsc_SnesFinalise",err,error,*999)
4482 IF(snes%snes/=petsc_null_object)
THEN 4486 exits(
"Petsc_SnesFinalise")
4488 999 errorsexits(
"Petsc_SnesFinalise",err,error)
4502 INTEGER(INTG),
INTENT(OUT) :: err
4506 enters(
"Petsc_SnesInitialise",err,error,*999)
4508 snes%snes=petsc_null_object
4510 exits(
"Petsc_SnesInitialise")
4512 999 errorsexits(
"Petsc_SnesInitialise",err,error)
4530 INTEGER(INTG),
INTENT(INOUT) :: err
4533 enters(
"Petsc_SnesComputeJacobianDefault",err,error,*999)
4535 CALL snescomputejacobiandefault(snes%snes,x%vec,j%mat,b%mat,ctx,err)
4540 CALL flagerror(
"PETSc error in SNESComputeJacobianDefault.",err,error,*999)
4543 exits(
"Petsc_SnesComputeJacobianDefault")
4545 999 errorsexits(
"Petsc_SnesComputeJacobianDefault",err,error)
4563 INTEGER(INTG),
INTENT(INOUT) :: err
4566 enters(
"Petsc_SnesComputeJacobianDefaultColor",err,error,*999)
4568 CALL snescomputejacobiandefaultcolor(snes%snes,x%vec,j%mat,b%mat,ctx,err)
4573 CALL flagerror(
"PETSc error in SNESComputeJacobianDefaultColor.",err,error,*999)
4576 exits(
"Petsc_SnesComputeJacobianDefaultColor")
4578 999 errorsexits(
"Petsc_SnesComputeJacobianDefaultColor",err,error)
4591 mpi_comm,
INTENT(IN) :: communicator
4593 INTEGER(INTG),
INTENT(OUT) :: err
4597 enters(
"Petsc_SnesCreate",err,error,*999)
4599 CALL snescreate(communicator,snes%snes,err)
4604 CALL flagerror(
"PETSc error in SNESCreate.",err,error,*999)
4607 exits(
"Petsc_SnesCreate")
4609 999 errorsexits(
"Petsc_SnesCreate",err,error)
4623 INTEGER(INTG),
INTENT(OUT) :: err
4627 enters(
"Petsc_SnesDestroy",err,error,*999)
4629 CALL snesdestroy(snes%snes,err)
4634 CALL flagerror(
"PETSc error in SNESDestroy.",err,error,*999)
4636 snes%snes=petsc_null_object
4638 exits(
"Petsc_SnesDestroy")
4640 999 errorsexits(
"Petsc_SnesDestroy",err,error)
4655 INTEGER(INTG),
INTENT(OUT) :: err
4659 enters(
"Petsc_SnesGetApplicationContext",err,error,*999)
4661 IF(
ASSOCIATED(ctx))
THEN 4662 CALL flagerror(
"Context is already associated.",err,error,*999)
4664 CALL snesgetapplicationcontext(snes%snes,ctx,err)
4669 CALL flagerror(
"PETSc error in SNESGetApplicationContext.",err,error,*999)
4673 exits(
"Petsc_SnesGetApplicationContext")
4675 999 errorsexits(
"Petsc_SnesGetApplicationContext",err,error)
4689 INTEGER(INTG),
INTENT(OUT) :: reason
4690 INTEGER(INTG),
INTENT(OUT) :: err
4694 enters(
"Petsc_SnesGetConvergedReason",err,error,*999)
4696 CALL snesgetconvergedreason(snes%snes,reason,err)
4701 CALL flagerror(
"PETSc error in SNESGetConvergedReason.",err,error,*999)
4704 exits(
"Petsc_SnesGetConvergedReason")
4706 999 errorsexits(
"Petsc_SnesGetConvergedReason",err,error)
4721 INTEGER(INTG),
INTENT(OUT) :: err
4724 enters(
"Petsc_SnesGetFunction",err,error,*999)
4726 CALL snesgetfunction(snes%snes,f%vec,petsc_null_function,petsc_null_integer,err)
4731 CALL flagerror(
"PETSc error in SNESGetFunction.",err,error,*999)
4734 exits(
"Petsc_SnesGetFunction")
4736 999 errorsexits(
"Petsc_SnesGetFunction",err,error)
4750 INTEGER(INTG),
INTENT(OUT) :: iterationNumber
4751 INTEGER(INTG),
INTENT(OUT) :: err
4755 enters(
"Petsc_SnesGetIterationNumber",err,error,*999)
4757 CALL snesgetiterationnumber(snes%snes,iterationnumber,err)
4762 CALL flagerror(
"PETSc error in SNESGetIterationNumber.",err,error,*999)
4765 exits(
"Petsc_SnesGetIterationNumber")
4767 999 errorsexits(
"Petsc_SnesGetIterationNumber",err,error)
4785 INTEGER(INTG),
INTENT(OUT) :: err
4789 enters(
"Petsc_SnesGetJacobianSolver",err,error,*999)
4791 CALL snesgetjacobian(snes%snes,a%mat,b%mat,jfunction,petsc_null_integer,err)
4796 CALL flagerror(
"PETSc error in SNESGetJacobian.",err,error,*999)
4799 exits(
"Petsc_SnesGetJacobianSolver")
4801 999 errorsexits(
"Petsc_SnesGetJacobianSolver",err,error)
4816 INTEGER(INTG),
INTENT(OUT) :: err
4820 enters(
"Petsc_SnesGetJacobianSpecial",err,error,*999)
4822 CALL snesgetjacobian(snes%snes,a%mat,petsc_null_object,petsc_null_function,petsc_null_integer,err)
4828 CALL flagerror(
"PETSc error in SNESGetJacobian.",err,error,*999)
4831 exits(
"Petsc_SnesGetJacobianSpecial")
4833 999 errorsexits(
"Petsc_SnesGetJacobianSpecial",err,error)
4848 INTEGER(INTG),
INTENT(OUT) :: err
4852 enters(
"Petsc_SnesGetKSP",err,error,*999)
4854 CALL snesgetksp(snes%snes,ksp%ksp,err)
4859 CALL flagerror(
"PETSc error in SNESGetKSP.",err,error,*999)
4862 exits(
"Petsc_SnesGetKSP")
4864 999 errorsexits(
"Petsc_SnesGetKSP",err,error)
4879 INTEGER(INTG),
INTENT(OUT) :: err
4882 enters(
"Petsc_SnesGetLineSearch",err,error,*999)
4884 CALL snesgetlinesearch(snes%snes,linesearch%snesLineSearch,err)
4889 CALL flagerror(
"PETSc error in SNESGetLineSearch.",err,error,*999)
4892 exits(
"Petsc_SnesGetLineSearch")
4894 999 errorsexits(
"Petsc_SnesGetLineSearch",err,error)
4909 INTEGER(INTG),
INTENT(OUT) :: err
4913 enters(
"Petsc_SnesGetSolutionUpdate",err,error,*999)
4915 CALL snesgetsolutionupdate(snes%snes,solutionupdate%vec,err)
4920 CALL flagerror(
"PETSc error in SNESGetSolutionUpdate.",err,error,*999)
4923 exits(
"Petsc_SnesGetSolutionUpdate")
4925 999 errorsexits(
"Petsc_SnesGetSolutionUpdate",err,error)
4939 EXTERNAL :: mfunction
4941 INTEGER(INTG),
INTENT(OUT) :: err
4945 enters(
"Petsc_SnesMonitorSet",err,error,*999)
4947 CALL snesmonitorset(snes%snes,mfunction,ctx,petsc_null_function,err)
4952 CALL flagerror(
"PETSc error in SNESMonitorSet.",err,error,*999)
4955 exits(
"Petsc_SnesMonitorSet")
4957 999 errorsexits(
"Petsc_SnesMonitorSet",err,error)
4971 snesqnrestarttype,
INTENT(IN) :: rtype
4972 INTEGER(INTG),
INTENT(OUT) :: err
4976 enters(
"Petsc_SnesQNSetRestartType",err,error,*999)
4978 CALL snesqnsetrestarttype(snes%snes,rtype,err)
4983 CALL flagerror(
"PETSc error in SNESQNSetRestartType.",err,error,*999)
4986 exits(
"Petsc_SnesQNSetRestartType")
4988 999 errorsexits(
"Petsc_SnesQNSetRestartType",err,error)
5002 snesqnscaletype,
INTENT(IN) :: stype
5003 INTEGER(INTG),
INTENT(OUT) :: err
5007 enters(
"Petsc_SnesQNSetScaleType",err,error,*999)
5009 CALL snesqnsetscaletype(snes%snes,stype,err)
5014 CALL flagerror(
"PETSc error in SNESQNSetScaleType.",err,error,*999)
5017 exits(
"Petsc_SnesQNSetScaleType")
5019 999 errorsexits(
"Petsc_SnesQNSetScaleType",err,error)
5033 snesqntype,
INTENT(IN) :: qtype
5034 INTEGER(INTG),
INTENT(OUT) :: err
5038 enters(
"Petsc_SnesQNSetType",err,error,*999)
5040 CALL snesqnsettype(snes%snes,qtype,err)
5045 CALL flagerror(
"PETSc error in SNESQNSetType.",err,error,*999)
5048 exits(
"Petsc_SnesQNSetType")
5050 999 errorsexits(
"Petsc_SnesQNSetType",err,error)
5065 INTEGER(INTG),
INTENT(OUT) :: err
5069 enters(
"Petsc_SnesSetApplicationContext",err,error,*999)
5071 CALL snessetapplicationcontext(snes%snes,ctx,err)
5076 CALL flagerror(
"PETSc error in SNESSetApplicationContext.",err,error,*999)
5079 exits(
"Petsc_SnesSetApplicationContext")
5081 999 errorsexits(
"Petsc_SnesSetApplicationContext",err,error)
5096 INTEGER(INTG),
INTENT(OUT) :: err
5100 enters(
"Petsc_SnesSetConvergenceTest",err,error,*999)
5102 CALL snessetconvergencetest(snes%snes,cfunction,ctx,petsc_null_function,err)
5107 CALL flagerror(
"PETSc error in SNESSetConvergenceTest.",err,error,*999)
5110 exits(
"Petsc_SnesSetConvergenceTest")
5112 999 errorsexits(
"Petsc_SnesSetConvergenceTest",err,error)
5126 INTEGER(INTG),
INTENT(OUT) :: err
5130 enters(
"Petsc_SnesSetFromOptions",err,error,*999)
5132 CALL snessetfromoptions(snes%snes,err)
5137 CALL flagerror(
"PETSc error in SNESSetFromOptions.",err,error,*999)
5140 exits(
"Petsc_SnesSetFromOptions")
5142 999 errorsexits(
"Petsc_SnesSetFromOptions",err,error)
5159 INTEGER(INTG),
INTENT(OUT) :: err
5163 enters(
"Petsc_SnesSetFunction",err,error,*999)
5165 CALL snessetfunction(snes%snes,f%vec,ffunction,ctx,err)
5170 CALL flagerror(
"PETSc error in SNESSetFunction.",err,error,*999)
5173 exits(
"Petsc_SnesSetFunction")
5175 999 errorsexits(
"Petsc_SnesSetFunction",err,error)
5193 INTEGER(INTG),
INTENT(OUT) :: err
5197 enters(
"Petsc_SnesSetJacobianMatFDColoring",err,error,*999)
5204 CALL flagerror(
"PETSc error in SNESSetJacobian.",err,error,*999)
5207 exits(
"Petsc_SnesSetJacobianMatFDColoring")
5209 999 errorsexits(
"Petsc_SnesSetJacobianMatFDColoring",err,error)
5227 INTEGER(INTG),
INTENT(OUT) :: err
5231 enters(
"Petsc_SnesSetJacobianSolver",err,error,*999)
5233 CALL snessetjacobian(snes%snes,a%mat,b%mat,jfunction,ctx,err)
5238 CALL flagerror(
"PETSc error in SNESSetJacobian.",err,error,*999)
5241 exits(
"Petsc_SnesSetJacobianSolver")
5243 999 errorsexits(
"Petsc_SnesSetJacobianSolver",err,error)
5258 INTEGER(INTG),
INTENT(OUT) :: err
5262 enters(
"Petsc_SnesSetKsp",err,error,*999)
5264 CALL snessetksp(snes%snes,ksp%ksp,err)
5269 CALL flagerror(
"PETSc error in SNESSetKSP.",err,error,*999)
5272 exits(
"Petsc_SnesSetKsp")
5274 999 errorsexits(
"Petsc_SnesSetKsp",err,error)
5288 snesnormschedule,
INTENT(IN) :: normschedule
5289 INTEGER(INTG),
INTENT(OUT) :: err
5293 enters(
"Petsc_SnesSetNormSchedule",err,error,*999)
5295 CALL snessetnormschedule(snes%snes,normschedule,err)
5300 CALL flagerror(
"PETSc error in SNESSetNormSchedule.",err,error,*999)
5303 exits(
"Petsc_SnesSetNormSchedule")
5305 999 errorsexits(
"Petsc_SnesSetNormSchedule",err,error)
5319 REAL(DP),
INTENT(IN) :: absTol
5320 REAL(DP),
INTENT(IN) :: rTol
5321 REAL(DP),
INTENT(IN) :: sTol
5322 INTEGER(INTG),
INTENT(IN) :: maxIterations
5323 INTEGER(INTG),
INTENT(IN) :: maxFunctionEvals
5324 INTEGER(INTG),
INTENT(OUT) :: err
5328 enters(
"Petsc_SnesSetTolerances",err,error,*999)
5330 CALL snessettolerances(snes%snes,abstol,rtol,stol,maxiterations,maxfunctionevals,err)
5335 CALL flagerror(
"PETSc error in SNESSetTolerances.",err,error,*999)
5338 exits(
"Petsc_SnesSetTolerances")
5340 999 errorsexits(
"Petsc_SnesSetTolerances",err,error)
5354 REAL(DP),
INTENT(IN) :: trTol
5355 INTEGER(INTG),
INTENT(OUT) :: err
5359 enters(
"Petsc_SnesSetTrustRegionTolerance",err,error,*999)
5361 CALL snessettrustregiontolerance(snes%snes,trtol,err)
5366 CALL flagerror(
"PETSc error in SNESSetTrustRegionTolerance.",err,error,*999)
5369 exits(
"Petsc_SnesSetTrustRegionTolerance")
5371 999 errorsexits(
"Petsc_SnesSetTrustRegionTolerance",err,error)
5385 snestype,
INTENT(IN) :: method
5386 INTEGER(INTG),
INTENT(OUT) :: err
5390 enters(
"Petsc_SnesSetType",err,error,*999)
5392 CALL snessettype(snes%snes,method,err)
5397 CALL flagerror(
"PETSc error in SNESSetType.",err,error,*999)
5400 exits(
"Petsc_SnesSetType")
5402 999 errorsexits(
"Petsc_SnesSetType",err,error)
5418 INTEGER(INTG),
INTENT(OUT) :: err
5422 enters(
"Petsc_SnesSolve",err,error,*999)
5424 CALL snessolve(snes%snes,b%vec,x%vec,err)
5429 CALL flagerror(
"PETSc error in SNESSolve.",err,error,*999)
5432 exits(
"Petsc_SnesSolve")
5434 999 errorsexits(
"Petsc_SnesSolve",err,error)
5448 INTEGER(INTG),
INTENT(OUT) :: err
5451 enters(
"Petsc_SnesLineSearchFinalise",err,error,*999)
5455 linesearch%snesLineSearch=petsc_null_object
5457 exits(
"Petsc_SnesLineSearchFinalise")
5459 999 errorsexits(
"Petsc_SnesLineSearchFinalise",err,error)
5473 INTEGER(INTG),
INTENT(OUT) :: err
5477 enters(
"Petsc_SnesLineSearchInitialise",err,error,*999)
5478 linesearch%snesLineSearch=petsc_null_object
5479 exits(
"Petsc_SnesLineSearchInitialise")
5482 999 errorsexits(
"Petsc_SnesLineSearchInitialise",err,error)
5495 REAL(DP),
INTENT(IN) :: alpha
5496 INTEGER(INTG),
INTENT(OUT) :: err
5499 enters(
"Petsc_SnesLineSearchBTSetAlpha",err,error,*999)
5501 CALL sneslinesearchbtsetalpha(linesearch%snesLineSearch,alpha,err)
5506 CALL flagerror(
"PETSc error in SNESLineSearchBTSetAlpha.",err,error,*999)
5509 exits(
"Petsc_SnesLineSearchBTSetAlpha")
5511 999 errorsexits(
"Petsc_SnesLineSearchBTSetAlpha",err,error)
5525 INTEGER(INTG),
INTENT(OUT) :: err
5529 enters(
"Petsc_SnesLineSearchComputeNorms",err,error,*999)
5531 CALL sneslinesearchcomputenorms(linesearch%snesLineSearch,err)
5536 CALL flagerror(
"PETSc error in SnesLineSearchComputeNorms.",err,error,*999)
5539 exits(
"Petsc_SnesLineSearchComputeNorms")
5541 999 errorsexits(
"Petsc_SnesLineSearchComputeNorms",err,error)
5555 REAL(DP),
INTENT(INOUT) :: xNorm
5556 REAL(DP),
INTENT(INOUT) :: fNorm
5557 REAL(DP),
INTENT(INOUT) :: yNorm
5558 INTEGER(INTG),
INTENT(OUT) :: err
5562 enters(
"Petsc_SnesLineSearchGetNorms",err,error,*999)
5564 CALL sneslinesearchgetnorms(linesearch%snesLineSearch,xnorm,fnorm,ynorm,err)
5569 CALL flagerror(
"PETSc error in SnesLineSearchGetNorms.",err,error,*999)
5572 exits(
"Petsc_SnesLineSearchGetNorms")
5574 999 errorsexits(
"Petsc_SnesLineSearchGetNorms",err,error)
5593 INTEGER(INTG),
INTENT(OUT) :: err
5597 enters(
"Petsc_SnesLineSearchGetVecs",err,error,*999)
5599 CALL sneslinesearchgetvecs(linesearch%snesLineSearch,x%vec,f%vec,y%vec,w%vec,g%vec,err)
5604 CALL flagerror(
"PETSc error in SNESLineSearchGetVecs.",err,error,*999)
5607 exits(
"Petsc_SnesLineSearchGetVecs")
5609 999 errorsexits(
"Petsc_SnesLineSearchGetVecs",err,error)
5623 LOGICAL,
INTENT(IN) :: computeNorms
5624 INTEGER(INTG),
INTENT(OUT) :: err
5628 enters(
"Petsc_SnesLineSearchSetComputeNorms",err,error,*999)
5630 IF(computenorms)
THEN 5631 CALL sneslinesearchsetcomputenorms(linesearch%snesLineSearch,petsc_true,err)
5633 CALL sneslinesearchsetcomputenorms(linesearch%snesLineSearch,petsc_false,err)
5639 CALL flagerror(
"PETSc error in SNESLineSearchSetComputeNorms.",err,error,*999)
5642 exits(
"Petsc_SnesLineSearchSetComputeNorms")
5644 999 errorsexits(
"Petsc_SnesLineSearchSetComputeNorms",err,error)
5658 LOGICAL,
INTENT(IN) :: monitorLinesearch
5659 INTEGER(INTG),
INTENT(OUT) :: err
5663 enters(
"Petsc_SnesLineSearchSetMonitor",err,error,*999)
5665 IF(monitorlinesearch)
THEN 5666 CALL sneslinesearchsetmonitor(linesearch%snesLineSearch,petsc_true,err)
5668 CALL sneslinesearchsetmonitor(linesearch%snesLineSearch,petsc_false,err)
5674 CALL flagerror(
"PETSc error in SNESLineSearchSetMonitor.",err,error,*999)
5677 exits(
"Petsc_SnesLineSearchSetMonitor")
5679 999 errorsexits(
"Petsc_SnesLineSearchSetMonitor",err,error)
5693 REAL(DP),
INTENT(INOUT) :: xNorm
5694 REAL(DP),
INTENT(INOUT) :: fNorm
5695 REAL(DP),
INTENT(INOUT) :: yNorm
5696 INTEGER(INTG),
INTENT(OUT) :: err
5700 enters(
"Petsc_SnesLineSearchSetNorms",err,error,*999)
5702 CALL sneslinesearchsetnorms(snes%snes,xnorm,fnorm,ynorm,err)
5707 CALL flagerror(
"petsc error in SnesLineSearchSetNorms.",err,error,*999)
5710 exits(
"Petsc_SnesLineSearchSetNorms")
5712 999 errorsexits(
"Petsc_SnesLineSearchSetNorms",err,error)
5725 sneslinesearchorder,
INTENT(IN) :: linesearchorder
5726 INTEGER(INTG),
INTENT(OUT) :: err
5731 enters(
"Petsc_SnesLineSearchSetOrder",err,error,*999)
5733 SELECT CASE(linesearchorder)
5734 CASE(petsc_snes_linesearch_order_linear)
5735 CALL sneslinesearchsetorder(linesearch%snesLineSearch,snes_linesearch_order_linear,err)
5736 CASE(petsc_snes_linesearch_order_quadratic)
5737 CALL sneslinesearchsetorder(linesearch%snesLineSearch,snes_linesearch_order_quadratic,err)
5738 CASE(petsc_snes_linesearch_order_cubic)
5739 CALL sneslinesearchsetorder(linesearch%snesLineSearch,snes_linesearch_order_cubic,err)
5741 localerror=
"The specified line search order of "//
trim(
numbertovstring(linesearchorder,
"*",err,error))//
" is invalid." 5742 CALL flagerror(localerror,err,error,*999)
5748 CALL flagerror(
"PETSc error in SNESLineSearchSetOrder.",err,error,*999)
5751 exits(
"Petsc_SnesLineSearchSetOrder")
5753 999 errorsexits(
"Petsc_SnesLineSearchSetOrder",err,error)
5766 REAL(DP),
INTENT(IN) :: steptol
5767 REAL(DP),
INTENT(IN) :: maxstep
5768 REAL(DP),
INTENT(IN) :: rtol
5769 REAL(DP),
INTENT(IN) :: atol
5770 REAL(DP),
INTENT(IN) :: ltol
5771 INTEGER(INTG),
INTENT(IN) :: maxIt
5772 INTEGER(INTG),
INTENT(OUT) :: err
5775 enters(
"Petsc_SnesLineSearchSetTolerances",err,error,*999)
5777 CALL sneslinesearchsettolerances(linesearch%snesLineSearch,steptol,maxstep,rtol,atol,ltol,maxit,err)
5782 CALL flagerror(
"PETSc error in SNESLineSearchSetTolerances.",err,error,*999)
5785 exits(
"Petsc_SnesLineSearchSetTolerances")
5787 999 errorsexits(
"Petsc_SnesLineSearchSetTolerances",err,error)
5801 sneslinesearchtype,
INTENT(IN) :: linesearchtype
5802 INTEGER(INTG),
INTENT(OUT) :: err
5805 enters(
"Petsc_SnesLineSearchSetType",err,error,*999)
5807 CALL sneslinesearchsettype(linesearch%snesLineSearch,linesearchtype,err)
5812 CALL flagerror(
"PETSc error in SNESLineSearchSetType.",err,error,*999)
5815 exits(
"Petsc_SnesLineSearchSetType")
5817 999 errorsexits(
"Petsc_SnesLineSearchSetType",err,error)
5831 INTEGER(INTG),
INTENT(OUT) :: err
5835 enters(
"Petsc_TSFinalise",err,error,*999)
5837 IF(ts%ts/=petsc_null_object)
THEN 5841 exits(
"Petsc_TSFinalise")
5843 999 errorsexits(
"Petsc_TSFinalise",err,error)
5857 INTEGER(INTG),
INTENT(OUT) :: err
5861 enters(
"Petsc_TSInitialise",err,error,*999)
5863 ts%ts=petsc_null_object
5865 exits(
"Petsc_TSInitialise")
5867 999 errorsexits(
"Petsc_TSInitialise",err,error)
5880 mpi_comm,
INTENT(INOUT) :: communicator
5882 INTEGER(INTG),
INTENT(OUT) :: err
5886 enters(
"Petsc_TSCreate",err,error,*999)
5888 CALL tscreate(communicator,ts%ts,err)
5893 CALL flagerror(
"PETSc error in TSCreate.",err,error,*999)
5896 exits(
"Petsc_TSCreate")
5898 999 errorsexits(
"Petsc_TSCreate",err,error)
5911 INTEGER(INTG),
INTENT(OUT) :: err
5915 enters(
"Petsc_TSDestroy",err,error,*999)
5917 CALL tsdestroy(ts%ts,err)
5922 CALL flagerror(
"PETSc error in TSDestroy.",err,error,*999)
5924 ts%ts=petsc_null_object
5926 exits(
"Petsc_TSDestroy")
5928 999 errorsexits(
"Petsc_TSDestroy",err,error)
5942 INTEGER(INTG),
INTENT(OUT) :: err
5946 enters(
"Petsc_TSGetSolution",err,error,*999)
5948 CALL tsgetsolution(ts%ts,currentsolution%vec,err)
5953 CALL flagerror(
"PETSc error in TSGetSolution.",err,error,*999)
5956 exits(
"Petsc_TSGetSolution")
5958 999 errorsexits(
"Petsc_TSGetSolution",err,error)
5972 EXTERNAL :: mfunction
5974 INTEGER(INTG),
INTENT(OUT) :: err
5978 enters(
"Petsc_TSMonitorSet",err,error,*999)
5980 CALL tsmonitorset(ts%ts,mfunction,ctx,petsc_null_function,err)
5985 CALL flagerror(
"PETSc error in TSMonitorSet.",err,error,*999)
5988 exits(
"Petsc_TSMonitorSet")
5990 999 errorsexits(
"Petsc_TSMonitorSet",err,error)
6003 INTEGER(INTG),
INTENT(IN) :: maxSteps
6004 REAL(DP),
INTENT(IN) :: maxTime
6005 INTEGER(INTG),
INTENT(OUT) :: err
6009 enters(
"Petsc_TSSetDuration",err,error,*999)
6011 CALL tssetduration(ts%ts,maxsteps,maxtime,err)
6016 CALL flagerror(
"PETSc error in TSSetDuration.",err,error,*999)
6019 exits(
"Petsc_TSSetDuration")
6021 999 errorsexits(
"Petsc_TSSetDuration",err,error)
6034 LOGICAL,
INTENT(IN) :: exactFinalTime
6035 INTEGER(INTG),
INTENT(OUT) :: err
6039 enters(
"Petsc_TSSetExactFinalTime",err,error,*999)
6041 IF(exactfinaltime)
THEN 6042 CALL tssetexactfinaltime(ts%ts,petsc_true,err)
6044 CALL tssetexactfinaltime(ts%ts,petsc_false,err)
6051 CALL flagerror(
"PETSc error in TSSetExactFinalTime.",err,error,*999)
6054 exits(
"Petsc_TSSetExactFinalTime")
6056 999 errorsexits(
"Petsc_TSSetExactFinalTime",err,error)
6069 INTEGER(INTG),
INTENT(OUT) :: err
6073 enters(
"Petsc_TSSetFromOptions",err,error,*999)
6075 CALL tssetfromoptions(ts%ts,err)
6080 CALL flagerror(
"PETSc error in TSSetFromOptions.",err,error,*999)
6083 exits(
"Petsc_TSSetFromOptions")
6085 999 errorsexits(
"Petsc_TSSetFromOptions",err,error)
6098 REAL(DP),
INTENT(IN) :: initialTime
6099 REAL(DP),
INTENT(IN) :: timeStep
6100 INTEGER(INTG),
INTENT(OUT) :: err
6104 enters(
"Petsc_TSSetInitialTimeStep",err,error,*999)
6106 CALL tssetinitialtimestep(ts%ts,initialtime,timestep,err)
6111 CALL flagerror(
"PETSc error in TSSetInitialTimeStep.",err,error,*999)
6114 exits(
"Petsc_TSSetInitialTimeStep")
6116 999 errorsexits(
"Petsc_TSSetInitialTimeStep",err,error)
6129 INTEGER(INTG),
INTENT(IN) :: probType
6130 INTEGER(INTG),
INTENT(OUT) :: err
6134 enters(
"Petsc_TSSetProblemType",err,error,*999)
6136 CALL tssetproblemtype(ts%ts,probtype,err)
6141 CALL flagerror(
"PETSc error in TSSetProblemType.",err,error,*999)
6144 exits(
"Petsc_TSSetProblemType")
6146 999 errorsexits(
"Petsc_TSSetProblemType",err,error)
6160 EXTERNAL rhsfunction
6162 INTEGER(INTG),
INTENT(OUT) :: err
6166 enters(
"Petsc_TSSetRHSFunction",err,error,*999)
6168 CALL tssetrhsfunction(ts%ts,rates%vec,rhsfunction,ctx,err)
6173 CALL flagerror(
"PETSc error in TSSetRHSFunction.",err,error,*999)
6176 exits(
"Petsc_TSSetRHSFunction")
6178 999 errorsexits(
"Petsc_TSSetRHSFunction",err,error)
6192 INTEGER(INTG),
INTENT(OUT) :: err
6196 enters(
"Petsc_TSSetSolution",err,error,*999)
6198 CALL tssetsolution(ts%ts,initialsolution%vec,err)
6203 CALL flagerror(
"PETSc error in TSSetSolution.",err,error,*999)
6206 exits(
"Petsc_TSSetSolution")
6208 999 errorsexits(
"Petsc_TSSetSolution",err,error)
6221 REAL(DP),
INTENT(IN) :: timeStep
6222 INTEGER(INTG),
INTENT(OUT) :: err
6226 enters(
"Petsc_TSSetTimeStep",err,error,*999)
6228 CALL tssettimestep(ts%ts,timestep,err)
6233 CALL flagerror(
"PETSc error in TSSetTimeStep.",err,error,*999)
6236 exits(
"Petsc_TSSetTimeStep")
6238 999 errorsexits(
"Petsc_TSSetTimeStep",err,error)
6251 tstype,
INTENT(IN) :: method
6252 INTEGER(INTG),
INTENT(OUT) :: err
6256 enters(
"Petsc_TSSetType",err,error,*999)
6258 CALL tssettype(ts%ts,method,err)
6263 CALL flagerror(
"PETSc error in TSSetType.",err,error,*999)
6266 exits(
"Petsc_TSSetType")
6268 999 errorsexits(
"Petsc_TSSetType",err,error)
6282 REAL(DP),
INTENT(OUT) :: finalTime
6283 INTEGER(INTG),
INTENT(OUT) :: err
6287 enters(
"Petsc_TSSolve",err,error,*999)
6289 CALL tssolve(ts%ts,x%vec,finaltime,err)
6294 CALL flagerror(
"PETSc error in TSSolve.",err,error,*999)
6297 exits(
"Petsc_TSSolve")
6299 999 errorsexits(
"Petsc_TSSolve",err,error)
6312 INTEGER(INTG),
INTENT(IN) :: steps
6313 REAL(DP),
INTENT(IN) :: pTime
6314 INTEGER(INTG),
INTENT(OUT) :: err
6318 enters(
"Petsc_TSStep",err,error,*999)
6320 CALL tsstep(ts%ts,steps,ptime,err)
6325 CALL flagerror(
"PETSc error in TSStep.",err,error,*999)
6328 exits(
"Petsc_TSStep")
6330 999 errorsexits(
"Petsc_TSStep",err,error)
6343 tssundialstype,
INTENT(IN) :: sundialstype
6344 INTEGER(INTG),
INTENT(OUT) :: err
6348 enters(
"Petsc_TSSundialsSetType",err,error,*999)
6350 CALL tssundialssettype(ts%ts,sundialstype,err)
6355 CALL flagerror(
"PETSc error in TSSundialsSetType.",err,error,*999)
6358 exits(
"Petsc_TSSundialsSetType")
6360 999 errorsexits(
"Petsc_TSSundialsSetType",err,error)
6372 REAL(DP),
INTENT(IN) :: absTol
6373 REAL(DP),
INTENT(IN) :: relTol
6374 INTEGER(INTG),
INTENT(OUT) :: err
6378 enters(
"Petsc_TSSundialsSetTolerance",err,error,*999)
6380 CALL tssundialssettolerance(ts%ts,abstol,reltol,err)
6385 CALL flagerror(
"PETSc error in TSSundialsSetTolerance.",err,error,*999)
6388 exits(
"Petsc_TSSundialsSetTolerance")
6390 999 errorsexits(
"Petsc_TSSundialsSetTolerance",err,error)
6403 INTEGER(INTG),
INTENT(OUT) :: err
6407 enters(
"Petsc_VecFinalise",err,error,*999)
6409 IF(x%vec/=petsc_null_object)
THEN 6413 exits(
"Petsc_VecFinalise")
6415 999 errorsexits(
"Petsc_VecFinalise",err,error)