Absoft Fortran Compilers

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Absoft Corporation
Industry Software, Programming tools
Founded Birmingham, Michigan (1980)
Founders Peter Jacobson
Wood Lotz
Headquarters Troy, Michigan, United States
Area served
Worldwide
Products Compilers
Debuggers
Integrated development environments
Website Absoft.com

Absoft Fortran Compilers are set of Fortran compilers for Microsoft Windows, Apple Macintosh, and Linux produced by Absoft Corporation.[1] The compilers are source code compatible across platforms.[2]

  • On Mac (PPC or Intel) or Windows platforms that support both 32 bit and 64 bit executables, the user selects which format that the compiler will produce.
  • Linux compilers are available in either 32-bit or 64-bit versions.

All are bundled with a graphical debugger and an integrated development environment. Single thread and parallel multithread support is controlled by the user and includes five optimization levels, OpenMP and other advanced software engineering, and Speed Math levels 0 through 9.

History

Origins: Absoft FORTRAN 77 for MC68000 Systems

The principals of Absoft, Peter Jacobson and Wood Lotz, met at the University of Michigan. Together they started an audio store, Absolute Sound, in 1975. In 1979, they noted the emergence of 16-bit microcomputers and saw a market for high quality Fortran compilers and built a compiler for the Western Digital WD16 microprocessor, which they released commercially in 1980. The name Absolute Software was used at first, but the shortened name Absoft was adopted as a more practical trademark.

Absoft FORTRAN 77 for Macintosh

Absoft’s first major sales success was a $500K contract with Alpha Microsystems for world-wide redistribution rights of a Fortran 77 compiler compatible with their AMOS operating system using a Motorola 68000 series processor. At this point Absoft still consisted of only the two founders, so this success allowed the company to remain independent, add staff, and move to a larger office facility. Additional OEM contracts for Fortran compilers for various Unix variants followed. The founders hired a manager for Absolute Sound which continued its success and expanded to three stores; the chain was sold to a larger Hi-Fi chain in 1988.

MIL-STD-1753 Supplement for FORTRAN 77

MIL-STD-1753 was released by the DoD in 1978 to standardize some features of Industrial Real-Time Fortran as extensions of Fortran 77.[3][4] This extension added IMPLICIT NONE, DO WHILE, END DO to replace CONTINUE as the statement to end DO loops, and intrinsic functions for testing and setting bits. MIL-STD-1753 was absorbed into the ISO/IEC 1990 standard and all Fortran and C compilers honoring 1990 and later ISO/IEC standards are MIL-STD-1753 compliant, and MIL-STD-1753 was dropped as superfluous in 1995.[5]

Absoft FORTRAN 77 for Apple Macintosh and Windows

When Alpha Micro released their MC68000 based microcomputer, Absoft expanded their offerings to Motorola and the Macintosh. The availability of MD68000-based machines made 32-bit Unix viable on small machines, and Absoft offered Fortran compilers for Unix machines by Data General, HP, Sun Microsystems, Tektronix, and others.

In 1985 Microsoft licensed MacFortran, which consisted of a native ANSI FORTRAN 77 compiler and graphical debugger. Shortly thereafter, Microsoft contracted with Absoft to develop Microsoft Fortran for Macintosh, and a Microsoft BASIC compiler that was 100% syntax compatible with the existing Microsoft BASIC interpreter on the Macintosh. Apple was one of the first Mac Fortran customers, with a large order for Drexel University. Variations of the Fortran and BASIC compilers for Macintosh were marketed under the name A/C Fortran and A/C Basic for Amiga. Fortran compilers for Linux/Unix and Microsoft Windows followed.

The Mac and Amiga Fortran compilers included an Integrated development environment (IDE) and profiler. The IDE was added to the Windows compilers and is included in all succeeding Absoft Fortran compilers.

Fortran 90 and the Internet

During the 1990s the broadened product lines and internet enabled Absoft to build a base of resellers world-wide. For a period of time in the mid-1990s Absoft had a full-time representative in California but expanded internet usage eliminated that position and allowed everything to be run out of a single location.

Company milestones

