Absoft Fortran Compilers
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 the 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
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
andISO_FORTRAN_ENV
-
ACOS
,ASIN
, andATAN
generics accept complex arguments -
COSH
,SINH
, andTANH
generics accept complex arguments -
MOVE_ALLOC
statement -
GET_COMMAND
,GET_COMMAND_ARGUMENT
andCOMMAND_ARGUMENT_COUNT
-
GET_ENVIRONMENT_VARIABLE
-
FLUSH
statement -
IS_IOSTAT_END
andIS_IOSTAT_EOR
-
ENUMERATOR
andENUM
-
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
andTRAILZ
intrinsics -
POPCNT
andPOPPAR
intrinsics - empty
CONTAINS
section -
BESSEL_J0
,BESSEL_J1
, andBESSEL_JN
intrinsic functions -
BESSEL_Y0
,BESSEL_Y1
, andBESSEL_YN
intrinsics -
BGE
,BGT
,BLE
, andBLT
intrinsics -
DSHIFTL
andDSHIFTR
intrinsics -
SHIFTA
,SHIFTL
andSHIFTR
intrinsics -
MASKL
,MASKR
andMERGE_BITS
intrinsics -
EFC_SCALED
,GAMMA
andLOG_GAMMA
intrinsics -
EXECUTE_COMMAND_LINE
intrinsic -
IS_IOSTAT_END
andIS_IOSTAT_EOF
intrinsics -
SELECTED_CHAR_KIND
intrinsic - Allocatable components of derived types (data structures) (partial implementation)
- Pointer
INTENT
attribute
Bundled and optional packages
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 xoxes, 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]
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
-
Example of plot using AWE
-
Example of simple plot using PLplot
-
Example of simple fishnet plot using PLplot
References
- ↑ Absoft Corporation web site
- ↑ Absoft Fortran Language Reference, page 1
- ↑ FORTRAN 77 standard: ANSI X3.9 (April 3, 1978).
- ↑ MIL-STD-1753, November 9, 1978
- ↑ MIL-STD-1753 Notice 1, March 25, 1996 on EverySpec.com
- ↑ Absoft Press Releases page
- ↑ Sky Computers web site
- ↑ HPC Software Developers Kit for Linux on IBM POWER processor-based systems (see Absoft logo on lower left of last page)
- ↑ Absoft to Provide High Performance Computing Software Developers Kit for IBM Linux on POWER Clusters and Servers
- ↑ AnCAD web site
- ↑ About MATFOR page on the AnCAD web site
- ↑ Absoft press release, July 15, 2008
- ↑ Absoft press release, May 20, 2011
- ↑ BLACS (Basic Linear Algebra Communication Subprograms) web site
- ↑ Modern Fortran Explained (2011), Michael Metcalf, John Reid, and Malcolm Cohen, ISBN 978-0-19-960142-4
- ↑ Absoft page on compiler features; click on 'New in Pro Fortran 2014" and 'F2008 Supported Features' to expand text.
- ↑ GINO web site
- ↑ Winteracter web site
- ↑ Absoft page on Winteracter
- ↑ Separate MRWE manual in Absoft Pro Fortran included documentation, provided as a PDF file.
- ↑ Absoft Pro Fortran 14.0 User Guide, Chapter 8
- ↑ GNU Public License, Version 3
- ↑ Qt Creator web site on Sourceforge .
- ↑ Qt x64 web site on Sourceforge .
- ↑ Absoft Pro Fortran 14.0 User Guide, Chapter 8, section Awe Menus.
- ↑ Absoft Pro Fortran 14.0 User Guide, Chapter 8, section Plots.
- ↑ Absoft Pro Fortran 14.0 User Guide, Chapter 8, section Spread Sheets
- ↑ Absoft page of Selected Users
External links
- Absoft Documentation page, with links to manuals for current Absoft compilers and debuggers
- Absoft Pro Fortran 14.0 for Windows manual for the IDE and code editor, and for use of AWE; links to manuals for Mac and Linux available from Documentation page.
- Absoft manual for the FX3 graphical debugger; links to manuals for Mac and Linux available from Documentation page.
- PLplot home page on Sourceforge.
- Rogue Wave Software home page; Rogue Wave acquired Visual Numerics in 2009.
- LGPL version 2.1
- GPL version 3