Linux Questions

Frequently Asked Linux Questions

Installation & License Questions

After installation, I receive the message “Unable to obtain license: license server not found” or “Unable to obtain license: license not found.” How do I fix this?

Single User Licenses:
  1. Using a text editor, open the file named license.dat located in the Absoft installation folder (usually /opt/absoftXX.X where XX.X represents the product version number)
  2. If your license file does not contain a line which reads “SERVER: 127.0.0.1”, add this line at the top of the file.
  3. Verify that there is a line which begins with “LICENSE:” If there is a line which begins with “PRO:”, replace “PRO:” with “LICENSE:”
  4. Verify that the string following “LICENSE:” does not contain any dashes (“-“).
  5. If you made any changes, save the license file in plain text format.
  6. Kill any currently running Absoft license server using “killall clmd_absoft” or reboot your computer. Re-test.
  7. If you still receive the error, contact our support team for further assistance.

* Please attach your license.dat file as well as the file named “absoft_release” from the Absoft installation folder.

Multiple User Licenses:
  1. Contact our support team and describe your issue, being sure to include the operating system and hardware information for the system on which you are running the Absoft license server and for the client which is unable to obtain a license.

*Attach the license.dat files from the server and from the client which is unable to obtain a license.

How do I upgrade a trial license with a purchased license without re-installing?

To replace a trial license with a purchased license:

  1. Using a text editor, open the file named license.dat located in the Absoft installation folder (usually /opt/absoftXX.X where XX.X represents the product version number)
  2. Delete the license string that follows the word “LICENSE:”
  3. Type in your new license string without the dashes.
  4. Save the license file in plain text format.
  5. Kill any currently running Absoft license server using “killall clmd_absoft” or reboot your computer.

Do I need to uninstall my previous Absoft compiler before installing my upgrade?

No. You do not need to remove any previous version of Absoft Pro Fortran to install a later version.

How do I install my Absoft compiler?

Please see the document named README located in the root directory of your Absoft Pro Fortran USB drive, CD-ROM, or extracted Electronic Delivery download for complete installation instructions. You should also consult the document named REQUIRED_PACKAGES.txt for information on additional system libraries that may be required in order to run Absoft Pro Fortran on your specific Linux distribution.

Memory Questions

Can I use more than 2 GB of memory on a 32-bit system?

There are 2 limitations.

First, by default the compiler uses the small code model. This limits all code + static data to approximately 2GB, but allows for more efficient code. Using the option -mcmodel=medium will raise this limit.

Second, there is a limitation in the GNU assembler that limits individual common blocks to being less than 2GB in size.This limitation has been lifted in the assembler included with binutils 2.14 and later.

How do I solve stack overflow problems?

The default for Pro Fortran is an 8 megabyte stack. Use the bash ulimit command to raise the stack size limit (the csh equivalent is ‘limit stack’). For example, # ulimit -s 32768. Once raised the limit applies to the current process and any children of that process.

Alternately, you can use the -s compiler option to program storage from the stack to the heap.

Compiling & Linking Questions

Why do I get the error “sh: /opt/absoft10.1/bin/af90fe64: No such file or directory” when compiling on my 64 bit Linux system?

The Absoft Fortran 95 compiler consists of several 32 bit executable programs which rely on 32 bit versions of standard shared libraries. You will get this error if your 64 bit system does not have these 32 bit shared libraries installed. These libraries are typically available in a 32 bit compatibility package, however, different Linux distributions use different names for this package. Consult the documentation provided with your Linux distribution for details.

What are the default external name conventions for Absoft compilers?

Starting with version 10.1, the default behavior for Absoft compilers is to fold external names to lower case and append a single underscore.

How do I resolve the error “XXXX is specified as the module name on a USE statement, but the compiler cannot find it.”?

The Absoft compilers will look for Fortran 90 module files in the current directory and in any directories specified using the -p option from the command line or through the FORTRAN options page in the AbsoftTools IDE.

How do I resolve undefined reference errors for procedures which are contained in Fortran 90 modules?