Details on milestones since 2006 are available on the Press Releases page of the Absoft web site.[6]

  • 1980 Absoft founded in Birmingham, Michigan.
  • 1981 Initial compilers for UNIX and Linux platforms included a graphical debugger.
  • 1981 Major contract with Alpha Microsystems.
  • 1983 Release of Absoft's first graphical debugger, for Motorola VersaDOS.
  • 1984 Absoft adds support for the Sky Computers[7] floating point accelerator, SKYFFP-V, on VME (aka Versabus) and S-100 systems.
  • 1985 Release of Absoft Mac Fortran compiler with graphical debugger and IDE.
  • 1986 Release of Absoft Mac BASIC compiler with graphical debugger and IDE.
  • 1986 Release of Amiga Fortran
  • 1987 Release of Linux Fortran as produced for CERN to port ESPACE code to Linux.
  • 1988 Absoft built a new development facility in Rochester Hills, Michigan.
  • 1994 Release of Absoft Fortran for Mac PPC (still available!).
  • 1994 Release of Fortran for Microsoft Windows.
  • 2000 All releases include Fortran 90
  • 2003 First compiler that produces 64-bit executables (Linux).
  • 2004 Release of IBM XL Fortran and XL C/C++ for Mac OS (PPC).
  • 2004 IBM contract to develop the HPC SDK for POWER, POWER4 and POWER5 architectures.[8][9]
  • 2005 64-bit executables on the Macintosh
  • 2005 All releases include Fortran 95.
  • 2005 With version 10.0, the previously bundled Absoft C/C++ compiler was dropped in favor of using universally available C/C++ compilers on each platform directly from the IDE. The profiler and bundled C/C++ compiler was dropped to allow compatibility with system C compilers and linkers.
  • 2006 Max OS/X Intel Pro Fortran released.
  • 2006 IMSL 5.0 for 64-bit Intel/AMD Linux released.
  • 2006 AnCAD[10] MATFOR[11] libraries for Linux and Windows released.
  • 2007 64-bit executables on Microsoft Windows and Mac OS/X. IMSL available for Mac OS/X.
  • 2007 Absoft releases Pro Fortran 10.1 with tuning for multi-core AMD and Xeon processors for both 32-bit and 64-bit executables.
  • 2008 Releases a "Roll" for Clustercorp's Rocks Cluster Distribution that includes Absoft Pro Fortran 10.1 and is compatible with Rocks+ 4.3 and its open-source software stack.
  • 2008 Absoft and Visual Numerics' release IMSL library qualified for Microsoft's HPC platform.[12]
  • 2009 IMSL 6.0 released as part of Pro Fortran 11.
  • 2010 Absoft Pro Fortran 11.1 for HPC Code Development, compatible with Snow Leopard an Xcode 3.2 released.
  • 2010 NVIDIA CUDA support via CAPS's HMPP 2.4 preprocessor released.
  • 2011 Absoft and Bradly Associates announce a bundle of Absoft Pro Fortran and GINO GUI builder. GINO GUI Lite is included with Absoft Pro Fortran purchases or upgrades after April 20, 2011 (available on request for purchases or upgrades up to 60 days prior to that date).[13]
  • 2011 IMSL 7.0 released and bundled with all Absoft Pro Fortran releases.
  • 2012 Sold the Rochester Hills building and moved into an office building in Troy, Michigan.

Absoft Pro Fortran Compilers

Absoft Pro Fortran is available (June 2014) in five versions:

  • Microsoft Windows
  • Mac Intel x86_64 (OS X)
  • Mac PPC (OS X PPC G5)
  • Linux 32-bit Intel x86
  • Linux 64-bit Intel x86_64

The Windows and Mac versions produce either 32-bit or 64-bit executables according to user option. The Linux versions produce either 32-bit or 64-bit code but not both.

Parallel processing and optimization

Screen shot from Absoft IDE, showing the optimization and parallel optimizations available by checking the appropriate box

Absoft Pro Fortan parallelization and optimization options are illustrated by the screen shot of the relevant options page to the right. Absoft Pro Fortran provides five levels of classical optimization and Speed Math options 0 through 9.

Parallelization options include auto parallelization as a check box with graphical indications of degrees of success on the source code in the editor pane as highlighting colors. OpenMP 3.0 is also available as a check box. Speed OpenMP is available as none or levels 0 through 5.

Absoft offers MPI support for MPI (MPICH2 and Open MPI). ScaLAPACK and BLACS[14] is shipped with all platforms. IMSL 7.0, integrated but available as a separate license since the v. 7.0 release in 2011, supplies MPICH2.

