Pro Fortran 6.0/F77 SDK 4.5 for Macintosh Technical FAQs     
06-Oct-00

IMSL documentation                                                  22-Sep-97
Supporting -r8 flag in Fortran 77                                   24-Sep-97
F90 cannot find functions in modules                                02-Oct-97
Data type specification errors                                      22-Oct-97
Memory requirements                                                 03-Dec-97
MPW memory allocation                                               05-Feb-98
Using the ABSOFT_RT_FLAGS environment variable                      04-Sep-98
F90 can't retrieve error messages                                   23-Dec-98
Lapack ProFORTRAN 6.0                                               06-Jan-99
Starting MPW with Pro Fortran v6.0                                  14-Jan-99
Fortran string lengths                                              14-Jan-99
Macintosh Pro Fortran v6.0 disk requirements                        19-Jan-99
The SuperPlot-Lite library is missing                               01-Feb-99
Reading TAB characters on a Macintosh                               03-Feb-99
ACM does not add '.o' ('XCOF') library objects properly             15-Feb-99
How to turn off text colorization in MPW                            08-Mar-99
Using MIG in Pro Fortran v6.0                                       21-Apr-99
LONG_MIN cannot be cast to double                                   07-May-99
How do I use the Macintosh Toolbox API?                             01-Jun-99
Buffer allocation failure                                           17-Nov-99
My makefile will not re-build my project                            22-Jul-99
I get the message 's must occur in pairs in MPW                     05-Aug-99
Error message when using Mac OS-9                                   20-Oct-99
Adjustable array is not a dummy argument                            17-Dec-99
MPW Printing Problems                                               20-Dec-99
Using the -N9 option in Absoft C/C++                                04-Feb-00
I can't get the VMS (or Unix) libraries to link                     21-Mar-00
Automatically setting the application memory size                   25-Aug-00
Is there an F90 compiler option for big or little endian?           22-Sep-00
IMSL linking problem                                                06-Oct-00

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: Macintosh

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: Macintosh

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: Macintosh

Problem Details:

OS Version: any
Product Version: any
Date: 22-Oct-97

Q. Apparently the compiler considers the variable NORMX as integer even
   though I explicitly typed it as:

   real normx

   Please fix the compilers and send me the patch.

A. There is no need to provide a patch for the compiler.

   The FORTRAN 77 compiler is case sensitive. You can use either
   of the two following options to disable case sensitivity:

   -f      fold to lower case (User Guide pp. 5-17, 6-1, I-1)
   -N109   fold to upper case (User Guide pp. 5-17, I-2)

   Caution: The use of either option will make it impossible
            to communicate directly with the Macintosh API.

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: any
Date: 03-Dec-97

Q. How do I allocate memory to a FORTRAN program?

A. How you specify the size of the memory partition of
   a FORTRAN program depends on whether the program is
   designed to run as an MPW tool or a Macintosh desktop
   application. If it is to run within MPW as a tool, then
   the only memory available to it is that allocated to
   MPW itself. In other words, the program and its
   memory requirement must fit entirely within MPW. Use
   Get Info on the MPW Shell icon to increase the size of
   MPW parition.

   If the program is designed as a stand-alone Macintosh
   desktop application, then its memory allocation is
   specified by using Get Info on the program's icon.

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: any
Date: 05-Feb-98

Q. I am trying to compile a program using MPW and when I
   run the compiler or linker and I receive this message:

   "not enough room in heap zone (OS error -108)"

   I have plenty of memory on my system, why doesn't MPW use it?

A. MPW must have all of the memory it will use preallocated
   to it. The default allocation is 16 MB. To increase it
   (and we recommend 32 MB), first exit MPW. Then, open the
   MPW folder and click the mouse button once on the MPW
   Shell icon. (You want to select it, but not open it).
   Choose "Get Info" from the "File" menu which will open a
   dialog box, allowing you to change MPW's memory allocation.

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: Macintosh

Problem Details:

OS Version: any
Product Version: any
Date: 23-Dec-1998

Q. After upgrading my MacOS I have noticed that the F90 compiler
   can not report compile-time errors.  Instead I get a message
   like this:

   "cft90 INTERNAL: Cannot retrieve message 3 from the message system"

   Something must be set-up improperly.
   Any advice?

A. There are two files which contain error messages: tmod and cf90.
   These files are maintained in {SystemFolder}Preferences:Absoft
   so if you replace your Mac OS these files will not exist. If you no
   longer have these files, you must reinstall your Absoft product
   in order for your f90 compiler to display error messages.

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: Pro Fortran v6.0
Date: 06-Jan-1999

Q. I am trying to use LAPACK that is part of Pro FORTRAN 6.0.  I tried
   using f77_lapack_scdz.o and received link errors.  In this folder are
   numerous object files and I am not sure which I should link against.  Is
   there any way of knowing which to use?

