~ubuntu-branches/ubuntu/warty/petsc/warty

« back to all changes in this revision

Viewing changes to src/sys/src/utils/select.c.html

  • Committer: Bazaar Package Importer
  • Author(s): Adam C. Powell, IV
  • Date: 2004-06-07 13:41:43 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040607134143-92p586zrauvie0le
Tags: 2.2.0-2
* Upstream patch level 2.
* New PETSC_BOPT_EXTRA option for different BOPT and lib names, with _c++
  symlinks only for plain and single (closes: #249617).
* New DEBIAN_DIST=contrib option to link with hypre, parmetis (closes:
  #249619).
* Combined petsc-c and petsc-fortran substvars into petsc-compilers.
* Extra quote in -dev prerm eliminates "too many arguments" problem.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<html>
4
4
<head>
5
5
<title></title>
6
 
<meta name="generator" content="c2html 0.9.1">
7
 
<meta name="date" content="2002-05-31T15:58:29+00:00">
 
6
<meta name="generator" content="c2html 0.9.4">
 
7
<meta name="date" content="2004-02-27T19:56:53+00:00">
8
8
</head>
9
9
 
10
10
<body bgcolor="#FFFFFF">
12
12
<a name="line2"> 2: </a> #include <A href="../../../../include/petsc.h.html">petsc.h</A>
13
13
<a name="line3"> 3: </a> #include <A href="../../../../include/petscsys.h.html">petscsys.h</A>
14
14
 
15
 
<a name="line5">  5: </a><font color="#B22222">/*@C</font>
16
 
<a name="line6">  6: </a><font color="#B22222">     <A href="../../../../docs/manualpages/Sys/PetscPopUpSelect.html#PetscPopUpSelect">PetscPopUpSelect</A> - Pops up a windows with a list of choices; allows one to be chosen</font>
17
 
 
18
 
<a name="line8">  8: </a><font color="#B22222">     Collective on MPI_Comm</font>
19
 
 
20
 
<a name="line10"> 10: </a><font color="#B22222">     Input Parameters:</font>
21
 
<a name="line11"> 11: </a><font color="#B22222">+    <A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A> - MPI communicator, all processors in communicator must call this but input </font>
22
 
<a name="line12"> 12: </a><font color="#B22222">            from first communicator is the only one that is used</font>
23
 
<a name="line13"> 13: </a><font color="#B22222">.    machine - location to run popup program or PETSC_NULL</font>
24
 
<a name="line14"> 14: </a><font color="#B22222">.    title - text to display above choices</font>
25
 
<a name="line15"> 15: </a><font color="#B22222">.    n - number of choices</font>
26
 
<a name="line16"> 16: </a><font color="#B22222">-    choices - array of strings</font>
27
 
 
28
 
<a name="line18"> 18: </a><font color="#B22222">     Output Parameter:</font>
29
 
<a name="line19"> 19: </a><font color="#B22222">.    choice - integer indicating which one was selected</font>
30
 
 
31
 
<a name="line21"> 21: </a><font color="#B22222">     Level: developer</font>
32
 
 
33
 
<a name="line23"> 23: </a><font color="#B22222">     Notes:</font>
34
 
<a name="line24"> 24: </a><font color="#B22222">       Uses DISPLAY variable or -display option to determine where it opens the window</font>
35
 
 
36
 
<a name="line26"> 26: </a><font color="#B22222">       Currently this uses a file ~username/.popuptmp to pass the value back from the </font>
37
 
<a name="line27"> 27: </a><font color="#B22222">       xterm; hence this program must share a common file system with the machine</font>
38
 
<a name="line28"> 28: </a><font color="#B22222">       parameter passed in below.</font>
39
 
 
40
 
<a name="line30"> 30: </a><font color="#B22222">   Concepts: popup</font>
41
 
<a name="line31"> 31: </a><font color="#B22222">   Concepts: user selection</font>
42
 
<a name="line32"> 32: </a><font color="#B22222">   Concepts: menu</font>
43
 
 
44
 
<a name="line34"> 34: </a><font color="#B22222">@*/</font>
45
 
<a name="line35"> 35: </a><strong><font color="#4169E1"><a name="PetscPopUpSelect"></a>int <A href="../../../../docs/manualpages/Sys/PetscPopUpSelect.html#PetscPopUpSelect">PetscPopUpSelect</A>(MPI_Comm <A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,char *machine,char *title,int n,char **choices,int *choice)</font></strong>
46
 
<a name="line36"> 36: </a>{
47
 
<a name="line37"> 37: </a>  int  i,ierr,<A href="../../../../docs/manualpages/Sys/rank.html#rank">rank</A>,rows = n + 2,cols,len;
48
 
<a name="line38"> 38: </a>  char buffer[2048],display[128],geometry[64];
49
 
<a name="line39"> 39: </a>  FILE *fp;
50
 
 
51
 
<a name="line42"> 42: </a>  <font color="#4169E1">if</font> (!title) <A href="../../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(1,<font color="#666666">"Must pass in a title line"</font>);
52
 
<a name="line43"> 43: </a>  <font color="#4169E1">if</font> (n &lt; 1) <A href="../../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(1,<font color="#666666">"Must pass in at least one selection"</font>);
53
 
<a name="line44"> 44: </a>  <font color="#4169E1">if</font> (n == 1) {*choice = 0; <font color="#4169E1">return</font>(0);}
54
 
 
55
 
<a name="line46"> 46: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrlen.html#PetscStrlen">PetscStrlen</A>(title,&amp;cols);
56
 
<a name="line47"> 47: </a>  <font color="#4169E1">for</font> (i=0; i&lt;n; i++) {
57
 
<a name="line48"> 48: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrlen.html#PetscStrlen">PetscStrlen</A>(choices[i],&amp;len);
58
 
<a name="line49"> 49: </a>    cols = PetscMax(cols,len);
59
 
<a name="line50"> 50: </a>  }
60
 
<a name="line51"> 51: </a>  cols += 4;
61
 
<a name="line52"> 52: </a>  sprintf(geometry,<font color="#666666">" -geometry %dx%d "</font>,cols,rows);
62
 
<a name="line53"> 53: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcpy.html#PetscStrcpy">PetscStrcpy</A>(buffer,<font color="#666666">"xterm -bw 100 -bd blue +sb -display "</font>);
63
 
<a name="line54"> 54: </a>  PetscGetDisplay(display,128);
64
 
<a name="line55"> 55: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,display);
65
 
<a name="line56"> 56: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,geometry);
66
 
<a name="line57"> 57: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">" -e ${PETSC_DIR}/bin/popup "</font>);
67
 
 
68
 
<a name="line59"> 59: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"""</font>);
69
 
<a name="line60"> 60: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,title);
70
 
<a name="line61"> 61: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"" "</font>);
71
 
<a name="line62"> 62: </a>  <font color="#4169E1">for</font> (i=0; i&lt;n; i++) {
72
 
<a name="line63"> 63: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"""</font>);
73
 