Executing programs that use parallelization on machines that do not have Absoft Fortran installed requires inclusion of pthreadVC2.dll for 32-bit executables or, for 64-bit executables, pthreadVC2_64.dll. This library is distributed under the LGPL 2.1.

Fortran 2003 and Fortran 2008 extensions

Fortran 2003 extensions and some Fortran 2008[15] extensions have been implemented as of April 2014 with version 14.0.3.[16]

Fortran 2003

Essentially all Fortran 2003 extensions are available in current versions of Absoft Pro Fortran. Among these are:

  • ISO_C_BINDING and ISO_FORTRAN_ENV
  • ACOS, ASIN, and ATAN generics accept complex arguments
  • COSH, SINH, and TANH generics accept complex arguments
  • MOVE_ALLOC statement
  • GET_COMMAND, GET_COMMAND_ARGUMENT and COMMAND_ARGUMENT_COUNT
  • GET_ENVIRONMENT_VARIABLE
  • FLUSH statement
  • IS_IOSTAT_END and IS_IOSTAT_EOR
  • ENUMERATOR and ENUM
  • NEW_LINE
  • ABSTRACT INTERFACE
  • PROCEDURE pointers
  • enhanced TYPE initialization
  • POINTER bounds remapping
  • recognizes ASYNCHRONOUS I/O specifiers
  • IOMSG=string_variable_for_error_text_string I/O statement specifier
  • IEEE exceptions
  • VALUE statement and declaration attribute

Fortran 2008

The most useful Fortran 2008 extensions are available as of April 2014. More will be available with updates and new releases. Those available now include, but are not limited to:

  • ACOSH, ASINH, ATANH intrinsics
  • HYPOT intrinsic
  • LEADZ and TRAILZ intrinsics
  • POPCNT and POPPAR intrinsics
  • empty CONTAINS section
  • BESSEL_J0, BESSEL_J1, and BESSEL_JN intrinsic functions
  • BESSEL_Y0, BESSEL_Y1, and BESSEL_YN intrinsics
  • BGE, BGT, BLE, and BLT intrinsics
  • DSHIFTL and DSHIFTR intrinsics
  • SHIFTA, SHIFTL and SHIFTR intrinsics
  • MASKL, MASKR and MERGE_BITS intrinsics
  • EFC_SCALED, GAMMA and LOG_GAMMA intrinsics
  • EXECUTE_COMMAND_LINE intrinsic
  • IS_IOSTAT_END and IS_IOSTAT_EOF intrinsics
  • SELECTED_CHAR_KIND intrinsic
  • Allocatable components of derived types (data structures) (partial implementation)
  • Pointer INTENT attribute

Bundled and optional packages

Screen shot from Absoft IDE, showing the libraries that are available for integration into the compiler by checking the appropriate box

All of these packages are included in the IDE and fully integrated into the compiler. Cost is included in purchase price except IMSL and GINO or Winteracter, which are sold separately. Installed packages can be selected for inclusion in a build by checkboxes on a tab on the Project Options menu as illustrated in the screen shot to the right. Some of these are detailed below.

Absoft FX3 graphical debugger

The FX3 graphical debugger is bundled with all Absoft Pro Fortran releases. The FX3 graphical debugger is compatible with the GNU Compiler Collection (gcc) (on Macintosh and Linux), Apple C, Microsoft Visual Studio C/C++ (Windows only), and assembly language on all three platforms.

GINO's and Winteracter's GUI for Fortran

GINO[17] and Winteracter[18][19] are optional third-party APIs for creating complex 2D and 3D graphics and GUI applications using Fortran programs. GINO Lite (32-bit only, some restrictions) is bundled with Absoft Pro Fortran for Windows at no additional charge and is well suited for most users. Absoft offers licenses on all platforms for full versions of GINO or Winteracter that includes 64-bit support, has no limitations, and is integrated with the Absoft Pro Fortran suite.

IMSL libraries

Absoft is the only commercial Fortran vendor to offer IMSL Numerical Libraries bundles with Fortran compilers for Windows, Mac and Linux. Absoft is the only IMSL provider for MacOS. Absoft sells licenses for IMSL and documentation as unlocking codes that allow release of IMSL libraries and documentation from the Absoft installation software. Current releases ship with IMSL 7, the latest release.