A. The f77_lapack_scdz.o and f90_lapack_scdz.o files are object files
   produced when compiling the module files found in LaPackMods.  The files
   that should be used in this case are the lapack77_* files.  As a guide to
   what the files are here is a breakdown of the files, and how you know to
   link against them.

       You first have:
        blas_*
        lapack77_*
        lapack90_*

   These correspond to which type you are using: Blas , lapack for
   f77, or  lapack for f90.

        There are then five types, aux, s, c, d, z.

        Here is what each means:

        aux: some auxiliary files for that type
        s: single precision
        d: double precision
        c: single complex
        z: double complex

   The f90 libraries are simply glue to the f77 code.  If you are using f90
   first link against the all inclusive lapack90_scdz library.  Then you will
   need to link against the f77 library that you need.  For example, if you are
   using a double complex subroutine, you will have to link against the
   lapack77_z library.  The reason that the f77 libraries are not all inclusive
   is that the resulting library would be large.  Since the f90 libraries are
   just glue code, they are much smaller with a smaller resulting library.

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: Pro Fortran v6.0
Date: 14-Jan-1999

Q. When I double-click on a source file, rather than launching MPW, I
   get a Macintosh O/S error message claiming:

   "The application program MRWE.o could not be opened, because it
   might be damaged or not work on this type of computer"

   or:

   "This version of MPW is not compatible with the current version of system
   software. Please Upgrade to the latest MPW".

   Opening the MPW Shell seems to work fine.

A. Certain combinations of application extensions and virus scanners
   prevent the Absoft linker from setting the final type and creator
   of MRWE applications leaving an object file icon rather than an
   application. The "Problem with application type" FAQ describes this
   and the work-around. In Pro Fortran V6.0,we applied the work-around
   to the release file set. The work-around involves changing the type
   of MRWE.o to APPL (application) from XCOF (object file). It seems that
   the Macintosh assumes that MRWE.o and not the MPW shell is the
   application that should be launched when you double-click on a document.

   You need to change the creator type of MRWE.o to 'MRWE' to solve the
   problem:

   1. Set your directory to "HD:MPW:Libraries:AbsoftLibraries"
   2. In the MPW shell, execute the command "SetFile -c MRWE MRWE.o
   3. Exit MPW and rebuild your desktop.

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: Macintosh

Problem Details:

OS Version: any
Product Version: Pro Fortran v6.0
Date: 19-Jan-1999

Q. How much disk space does Pro Fortran 6.0 require?

A. Installation requires 180 MB. After installation, you can free up
   approximately 120 MB by deleting the 'F90Includes' folder if you
   will not be needing Fortran 90 module and interface block definitions
   for the Macintosh tool box. (The 'F90Includes' folder is inside the
   'Interfaces' folder of the 'MPW' folder.)

   Pro Fortran 6.0 and MPW disk usage summary:

   MPW folder:

   AbsoftTools     8.3 MB
   Examples        6.2 MB
   Interfaces    144.6 MB
   Libraries       7.0 MB
   Tools           6.6 MB

   Interfaces folder:

   ACCIncludes     1.8 MB
   CIncludes      13.5 MB
   F90Includes   118.9 MB
   FIncludes       7.9 MB

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: Pro Fortran v6.0
Date: 01-Feb-1999

Q. I tried to compile the SuperPlot-Lite examples, but the
   include file and library appears to be missing.

A. They were accidently left off the CD-ROM. You can download them
   from here:

   http://www.absoft.com/download/os9mac6.0downloads.html

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: any
Date: 03-Feb-1999

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

A. In Pro Fortran 5.0, tabs read from formatted files are
   expanded modulo 8.

   In Pro Fortran 6.0 and later tabs read from formatted files are
   expanded modulo TAB where TAB is an MPW environment variable.
   If TAB is not set, tabs are expanded modulo 8. If TAB is
   set to 0, the tab is passed unmolested to the application.

   There is no way in either version to affect the expansion of
   tabs in an MRWE application unless you are using version 6.2
   or later.

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: Pro Fortran v6.0
Date: 15-Feb-1999

Q. If I use "Create BuildCommands..." from the Tools menu of the
   MPW Shell, to create a makefile for building a program on the
   Power Macintosh, any '.o' files I add using the "Library File(s)..."
   button do not appear in my makefile. What am I doing wrong?

A. Nothing, the portion of the script for handling Power Macintosh
   object files is incorrect. Replace line 277 of the file "AbsoftTools:ACM"
   with the following, where the special Macintosh Character,
   "greater than or equal to", (or ASCII character 179), which is created
   by holding the down the option key while pressing the '>' key,
   is represented here by a '@' symbol.

   Set extra_ppc {extra_ppc} "`files -f {extra_objects} -t 'AAF '`" @Dev:Null

   Optionally, you could download a copy of the ACM file which already
   contains this modification from the Absoft ftp site.

