Hi Alan and Arjen,
Thanks for that piece of information about the f95 implementation
not requiring the array dimensions. With that awareness, I was able
quickly to modify the f77 code to compile correctly.
However, I am now having difficulties when I attempt to
execute. My executable is unable to find the device drivers. Here
is the message I get:
*** PLPLOT ERROR, ABORTING OPERATION ***
plInitDispatchTable: Could not open drivers directory, aborting operation
Requested device wingcc not available
Plotting Options:
Enter device number or keyword:
At the top of my main program, as implied by this output, I have
the line call plsdev('wingcc').
I copied the plplot dll and drivers directories into the
directory where I am trying to execute, hoping that might resolve the
problem. But it did not. Any suggestions as to what I am missing?
Thanks,
John
At 01:44 AM 1/19/2015, Arjen Markus wrote:
Hi John,
> -----Original Message-----
> From: Alan W. Irwin
[<mailto:ir...@beluga.phys.uvic.ca>mailto:ir...@beluga.phys.uvic.ca]
> Sent: Sunday, January 18, 2015 2:49 AM
> To: John Baumgardner
> Cc: plplot-general@lists.sourceforge.net
> Subject: Re: [Plplot-general] plwidth fails to link under Cygwin
against plplot5.9.10
> libraries
>
> However, the good news is I found what I needed (circle.f and how
you built it) to
> figure out this problem which turns out not to be specific to Cygwin.
>
> > $ compile.sh
> > circle.f:26.72:
> >
> > call plline(n101,xx,yy)
> >
> > 1
> > Error: There is no specific subroutine for the generic 'plline' at (1)
>
This is a typical message relating to the available interfaces for
plline. The thing is that with Fortran 95 and beyond you can define
a single interface name to be applied to multiple implementations.
The compiler looks at the actual argument list and decides to use
the implementation that matches that list (by number of arguments
and the type, kind and rank of each). If it can not find any
matching implementation, it will respond with a message like the above.
For the Fortran 95 bindings we have used the features provided by
that standard as much as possible. One is that arrays "know" their
size. So the routine plline queries the arrays xx and yy for their
size and there is no need to pass the size explicitly. That method
is actually rather error-prone.
If you want to pass a section of the array only, you can use:
Call plline( xx(1:10), yy(1:10) )
For instance.
> I verified that issue. To solve it, I simply used the redacted form of
> subroutine/function call with the redundant dimension information
dropped, i.e.,
>
> call plline(xx,yy)
>
> Note, it is quite a while since we have used the f77 interface so
my original advice to
> you was incomplete about converting over to f95. I should have
also added to the
> "use plplot" advice that since we dropped f77, our f95
capabilities and API have
> evolved and, for example, we are now taking advantage of certain Fortran 95
> capabilities like knowing the redundant array dimensions. So you
have to use the
> redacted form (like above with redundant dimension information
dropped) of all calls.
>
> When in doubt about exactly what the redacted form is, look at
files in examples/f95/
> for working examples of all the calls to the PLplot Fortran binding API.
>
Regards,
Arjen
DISCLAIMER: This message is intended exclusively for the
addressee(s) and may contain confidential and privileged
information. If you are not the intended recipient please notify the
sender immediately and destroy this message. Unauthorized use,
disclosure or copying of this message is strictly prohibited. The
foundation 'Stichting Deltares', which has its seat at Delft, The
Netherlands, Commercial Registration Number 41146461, is not liable
in any way whatsoever for consequences and/or damages resulting from
the improper, incomplete and untimely dispatch, receipt and/or
content of this e-mail.
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Plplot-general mailing list
Plplot-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-general