UNIX and VAX/VMS compatibility libraries

For use in porting code written on UNIX or VAX systems, libraries of UNIX-specific and VAX-specific Fortran intrinsics are available by checking a box in the Project Options, Libraries/Tools window. Other extensions important for porting from other platforms, such as Cray pointers, are included in Absoft Pro Fortran as part of the compiler.

LAPACK and BLAS

Linear Algebra Package (LAPACK with Basic Linear Algebra Subprograms (BLAS), or BLAS alone, are offered as linkable libraries.

HDF4, HDF5

Hierarchical Data Format libraries HDF4 release 4.2.8 and HDF5 release 1.8.9 can be included by checking a box in the Project Options, Libraries/Tools window.

NetCDF

Network Common Data Form (NetCDF) version 4.3 is available by checking a box.

CUDA and CAPS

NVIDIA manufactures graphics cards that use arrays of Complete Unified Device Architecture (CUDA) graphics processing units. A special version of BLAS can be included in linking libraries by checking a box in the Project Options, Libraries/Tools window.

CAPS is a many-core compiler for using arrays of CUDA cores in a GPU for computation.

PLplot libraries

PLplot 5.9 is available by checking a box on the Project Options Libraries/Tools window. Bindings are available for both single and double precision, from FORTRAN 77 or Fortran 95 or for calling from Microsoft WIN32.

DLL and system calls

For all platforms, Absoft Pro Fortran links from user static or dynamic libraries provided by the system, other compilers, or the user. Absoft Pro Fortran has the capability to generate both static and dynamic libraries.

Command line and C/C++ interoperability

All Absoft compilers can be invoked and fully controlled form the command line. Since Absoft has used the system linker format for all platforms since version 10.0 in 2005, C/C++ object files can be linked with Absoft compiler object files, and integration with the most common C/C++ compilers is done by settings in the Absoft IDE.

The Absoft IDE is hard-wired to use the Absoft Fortran compilers, and is customizable to use a C/C++ compiler that produces object files compatible with the system linker.

Absoft-specific GUI optional features

Absoft-specific GUI options allow use of programs compiled with Absoft Pro Fortran using the mouse and dealing with pop-ups in the same way that windowed GUI applications are used. The use of Absoft-specific GUI features is portable between platforms using Absoft Pro Fortran on each platform, but other compilers and platforms cannot use these features, and Absoft-specific feature code will not be recognized by other compilers.

MRWE

The Microsoft/Macintosh Runtime Window Environment (MRWE)[20] option uses a Fortran 77 overarching main program that calls system GUI libraries to produce a windowed application. The MRWE environment is selected as an executable type in the IDE options for building an application. The default MRWE program maps input and output to a scrolling window similar to a command prompt, but the user retains all the output and can save it as a text file after the program exits. Hooks are provided in the MRWE GUI program to add Windows system calls to enhance the user interface, providing the potential for a full-featured Windows program written entirely in Fortran. MRWE source code is available as a starting point for an all-Fortran Win32 GUI application. MRWE was replaced by AWE in 2012 but is still available as a target environment for legacy programs.

AWE

The Absoft Window Environment (AWE[21]) is provided by selecting the application type in the GUI. When this is done, a file AWE_Preferences.f95 is added to your project. This Fortran file includes small procedures called during initialization that configure AWE by defining stack size for the interactive window, window size and behavior, and the font.

An AWE application can enhance the interactive console window menu items that can be used to execute program units and exit, providing a GUI for an interactive application. The program units can operate using pop-ups, menus, and display windows, so that the traditional console I/O is not used at all, and thus providing an all-Fortran GUI driven application on all three supported platforms.

AWE applications distributed for use without the Absoft compiler need to have libgomp.dll included with 32-bit executable files or libgompx64.dll for 64-bit executable files. These DLLs are released under the Free Software Foundation GNU General Public License (version 3 with GCC Library Exception).[22] The interactive pop-ups, graphics, and spreadsheets are accessed bu a use AWE_Interfaces statement. Distribution of executables with these features requires inclusion of QtCore4.dll and QtGui4.dll. Qt[23][24] is licensed under the LGPL v. 2.1.

Interactive console window

Compiling as an AWE application maps standard input and output to a scrolling window similar to a command prompt, but the user retains all the output and has the option of saving it as a text file after the program exits. The other features, detailed below, are enabled by the use of an AWE application. An interactive AWE application can be written that does not use the interactive console at all, leaving this window available for use as a run log.

Menus, pop-up messages, dialog boxes, and forms

These functions are implemented through calls to procedures in the AWE_Interfaces module. Coding is about the same as would be needed for an interactive command-line window interface.[25]

Built-in graphics

Bar charts, pie charts and X-Y charts are supported through calls to procedures in the AWE_Interfaces module. Defaults provide simplified usage but a great deal of flexibility in output colors, line colors and widths, background, etc. are available if desired.[26]

Three-D plots

Three-d plots including perspective x-y-z plots and contour plots also are supported through calls to procedures in the AWE_Interfaces module for the 2015 release and later.

Spreadsheets

You can create spread sheet windows in AWE to display rank 2 arrays. Subroutines are provided to open, close, read, write, and label spread sheets. Menu commands, described above, can be added to an AWE program to manipulate the data in the spread sheet.[27]

User base

A page on the Absoft web site,[28] lists over 180 corporate and Government license users. Among these are Apple computer, C.E.R.N Laboratories, Lawrence Livermore National Laboratories, NASA Lewis Research Center, Naval Undersea Warfare Center, Naval Research Laboratory, Naval Surface Warfare Center, Raytheon Systems Company, Seagate Technology, Toshiba Corporation, USAF Phillips Lab, Boeing Defense and Space, Canon, Inc., Nikon Corporation, Computer Sciences Corporation, General Motors, Ford Motor Company, Toyota Motor Company, Hewlett Packard, Institute for Defense Analysis, Lockheed Martin, Los Alamos National Laboratories, McDonnell Douglas, MIT Lincoln Laboratories, Mitsubishi Heavy Industries, SRI International, Texas Instruments, U.S. Air Force, Wolfram Research, Advanced Micro Devices, Argonne National Laboratories, AT&T Bell Laboratories, Boeing Military Airplane Company, Brookhaven National Laboratory, C.S.Draper Laboratories, David Sarnoff Research Center, GE Aerospace, IBM T.J. Watson Research Center, Intel Corporation, Jet Propulsion Laboratory, Lawrence Berkeley Laboratories, Loral Space & Range Systems, Mitre Corporation, NASA Langley Research Center, and many others.

Gallery

References

  1. Absoft Corporation web site
  2. Absoft Fortran Language Reference, page 1
  3. FORTRAN 77 standard: ANSI X3.9 (April 3, 1978)[1].
  4. MIL-STD-1753, November 9, 1978
  5. MIL-STD-1753 Notice 1, March 25, 1996 on EverySpec.com
  6. Absoft Press Releases page
  7. Sky Computers web site
  8. HPC Software Developers Kit for Linux on IBM POWER processor-based systems (see Absoft logo on lower left of last page)[2]
  9. Absoft to Provide High Performance Computing Software Developers Kit for IBM Linux on POWER Clusters and Servers [3]
  10. AnCAD web site
  11. About MATFOR page on the AnCAD web site
  12. Absoft press release, July 15, 2008
  13. Absoft press release, May 20, 2011
  14. BLACS (Basic Linear Algebra Communication Subprograms) web site
  15. Modern Fortran Explained (2011), Michael Metcalf, John Reid, and Malcolm Cohen, ISBN 978-0-19-960142-4
  16. Absoft page on compiler features; click on 'New in Pro Fortran 2014" and 'F2008 Supported Features' to expand text.[4]
  17. GINO web site
  18. Winteracter web site
  19. Absoft page on Winteracter
  20. Separate MRWE manual in Absoft Pro Fortran included documentation, provided as a PDF file.
  21. Absoft Pro Fortran 14.0 User Guide, Chapter 8
  22. GNU Public License, Version 3
  23. Qt Creator web site on Sourceforge [5].
  24. Qt x64 web site on Sourceforge [6].
  25. Absoft Pro Fortran 14.0 User Guide, Chapter 8, section Awe Menus.
  26. Absoft Pro Fortran 14.0 User Guide, Chapter 8, section Plots.
  27. Absoft Pro Fortran 14.0 User Guide, Chapter 8, section Spread Sheets
  28. Absoft page of Selected Users

External links