<a name="line64"> 64: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,choices[i]);
74
 
<a name="line65"> 65: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"" "</font>);
75
 
<a name="line66"> 66: </a>  }
76
 
<a name="line67"> 67: </a>  <A href="../../../../docs/manualpages/Sys/PetscPOpen.html#PetscPOpen">PetscPOpen</A>(<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,machine,buffer,<font color="#666666">"r"</font>,&amp;fp);
77
 
<a name="line68"> 68: </a>  PetscPClose(<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,fp);
78
 
 
79
 
<a name="line70"> 70: </a>  <A href="http://www.mcs.anl.gov/mpi/www/www3/MPI_Comm_rank.html#MPI_Comm_rank">MPI_Comm_rank</A>(<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,&amp;<A href="../../../../docs/manualpages/Sys/rank.html#rank">rank</A>);
80
 
<a name="line71"> 71: </a>  <font color="#4169E1">if</font> (!<A href="../../../../docs/manualpages/Sys/rank.html#rank">rank</A>) {
81
 
<a name="line72"> 72: </a>    FILE *fd;
82
 
 
83
 
<a name="line74"> 74: </a>    <A href="../../../../docs/manualpages/Sys/PetscFOpen.html#PetscFOpen">PetscFOpen</A>(PETSC_COMM_SELF,<font color="#666666">"${HOMEDIRECTORY}/.popuptmp"</font>,<font color="#666666">"r"</font>,&amp;fd);
84
 
<a name="line75"> 75: </a>    fscanf(fd,<font color="#666666">"%d"</font>,choice);
85
 
<a name="line76"> 76: </a>    *choice -= 1;
86
 
<a name="line77"> 77: </a>    <font color="#4169E1">if</font> (*choice &lt; 0 || *choice &gt; n-1) <A href="../../../../docs/manualpages/Sys/SETERRQ1.html#SETERRQ1">SETERRQ1</A>(1,<font color="#666666">"Selection %d out of range"</font>,*choice);
87
 
<a name="line78"> 78: </a>    <A href="../../../../docs/manualpages/Sys/PetscFClose.html#PetscFClose">PetscFClose</A>(PETSC_COMM_SELF,fd);
88
 
<a name="line79"> 79: </a>  }
89
 
