Pro Fortran 7.0/F77 SDK 5.0 for Macintosh Technical FAQs
22-May-02

Slow I/O during MRWE execution                                                08-Oct-01
How do I create a non-Carbon MRWE application?                                07-Sep-01
Selecting all future applications in set prefs does not work                  14-Aug-01
Will my old makefiles work with version 7                                     14-Aug-01
VMS and Unix libraries on macintosh                                           21-Mar-00
Absoft optimised libraries for the Velocity Engine                            27-Mar-00
IMSL linking problem                                                          22-Sep-97
F77 SDK has an old version of the Compile commando interface                  22-Aug-01
Data type specification errors                                                22-Oct-97
Memory requirements                                                           03-Dec-97
MPW heap memory allocation error                                              05-Feb-98
F90 can't retrieve error messages                                             23-Dec-98
Reading TAB characters on a Macintosh                                         03-Feb-99
How to turn off text colorization in MPW                                      08-Mar-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
MPW Printing Problems                                                         20-Oct-99
Using the -N9 option in Absoft C/C++                                          04-Feb-00
Attempt to read past end of file runtime error                                14-Aug-01
Automatically setting the application memory size                             25-Aug-00
IMSL documentation                                                            22-Sep-97
Supporting -r8 flag in Fortran77                                              24-Sep-97
F90 cannot find functions in modules                                          02-Oct-97
Using the ABSOFT_RT_FLAGS environment variable                                04-Sep-98
Fortran string lengths                                                        14-Jan-99
adjustable array is not a dummy arguement                                     17-Dec-99
Is there an F90 compiler option for big or little endian?                     22-Sep-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: 7.0

Date: 21-Mar-2002

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 IMSLBLAS library:
    "{AbsoftLibraries}"imsl.lib
        "{AbsoftLibraries}"imslblas.lib
 
      On the Macintosh, the libraries have been compiled with the
      fold to lower case option (-f) and append a trailing underscore
      (-N15) enabled. It will be necessary
      either to:
      a) use a compiler case folding and trailing underscore option
      b) spell the library names in the correct case
      c) use a linker alias file

      Or use the -imsl option on the command line
      as an argument to the linker.
      For example:
      cat imsl.f
             Declare variables
         INTEGER NDEG
         PARAMETER (NDEG=3)
         REAL COEFF(NDEG+1)
         COMPLEX ZERO(NDEG)
         EXTERNAL WRCRN, ZPORC
         ! Set values of COEFF
         !COEFF = (-2.0 4.0 -3.0 1.0)
         DATA COEFF/-2.0, 4.0, -3.0, 1.0/
         CALL ZPORC (NDEG, COEFF, ZERO)
         CALL WRCRN ('The zeros found are', 1, NDEG, ZERO, 1, 0)
         END
         
     f77 imsl.f -f -N15 -tool "{AbsoftLibraries}"imsl.lib
     "{AbsoftLibraries}"imslblas.lib
     f90 imsl.f -YEXT_NAMES="LCS" -YEXT_SFX="_" -tool "{AbsoftLibraries}"imsl.lib
     "{AbsoftLibraries}"imslblas.lib
     or
     77 imsl.f -imsl
     FORTRAN 77 Compiler 7.0, Copyright (c) 1987-2001, Absoft Corp.
     # link warning: file not needed for link -
     HD:MPW70:Libraries:AbsoftLibraries:libf90math.o
     link.out

                                   The zeros found are
                                  1                    2                    3
               ( 1.000, 0.000) ( 1.000, 1.000) ( 1.000,-1.000)
     If you are using Compile, Compile and Launch or
     Create Build Commands then click on the Libraries
     button and put a check in the IMSL MATH/STAT Library
     and click Continue.
         
 
index

Platform: All

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

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
OS version: any

Product Version: Pro Fortran 6.0 and later
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.
          -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.
           To set ABSOFT_RT_FLAGS:
           On Windows:
           Open a command prompt window and enter:
           set ABSOFT_RT_FLAGS=-fileprompt
           On Mac OS 9:
           Open the MPW worksheet and enter:
           set -e ABSOFT_RT_FLAGS -fileprompt
           On Mac OS X(using tcsh):
           Open the terminal and enter:
           setenv ABSOFT_RT_FLAGS -fileprompt
           On Linux(using bash):
           export ABSOFT_RT_FLAGS=-fileprompt
           MRWE applications must be launched from the
           command line so that the ABSOFT_RT_FLAGS
           will be used.

           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-98

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 you 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: All

Problem Details:
OS Version: any
Product Version: any
Date: 14-Jan-99

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: any
Date: 03-Feb-99

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: 08-Mar-99

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: any
Date: 01-Jun-99

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-99

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-99

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-99

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

Problem Details:
OS Version: Any
Product Version: Any
Date: 17-Dec-99

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-99

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: Any
Date: 04-Feb-00

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 you 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: 6.2
Date: 21-Mar-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. 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)
   end do
   end

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

index
Platform: Macintosh

Problem Details:

OS Version: any
Product Version: Pro Fortran v6.2
Date: 27-Mar-00

Q. Which Absoft libraries are optimized for the G4's Velocity Engine?

A. See altivec.html for more information.

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: 09-Jul-01

Q.  I am trying to use the makefile that I created
     using an earlier version of Pro Fortran.  When
     I try to build my mrwe project I get the message:

     ### Duplicate – Unable to Duplicate
    " :MPW:Libraries:AbsoftLibraries:mrwe.o".
    # File not found (OS error –43)

A. Use ACM from the Tools menu to create
      a new makefile.  If you are not able to
      create a new makefile for your project then
      create a small example makefile using
      version 7.0 and use it as a template to
      modify your existing makefile.

index

Platform: All

Problem Details:
OS Version: Any
Product Version: Any
Date: 09-Jul-01

Q. I am receiving this runtime error for no apparent reason:

     Attempt to read past end of file
     Read (unit=5, ...)

A. The Macintosh is the only platform that does not
   automatically add a new line character to the end
   of every line. Open the files that you are trying to
   read, place the cursor at the end of the last line and
   hit Return. Save your files and re-compile. 

index

Platform: All

Problem Details:
OS Version: Any
Product Version: Any
Date: 09-Jul-01

Q. I am trying to use SETPREFS to set preferences
   for All future applications.  However, I get the
   message:

   #error: can't open resource file for:
   :MPW:Libraries:AbsoftLibraries:mrwe.o

A. Go to the Absoft download site:
http://www.absoft.com/download/os9mac7.0downloads.html

index



Problem Details:
Product Version: f77 SDK 5.0


Q. When I click on Compile or compile and launch
from the Tools menu an old version of the Compile
interface launches. If you click on the libraries button
it opens the file picker window instead of the newer
interface that let's you select VAX/VMS, UNIX, IMSL
and LAPACK libraries. A. To fix this problem go to the Absoft FTP site:
ftp://ftp.absoft.com/pub/mac/profortran70/
and download:
FortranSDK50SP2.hqx

index



Problem Details:
OS Version: Macintosh
Product Version: 7.0


Q. Will my old non-Carbon MRWE applications
   work with Pro Fortran version 7.0?

A. Absoft Pro Fortran v7 MRWE applications are Carbon
   compatible. Whatever is not supported in the
   Carbon libraries is not supported in v7 MRWE.
   For more information on porting non-Carbon
   applications see:
   http://developer.apple.com/techpubs/macosx/Carbon/CarbonPortingTools/carbonportingtools.html

   You can use the rest of the Mac toolbox calls that
   are not Carbon compatible with v7.0 provided
   that you create an MPW tool or a plain application
   and have the necessary header files for the desired
   routines from your previous Pro Fortran environment.
   The only way to create non-carbon MRWE applications
   is with your previous version of Absoft Pro Fortran.
   When we decided to go with only supporting Carbon
   applications with Pro Fortran 7.0, we did so to provide
   a way for our users to migrate their code to OS X. We
   completely redid major portions of MRWE to make it
   Carbon compatible and this process included rebuilding
   the include files to contain only Carbon compatible
   information. However, there is no reason you can't use the
   include files from your previous Pro Fortran with version 7.
   You just won't be able to make an MRWE application. 

index



Problem Details:
OS Version: Macintosh
Product Version: 7.0

Q. I am using Absoft Pro Fortran version 7.0
   to create an MRWE application.  Everything
   compiles and executes fine.  However, during
   execution I/O seems to be slower than normal.
   If  I create an MPW tool application the I/O
   speed is as fast as normal.

A. Go to the Absoft download site:
   http://www.absoft.com/download/os9mac7.0downloads.html

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:

   mac7.0tfaq.html#anchor0058

index