OS X Questions

Frequently Asked OS X 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 /Applications/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. Reboot your computer and 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 to 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 /Applications/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. Restart 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 refer to the pdf document named README_installing located on your Absoft Pro Fortran USB drive, CD-ROM or mounted Electronic Delivery download image for compete installation instructions,

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

The Apple Macintosh ABI limits program addressable virtual memory to 2 GB.

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

How do I build programs which will run on all supported versions of OS X?

Adding the -osxtarget=10.6 to your command line compilation or selecting Snow Leopard  as the Target OS in the AbsoftTools IDE will produce programs which can run on OS X 10.6 or later.

How do I fix “usr/bin/ld: table of contents for archive: SOMEARCHIVENAME is out of date; rerun ranlib(1) (can’t load from it)” errors?

As the error message indicates, this problem can be resolved by running the system ranlib program on the library which is causing the problem.

Absoft Pro Fortran includes a shell scripts which will run the ranlib program on all Absoft libraries.

Execute:

/Applications/AbsoftXX.X/lib/run_ranlib.sh

and

/Applications/AbsoftXX.X/lib64/run_ranlib.sh

to update these libraries.

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 PowerPC executables using the Pro Fortran for OS X Intel?

No. The Intel version of Pro Fortran cannot produce PowerPC code.

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/imsl/fnl700/macab115i32/notes/quickstart

Or:

/opt/imsl/fnl700/macab115e64/note/quickstart

Where do I find the IMSL documentation?

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

/opt/imsl/fnl700/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 using bash, open the terminal and enter:

export ABSOFT_RT_FLAGS=-fileprompt

To set ABSOFT_RT_FLAGS using tcsh, open the terminal and enter:

setenv ABSOFT_RT_FLAGS -fileprompt

*Note: MRWE applications must be launched from the command prompt so that the ABSOFT_RT_FLAGS will be used.

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