Platform: Intel/Linux
Problem Details:
OS Version: 7.0
Product Version: any
Date: 21-Sep-01
Q. I am compiling a program and I get an error message:
/usr/absoft/lib/libfio.a(lowlevel.o): In function `_temp_file':
lowlevel.o(.text+0x10): the use of `tempnam' is dangerous,
better use `mkstemp'.
A. This warning message is issued by the Linux linker when it
sees the the function name "tempnam". It is a warning only
and does not prevent the program from linking nor does it
prevent the program from executing properly. The Absoft
run time library using the C library function "tempnam" to
generate temporary file names for files that are opened with
STATUS="SCRATCH".
The warning refers to the (unlikely) possibility that a file
created in this manner (in the /tmp directory) may not be
writeable. There is no danger in using it.
A patch is available which does not reference this standard
C library function. You can download it from here:
http://www.absoft.com/download/linux7.0downloads.html
Choose the tar archives that are appropriate for you version
of Linux:
profortran70_update_glibc20.tar.gz
f90fe_glibc20.tar.gz
Updates for Pro Fortran 7.0
on GLIBC 2.0 systems. Extract to absoft directory as super
user using tar -xzvf. (06/20/01)
profortran70_update_glibc21.tar.gz
f90fe_glibc21_and_later.tar.gz
Updates for Pro Fortran 7.0
on GLIBC 2.1 and later systems. Extract to absoft directory
as super user using: tar -xzvf. (06/20/01)
First do the profortran_update and then the f90fe
index
Platform: Intel/Linux
Problem Details:
OS Version: 2.0
Product Version: any
Date: 26-Aug-97
Q. When I declare large arrays (>8 MB of variables), I get a
segmentation violation from Linux.
A. Use the ulimit command (ulimit is a bash command - the csh equivalent to
'ulimit -s' is 'limit stack') to raise the stack size limit
# ulimit -s
8192
# ulimit -s 32768
# ulimit -s
32768
The default limit is 8M - it is defined by the following around
line 293 in sched.h
#define _STK_LIM (8*1024*1024)
the comment above this definition reads
/*
* Limit the stack by to some sane default: root can always
* increase this limit if needed.. 8MB seems reasonable.
*/
The stack size limit can't be raised by "ordinary" users,
only root. Once raised the limit applies to the current
process and any children of that process.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux 1.2 and 2.*
Product Version: any
Date: 27-Aug-97
Q. I am trying to debug a mixed language program on Linux. Even though
my C files are compiled with -g, Fx can't see them.
A. You need to compile the C files with -gdwarf instead of -g.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: 1.2.3, 2.0.*
Product Version: 3.4 and 4.4
Date: 19-Sep-97
Q. Why does my double precision Fortran code run 2 to 3 times faster on my
Pentium/Pentium Pro when compiled with g77 instead of your compiler.
A. The g77 compiler allocates local variables in the data and bss sections,
both of which are aligned correctly for double precision access. By default,
Absoft's compiler allocates local variables off the stack, which is not being
aligned correctly by the startup code. The solution is to specify the -s option
which forces local variables into the data and bss sections.
index
|
Platform: All
Problem Details:
OS Version: any
Product Version: any
Date: 22-Sep-97
Q. Where can I find IMSL documentation.
A. The documentation for the IMSL libraries (7 volume set) may be
purchased separately, or you can find it on line at:
http://www.vni.com/products/imsl/alphabetized_functions.html
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Any
Product Version: Fortran77
Date: 24-Sep-97
Q. Does FORTRAN 77 support the -r8 flag?
A. Use the -N113 compiler option.
The -N2 option forces all intrinsic functions to be performed
in DOUBLE PRECISION.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: any
Product Version: any
Date: 02-Oct-97
Q. I have a file which "uses" a precompiled by module containing a
function used by the main file. When I try to compile the main it
says there is an unresolved reference.
A. Your module contains executable code. Precompiling it created both
a module file and an object file. Present the object file to the linker
and the reference will be resolved. If you're compiling from the
command line, simply add the object file on the compiler invocation
line.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: any
Product Version: any
Date: 12-Nov-97
Q. When I try to use the xfx debugger I get an error message:
xfx: can't load library 'libXm.so.2'
A. xfx uses the Motif shared libraries which are not usually
included with Linux, but can be added to it. If you do not
have the Motif libraries installed, you can use a version of
xfx that was linked against static Motif libraries. This
version is:
/usr/bin/Xll/xfx.static
index
|
Platform: Intel/Linux
Problem Details:
OS Version: any
Product Version: ProFortran 5.0
Date: 26-Feb-98
Q. When I try to compile a program with the Fortran 90
compiler I get the following error message:
cft90 INTERNAL: Cannot retrieve message 3 from the message system.
What does this message mean?
A. The error message file is:
/usr/absoft/lib/nls/cf90
This path is hard-wired into the compiler. However, if an
environment variabled named NLSPATH is defined, the compiler
will use it to attempt to locate the message file. Either
unset this variable when you are using the Fortran 90 compiler,
or add the path specified above to the variable:
NLSPATH=/usr/absoft/lib/nls/%N
export NLSPATH
index
|
Platform: All
Problem Details:
OS Version: Any
Product Version: Pro Fortran 6.0 and later
Date: 04-Sep-98
Q. How can I modify the default behavior of the Absoft runtime library?
A. Starting with Absoft Pro Fortran 6.0 and Absoft Fortran SDK 4.5, the
runtime library checks for an environment variable named ABSOFT_RT_FLAGS
on entry to the first I/O statement in a program.
The following switches can be specified using this variable:
-defaultcarriage:
Causes the units preconnected to standard output to interperet
carriage control characters as if they had been connected with
ACTION='PRINT'.
-fileprompt:
Causes the library to prompt the user for a filename when it
implicitly opens a file as the result of I/O to an unconnected
unit number. By default, the library creates a filename based on
the unit number.
-vaxnames:
Causes the library to use 'vax style' names (FORnnn.DAT) when
creating a filename as the result of I/O to an unconnected
unit number.
-unixnames:
Causes the library to use 'unix style' names (fort.nnn) when
creating a filename as the result of I/O to an unconnected
unit number.
-bigendian:
Causes the library to interpret all unformatted files using
big endian byte ordering.
-littleendian:
Causes the library to interpret all unformatted files using
little endian byte ordering.
-noleadzero:
Causes the library to surpress the printing of leading zeroes
when processing an Fw.d edit descriptor. This only affects the
limited number of cases where the ANSI standard makes printing
of a leading zero implementation defined.
-reclen32:
Causes the library to interpret the value specified for RECL=
in an OPEN statement as 32-bit words instead of bytes.
Note: the leading minus sign is required for each switch and multiple
switches must be separated by one or more spaces.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: any Linux
Product Version: Pro Fortran 5.0
Date: 20-May-98
Q. I can't get the Unix compatibility library 'signal' function to
work.
A. You'll need to make a small modification to the file "signal.inc".
The file was installed in the directory: /usr/src/absoft/libU77.
Remove the VAL() function reference for the "proc" argument so
that it reads:
result = signal(VAL(signum), proc)
Save your changes and type "make" at the Linux prompt. The library
will be rebuilt and copied to /usr/lib
index
|
Platform: All
Problem Details:
OS Version: any
Product Version: any
Date: 14-Jan-1999
Q. Does Absoft Fortran pass the lengths of strings like most Unix
Fortran compilers I've used?
A. Yes, string lengths are passed as extra arguments (by value) at
the end of the formal argument list:
C:\Absoft60>type main.c
#include <string.h>
void Fcode(char *, int, double *, int);
int main()
{
char string[13] = {"hello, world"};
int i = 1;
double d = 2.0;
Fcode(string, i, &d, strlen(string));
return 0;
}
C:\Absoft60>acc -c -A main.c
Absoft C/C++ Compiler 1.3, Copyright (c) 1994-1997, Absoft Corp.
C:\Absoft60>type fcode.f
subroutine Fcode(string, i, d)
character*(*) string
integer i
value i
double precision d
print *, string, i, d, len(string)
end
C:\Absoft60>f77 -o main.exe main.obj fcode.f
FORTRAN 77 Compiler 4.5, Copyright (c) 1987 - 1998, Absoft Corp.
C:\Absoft60>main
hello, world 1 2.00000000000000 12
C:\Absoft60>
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: any
Date: 27-Jan-1999
Q. Is there an execution argument for "xfx" that sets the path
in which it should search for sources?
A. You can use an environment variable or a command line
argument:
export FXSRCPATHS={colon separated list of directories}
or:
xfx -p {colon separated list of directories}
index
|
Platform: Intel/Linux
Problem Details:
OS Version: RedHat 6.0 (Maybe others)
Product Version: All
Date: 12-Jul-1999
Q. Everytime I launch the curses version of Fx, I get the following error:
Unable to uinitialize Fx interface, check value of TERM.
I check the value of TERM and it seems ok.
A. The location of the terminfo database moved in RedHat 6.0. Fx is looking
for /usr/lib/terminfo, but the database is now located in
/usr/share/terminfo.
You can fix this problem by setting the value of an enviornment variable
named TERMINFO to the correct location.
set TERMINFO=/usr/share/terminfo
export TERMINFO
or
setenv TERMINFO /usr/share/terminfo
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: Any
Date: 07-Sep-1999
Q. I am trying to link to some functions compiled with g77. When I compile my
program I get linker errors and undefined reference to any of the necessary
functions.
A. Include the g77 runtime library libf2c.a in your compile line to make it an
argument to the linker.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Any
Product Version: Any
Date: 17-Nov-1999
Q. Every time I compile a program I get a warning message like:
"warning: multiple common of `_io_comm'"
"warning: previous common is here"
A. You are probably using a SuSE implementation of Linux. For
unknown reasons, they configure the C compiler to use the
default option: "-warn-common". This causes the warnings you
are seeing.
You can eliminate these warnings by reconfiguring your default
options maintained in the "specs" file for gcc.
On SuSE 6.0, edit the file:
/usr/lib/gcc-lib/i486-linux/egcs-2.91.60/specs
and remove ONLY -warn-common from the *.lib section
On SuSE 6.1 and SuSE 6.2, edit the file
/usr/lib/gcc-lib/i486-linux/egcs-2.91.66/specs
and remove ONLY -warn-common from the *.lib section
index
|
Platform: All
Problem Details:
OS Version: Any
Product Version: Any
Date: 17-Dec-1999
Q. I get the error message:
"adjustable array is not a dummy argument"
A. The most common cause of this is:
subroutine some_name(a,b,n)
real A(N), B(N)
The FORTRAN 77 compiler is case sensitive by default.
The easiest way to solve this type of problem is use a
case folding option: -f or -N109.
index
|
Platform: Intel/Linux
Problem Details:
OS Version: any
Product Version: 5.0
Date: 09-Nov-98
Q. I can't get the VMS (or Unix) libraries to link.
A. The libraries were built with the fold to upper case compiler option
(-N109) to simplify using them with the Fortran 90 compiler as well as
the FORTRAN 77 compiler. You will need to use the same option or else
specify subroutine/function names in upper case.
The libraries are maintained in /usr/absoft/lib:
/usr/absoft/lib/libV77.a VMS compatibility library
/usr/absoft/lib/libU77.a Unix compatibility library
For example:
test.f:
character*40 argument
n = IARGC()
do i=1,n
call GETARG(i,argument)
print *,trim(argument)
end do
end
$ f77 -lU77 test.f
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: any
Date: 03-Mar-98
Q. How can I control the processor FPU?
A. You can use arm387 to control the FPU. This is an
integer function built into the runtime library. Here
are the definitions of the control arguments:
fenv.inc:
! Intel specific FPU control constants for use with fpcontrol
integer*4 FE_TONEAREST
parameter ( FE_TONEAREST = (z'00000000'))
integer*4 FE_TOWARDZERO
parameter ( FE_TOWARDZERO = (z'00000C00'))
integer*4 FE_UPWARD
parameter ( FE_UPWARD = (z'00000800'))
integer*4 FE_DOWNWARD
parameter ( FE_DOWNWARD = (z'00000400'))
integer*4 FE_INEXACT
parameter ( FE_INEXACT = (z'00000020'))
integer*4 FE_DIVBYZERO
parameter ( FE_DIVBYZERO = (z'00000004'))
integer*4 FE_UNDERFLOW
parameter ( FE_UNDERFLOW = (z'00000010'))
integer*4 FE_OVERFLOW
parameter ( FE_OVERFLOW = (z'00000008'))
integer*4 FE_INVALID
parameter ( FE_INVALID = (z'00000001'))
Then use arm387 as follows:
test.f:
implicit none
include "fenv.inc"
integer arm387
integer state
* first retrieve the current state of the FPU
state = arm387(0)
* enable divide-by-zero exceptions (for example)
state = arm387(state .and. .not. FE_DIVBYZERO)
end
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: any
Date: 28-Mar-00
Q. If I want executable files to run on other linux systems
which do not have the Absoft compiler installed, do I need
to link the libraries statically or does that happen automatically?
A. In order to statically link the libraries you must pass
an argument to the linker on the command line like this:
-X -static
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: any
Date: 08-Jun-00
Q. I have a program with some very large arrays; 500 MB
and more. I have plenty of memory in my computer, but
the program still core dumps immediately.
A. First, be certain that you are using the '-s' (static
storage) compiler option (f77 or f90). The default Linux
stack size of 8 MB will not be sufficient.
This is a problem with the Linux dynamic loader. You should
be able to solve the problem by linking against static
versions of the system libraries to avoid dynamic linking.
Add this option to your compiler command line:
-X -static
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: 6.0
Date: 27-Jun-00
Q. I am trying to use a compiled g77 object with Absoft
f77 or f90 and I receive these errors:
test.o(.text+0x9): undefined reference to `s_wsle'
test.o(.text+0x22): undefined reference to `do_lio'
test.o(.text+0x2a): undefined reference to `e_wsle'
A. You must link against the g77 runtime library f2c or g2c
depending on your Linux distribution.
Q. Ok, I added -lg2c and I still get an unresolved reference
to the g77 subroutine that I am trying to call in F77?
A. G77 folds all external names to lower case and appends
a trailing underscore. You must add the -B108 and -f compiler
options. Your compile line should look like this:
f77 t.f test.o -lg2c -B108 -f
For F90 you must also add -YEXT_NAMES="LCS"
which folds all external symbolic names to lower case
and -B108 that appends a trailing underscore.
Your compile line should look like this:
f90 t.f test.o -lg2c -B108 -YEXT_NAMES="LCS"
Q. I am trying to use F77 with gcc. My C code compiles fine. When
I try to use the compiled gcc object code with F77, I receive unresolved
references for every call to the C math library that is in my C code?
A. Add libm.a to your compile line like this:
f77 t.f test.o -lm
Q. Is there an equivalent of -fno-second-underscore in your compiler?
I need to be able to link g77/gcc produced code that is compiled with this option.
A. Do not use the -B108 f77/f90 compiler option. This is a back-end (code generator)
option and has specific knowledge of the Linux environment; hence the double underscores.
Instead, use a front-end option which is machine independent:
f77: -N15
f90: -YEXT_SFX='_'
index
|
Platform: All
Problem Details:
OS Version: Any
Product Version: Any
Date: 22-Sep-00
Q. Is there an F90 compiler option that will force the compiler to
consider the byte ordering of all unformatted files to either big
or little endian?
A. Use the F90 open statement specifier:
convert ={"big_endian"|"little_endian"}
For example:
Open(10,file="filename",form="unformatted",convert="big_endian")
Or, use the ABSOFT_RT_FLAGS as described in the technical FAQ on
using the ABSOFT_RT_FLAGS environment variable which can
be found here:
linux70tfaq.html#anchor0058
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Any
Product Version: Pro Fortran V7.0
Date: 05-Oct-00
Q. I can't get the VMS (or Unix) libraries to link.
A. The libraries contain three entry points for each function. One
in all upper case, one in all upper case with a trailing underscore,
and one in all lower case with a trailing underscore:
DATE
DATE_
date_
Be sure that your spelling matches one of these.
The libraries are maintained in /usr/absoft/lib:
/usr/absoft/lib/libV77.a VMS compatibility library
/usr/absoft/lib/libU77.a Unix compatibility library
For example:
test.f:
character*40 argument
n = IARGC()
do i=1,n
call GETARG(i,argument)
print *,trim(argument)
end do
end
$ f77 -lU77 test.f
index
|
Platform: Intel/Linux
Problem Details:
OS Version: Any
Product Version: Pro Fortran V7.0
Date: 06-Oct-00
Q. I'm having problems using the IMSL functions. The linker reports
unresolved references for any function I try to use.
A. You must include the IMSL and BLAS libraries:
libimsl.a and libimslblas.a
as an argument to the linker like this:
f77 t.f -f -N15 -limsl -limslblas
f90 a.f -limsl -limslblas -YEXT_NAMES="LCS" -YEXT_SFX="_"
It is necessary to add the options -f(fold to lower case)
and the -N15(appends a trailing underscore) for F77 and
the corresponding F90 options, -YEXT_NAMES="LCS" -YEXT_SFX="_"
because the IMSL and BLAS libraries were compiled with these options.
index
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: 7.0
Date: 03-Dec-01
Q. I just installed the ibe_for_libstdc++3.tar.gz on my Mandrake 8.0 or 8.1 Linux system. When I try to compile a program I get this error: /usr/absoft/bin/ibe: error while loading shared libraries: libstdc++-libc6.1-2.so.3: cannot open shared object file: No such file or directory
A. Create this symbolic link: ln -s /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.1-2.so.3
index
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: 7.0
Date: 04-Dec-01
Q. I receive this error message when using RPM to install Absoft Pro Fortran version 7.0:
libncurses.so.4 is needed by absoft_profortran_glibc21-7.0-1.
A. You are getting the message indicating that libncurses.so.4. is necessary because libncurses.so.4. is necessary for the command line interface for the Fx debugger. If you are not concerned with using the Fx command line interface then use the rpm --nodeps option which wont do a dependency check before installing a package. If you do want to use the Fx command line interface then you need to get a copy of libncurses.so.4. which you may find on your Linux cd.
index
Platform: Intel/Linux
Problem Details:
OS Version: Linux
Product Version: Any
Date: 11-Apr-03
Q. I receive the error message "execv of /usr/bin/as failed"
when building my programs.
A. "execv of /usr/bin/as failed" indicates that you do not have the system assembler installed. "as" is part of the package known as "binutils".If you have your Linux Distribution cd (and it is an RPM based distro), locate the package: binutils<version number>.rpm
When you find the RPM on your cd, you can install it by typing:
rpm -i <filename>.rpm
You may also look on the internet for an RPM or other package for your Linux distribution.
binutils source:
http://www.gnu.org/directory/binutils.html
index
|