index

Platform: Macintosh

Problem Details:
OS Version: any
Product Version: Pro Fortran v6.0
Date: 08-Mar-1999

Q. How do I turn off text colorization in MPW?

A. Edit the file "MPW:Startup Items:UserStartup*Absoft" and insert the
   following line anywhere in the file:

   Set -e AllowColorizing 0

   Save your changes and restart MPW.

index

Platform: Macintosh

Problem Details:
OS Version: any
Product Version: Pro Fortran v6.0
Date: 21-Apr-1999

Q. When compiling a program that uses the MIG graphics library,
   either by checking the "Uses graphics" box in the Compiler
   Commando interface or by adding the library directly to a build
   or command line, I get following error:

   # link error: undefined symbol - .ldtox80
   #   first ref in - HD:MPW:Libraries:AbsoftLibraries:mig.o

A. Just before Pro Fortran was released, the MIG library was enhanced
   and updated by the provider. As a result, it needs one additional
   library when it is linked to your application. This is the Apple
   library:

   "{SharedLibraries}"MathLib

   Add this library to your command line or makefile. If you are
   using the Compiler Commando interface, use the "Library File(s)..."
   button and then navigate to ":MPW:Libraries:SharedLibraries".

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: ACC v1.3
Date: 07-May-99

Q. (double) LONG_MIN returns 2147483648.000000 and not -2147483648.000000
   as it should. Is there a fix for this?

A. This will be fixed in the next version. In the meantime, open the file
   "limits.h" in the C include folder and change the definition of
   LONG_MIN as follows:

   /*#define LONG_MIN	(-2147483648L)*/
   #define LONG_MIN	(-2147483647L - 1L)

index

Platform: Macintosh

Problem Details:

OS Version: any
Product Version: any
Date: 01-Jun-1999

Q. How do I use the Macintosh Toolbox API?

A. Using the Macintosh Toolbox API is beyond the scope of
   Absoft technical support.

   For more information on the Macintosh Toolbox API see
   Inside Macintosh - Macintosh Toolbox Essentials by Apple Computer, Inc.

   http://www.apple.com/developer/

index

Platform: Macintosh

Problem Details:
OS Version: Any
Product Version: Any
Date: 16-Jul-1999

