#67 closed defect (fixed)
ropp_tools compilation on Linux 64 bit machine
Reported by: | frae | Owned by: | frcm |
---|---|---|---|
Priority: | normal | Milestone: | 1.0 |
Component: | ropp_utils | Version: | 0.8 |
Keywords: | Cc: | dave.offiler@…, axel.vonengeln@… |
Description
compilation fails with the following error:
efc -Vaxlib -fp_port -I../build -O3 -size_lp64 -i8 -Vaxlib -I/data/nwp/sa/grassaf/ropp//ropp/efc//include -c -o tokens.o `test -f '../strings/tokens.f90' || echo './'`../strings/tokens.f90 efc: Command line warning: ignoring option '-fp'; no argument required external function TOKENS_STR external function TOKENS_INT external function TOKENS_SNGL call sp_getnum(tokenlist(i), arr(i), iflg) ^ Error 260 at (197:../strings/tokens.f90) : This subroutine has the wrong number of arguments or arguments with the wrong name, type or rank external function TOKENS_DBLE call sp_getnum(tokenlist(i), arr(i), iflg) ^ Error 260 at (239:../strings/tokens.f90) : This subroutine has the wrong number of arguments or arguments with the wrong name, type or rank 2 Errors compilation aborted for ../strings/tokens.f90 (code 1) make[1]: *** [tokens.o] Error 1 make[1]: Leaving directory `/home/nwp/sa/frae/temp/ropp_tools/build' make: *** [all-recursive] Error 1
I assume this is the usual problem with integer 8 byte on the 64 bit machine but I was unable to find a fix in the flib files.
Change history (2)
comment:1 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Version: | 0.9 |
comment:2 by , 18 years ago
Version: | → 0.8 |
---|
Note:
See TracTickets
for help on using tickets.
Root cause tracked to deficiencies in flib - see Ticket #74.
Investigated efc compiler switches, and the -i8 switch appears to set both integer and reals to 8-byte defaults. Changing -i8 to -i4 (I think the default, but that could change) in the configure_efc_linux script cures the problem as reported in this Ticket, and all of ropp_tools now compiles without any errors (but still many warnings). Whether 3rd party libraries such as netCDF etc also need re-compiling with the same setting is yet to be tested...
As part of this investigation, the problem was also cured by commenting out the 'use flib' statements in the 2 offending real routines in tokens.f90 and including an explicit interface to the appropriate flib sp_getnum routine (taken from the STRPAK module)
Not tried, but an obvious alternative solution would have been to replace the called flib routine with a local one doing the same (trivial) function. This would be a better long-term solution as true 64-bit compilation would then work (at least in this particular case). See also Ticket #40
There are other isses with configure_efc_linux (not related to this Ticket) which are being tested, so the configure file with the -i8 --> -i4 change is not yet committed