Hi Davide, Hazen, yes, g77 is complaining because of the "implicit none" statements. I have now added "external floor" and "real*8 floor", so the error messages are gone.
The second (warning) message is about calling plslabelfunc with a literal 0, rather than a procedure name. gfortran ignores this, but g77 gives a warning. I am not sure how to proceed here - I will look into it later on. Regards, Arjen On 2009-11-12 08:58, Davide Cesari wrote: > Hi, > since floor is declared as function, you need something like > > times = floor() > > times = call floor() is definitely wrong; maybe, if you have declared > "implicit none", you need to declare floor as real at the beginning of > the program unit, something like: > > real floor > > Davide > > Hazen Babcock ha scritto: >> Hi Arjen, >> >> Thanks for working on this. Unfortunately I'm still getting the error >> about the floor function. I thought perhaps I needed to add something >> like "external floor" in the normalize_longitude function but that only >> gave me a different error. "times = call floor (..)" also does not seem >> to work. Adding a "return" statement to the floor procedure similarly >> failed. I assume that is must somehow be possible to call functions in >> fortran but I'm quite puzzled about how one actually goes about it. >> >> I also get what appears to be a warning about the call to >> plslabelfunc(). "Argument #1 of 'plslabelfunc' is passed by reference at >> (2) but is a procedure at (1)". >> >> thanks, >> -Hazen >> >> Arjen Markus wrote: >>> Hi Hazen, >>> >>> just now I started to include the changes for x19f.f, when I realised >>> that the label argument poses a bit of a problem: Fortran expects a >>> hidden argument to hold the actual string length. For the other >>> interfaces we can circumvent that issue and in the F95 interface >>> this is solved by using "length" explicitly. >>> >>> Well, the changes should work, unfortunately I do not have access >>> right now to a proper build environment to really test it. Please >>> let me know if there is any trouble. >>> >>> Regards, >>> >>> Arjen >>> >>> On 2009-11-07 23:05, Hazen Babcock wrote: >>>> Hi Arjen, >>>> >>>> Since I just ran into exactly this problem myself (with mingw on >>>> windows)... Should we fix example x19f.f to work with f77? It is in >>>> the f77 examples folder so I think it is reasonable for the user to >>>> assume that it should be possible to compile this example with a f77 >>>> compiler. >>>> >>>> best, >>>> -Hazen >>>> >>>> Arjen Markus wrote: >>>>> Hi Werner, >>>>> >>>>> the floor function does not exist in FORTRAN 77, so you need >>>>> to implement it, for instance: >>>>> >>>>> *234567 >>>>> REAL FUNCTION FLOOR(X) >>>>> REAL X >>>>> FLOOR = FLOAT(INT(X)) >>>>> RETURN >>>>> END >>>>> >>>>> The declaration "character*(length) label" is a Fortran 90 >>>>> facility. Use: >>>>> >>>>> character*(*) label >>>>> >>>>> This should actually be handled by the C interface (the >>>>> string length is passed as a hidden argument ...) I do not >>>>> have time the coming days to look into it closely, but I >>>>> will try. >>>>> >>>>> You can not pass a null pointer (0) in FORTRAN 77. To turn the >>>>> labeller off, I am afraid you will have to use either a separate >>>>> routine (call plslabelfuncoff) or use a dummy routine. >>>>> >>>>> Regards, >>>>> >>>>> Arjen >>>>> >>>>> On 2009-09-15 13:47, Werner Smekal wrote: >>>>>> Hi, >>>>>> >>>>>> when I compile the latest revision of PLplot with MinGW 3.4.5 >>>>>> including the g77 compiler I get the following compiler error: >>>>>> >>>>>> Scanning dependencies of target x19f >>>>>> [ 88%] Building Fortran object examples/f77/CMakeFiles/x19f.dir/ >>>>>> x19f.f.obj >>>>>> E:\plbuild\examples\f77\x19f.f: In function `normalize_longitude': >>>>>> E:\plbuild\examples\f77\x19f.f:80: warning: >>>>>> times = floor ((abs(lon) + 180.0d0) / 360.0d0) >>>>>> ^ >>>>>> Reference to unimplemented intrinsic `FLOOR' at (^) (assumed EXTERNAL) >>>>>> E:\plbuild\examples\f77\x19f.f:80: >>>>>> times = floor ((abs(lon) + 180.0d0) / 360.0d0) >>>>>> ^ >>>>>> Invalid declaration of or reference to symbol `floor' at (^) >>>>>> [initially seen at (^)] >>>>>> E:\plbuild\examples\f77\x19f.f: In subroutine `geolocation_labeler': >>>>>> E:\plbuild\examples\f77\x19f.f:91: >>>>>> subroutine geolocation_labeler(axis, value, label, length) >>>>>> 1 >>>>>> E:\plbuild\examples\f77\x19f.f:95: (continued): >>>>>> character*(length) label >>>>>> 2 >>>>>> Invalid declaration of or reference to symbol `length' at (2) >>>>>> [initially seen at (1)] >>>>>> E:\plbuild\examples\f77\x19f.f: In program `x19f': >>>>>> E:\plbuild\examples\f77\x19f.f:161: warning: >>>>>> call plslabelfunc(geolocation_labeler) >>>>>> 1 >>>>>> E:\plbuild\examples\f77\x19f.f:177: (continued): >>>>>> call plslabelfunc(0) >>>>>> 2 >>>>>> Argument #1 of `plslabelfunc' is passed by reference at (2) but is >>>>>> a procedure at (1) [info -f g77 M GLOBALS] >>>>>> mingw32-make[2]: *** [examples/f77/CMakeFiles/x19f.dir/x19f.f.obj] >>>>>> Error 1 >>>>>> mingw32-make[1]: *** [examples/f77/CMakeFiles/x19f.dir/all] Error 2 >>>>>> mingw32-make: *** [all] Error 2 >>>>>> >>>>>> Maybe someone who is more knowledgeable about Fortran can help me >>>>>> out make this example work. >>>>>> >>>>>> Thanks, >>>>>> Werner >>>>>> >>>>>> -- >>>>>> Dr. Werner Smekal >>>>>> Institut fuer Allgemeine Physik >>>>>> Technische Universitaet Wien >>>>>> Wiedner Hauptstr 8-10 >>>>>> A-1040 Wien >>>>>> Austria >>>>>> DVR-Nr: 0005886 >>>>>> >>>>>> email: sme...@iap.tuwien.ac.at >>>>>> web: http://www.iap.tuwien.ac.at/~smekal >>>>>> phone: +43-(0)1-58801-13463 (office) >>>>>> +43-(0)1-58801-13469 (laboratory) >>>>>> fax: +43-(0)1-58801-13499 >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> >>>>>> >>>>>> Come build with us! The BlackBerry® Developer Conference in SF, CA >>>>>> is the only developer event you need to attend this year. Jumpstart >>>>>> your >>>>>> developing skills, take BlackBerry mobile applications to market and >>>>>> stay ahead of the curve. Join us from November 9-12, 2009. >>>>>> Register now! >>>>>> http://p.sf.net/sfu/devconf >>>>>> _______________________________________________ >>>>>> Plplot-devel mailing list >>>>>> Plplot-devel@lists.sourceforge.net >>>>>> https://lists.sourceforge.net/lists/listinfo/plplot-devel >>>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> >>>>> Come build with us! The BlackBerry® Developer Conference in SF, CA >>>>> is the only developer event you need to attend this year. Jumpstart your >>>>> developing skills, take BlackBerry mobile applications to market and >>>>> stay ahead of the curve. Join us from November 9-12, 2009. >>>>> Register now! >>>>> http://p.sf.net/sfu/devconf >>>>> _______________________________________________ >>>>> Plplot-devel mailing list >>>>> Plplot-devel@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/plplot-devel >>>>> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >> trial. Simplify your report design, integration and deployment - and focus >> on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Plplot-devel mailing list >> Plplot-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/plplot-devel >> > > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel