Alan: Thanks for such a complete report.
I guess there are too many tricks to make plreplot work from Fortran...tricks that will eventually trip somebody over at some point; not to mention that, like I said before, I am going multi-platform...Solaris, Linux, Windows...so the xwin thing may not fly to good there. Also, I mentioned earlier that we couldn't make the plplot installation befriend Active State's tcl installation, which leaves tk out of the picture, too. I was already refered to some instructions, but I have no re-visited that link. I will stick with dual streams, since it works without any tricks. Thanks, again. Germán -----Original Message----- From: Alan W. Irwin [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 04, 2007 4:15 PM To: Salazar, German P21322 Cc: plplot-general@lists.sourceforge.net Subject: Re: [Plplot-general] replot: buffer not available (thread started as "post processing with plrender") On 2007-09-04 14:32-0400 Salazar, German P21322 wrote: > Well, I am back, although I have now changed the topic title to "replot". > > Like I said before, my ultimate objective is to have a single ps document > where, say, pages 1 and 3 are in landscape and page 2 in portrait; that, I > can already do with a small script if I have the two original files, one with > all pages in landscape and another with all pages in portrait...then, I can > pick and choose what pages I want in the final document. > > Here is the thing: > I have managed to plot in landscape (no surprise there, that is the default). > I have managed to plot in portrait, for real; the one option that does it is > command line argument -portrait, and not plsdiori. > I have also managed to do both things above in a single run by opening two > streams, one left alone (landscape) and another set to protrait. This way I > end up with I what need. > > So, basically, I am done. > > The thing is that I see a couple of C examples with the plreplot() command > and I thought that was a lot more elegant than having to open two streams at > the begining, keep switching/plotting to both streams at all times, and > closing both streams at the end. Just doing everything once and saving a copy > of it at the end seems simpler, if I can change from landscape to portrait > right before the replot...except that I couldn't get there, since plreplot() > will not work for me from Fortran...curiously enough, there are two C > examples that use plreplot() but none in Fortran...does this mean something, > i.e., plreplot does not work from fortran? > > Here is the message: > > *** PLPLOT WARNING *** > plreplot: plot buffer not available I got this to work, but only under special circumstances for both the C and Fortran 77 version of our examples. Here is the fortran patch for example 1. **************** --- x01f.f_original 2007-09-04 12:01:35.000000000 -0700 +++ x01f.f 2007-09-04 12:36:20.000000000 -0700 @@ -28,6 +28,7 @@ integer digmax integer PL_PARSE_FULL parameter(PL_PARSE_FULL = 1) + integer cur_strm, new_strm C some fortran compilers demand typing of intrinsic lnblnk, and C although this is not demanded on g77 it also works there. integer lnblnk @@ -72,6 +73,19 @@ call plot2() call plot3() + ! Test whether can work with streams and plreplot from fortran. + call plgstrm(cur_strm)! /*get current stream */ + call plmkstrm(new_strm)! /* create a new one */ + + call plsfnam("test_stream.ps")! /* file name */ + call plsdev("psc")! /* device type */ + + call plcpstrm(cur_strm, 0)! /* copy old stream parameters to new stream */ + call plreplot()! /* do the save by replaying the plot buffer */ + call plend1()! /* finish the device */ + + call plsstrm(cur_strm)! /* return to previous stream */ + C Don't forget to call PLEND to finish off! call plend() **************** Ordinarily, I would like to make this patch part of the fortran version of example 1, but plMergeOpts (which allows parsing of extra command-line options for any given application) is not part of the Fortran interface so there is no easy way to parse the -save option for example 1 in fortran. Instead, I have used a fixed name (test_stream.ps) here, which of course would not be suitable in general. Nevertheless, this patch is a good test that plgstrm, plmkstrm, plsfnam, plsdev, plcpstrm, and plreplot are all implemented correctly in Fortran (77) to call the appropriate C library routines with the appropriate arguments since I got identical results with this patch to the equivalent C routine using the command-line option "-save test_stream.ps" Now a comment on the "special circumstances" referred to above. If you run ./x01c -save test_stream.ps -dev <device> with <device> set to either psc or xcairo you get the *** PLPLOT WARNING *** plreplot: plot buffer not available warning referred to by German above. However, if you specify the xwin or tk devices you do produce a good plot in test_stream.ps. I assume what is going on is xwin and tk set up a plot buffer and the other devices do not. Another issue for -dev xwin and -dev tk is that after they create a good test_stream.ps file both the C and patched Fortran example 1 produces a segfault. German, obviously the current limitations of the plreplot capability are so severe that it is not useful to your needs, but I thought I should make some general comments about what is wrong in case some developers got moved to deal with one of the following issues that came up from my investigation: (1) Implement plmergeopts for fortran. (2) plot buffer capability expanded to more devices (3) Deal with the above segfault. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Plplot-general mailing list Plplot-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-general