18
18
<a name="line8"> 8: </a><font color="#B22222">T*/</font>
19
19
<a name="line9"> 9: </a>
20
20
<a name="line10"> 10: </a> #include <A href="../../../../include/petsc.h.html">petsc.h</A>
21
<a name="line11"> 11: </a><strong><font color="#4169E1"><a name="main"></a>int main(int argc,char **argv)</font></strong>
22
<a name="line12"> 12: </a>{
23
<a name="line13"> 13: </a> int ierr;
24
<a name="line14"> 14: </a> <A href="../../../../docs/manualpages/Sys/PetscTruth.html#PetscTruth">PetscTruth</A> flg;
25
<a name="line15"> 15: </a> char *string,filename[256];
26
<a name="line16"> 16: </a> void *handle;
28
<a name="line18"> 18: </a> <font color="#B22222">/*</font>
29
<a name="line19"> 19: </a><font color="#B22222"> Every PETSc routine should begin with the <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>() routine.</font>
30
<a name="line20"> 20: </a><font color="#B22222"> argc, argv - These command line arguments are taken to extract the options</font>
31
<a name="line21"> 21: </a><font color="#B22222"> supplied to PETSc and options supplied to MPI.</font>
32
<a name="line22"> 22: </a><font color="#B22222"> help - When PETSc executable is invoked with the option -help, </font>
33
<a name="line23"> 23: </a><font color="#B22222"> it prints the various options that can be applied at </font>
34
<a name="line24"> 24: </a><font color="#B22222"> runtime. The user can use the "help" variable place</font>
35
<a name="line25"> 25: </a><font color="#B22222"> additional help messages in this printout.</font>
36
<a name="line26"> 26: </a><font color="#B22222"> */</font>
37
<a name="line27"> 27: </a> <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>(&argc,&argv,(char *)0,help);
39
<a name="line29"> 29: </a> <A href="../../../../docs/manualpages/Sys/PetscOptionsGetString.html#PetscOptionsGetString">PetscOptionsGetString</A>(PETSC_NULL,<font color="#666666">"-library"</font>,filename,256,&flg);
40
<a name="line30"> 30: </a> <font color="#4169E1">if</font> (!flg) {
41
<a name="line31"> 31: </a> <A href="../../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(1,<font color="#666666">"Must indicate library name with -library"</font>);
42
<a name="line32"> 32: </a> }
44
<a name="line34"> 34: </a><font color="#A020F0">#if defined(USE_DYNAMIC_LIBRARIES)</font>
45
<a name="line35"> 35: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryOpen.html#PetscDLLibraryOpen">PetscDLLibraryOpen</A>(PETSC_COMM_WORLD,filename,&handle);
46
<a name="line36"> 36: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryGetInfo.html#PetscDLLibraryGetInfo">PetscDLLibraryGetInfo</A>(handle,<font color="#666666">"Contents"</font>,&string);
47
<a name="line37"> 37: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(PETSC_COMM_WORLD,<font color="#666666">"Contents:%sn"</font>,string);
48
<a name="line38"> 38: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryGetInfo.html#PetscDLLibraryGetInfo">PetscDLLibraryGetInfo</A>(handle,<font color="#666666">"Authors"</font>,&string);
49
<a name="line39"> 39: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(PETSC_COMM_WORLD,<font color="#666666">"Authors:%sn"</font>,string);
50
<a name="line40"> 40: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryGetInfo.html#PetscDLLibraryGetInfo">PetscDLLibraryGetInfo</A>(handle,<font color="#666666">"Version"</font>,&string);
51
<a name="line41"> 41: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(PETSC_COMM_WORLD,<font color="#666666">"Version:%sn"</font>,string);
52
<a name="line42"> 42: </a><font color="#A020F0">#else</font>
53
<a name="line43"> 43: </a> <font color="#B22222">/* just forces string and handle to be used so there are no compiler warnings */</font>
54
<a name="line44"> 44: </a> string = <font color="#666666">"No dynamic libraries used"</font>;
55
<a name="line45"> 45: </a> handle = (void*)string;
56
<a name="line46"> 46: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(PETSC_COMM_WORLD,<font color="#666666">"%sn"</font>,string);
57
<a name="line47"> 47: </a> <A href="../../../../docs/manualpages/Sys/PetscStrcmp.html#PetscStrcmp">PetscStrcmp</A>(string,<font color="#666666">"Never will happen"</font>,&flg);
58
<a name="line48"> 48: </a> <font color="#4169E1">if</font> (flg) {
59
<a name="line49"> 49: </a> <A href="../../../../docs/manualpages/Sys/PetscObjectDestroy.html#PetscObjectDestroy">PetscObjectDestroy</A>((<A href="../../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A>)handle);
60
<a name="line50"> 50: </a> }
61
<a name="line51"> 51: </a><font color="#A020F0">#endif</font>
63
<a name="line53"> 53: </a> <A href="../../../../docs/manualpages/Sys/PetscFinalize.html#PetscFinalize">PetscFinalize</A>();
64
<a name="line54"> 54: </a> <font color="#4169E1">return</font> 0;
65
<a name="line55"> 55: </a>}
21
<a name="line13"> 13: </a><strong><font color="#4169E1"><a name="main"></a>int main(int argc,char **argv)</font></strong>
22
<a name="line14"> 14: </a>{
23
<a name="line15"> 15: </a> int ierr;
24
<a name="line16"> 16: </a> <A href="../../../../docs/manualpages/Sys/PetscTruth.html#PetscTruth">PetscTruth</A> flg;
25
<a name="line17"> 17: </a> const char *string;
26
<a name="line18"> 18: </a> char filename[256];
27
<a name="line19"> 19: </a> void *handle;
29
<a name="line21"> 21: </a> <font color="#B22222">/*</font>
30
<a name="line22"> 22: </a><font color="#B22222"> Every PETSc routine should begin with the <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>() routine.</font>
31
<a name="line23"> 23: </a><font color="#B22222"> argc, argv - These command line arguments are taken to extract the options</font>
32
<a name="line24"> 24: </a><font color="#B22222"> supplied to PETSc and options supplied to MPI.</font>
33
<a name="line25"> 25: </a><font color="#B22222"> help - When PETSc executable is invoked with the option -help, </font>
34
<a name="line26"> 26: </a><font color="#B22222"> it prints the various options that can be applied at </font>
35
<a name="line27"> 27: </a><font color="#B22222"> runtime. The user can use the "help" variable place</font>
36
<a name="line28"> 28: </a><font color="#B22222"> additional help messages in this printout.</font>
37
<a name="line29"> 29: </a><font color="#B22222"> */</font>
38
<a name="line30"> 30: </a> <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>(&argc,&argv,(char *)0,help);
40
<a name="line32"> 32: </a> <A href="../../../../docs/manualpages/Sys/PetscOptionsGetString.html#PetscOptionsGetString">PetscOptionsGetString</A>(<A href="../../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>,<font color="#666666">"-library"</font>,filename,256,&flg);
41
<a name="line33"> 33: </a> <font color="#4169E1">if</font> (!flg) {
42
<a name="line34"> 34: </a> <A href="../../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(1,<font color="#666666">"Must indicate library name with -library"</font>);
43
<a name="line35"> 35: </a> }
45
<a name="line37"> 37: </a><font color="#A020F0">#if defined(USE_DYNAMIC_LIBRARIES)</font>
46
<a name="line38"> 38: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryOpen.html#PetscDLLibraryOpen">PetscDLLibraryOpen</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_WORLD.html#PETSC_COMM_WORLD">PETSC_COMM_WORLD</A>,filename,&handle);
47
<a name="line39"> 39: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryGetInfo.html#PetscDLLibraryGetInfo">PetscDLLibraryGetInfo</A>(handle,<font color="#666666">"Contents"</font>,&string);
48
<a name="line40"> 40: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_WORLD.html#PETSC_COMM_WORLD">PETSC_COMM_WORLD</A>,<font color="#666666">"Contents:%s\n"</font>,string);
49
<a name="line41"> 41: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryGetInfo.html#PetscDLLibraryGetInfo">PetscDLLibraryGetInfo</A>(handle,<font color="#666666">"Authors"</font>,&string);
50
<a name="line42"> 42: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_WORLD.html#PETSC_COMM_WORLD">PETSC_COMM_WORLD</A>,<font color="#666666">"Authors:%s\n"</font>,string);
51
<a name="line43"> 43: </a> <A href="../../../../docs/manualpages/Sys/PetscDLLibraryGetInfo.html#PetscDLLibraryGetInfo">PetscDLLibraryGetInfo</A>(handle,<font color="#666666">"Version"</font>,&string);
52
<a name="line44"> 44: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_WORLD.html#PETSC_COMM_WORLD">PETSC_COMM_WORLD</A>,<font color="#666666">"Version:%s\n"</font>,string);
53
<a name="line45"> 45: </a><font color="#A020F0">#else</font>
54
<a name="line46"> 46: </a> <font color="#B22222">/* just forces string and handle to be used so there are no compiler warnings */</font>
55
<a name="line47"> 47: </a> string = <font color="#666666">"No dynamic libraries used"</font>;
56
<a name="line48"> 48: </a> handle = (void*)string;
57
<a name="line49"> 49: </a> <A href="../../../../docs/manualpages/Sys/PetscPrintf.html#PetscPrintf">PetscPrintf</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_WORLD.html#PETSC_COMM_WORLD">PETSC_COMM_WORLD</A>,<font color="#666666">"%s\n"</font>,string);
58
<a name="line50"> 50: </a> <A href="../../../../docs/manualpages/Sys/PetscStrcmp.html#PetscStrcmp">PetscStrcmp</A>(string,<font color="#666666">"Never will happen"</font>,&flg);
59
<a name="line51"> 51: </a> <font color="#4169E1">if</font> (flg) {
60
<a name="line52"> 52: </a> <A href="../../../../docs/manualpages/Sys/PetscObjectDestroy.html#PetscObjectDestroy">PetscObjectDestroy</A>((<A href="../../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A>)handle);
61
<a name="line53"> 53: </a> }
62
<a name="line54"> 54: </a><font color="#A020F0">#endif</font>
64
<a name="line56"> 56: </a> <A href="../../../../docs/manualpages/Sys/PetscFinalize.html#PetscFinalize">PetscFinalize</A>();
65
<a name="line57"> 57: </a> <font color="#4169E1">return</font> 0;
66
<a name="line58"> 58: </a>}