[MITgcm-support] G95 build issue: f2c name mangling
David Ferreira
dfer at ocean.mit.edu
Mon Oct 9 22:20:40 EDT 2006
Hi Chris,
Works fine for me.
Thanks
david
chris hill wrote:
> Mark/David,
>
> (1) changed some routine names and switched in Mark's form for
> TIMERS_GET_TIME. Things seem to still work for me, lets see how it goes.
>
> (2) Mark - we want to keep sys v. user v. wall numbers if poss.
>
> Chris
> David Ferreira wrote:
>
>> Hi,
>>
>> I run into exactly the same problem as Mark with g95 (including the
>> -fnosecond-unsderscore solving the MITgcm compilation but screwing
>> up the netcdf package)
>>
>> So I tried the -ignoretime option of genmake2 and it didn't change
>> anything:
>> there is still an error with a "_user_time__" in timers.o (.F) and a
>> "_user_time_"
>> in timer_stats.o (.c)
>>
>> -ignoretime triggers a -DIGNORE_TIME flag which only appears
>> in timers.F. This flag seems to disable the functionality of the
>> time stuff, but not the definitions of the variables.
>> However adding a "ifndef IGNORE_TIME" around the definitions
>> seems to do the trick, but that would need to be checked in (and the
>> time
>> utilities are lost)
>>
>> As for Chris' suggestion, there are already a userTime and systemTime
>> variable defined in the timers.F subroutine. I don't really understand
>> what's going on in this subroutine, but could a brutal change such as
>> (userTime,systemTime) --> (toto,tutu)
>> and then
>> (user_time, system_time) --> (usertime,systemtime)
>> work ?
>>
>> cheers,
>> david
>>
>>
>> chris hill wrote:
>>
>>> Mark,
>>>
>>> Can you try changing
>>>
>>> system_time ==> systemtime
>>> user_time ==> usertime
>>>
>>> in timers.F and timer_stats.c.
>>>
>>> If I understood Ed correctly that should make the gnu linker happy.
>>> If it seems to work for you we can try and change it permanently -
>>> it shouldn't break anything else.
>>>
>>> Thanks,
>>>
>>> Chris
>>> Mark Hadfield wrote:
>>>
>>>> Thanks for your reply, Ed.
>>>>
>>>> I agree that's irritating to have to go to so much trouble for a
>>>> few function calls that have no bearing on the results. Still, the
>>>> time info is moderately interesting.
>>>>
>>>> I've discovered the reason for the inconsistency between g77 and
>>>> g95 (the bit that was really bugging me). With the combination of
>>>> preprocessor symbols that applies on g77 and g95, the functions
>>>> system_time, user_time and timenow are declared but never called.
>>>> G95 writes their names to the object file with the "U" (undefined)
>>>> flag, but g77 omits them. If I add a call to the system_time and
>>>> user_time functions, then g77 fails in the same way as g95. It's
>>>> arguable which is the more correct and user-friendly behaviour, but
>>>> basically it's an error in the code.
>>>>
>>>
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>
>>
>>
>>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
--
Ferreira David Tel : 617 253 7967
EAPS Room 54-1515,
Massachusetts Institute of Technology,
77 Massachusetts Avenue
Cambridge, MA, 02139
More information about the MITgcm-support
mailing list