When Fortran 90 modules are compiled, the compiler creates a .mod file for the module’s definitions and an object file for the module’s code and data items. This object file must be presented to the linker to resolve reference to the module’s code and data items.

Can I generate 64 bit programs on my 32 bit system?

No. The 32 bit version of Absoft Fortran 95 cannot generate 64 bit programs.

Can I generate 32 bit programs on my 64 bit system?

Yes. The 64 bit version of Absoft Fortran 95 can also generate 32 bit programs. You will need to have the 32 bit versions of the standard Linux development tools installed in order to use this capability. If you are able to compile a simple 32 bit C program using gcc -m32, you have these tools installed.

IMSL & Other Library Questions

How do I use the IMSL libraries?

NOTE: The IMSL library is built with all external symbols folded to lower case with trailing underscores.

If you are building your program with the Absoft Developer Tools Interface, simply select Default Tool Options from the Project Menu, choose General options, and click the IMSL check box. The Absoft Developer Tools Interface will add all of the necessary compiler options and libraries.

To use the library from the command line, the necessary environment variables were established when the library was installed. Refer to the following document for complete details on using the library from the command line:

/opt/CTT6.1/notes/f90/absoft_32/quickstart

Or:

/opt/CTT6.1/notes/f90/absoft_64/quickstart

Where do I find the IMSL documentation?

The IMSL documentation, supplied in PDF format, is located in:

/opt/CTT6.1/help

How do I link to libraries?

All libraries supplied with the Absoft compiler (such as LAPACK) are built with all external symbols folded to lower case with trailing underscores. The required options for linking to these libraries are:

f90: -YEXT_NAMES=LCS, -YEXT_SFX=_

f77: -f -N15

NOTE: These are default options for Pro Fortran V10.1.

To link with other third party libraries, it is necessary to determine how the external symbol names are presented (case folding and decoration) and use the appropriate compiler options.

Other Common Questions

How can I modify the default behavior of the Absoft runtime library?

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.

-f90nlexts:
Allows f90 namelist reads to accept non-standard syntax for array elements. Without this flag, the following input results in a runtime error:

$ONE

A(1)=1,2,3,4

$END

When -f90nlexts is set, the values are assigned to the first four elements of A.

-connectunit9
Causes UNIT 9 to be preconnected to standard input and output.

-maceol
Formatted sequential files are in Classic Macintosh format where each record ends with a carriage return.

-doseol
Formatted sequential files are in Windows format where each record ends with a carriage return followed by a line feed.

-unixeol
Formatted sequential files are in Unix format where each record ends with a line feed.

-hex_uppercase
Data written with the Z edit descriptor will use upper case characters for A-F.

To set ABSOFT_RT_FLAGS:

export ABSOFT_RT_FLAGS=-fileprompt

*Note: the leading minus sign is required for each switch and multiple switches must be separated by one or more spaces.

Is there a compiler option that will force the compiler to consider the byte ordering of all unformatted files to either big or little endian?

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 FAQ on using the ABSOFT_RT_FLAGS environment variable.

Is there a way to read an ASCII tab character, CHAR(9), from a file?

Tabs read from formatted files are expanded modulo TABSIZE where TABSIZE is an environment variable. If TABSIZE is not set, tabs are expanded modulo 8. If TABSIZE is set to 0, the tab is passed unmolested to the application.

Are Unix and Vax subroutines such as DATE, TIME, GETARG, IARGC, etc, supplied with the Absoft compiler?

Complete Unix and Vax compatibility libraries are provided with the Absoft compiler. They are documented in the Absoft manual “SupportLibrary.pdf” in the Absoft documentation directory. Several methods of accessing the library are available. The easiest is with the Absoft Developer Tools Interface. From the Project menu, select Default Tool Options. In the General options section, check the Unix Library or the Vax Library check box.

Fortran 90/95 modules are also provided for these libraries. Simply add a USE statement to use program.

For example:

use vax_library
character*20 thedate
call date(thedate)
print *,thedate
end

use unix_library
character*24 tim
tim = ctime(5)
write (*,*) tim
end