Re: WRAPIT issue with .F90 files

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Tue Jan 25 2011 - 09:37:39 MST

Hi Walter,

I believe you can fix WRAPIT easily to recognize "F90".

Edit the file $NCARG_ROOT/bin/WRAPIT (or make a copy and edit that) and
change the line:

    if ($arg:e == "f" || $arg:e == "f90") then

to:

    if ($arg:e == "f" || $arg:e == "f90" || $arg:e == "F90") then

I've attached a new WRAPIT if you want to compare yours with this one.

--Mary

On Jan 24, 2011, at 11:50 AM, Walter Hannah wrote:

> I just figured it out!!! Apparently WRAPIT doesn't like when you use
> ".F90", but instead wants ".f90". In other words you can't use a capitol
> "F" in the file extension! I wonder if this is specific to my machine
> though? It seems so weird that this would be an issue, unless its just
> intrinsic to how WRAPIT was developed.
>
> Thanks for all the help,
> Walter
>
> Mingxuan Chen wrote:
>>
>> I use WRAPIT with f90 without problems.
>> for f90
>> WRAPIT ex90.stub ex.f90
>>
>> Mingxaun
>>
>> On Jan 24, 2011, at 10:43 AM, Walter Hannah wrote:
>>
>>> I made an alias to point to a 64-bit version of WRAPIT but I still get
>>> the same error, and I tried using WRAPIT on the same files directly on
>>> my 32-bit machine, so it seems that its not a 32/64 bit problem after
>>> all. I tried Mingxuan's suggestion of changing the name of the stub file
>>> to ex90.stub, but this also had no effect.
>>>
>>> Could this be a bug in the version of NCL? the version I'm using is
>>> 5.2.1.
>>>
>>> Thanks,
>>> Walter
>>>
>>> Dennis Shea wrote:
>>>> Hi Walter,
>>>>
>>>> I think maybe a 32/64 issue. I had no issues.
>>>>
>>>> I created a .so using f77 and f90 both with the stub file
>>>> you provided.
>>>>
>>>> %> WRAPIT -fPIC -pg walter.ex.stub walter.ex77.f
>>>> %> WRAPIT -fPIC -pg walter.ex.stub walter.ex90.f90
>>>>
>>>> The test driver was:
>>>>
>>>> ;external EX "./walter.ex77.so"
>>>> external EX "./walter.ex90.so"
>>>>
>>>> begin
>>>> i = 5
>>>> x = 1.3
>>>> print("before i = " + i)
>>>> print("before x = " + x)
>>>> EX:: ex(i,x)
>>>> print("after i = " + i)
>>>> print("after x = " + x)
>>>> end
>>>>
>>>> The output is
>>>>
>>>>
>>>> (0) before i = 5
>>>> (0) before x = 1.3
>>>> (0) after i = 10
>>>> (0) after x = -11.045
>>>> ==================================
>>>> Note that the f90 version of your code was named: walter.ex90.f90
>>>>
>>>> SUBROUTINE EX (II,XX)
>>>> INTEGER :: II
>>>> REAL :: XX
>>>>
>>>> II = II + 5
>>>> XX = XX - 12.345
>>>> RETURN
>>>> END
>>>>
>>>>
>>>> On 01/24/2011 09:22 AM, Walter Hannah wrote:
>>>>> Hi,
>>>>>
>>>>> When I use WRAPIT on a Fortan 77 file I have no problems, but when
>>>>> I try
>>>>> to do it on a Fortran 90 file using the seperate stub file I get this
>>>>> output:
>>>>>
>>>>> /
>>>>>> WRAPIT ex.stub ex.F90
>>>>>
>>>>> WRAPIT Version: 091416
>>>>> /opt/pgi/linux86-64/10.5/bin/pgf90
>>>>> LINKING
>>>>> /usr/bin/ld: WRAPIT.o: relocation R_X86_64_32 against `.rodata.str1.1'
>>>>> can not be used when making a shared object; recompile with -fPIC
>>>>> WRAPIT.o: could not read symbols: Bad value
>>>>> END WRAPIT/
>>>>>
>>>>>
>>>>> When I use the -fPIC option WRAPIT seems to make the shared object ok,
>>>>> but then when I run this NCL file:
>>>>>
>>>>> ex.ncl:
>>>>>
>>>>> /external EX "./ex.so"
>>>>>
>>>>> begin
>>>>> i = 5
>>>>> x = 1.3
>>>>> print("before i = " + i)
>>>>> print("before x = " + x)
>>>>> EX:: ex(i,x)
>>>>> print("after i = " + i)
>>>>> print("after x = " + x)
>>>>> end
>>>>>
>>>>> /I get this output:
>>>>>
>>>>> /warning:An error occurred loading the external file ./ex.so, file not
>>>>> loaded
>>>>> ./ex.so: undefined symbol: ex_
>>>>> warning:error at line 1 in file ex.ncl
>>>>>
>>>>> fatal:syntax error: line 8 in file ex.ncl before or near :
>>>>> EX:
>>>>> ----^
>>>>>
>>>>> fatal:error in statement
>>>>> fatal:Syntax Error in block, block not executed
>>>>> fatal:error at line 11 in file ex.ncl
>>>>> /
>>>>>
>>>>> I'm guessing that this might be a 32-bit vs 64-bit issue, since I'm
>>>>> on a
>>>>> 32 bit machine and ssh'ing onto a 64-bit machine. If I use the Fortran
>>>>> 77 version that is found on the WRAPIT help page, everything works
>>>>> fine.
>>>>> Any ideas why this might be happening?
>>>>>
>>>>> Here are the Fortran files,
>>>>>
>>>>> ex.F90:
>>>>> /
>>>>> SUBROUTINE EX (II,XX)
>>>>> INTEGER II
>>>>> REAL XX
>>>>>
>>>>> II = II + 5
>>>>> XX = XX - 12.345
>>>>> RETURN
>>>>> END/
>>>>>
>>>>>
>>>>> ex.stub:
>>>>>
>>>>> /C NCLFORTSTART
>>>>> SUBROUTINE EX (II,XX)
>>>>> INTEGER II
>>>>> REAL XX
>>>>> C NCLEND
>>>>>
>>>>>
>>>>> /Thanks,
>>>>> Walter
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> List instructions, subscriber options, unsubscribe:
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>
>>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk

Received on Tue Jan 25 09:37:46 2011

This archive was generated by hypermail 2.1.8 : Tue Jan 25 2011 - 14:22:15 MST