Q. I am trying to write a large array as one record and when using
   the -N3 compiler option I get this run time error:

      ? FORTRAN Runtime Error:
      ? Buffer allocation failed
      ? WRITE(UNIT=3,...


A. The -N3 option instructs the compiler to read/write unformatted
   sequential access files with record length information embedded
   in the record. This places a 32-bit integer at the beginning and
   the end of each record which allows the runtime library to skip and
   backspace these records. Without the length information that would
   be impossible.

   However, your write statements try to write this entire array as one
   record.  With the -N3 option we have to allocate enough memory in one
   contiguous chunk to create this record so that the length information
   can be inserted at the beginning and the end.  The allocation of this
   buffer is what failed.

   When the -N3 option is not specified, I/O transfers are performed using
   much smaller (4096 byte) buffers since the data is pure binary with no
   record length information.

   If you receive this error on the Macintosh, then increase the memory
   application size.

index

Platform: Macintosh

Problem Details:
OS Version: any
Product Version: any
Date: 22-Jul-1999

Q. When I make changes to my makefile such as
   new compiler options, my application does
   not rebuild unless I delete the old object
   files manually.

A. Make the makefile a dependency of your
   target by deleting the "#" character in
   line four in the makefile.

index

Platform: Macintosh

Problem Details:
OS Version: Mac
Product Version: any
Date: 05-Aug-1999

Q. I try to open the MPW shell and I get
   these messages:

   Command project menu was not found
   Execution of Startup terminated

   Or, I do a set command from the MPW
   Worksheet and I get the message:

   ### MPW Shell- 's must occur in pairs.

A. Some probable causes for this behavior is
   caused by including spaces, apostrophes or
   dashes in the name of your hard drive or
   path names and trying to work in MPW.
   Instead of a dash, use an underscore.

   For example:

   HD_A

index

Platform: Macintosh

Problem Details:
OS Version: OS-9
Product Version: any
Date: 20-Oct-1999

Q. I just upgraded to Mac OS version 9 and when I exit the MPW
   shell I get this error message:

        "The application "MPW Shell has unexpectedly
         quit, because an update to this software is
         required for compatibility with the improved
         Mac OS file system.

         You should save your work in other open
         applications and restart the computer."

A. The Shell supplied with MPW V3.4.3 and V3.4.4
   is not compatible with the StdClib built into Mac OS-9.
   For more information, please refer to this Apple Computer
   web page:

   http://developer.apple.com/macos/macos9.html

   The MPW Shell version 3.5 is required for Mac
   OS-9. You can download it from this Apple FTP site:

   ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./MPW-GM/MPW/

   And download the file:

   MPW_Shell.sit.hqx

   And put the new MPW shell in the MPW folder that is installed with Absoft Pro Fortran.


   You should also update the StdClib shared library
   supplied in the MPW:Libraries:SharedLibraries folder.

   Go to:

   ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./MPW-GM/Interfaces&Libraries/

   And download the files:

   RuntimeLibraries.sit.hqx
   Libraries.sit.hqx

   In RuntimeLibraries, in the folder Power Macintosh Additions, Mac OS 7.6 or later, you will find
   the StdClib that should go into:

   MPW:Libraries:SharedLibraries

   And in Libraries, PPCLibraries you will find the files:

        StdCRuntime.o
        PPCStdClib.o

   Put them in MPW:Libraries:PPCLibraries

   You must also increase the MPW partition size and the stack.

   You must also increase the MPW partition size and the stack.
    The partition should be at least 16 MB and preferably 32 MB. 
   Use Get Info on the MPW Shell icon to set it. 
   Use the MPW Shell command SetShellSize to set the stack size:

      SetShellSize -s 4096k

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: Macintosh

Problem Details:
OS Version: Any
Product Version: Any
Date: 20-Dec-1999

Q. I have a problem printing from the MPW editor to my EPSON printers.
   My new Epson connected to my Mac won't print any MPW shell documents
   like program listings, active window files, etc. The message it sends
   is "essential print resource missing" or the number of copies to be
   printed appears to be a random number of both signs. When it pops up
   as a negative number only one copy is printed. Normally it comes up
   as thousands of copies and the printing must be forced to stop.  The
   MPW shell works fine with other printers like Laser Writers and HP
   printers.

A. EPSON printers need the print dialog box in order to control the number
   of copies printed.  Type this command in the MPW worksheet and hit enter:

                  Set PrintOptions "-h -dialog"


index

Platform: Macintosh

Problem Details:
OS Version: any
Product Version: ProFortran 6.0
Date: 04-Feb-2000

Q. I'm trying to use the -N9 option (Frequent Command-Period checks) with
   my C program, but it doesn't seem to work.

A. For C programs, it is necessary to call the "mrwe_install_timer()" at the
   beginning of your main function. For example:

   int main()
   {
   void mrwe_install_timer();

   mrwe_install_timer();

   Note: If your are using ProFortran 6.0 or earlier, you must also specify
   this option: -N103, which can only be done in a makefile or from the command
   line.

index

Platform: Macintosh

Problem Details:
OS Version: Any
Product Version: Pro Fortran v6.0
Date: 16-Jul-1999

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.
   use the fold to upper case compiler option (-N109) to simplify using
   them with the Fortran 90 compiler as well as the FORTRAN 77 compiler.

   To specify the library simply add it as source file on the compiler
   invocation line (it is a source file to the linker). They are in
   "MPW:Libraries:AbsoftLibraries" as "vmslib.o" and "unixlib.o". You
   can use the shell variable "{AbsoftLibraries}" to specify the path
   from the MPW shell.

   For example:

   test.f:

   character*40 argument
   n = IARGC()
   do i=1,n
   call GETARG(i,argument)
   print *,trim(argument)
   end do
   end

   f77 -tool test.f {AbsoftLibraries}unixlib.o

index

Platform: Macintosh

Problem Details:
OS Version: Any
Product Version: Any
Date: 25-Aug-00


Q. My program compiles fine, but every time I
   re-compile it I must increase the memory to
   the application to run it.  Is there any way to
   automatically set the memory for my application?

A. Create a makefile and add this line to the end of
   the # Linkage rule section:

   setprefs -sizemin 1000 -sizepref 1000 "{TargetName}"

   This will set the memory to 1000 K of memory
   every time you run your makefile.

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:

   mac60tfaq.html#anchor0058

index

Platform: Macintosh

Problem Details:
OS Version: any
Product Version: any
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 library:

   Windows:   imsl.lib
   Macintosh: "{AbsoftLibraries}"imsl.lib
   Linux:     libimsl.a

   as an argument to the linker.

   On Windows and Macintosh, the libraries have been compiled with the
   fold to lower case option (-f) enabled. On Linux, they have been compiled
   with the fold to upper case option (-N109) enabled. It will be necessary
   either to:

   a) use a compiler case folding option
   b) spell the library names in the correct case
   c) use a linker alias file (not available on Linux)


index