From: Steve Lionel [Steve.Lionel@COMPAQ.COM] Sent: Friday, August 04, 2000 1:06 PM To: Info-VAX@Mvb.Saic.Com Subject: Updated FORRTL_TV - Translated VAX Fortran RTL As some of you are aware, there has been a problem with VAX Fortran programs translated by DECmigrate (VAX) and run on Alpha, where if you install OpenVMS Alpha 7.2 or Compaq Fortran 7.2 (or later), the translated programs stop working (typically, they get an ACCVIO.) The reason this occurs is that the translated VAX Fortran RTL (FORRTL_TV), as supplied by OpenVMS, is not a simple translation of the VAX RTL. Instead, an attempt was made to support mixed translated and native I/O on the same Fortran unit. To use this, you would have to have a VAX Fortran shareable image which you then brought to Alpha and translated, wrote some native Alpha Fortran code which called the translated shareable image, and attempted to do I/O to the same Fortran LUN in both the native and translated code. If you simply had a VAX executable which you translated, you would not have used this feature. This must have seemed like a good idea at the time, but the engineers who implemented it (they worked for the Alpha Migration group, not Fortran), decided to take a short cut. Rather than turning the VAX RTL I/O code into "jackets" for calls into the public entry points of the native RTL, they had the translated RTL share the native RTL's internal data structures. This worked as long as the native RTL didn't change the layout or use of its internal structures, but with the added support of 64-bit addressing, these structures changed significantly and the translated RTL was unable to deal with this. The solution I have implemented is to simply translate the latest version of the VAX Fortran RTL, eliminating support for the cross-architecture I/O. An added advantage of this approach is that the new translated RTL is compatible with VAX Fortran V6 and later, and supports the non-native data in I/O feature. Note however that the math library has NOT been updated to include new routines that the V6 compiler used, so you would have to compile with /MATH_LIBRARY=V5. A kit to install the updated translated FORRTL_TV is available at ftp://ftp.compaq.com/pub/products/fortran/OpenVMS/FORRTL_TV-T0100-1.zipexe RUN this to unpack and then install as follows: $ PRODUCT INSTALL FORRTL_TV /SOURCE=[]/HELP OpenVMS Alpha 7.1-2 is the minimum version supported. (If someone needs support for an earlier version, let me know.) The files updated are FORRTL_D56_TV.EXE and FORRTL.IIF, both in SYS$LIBRARY:. If you have worked around the problem by using an older copy of DEC$FORRTL.EXE, the Alpha Fortran RTL, you no longer need to do that, as this translated image doesn't reference DEC$FORRTL.EXE If you try this, please let me know, by mail, the results of your testing. It seemed to work ok for me - I ran it through a number of the VAX Fortran test suites. If enough people seem satisfied with it, I'll ask OpenVMS Engineering to include it in future releases (and to create a remedial kit for it.) Lastly, if you DO use the mixed-architecture I/O feature, I'd be interested in hearing from you and seeing a description of your application. I can pretty much guarantee that we will NEVER restore the mixed-architecture I/O feature, but there are reasonable workarounds. Steve Lionel (mailto:Steve.Lionel@compaq.com) Fortran Engineering Compaq Computer Corporation, Nashua NH Compaq Fortran web site: http://www.compaq.com/fortran