<a name="line80"> 80: </a>  <A href="http://www.mcs.anl.gov/mpi/www/www3/MPI_Bcast.html#MPI_Bcast">MPI_Bcast</A>(choice,1,MPI_INT,0,<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>);
90
 
 
91
 
<a name="line82"> 82: </a>  <font color="#4169E1">return</font>(0);
92
 
<a name="line83"> 83: </a>}
 
15
<a name="line7">  7: </a><font color="#B22222">/*@C</font>
 
16
<a name="line8">  8: </a><font color="#B22222">     <A href="../../../../docs/manualpages/Sys/PetscPopUpSelect.html#PetscPopUpSelect">PetscPopUpSelect</A> - Pops up a windows with a list of choices; allows one to be chosen</font>
 
17
 
 
18
<a name="line10"> 10: </a><font color="#B22222">     Collective on <A href="../../../../docs/manualpages/Sys/MPI_Comm.html#MPI_Comm">MPI_Comm</A></font>
 
19
 
 
20
<a name="line12"> 12: </a><font color="#B22222">     Input Parameters:</font>
 
21
<a name="line13"> 13: </a><font color="#B22222">+    <A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A> - MPI communicator, all processors in communicator must call this but input </font>
 
22
<a name="line14"> 14: </a><font color="#B22222">            from first communicator is the only one that is used</font>
 
23
<a name="line15"> 15: </a><font color="#B22222">.    machine - location to run popup program or <A href="../../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A></font>
 
24
<a name="line16"> 16: </a><font color="#B22222">.    title - text to display above choices</font>
 
25
<a name="line17"> 17: </a><font color="#B22222">.    n - number of choices</font>
 
26
<a name="line18"> 18: </a><font color="#B22222">-    choices - array of strings</font>
 
27
 
 
28
<a name="line20"> 20: </a><font color="#B22222">     Output Parameter:</font>
 
29
<a name="line21"> 21: </a><font color="#B22222">.    choice - integer indicating which one was selected</font>
 
30
 
 
31
<a name="line23"> 23: </a><font color="#B22222">     Level: developer</font>
 
32
 
 
33
<a name="line25"> 25: </a><font color="#B22222">     Notes:</font>
 
34
<a name="line26"> 26: </a><font color="#B22222">       Uses DISPLAY variable or -display option to determine where it opens the window</font>
 
35
 
 
36
<a name="line28"> 28: </a><font color="#B22222">       Currently this uses a file ~username/.popuptmp to pass the value back from the </font>
 
37
<a name="line29"> 29: </a><font color="#B22222">       xterm; hence this program must share a common file system with the machine</font>
 
38
<a name="line30"> 30: </a><font color="#B22222">       parameter passed in below.</font>
 
39
 
 
40
<a name="line32"> 32: </a><font color="#B22222">   Concepts: popup</font>
 
41
<a name="line33"> 33: </a><font color="#B22222">   Concepts: user selection</font>
 
42
<a name="line34"> 34: </a><font color="#B22222">   Concepts: menu</font>
 
43
 
 
44
<a name="line36"> 36: </a><font color="#B22222">@*/</font>
 
45
<a name="line37"> 37: </a><strong><font color="#4169E1"><a name="PetscPopUpSelect"></a>int <A href="../../../../docs/manualpages/Sys/PetscPopUpSelect.html#PetscPopUpSelect">PetscPopUpSelect</A>(<A href="../../../../docs/manualpages/Sys/MPI_Comm.html#MPI_Comm">MPI_Comm</A> <A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,char *machine,char *title,int n,char **choices,int *choice)</font></strong>
 
46
<a name="line38"> 38: </a>{
 
47
<a name="line39"> 39: </a>  int  i,ierr,<A href="../../../../docs/manualpages/Sys/rank.html#rank">rank</A>,rows = n + 2,cols,len;
 
48
<a name="line40"> 40: </a>  char buffer[2048],display[128],geometry[64];
 
49
<a name="line41"> 41: </a>  FILE *fp;
 
50
 
 
51
<a name="line44"> 44: </a>  <font color="#4169E1">if</font> (!title) <A href="../../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(1,<font color="#666666">"Must pass in a title line"</font>);
 
52
<a name="line45"> 45: </a>  <font color="#4169E1">if</font> (n &lt; 1) <A href="../../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(1,<font color="#666666">"Must pass in at least one selection"</font>);
 
53
<a name="line46"> 46: </a>  <font color="#4169E1">if</font> (n == 1) {*choice = 0; <font color="#4169E1">return</font>(0);}
 
54
 
 
55
<a name="line48"> 48: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrlen.html#PetscStrlen">PetscStrlen</A>(title,&amp;cols);
 
56
<a name="line49"> 49: </a>  <font color="#4169E1">for</font> (i=0; i&lt;n; i++) {
 
57
<a name="line50"> 50: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrlen.html#PetscStrlen">PetscStrlen</A>(choices[i],&amp;len);
 
58
<a name="line51"> 51: </a>    cols = <A href="../../../../docs/manualpages/Sys/PetscMax.html#PetscMax">PetscMax</A>(cols,len);
 
59
<a name="line52"> 52: </a>  }
 
60
<a name="line53"> 53: </a>  cols += 4;
 
61
<a name="line54"> 54: </a>  sprintf(geometry,<font color="#666666">" -geometry %dx%d "</font>,cols,rows);
 
62
<a name="line55"> 55: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcpy.html#PetscStrcpy">PetscStrcpy</A>(buffer,<font color="#666666">"xterm -bw 100 -bd blue +sb -display "</font>);
 
63
<a name="line56"> 56: </a>  PetscGetDisplay(display,128);
 
64
<a name="line57"> 57: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,display);
 
