Hi Hazen,
hm, I will have to look into these issues.
Functions in Fortran are actually rather simple (*):
y = floor(x)
should work, but I may need to add some declarations (my FORTRAN 77
skills are getting a bit rusty, as Fortran 95 offers much better
tools to make the compiler agree with you).
(*) Within the definition of the function, the name of the function
acts as a special variable that holds the value of the function.
So not a value on the return statement like with C-like languages.
Regards,
Arjen
On 2009-11-11 19:30, Hazen Babcock wrote:
>
> 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: [email protected]
>>>>> 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
>>>>> [email protected]
>>>>> 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
>>>> [email protected]
>>>> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel