Compaq Fortran 77 Release Notes for OpenVMS VAX Systems
 *HyperReader
  Next     Previous     Contents     Examples     Tables     Close     Help  
  1.4  Known Problems and Issues

  This section describes known problems and restrictions in
  this version of Compaq Fortran 77 and provides additional
  information on important issues.

  1.4.1  Required Post-Installation Tasks on VMScluster
  If Compaq Fortran 77 is installed on a VMScluster system,
  it is critically important that the post-installation tasks de-
  scribed in Digital Fortran Installation Guide for OpenVMS
  VAX Systems    be performed.  In particular, the command
  procedure SYS$UPDATE:FORTRAN$POST_INSTALL must
  be executed on all nodes of the cluster immediately after in-
  stallation; this command file ensures that the latest installed
  versions of Run-Time Library images are used on all clus-
  ter nodes.  Failure to follow this step can result in programs
  getting the error SHRIDMISMAT, "ident mismatch with
  shareable image" or other run-time errors.  The installation
  procedure also warns the installer to perform this step.

  1.4.2  Routines Called With Omitted Arguments
  The new optimization for dummy arguments (see

  Section 2.8.13) may cause problems for applications which
  contain Fortran routines that can be called with some ar-
  guments omitted.  Though omission of arguments is not
  supported by Digital Fortran, many applications have been
  written which took advantage of knowledge that the compiled
  code did not access the argument list for dummy arguments,
  other than those of type CHARACTER or used in adjustable
  array bounds expressions, until the argument was actually
  used during execution of the routine.  This assumption is no
  longer valid, and these applications may now fail, typically
  with an access violation.

  To disable the optimization on dummy arguments, specify the
  /ASSUME=DUMMY_ALIASES command line or OPTIONS
  statement qualifier.  An alternative is to declare the spe-
  cific dummy arguments to be VOLATILE or to use them
  as arguments to the %LOC built-in function.  (Most exist-
  ing subroutines which can be called with omitted arguments
  use %LOC to test for a zero address; these will not require
  changes.  However, if the test for omission is made solely
  on the basis of argument count or some other value, one of
  the above changes is necessary.)  For the language require-
  ments regarding Actual Argument and Dummy Argument
  Association, see theDEC Fortran Language Reference Manual       .

  1.4.3  Compiler Bugchecks with /VECTOR
  There remain several known cases where the compiler fails
  with a bugcheck during the SCHED or BLOCK_SCHED
  phases for programs compiled with the /VECTOR command
  qualifier.  If you encounter such a case, workarounds include
  compiling just the failing routine /NOVECTOR and inserting

  NOVECTOR directives before individual loops in the failing
  routine.  It is not necessary to compile the entire application
  /NOVECTOR to work around this problem.

  1.4.4  Linker OUTSIMG Error When COLLECT Linker
         Option Used
  The updated FORRTL.EXE image provided with Digital

  Fortran includes message section definitions so that the new
  messages relating to the non-native data in I/O feature can
  be displayed if errors occur; these messages are not yet in-
  cluded in the standard message file provided by OpenVMS
  VAX.

  There is one known case where these message sections cre-
  ate a problem during linking.  If the user application includes
  object modules created by the OpenVMS MESSAGE compiler
  and uses the linker COLLECT options file statement to collect
  the message section PSECTs into an image cluster, the linker
  may report an error of the form:

  %LINK-E-OUTSIMG,  attempted  store  location  %X0000B800  is  outside
     image  binary  (%X00000000  to  %X00000000)
     in  psect  MSG$AAAAAAAAAAA
  -LINK-E-NOIMGFIL,  image  file  not  created

  This error is caused by the linker attempting to collect both
  the user message PSECTs and the PSECTS in FORRTL into
  the same image cluster, which is invalid.

  To avoid this problem, link explicitly against FORTRAN$FORRTL-
  VMS.EXE. The application will still run properly, even
  against the Digital Fortran supplied FORRTL, but the linker
  will not complain.

  This problem is resolved in OpenVMS VAX V6.1.

  1.4.5  Recursive Character Functions Not Supported
  The compiler does not currently allow character functions to
  be referenced recursively.

  1.4.6  Restrictions on Use of BLAS Routines
  In some cases certain uses of the BLAS intrinsic routines can
  cause the compiler to fail with a bugcheck.  The situations
  where this has been observed are:

  *   Combining use of an inlined BLAS routine with a non-
      inlined intrinsic or external routine in an expression, for
      example:

            T  =  FUNC(X)  +  DDOT(NT2,Z(J,  J),  I1,D(  J),I1)

  *   Use of an inlined BLAS routine in an implied DO loop in
      an I/O statement, for example:

            write(  12,3000)  ((sdot(3,x(1,i),1,f(1,ia  ),1),i=1,3),
           *                    ia=iaanf,iaend)

  A workaround for both cases is to compile with /BLAS=NOINLNE.

  In the first case another workaround is to separate the
  expression into two separate assignments as follows:

        T1  =  FUNC(X)
        T  =  T1  +  DDOT(NT2,Z(J,  J),  I1,D(  J),I1))

  Next     Previous     Contents     Examples     Tables     Close     Help     ~Off