Actual source code: snesf.c
1: /* snes.c */
2: /* Fortran interface file */
4: /*
5: * This file was generated automatically by bfort from the C source
6: * file.
7: */
9: #ifdef PETSC_USE_POINTER_CONVERSION
10: #if defined(__cplusplus)
11: extern "C" {
12: #endif
13: extern void *PetscToPointer(void *);
14: extern int PetscFromPointer(void *);
15: extern void PetscRmPointer(void *);
16: #if defined(__cplusplus)
17: }
18: #endif
20: #else
22: #define PetscToPointer(a) (*(long *)(a))
23: #define PetscFromPointer(a) (long)(a)
24: #define PetscRmPointer(a)
25: #endif
27: #include "petscfix.h"
28: #include petscsnes.h
29: #ifdef MPI_BUILD_PROFILING
30: #ifdef PETSC_HAVE_FORTRAN_CAPS
31: #define snesaddoptionschecker_ PSNESADDOPTIONSCHECKER
32: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
33: #define snesaddoptionschecker_ psnesaddoptionschecker
34: #else
35: #define snesaddoptionschecker_ psnesaddoptionschecker_
36: #endif
37: #else
38: #ifdef PETSC_HAVE_FORTRAN_CAPS
39: #define snesaddoptionschecker_ SNESADDOPTIONSCHECKER
40: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
41: #define snesaddoptionschecker_ snesaddoptionschecker
42: #endif
43: #endif
45: #ifdef MPI_BUILD_PROFILING
46: #ifdef PETSC_HAVE_FORTRAN_CAPS
47: #define snessetfromoptions_ PSNESSETFROMOPTIONS
48: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
49: #define snessetfromoptions_ psnessetfromoptions
50: #else
51: #define snessetfromoptions_ psnessetfromoptions_
52: #endif
53: #else
54: #ifdef PETSC_HAVE_FORTRAN_CAPS
55: #define snessetfromoptions_ SNESSETFROMOPTIONS
56: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
57: #define snessetfromoptions_ snessetfromoptions
58: #endif
59: #endif
61: #ifdef MPI_BUILD_PROFILING
62: #ifdef PETSC_HAVE_FORTRAN_CAPS
63: #define snessetapplicationcontext_ PSNESSETAPPLICATIONCONTEXT
64: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
65: #define snessetapplicationcontext_ psnessetapplicationcontext
66: #else
67: #define snessetapplicationcontext_ psnessetapplicationcontext_
68: #endif
69: #else
70: #ifdef PETSC_HAVE_FORTRAN_CAPS
71: #define snessetapplicationcontext_ SNESSETAPPLICATIONCONTEXT
72: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
73: #define snessetapplicationcontext_ snessetapplicationcontext
74: #endif
75: #endif
77: #ifdef MPI_BUILD_PROFILING
78: #ifdef PETSC_HAVE_FORTRAN_CAPS
79: #define snesgetiterationnumber_ PSNESGETITERATIONNUMBER
80: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
81: #define snesgetiterationnumber_ psnesgetiterationnumber
82: #else
83: #define snesgetiterationnumber_ psnesgetiterationnumber_
84: #endif
85: #else
86: #ifdef PETSC_HAVE_FORTRAN_CAPS
87: #define snesgetiterationnumber_ SNESGETITERATIONNUMBER
88: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
89: #define snesgetiterationnumber_ snesgetiterationnumber
90: #endif
91: #endif
93: #ifdef MPI_BUILD_PROFILING
94: #ifdef PETSC_HAVE_FORTRAN_CAPS
95: #define snesgetfunctionnorm_ PSNESGETFUNCTIONNORM
96: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
97: #define snesgetfunctionnorm_ psnesgetfunctionnorm
98: #else
99: #define snesgetfunctionnorm_ psnesgetfunctionnorm_
100: #endif
101: #else
102: #ifdef PETSC_HAVE_FORTRAN_CAPS
103: #define snesgetfunctionnorm_ SNESGETFUNCTIONNORM
104: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
105: #define snesgetfunctionnorm_ snesgetfunctionnorm
106: #endif
107: #endif
109: #ifdef MPI_BUILD_PROFILING
110: #ifdef PETSC_HAVE_FORTRAN_CAPS
111: #define snesgetgradientnorm_ PSNESGETGRADIENTNORM
112: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
113: #define snesgetgradientnorm_ psnesgetgradientnorm
114: #else
115: #define snesgetgradientnorm_ psnesgetgradientnorm_
116: #endif
117: #else
118: #ifdef PETSC_HAVE_FORTRAN_CAPS
119: #define snesgetgradientnorm_ SNESGETGRADIENTNORM
120: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
121: #define snesgetgradientnorm_ snesgetgradientnorm
122: #endif
123: #endif
125: #ifdef MPI_BUILD_PROFILING
126: #ifdef PETSC_HAVE_FORTRAN_CAPS
127: #define snesgetnumberunsuccessfulsteps_ PSNESGETNUMBERUNSUCCESSFULSTEPS
128: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
129: #define snesgetnumberunsuccessfulsteps_ psnesgetnumberunsuccessfulsteps
130: #else
131: #define snesgetnumberunsuccessfulsteps_ psnesgetnumberunsuccessfulsteps_
132: #endif
133: #else
134: #ifdef PETSC_HAVE_FORTRAN_CAPS
135: #define snesgetnumberunsuccessfulsteps_ SNESGETNUMBERUNSUCCESSFULSTEPS
136: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
137: #define snesgetnumberunsuccessfulsteps_ snesgetnumberunsuccessfulsteps
138: #endif
139: #endif
141: #ifdef MPI_BUILD_PROFILING
142: #ifdef PETSC_HAVE_FORTRAN_CAPS
143: #define snessetmaximumunsuccessfulsteps_ PSNESSETMAXIMUMUNSUCCESSFULSTEPS
144: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
145: #define snessetmaximumunsuccessfulsteps_ psnessetmaximumunsuccessfulsteps
146: #else
147: #define snessetmaximumunsuccessfulsteps_ psnessetmaximumunsuccessfulsteps_
148: #endif
149: #else
150: #ifdef PETSC_HAVE_FORTRAN_CAPS
151: #define snessetmaximumunsuccessfulsteps_ SNESSETMAXIMUMUNSUCCESSFULSTEPS
152: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
153: #define snessetmaximumunsuccessfulsteps_ snessetmaximumunsuccessfulsteps
154: #endif
155: #endif
157: #ifdef MPI_BUILD_PROFILING
158: #ifdef PETSC_HAVE_FORTRAN_CAPS
159: #define snesgetmaximumunsuccessfulsteps_ PSNESGETMAXIMUMUNSUCCESSFULSTEPS
160: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
161: #define snesgetmaximumunsuccessfulsteps_ psnesgetmaximumunsuccessfulsteps
162: #else
163: #define snesgetmaximumunsuccessfulsteps_ psnesgetmaximumunsuccessfulsteps_
164: #endif
165: #else
166: #ifdef PETSC_HAVE_FORTRAN_CAPS
167: #define snesgetmaximumunsuccessfulsteps_ SNESGETMAXIMUMUNSUCCESSFULSTEPS
168: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
169: #define snesgetmaximumunsuccessfulsteps_ snesgetmaximumunsuccessfulsteps
170: #endif
171: #endif
173: #ifdef MPI_BUILD_PROFILING
174: #ifdef PETSC_HAVE_FORTRAN_CAPS
175: #define snesgetnumberlineariterations_ PSNESGETNUMBERLINEARITERATIONS
176: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
177: #define snesgetnumberlineariterations_ psnesgetnumberlineariterations
178: #else
179: #define snesgetnumberlineariterations_ psnesgetnumberlineariterations_
180: #endif
181: #else
182: #ifdef PETSC_HAVE_FORTRAN_CAPS
183: #define snesgetnumberlineariterations_ SNESGETNUMBERLINEARITERATIONS
184: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
185: #define snesgetnumberlineariterations_ snesgetnumberlineariterations
186: #endif
187: #endif
189: #ifdef MPI_BUILD_PROFILING
190: #ifdef PETSC_HAVE_FORTRAN_CAPS
191: #define snescomputefunction_ PSNESCOMPUTEFUNCTION
192: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
193: #define snescomputefunction_ psnescomputefunction
194: #else
195: #define snescomputefunction_ psnescomputefunction_
196: #endif
197: #else
198: #ifdef PETSC_HAVE_FORTRAN_CAPS
199: #define snescomputefunction_ SNESCOMPUTEFUNCTION
200: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
201: #define snescomputefunction_ snescomputefunction
202: #endif
203: #endif
205: #ifdef MPI_BUILD_PROFILING
206: #ifdef PETSC_HAVE_FORTRAN_CAPS
207: #define snescomputeminimizationfunction_ PSNESCOMPUTEMINIMIZATIONFUNCTION
208: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
209: #define snescomputeminimizationfunction_ psnescomputeminimizationfunction
210: #else
211: #define snescomputeminimizationfunction_ psnescomputeminimizationfunction_
212: #endif
213: #else
214: #ifdef PETSC_HAVE_FORTRAN_CAPS
215: #define snescomputeminimizationfunction_ SNESCOMPUTEMINIMIZATIONFUNCTION
216: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
217: #define snescomputeminimizationfunction_ snescomputeminimizationfunction
218: #endif
219: #endif
221: #ifdef MPI_BUILD_PROFILING
222: #ifdef PETSC_HAVE_FORTRAN_CAPS
223: #define snescomputegradient_ PSNESCOMPUTEGRADIENT
224: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
225: #define snescomputegradient_ psnescomputegradient
226: #else
227: #define snescomputegradient_ psnescomputegradient_
228: #endif
229: #else
230: #ifdef PETSC_HAVE_FORTRAN_CAPS
231: #define snescomputegradient_ SNESCOMPUTEGRADIENT
232: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
233: #define snescomputegradient_ snescomputegradient
234: #endif
235: #endif
237: #ifdef MPI_BUILD_PROFILING
238: #ifdef PETSC_HAVE_FORTRAN_CAPS
239: #define snescomputejacobian_ PSNESCOMPUTEJACOBIAN
240: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
241: #define snescomputejacobian_ psnescomputejacobian
242: #else
243: #define snescomputejacobian_ psnescomputejacobian_
244: #endif
245: #else
246: #ifdef PETSC_HAVE_FORTRAN_CAPS
247: #define snescomputejacobian_ SNESCOMPUTEJACOBIAN
248: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
249: #define snescomputejacobian_ snescomputejacobian
250: #endif
251: #endif
253: #ifdef MPI_BUILD_PROFILING
254: #ifdef PETSC_HAVE_FORTRAN_CAPS
255: #define snescomputehessian_ PSNESCOMPUTEHESSIAN
256: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
257: #define snescomputehessian_ psnescomputehessian
258: #else
259: #define snescomputehessian_ psnescomputehessian_
260: #endif
261: #else
262: #ifdef PETSC_HAVE_FORTRAN_CAPS
263: #define snescomputehessian_ SNESCOMPUTEHESSIAN
264: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
265: #define snescomputehessian_ snescomputehessian
266: #endif
267: #endif
269: #ifdef MPI_BUILD_PROFILING
270: #ifdef PETSC_HAVE_FORTRAN_CAPS
271: #define snesgethessian_ PSNESGETHESSIAN
272: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
273: #define snesgethessian_ psnesgethessian
274: #else
275: #define snesgethessian_ psnesgethessian_
276: #endif
277: #else
278: #ifdef PETSC_HAVE_FORTRAN_CAPS
279: #define snesgethessian_ SNESGETHESSIAN
280: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
281: #define snesgethessian_ snesgethessian
282: #endif
283: #endif
285: #ifdef MPI_BUILD_PROFILING
286: #ifdef PETSC_HAVE_FORTRAN_CAPS
287: #define snessetup_ PSNESSETUP
288: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
289: #define snessetup_ psnessetup
290: #else
291: #define snessetup_ psnessetup_
292: #endif
293: #else
294: #ifdef PETSC_HAVE_FORTRAN_CAPS
295: #define snessetup_ SNESSETUP
296: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
297: #define snessetup_ snessetup
298: #endif
299: #endif
301: #ifdef MPI_BUILD_PROFILING
302: #ifdef PETSC_HAVE_FORTRAN_CAPS
303: #define snessettolerances_ PSNESSETTOLERANCES
304: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
305: #define snessettolerances_ psnessettolerances
306: #else
307: #define snessettolerances_ psnessettolerances_
308: #endif
309: #else
310: #ifdef PETSC_HAVE_FORTRAN_CAPS
311: #define snessettolerances_ SNESSETTOLERANCES
312: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
313: #define snessettolerances_ snessettolerances
314: #endif
315: #endif
317: #ifdef MPI_BUILD_PROFILING
318: #ifdef PETSC_HAVE_FORTRAN_CAPS
319: #define snesgettolerances_ PSNESGETTOLERANCES
320: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
321: #define snesgettolerances_ psnesgettolerances
322: #else
323: #define snesgettolerances_ psnesgettolerances_
324: #endif
325: #else
326: #ifdef PETSC_HAVE_FORTRAN_CAPS
327: #define snesgettolerances_ SNESGETTOLERANCES
328: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
329: #define snesgettolerances_ snesgettolerances
330: #endif
331: #endif
333: #ifdef MPI_BUILD_PROFILING
334: #ifdef PETSC_HAVE_FORTRAN_CAPS
335: #define snessettrustregiontolerance_ PSNESSETTRUSTREGIONTOLERANCE
336: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
337: #define snessettrustregiontolerance_ psnessettrustregiontolerance
338: #else
339: #define snessettrustregiontolerance_ psnessettrustregiontolerance_
340: #endif
341: #else
342: #ifdef PETSC_HAVE_FORTRAN_CAPS
343: #define snessettrustregiontolerance_ SNESSETTRUSTREGIONTOLERANCE
344: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
345: #define snessettrustregiontolerance_ snessettrustregiontolerance
346: #endif
347: #endif
349: #ifdef MPI_BUILD_PROFILING
350: #ifdef PETSC_HAVE_FORTRAN_CAPS
351: #define snessetminimizationfunctiontolerance_ PSNESSETMINIMIZATIONFUNCTIONTOLERANCE
352: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
353: #define snessetminimizationfunctiontolerance_ psnessetminimizationfunctiontolerance
354: #else
355: #define snessetminimizationfunctiontolerance_ psnessetminimizationfunctiontolerance_
356: #endif
357: #else
358: #ifdef PETSC_HAVE_FORTRAN_CAPS
359: #define snessetminimizationfunctiontolerance_ SNESSETMINIMIZATIONFUNCTIONTOLERANCE
360: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
361: #define snessetminimizationfunctiontolerance_ snessetminimizationfunctiontolerance
362: #endif
363: #endif
365: #ifdef MPI_BUILD_PROFILING
366: #ifdef PETSC_HAVE_FORTRAN_CAPS
367: #define snessetconvergencehistory_ PSNESSETCONVERGENCEHISTORY
368: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
369: #define snessetconvergencehistory_ psnessetconvergencehistory
370: #else
371: #define snessetconvergencehistory_ psnessetconvergencehistory_
372: #endif
373: #else
374: #ifdef PETSC_HAVE_FORTRAN_CAPS
375: #define snessetconvergencehistory_ SNESSETCONVERGENCEHISTORY
376: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
377: #define snessetconvergencehistory_ snessetconvergencehistory
378: #endif
379: #endif
381: #ifdef MPI_BUILD_PROFILING
382: #ifdef PETSC_HAVE_FORTRAN_CAPS
383: #define snessetrhsbc_ PSNESSETRHSBC
384: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
385: #define snessetrhsbc_ psnessetrhsbc
386: #else
387: #define snessetrhsbc_ psnessetrhsbc_
388: #endif
389: #else
390: #ifdef PETSC_HAVE_FORTRAN_CAPS
391: #define snessetrhsbc_ SNESSETRHSBC
392: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
393: #define snessetrhsbc_ snessetrhsbc
394: #endif
395: #endif
397: #ifdef MPI_BUILD_PROFILING
398: #ifdef PETSC_HAVE_FORTRAN_CAPS
399: #define snesdefaultrhsbc_ PSNESDEFAULTRHSBC
400: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
401: #define snesdefaultrhsbc_ psnesdefaultrhsbc
402: #else
403: #define snesdefaultrhsbc_ psnesdefaultrhsbc_
404: #endif
405: #else
406: #ifdef PETSC_HAVE_FORTRAN_CAPS
407: #define snesdefaultrhsbc_ SNESDEFAULTRHSBC
408: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
409: #define snesdefaultrhsbc_ snesdefaultrhsbc
410: #endif
411: #endif
413: #ifdef MPI_BUILD_PROFILING
414: #ifdef PETSC_HAVE_FORTRAN_CAPS
415: #define snessetsolutionbc_ PSNESSETSOLUTIONBC
416: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
417: #define snessetsolutionbc_ psnessetsolutionbc
418: #else
419: #define snessetsolutionbc_ psnessetsolutionbc_
420: #endif
421: #else
422: #ifdef PETSC_HAVE_FORTRAN_CAPS
423: #define snessetsolutionbc_ SNESSETSOLUTIONBC
424: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
425: #define snessetsolutionbc_ snessetsolutionbc
426: #endif
427: #endif
429: #ifdef MPI_BUILD_PROFILING
430: #ifdef PETSC_HAVE_FORTRAN_CAPS
431: #define snesdefaultsolutionbc_ PSNESDEFAULTSOLUTIONBC
432: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
433: #define snesdefaultsolutionbc_ psnesdefaultsolutionbc
434: #else
435: #define snesdefaultsolutionbc_ psnesdefaultsolutionbc_
436: #endif
437: #else
438: #ifdef PETSC_HAVE_FORTRAN_CAPS
439: #define snesdefaultsolutionbc_ SNESDEFAULTSOLUTIONBC
440: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
441: #define snesdefaultsolutionbc_ snesdefaultsolutionbc
442: #endif
443: #endif
445: #ifdef MPI_BUILD_PROFILING
446: #ifdef PETSC_HAVE_FORTRAN_CAPS
447: #define snessetupdate_ PSNESSETUPDATE
448: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
449: #define snessetupdate_ psnessetupdate
450: #else
451: #define snessetupdate_ psnessetupdate_
452: #endif
453: #else
454: #ifdef PETSC_HAVE_FORTRAN_CAPS
455: #define snessetupdate_ SNESSETUPDATE
456: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
457: #define snessetupdate_ snessetupdate
458: #endif
459: #endif
461: #ifdef MPI_BUILD_PROFILING
462: #ifdef PETSC_HAVE_FORTRAN_CAPS
463: #define snesdefaultupdate_ PSNESDEFAULTUPDATE
464: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
465: #define snesdefaultupdate_ psnesdefaultupdate
466: #else
467: #define snesdefaultupdate_ psnesdefaultupdate_
468: #endif
469: #else
470: #ifdef PETSC_HAVE_FORTRAN_CAPS
471: #define snesdefaultupdate_ SNESDEFAULTUPDATE
472: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
473: #define snesdefaultupdate_ snesdefaultupdate
474: #endif
475: #endif
477: #ifdef MPI_BUILD_PROFILING
478: #ifdef PETSC_HAVE_FORTRAN_CAPS
479: #define snessolve_ PSNESSOLVE
480: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
481: #define snessolve_ psnessolve
482: #else
483: #define snessolve_ psnessolve_
484: #endif
485: #else
486: #ifdef PETSC_HAVE_FORTRAN_CAPS
487: #define snessolve_ SNESSOLVE
488: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
489: #define snessolve_ snessolve
490: #endif
491: #endif
495: /* Definitions of Fortran Wrapper routines */
496: #if defined(__cplusplus)
497: extern "C" {
498: #endif
499: void PETSC_STDCALL snesaddoptionschecker_(int (*snescheck)(SNES), int *ierr ){
500: *SNESAddOptionsChecker(snescheck);
501: }
502: void PETSC_STDCALL snessetfromoptions_(SNES snes, int *ierr ){
503: *SNESSetFromOptions(
504: (SNES)PetscToPointer( (snes) ));
505: }
506: void PETSC_STDCALL snessetapplicationcontext_(SNES snes,void*usrP, int *ierr ){
507: *SNESSetApplicationContext(
508: (SNES)PetscToPointer( (snes) ),usrP);
509: }
510: void PETSC_STDCALL snesgetiterationnumber_(SNES snes,int* iter, int *ierr ){
511: *SNESGetIterationNumber(
512: (SNES)PetscToPointer( (snes) ),iter);
513: }
514: void PETSC_STDCALL snesgetfunctionnorm_(SNES snes,PetscScalar *fnorm, int *ierr ){
515: *SNESGetFunctionNorm(
516: (SNES)PetscToPointer( (snes) ),fnorm);
517: }
518: void PETSC_STDCALL snesgetgradientnorm_(SNES snes,PetscScalar *gnorm, int *ierr ){
519: *SNESGetGradientNorm(
520: (SNES)PetscToPointer( (snes) ),gnorm);
521: }
522: void PETSC_STDCALL snesgetnumberunsuccessfulsteps_(SNES snes,int* nfails, int *ierr ){
523: *SNESGetNumberUnsuccessfulSteps(
524: (SNES)PetscToPointer( (snes) ),nfails);
525: }
526: void PETSC_STDCALL snessetmaximumunsuccessfulsteps_(SNES snes,int *maxFails, int *ierr ){
527: *SNESSetMaximumUnsuccessfulSteps(
528: (SNES)PetscToPointer( (snes) ),*maxFails);
529: }
530: void PETSC_STDCALL snesgetmaximumunsuccessfulsteps_(SNES snes,int *maxFails, int *ierr ){
531: *SNESGetMaximumUnsuccessfulSteps(
532: (SNES)PetscToPointer( (snes) ),maxFails);
533: }
534: void PETSC_STDCALL snesgetnumberlineariterations_(SNES snes,int* lits, int *ierr ){
535: *SNESGetNumberLinearIterations(
536: (SNES)PetscToPointer( (snes) ),lits);
537: }
538: void PETSC_STDCALL snescomputefunction_(SNES snes,Vec x,Vec y, int *ierr ){
539: *SNESComputeFunction(
540: (SNES)PetscToPointer( (snes) ),
541: (Vec)PetscToPointer( (x) ),
542: (Vec)PetscToPointer( (y) ));
543: }
544: void PETSC_STDCALL snescomputeminimizationfunction_(SNES snes,Vec x,PetscReal *y, int *ierr ){
545: *SNESComputeMinimizationFunction(
546: (SNES)PetscToPointer( (snes) ),
547: (Vec)PetscToPointer( (x) ),y);
548: }
549: void PETSC_STDCALL snescomputegradient_(SNES snes,Vec x,Vec y, int *ierr ){
550: *SNESComputeGradient(
551: (SNES)PetscToPointer( (snes) ),
552: (Vec)PetscToPointer( (x) ),
553: (Vec)PetscToPointer( (y) ));
554: }
555: void PETSC_STDCALL snescomputejacobian_(SNES snes,Vec X,Mat *A,Mat *B,MatStructure *flg, int *ierr ){
556: *SNESComputeJacobian(
557: (SNES)PetscToPointer( (snes) ),
558: (Vec)PetscToPointer( (X) ),A,B,
559: (MatStructure* )PetscToPointer( (flg) ));
560: }
561: void PETSC_STDCALL snescomputehessian_(SNES snes,Vec x,Mat *A,Mat *B,MatStructure *flag, int *ierr ){
562: *SNESComputeHessian(
563: (SNES)PetscToPointer( (snes) ),
564: (Vec)PetscToPointer( (x) ),A,B,
565: (MatStructure* )PetscToPointer( (flag) ));
566: }
567: void PETSC_STDCALL snesgethessian_(SNES snes,Mat *A,Mat *B,void**ctx, int *ierr ){
568: *SNESGetHessian(
569: (SNES)PetscToPointer( (snes) ),A,B,ctx);
570: }
571: void PETSC_STDCALL snessetup_(SNES snes,Vec x, int *ierr ){
572: *SNESSetUp(
573: (SNES)PetscToPointer( (snes) ),
574: (Vec)PetscToPointer( (x) ));
575: }
576: void PETSC_STDCALL snessettolerances_(SNES snes,PetscReal *atol,PetscReal *rtol,PetscReal *stol,int *maxit,int *maxf, int *ierr ){
577: *SNESSetTolerances(
578: (SNES)PetscToPointer( (snes) ),*atol,*rtol,*stol,*maxit,*maxf);
579: }
580: void PETSC_STDCALL snesgettolerances_(SNES snes,PetscReal *atol,PetscReal *rtol,PetscReal *stol,int *maxit,int *maxf, int *ierr ){
581: *SNESGetTolerances(
582: (SNES)PetscToPointer( (snes) ),atol,rtol,stol,maxit,maxf);
583: }
584: void PETSC_STDCALL snessettrustregiontolerance_(SNES snes,PetscReal *tol, int *ierr ){
585: *SNESSetTrustRegionTolerance(
586: (SNES)PetscToPointer( (snes) ),*tol);
587: }
588: void PETSC_STDCALL snessetminimizationfunctiontolerance_(SNES snes,PetscReal *ftol, int *ierr ){
589: *SNESSetMinimizationFunctionTolerance(
590: (SNES)PetscToPointer( (snes) ),*ftol);
591: }
592: void PETSC_STDCALL snessetconvergencehistory_(SNES snes,PetscReal *a,int *its,int *na,PetscTruth *reset, int *ierr ){
593: *SNESSetConvergenceHistory(
594: (SNES)PetscToPointer( (snes) ),a,its,*na,*reset);
595: }
596: void PETSC_STDCALL snessetrhsbc_(SNES snes,int (*func)(SNES, Vec, void *), int *ierr ){
597: *SNESSetRhsBC(
598: (SNES)PetscToPointer( (snes) ),func);
599: }
600: void PETSC_STDCALL snesdefaultrhsbc_(SNES snes,Vec rhs,void*ctx, int *ierr ){
601: *SNESDefaultRhsBC(
602: (SNES)PetscToPointer( (snes) ),
603: (Vec)PetscToPointer( (rhs) ),ctx);
604: }
605: void PETSC_STDCALL snessetsolutionbc_(SNES snes,int (*func)(SNES, Vec, void *), int *ierr ){
606: *SNESSetSolutionBC(
607: (SNES)PetscToPointer( (snes) ),func);
608: }
609: void PETSC_STDCALL snesdefaultsolutionbc_(SNES snes,Vec sol,void*ctx, int *ierr ){
610: *SNESDefaultSolutionBC(
611: (SNES)PetscToPointer( (snes) ),
612: (Vec)PetscToPointer( (sol) ),ctx);
613: }
614: void PETSC_STDCALL snessetupdate_(SNES snes,int (*func)(SNES, int), int *ierr ){
615: *SNESSetUpdate(
616: (SNES)PetscToPointer( (snes) ),func);
617: }
618: void PETSC_STDCALL snesdefaultupdate_(SNES snes,int *step, int *ierr ){
619: *SNESDefaultUpdate(
620: (SNES)PetscToPointer( (snes) ),*step);
621: }
622: void PETSC_STDCALL snessolve_(SNES snes,Vec x,int *its, int *ierr ){
623: *SNESSolve(
624: (SNES)PetscToPointer( (snes) ),
625: (Vec)PetscToPointer( (x) ),its);
626: }
627: #if defined(__cplusplus)
628: }
629: #endif