65
<a name="line58"> 58: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,geometry);
 
66
<a name="line59"> 59: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">" -e ${PETSC_DIR}/bin/popup "</font>);
 
67
 
 
68
<a name="line61"> 61: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"\""</font>);
 
69
<a name="line62"> 62: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,title);
 
70
<a name="line63"> 63: </a>  <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"\" "</font>);
 
71
<a name="line64"> 64: </a>  <font color="#4169E1">for</font> (i=0; i&lt;n; i++) {
 
72
<a name="line65"> 65: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"\""</font>);
 
73
<a name="line66"> 66: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,choices[i]);
 
74
<a name="line67"> 67: </a>    <A href="../../../../docs/manualpages/Sys/PetscStrcat.html#PetscStrcat">PetscStrcat</A>(buffer,<font color="#666666">"\" "</font>);
 
75
<a name="line68"> 68: </a>  }
 
76
<a name="line69"> 69: </a>  <A href="../../../../docs/manualpages/Sys/PetscPOpen.html#PetscPOpen">PetscPOpen</A>(<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,machine,buffer,<font color="#666666">"r"</font>,&amp;fp);
 
77
<a name="line70"> 70: </a>  PetscPClose(<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,fp);
 
78
 
 
79
<a name="line72"> 72: </a>  <A href="http://www.mcs.anl.gov/mpi/www/www3/MPI_Comm_rank.html#MPI_Comm_rank">MPI_Comm_rank</A>(<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>,&amp;<A href="../../../../docs/manualpages/Sys/rank.html#rank">rank</A>);
 
80
<a name="line73"> 73: </a>  <font color="#4169E1">if</font> (!<A href="../../../../docs/manualpages/Sys/rank.html#rank">rank</A>) {
 
81
<a name="line74"> 74: </a>    FILE *fd;
 
82
 
 
83
<a name="line76"> 76: </a>    <A href="../../../../docs/manualpages/Sys/PetscFOpen.html#PetscFOpen">PetscFOpen</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_SELF.html#PETSC_COMM_SELF">PETSC_COMM_SELF</A>,<font color="#666666">"${HOMEDIRECTORY}/.popuptmp"</font>,<font color="#666666">"r"</font>,&amp;fd);
 
84
<a name="line77"> 77: </a>    fscanf(fd,<font color="#666666">"%d"</font>,choice);
 
85
<a name="line78"> 78: </a>    *choice -= 1;
 
86
<a name="line79"> 79: </a>    <font color="#4169E1">if</font> (*choice &lt; 0 || *choice &gt; n-1) <A href="../../../../docs/manualpages/Sys/SETERRQ1.html#SETERRQ1">SETERRQ1</A>(1,<font color="#666666">"Selection %d out of range"</font>,*choice);
 
87
<a name="line80"> 80: </a>    <A href="../../../../docs/manualpages/Sys/PetscFClose.html#PetscFClose">PetscFClose</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_SELF.html#PETSC_COMM_SELF">PETSC_COMM_SELF</A>,fd);
 
88
<a name="line81"> 81: </a>  }
 
89
<a name="line82"> 82: </a>  <A href="http://www.mcs.anl.gov/mpi/www/www3/MPI_Bcast.html#MPI_Bcast">MPI_Bcast</A>(choice,1,MPI_INT,0,<A href="../../../../docs/manualpages/Sys/comm.html#comm">comm</A>);
 
90
 
 
91
<a name="line84"> 84: </a>  <font color="#4169E1">return</font>(0);
 
92
<a name="line85"> 85: </a>}
93
93
 
94
94
</pre>
95
95
</body>