HOME

TheInfoList



OR:

Silverfrost FTN95: Fortran for Windows is a
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
for the Fortran
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
for computers running
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
. It generates
executable program In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file ...
s from human-written
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
for native
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called i386) is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the 80386 microprocessor in 1985. IA-32 is the first incarnation of ...
Win32 The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
,
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mod ...
(from version 8.00) and for Microsoft's .NET platform. There is a free-of-charge Personal edition, which generates programs which briefly display a banner, and Commercial and Academic editions.


CHECKMATE

FTN95, like its predecessor FTN77, has strong run-time checking options, collectively called CHECKMATE. Compiler switches can turn on various levels of run-time checking. These include array bound checks, constant modification, DO LOOP modification, argument checking and undefined variable use. Program run-times are increased when checking is used.


ClearWin+

ClearWin+ is a library built into the FTN95 run-time system. It offers an easy to use interface to the Windows
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
and is not available when producing .NET code. It makes use of a set of format codes and call-backs. The format codes resemble C style
printf The printf format string is a control parameter used by a class of functions in the input/output libraries of C and many other programming languages. The string is written in a simple template language: characters are usually copied literal ...
codes. ClearWin+ is used to power the UI for Simfit. From FTN95 version 7.00 a 64-bit version of ClearWin+ is included. This can be used with existing, free, 64-bit compilers. A simple ClearWin+ program: INTEGER i,winio@ EXTERNAL func i=winio@('Press this to see what happens &') i=winio@('%^bt RESS,func) END c---Function to do something--- INTEGER function func() func=1 END A full GUI interface with windows, menus, popup dialog boxes, list boxes, edit boxes, bitmaps, toolbars, etc can be developed using the available format codes. Applications written using ClearWin+ can also contain graphics regions, enabling charts and graphs to be included.
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
graphics can also be included. A simple ClearWin+ program that demonstrates two dimensional graph plotting using ClearWin+: USE clrwin INTEGER, PARAMETER :: n=101 REAL*8 x(n), y(n), th1, a, dth1 ! Generate x-y data arrays a = 1.d0 th1 = 0.d0 dth1 = 4.d0*ATAN(1.d0)/25.d0 DO i = 1, n, 1 x(i) = a * SQRT(th1) * COS(th1) y(i) = a * SQRT(th1) * SIN(th1) th1 = th1 + dth1 END DO ! Configure plot CALL WINOP@('%pl rame,etched,gridlines,colour=blue,width=2,symbol=5) CALL WINOP@('%pl moothing=4,x_array,margin=100) CALL WINOP@('%pl itle="Fermat''s spiral") ! Set window font (%fn), text size (%ts), and set to bold (%bf) i = WINIO@('%fn ahomats%bf&',1.5d0) ! Create a 800 x 800 graphics region, and plot curve defined by data in x and y i = WINIO@('%pl',800,800,n,x,y) END


SDBG/SDBG64

FTN95 can add extra debugging information to the EXE files that it produces. This facility is made available when the user requests it with the appropriate compiler options (/debug, /check, /undef ). The SDBG/SDBG64 debuggers are fast and capable tools that are easier to learn and use than the much more versatile but resource-hungry Visual Studio tools.


Visual Studio

FTN95 was the first Fortran compiler capable of producing code for Microsoft .NET. In addition plug-ins are available that allows FTN95 programs to be written, compiled and debugged inside
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platfor ...
. The plug-ins fully support Win32 and .NET code generation. The current release has plug-ins for
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platfor ...
from 2008 to 2019. There is currently no plug-in for Visual Studio 2022. The FTN95 plug-ins can be installed into Visual Studio Community Edition.


Plato

Plato is the
Integrated Development Environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
supplied with FTN95. It can edit, compile and debug programs in a manner similar to the Visual Studio plug-ins. Although Plato specialises in Fortran it is not limited to it and can be tuned to work with any compiler. It is designed to stand-alone from FTN95.


Salford Fortran

FTN95 was developed by Salford Software Limited, a company owned by
University of Salford , caption = Coat of ArmsUniversity of Salford , mottoeng = "Let us seek higher things" , established = 1850 - Pendleton Mechanics Institute 1896 – Royal Technical Institute, Salford 1967 – gained ...
, and is the successor to their Fortran 77 compiler FTN77. In August 2004 Salford Software relinquished control of FTN95 to Silverfrost Limited. Silverfrost FTN95 is often referred to as Salford FTN95 because of its University of Salford pedigree.


Using FTN95 with third party DLLs

FTN95 programs can be linked to dynamic libraries generated by other Fortran compilers such as gFortran and Intel Fortran. The calling conventions among these compilers are quite similar, and the Silverfrost linkers (Slink/Slink64) can directly link users' object files to routines in one or more Windows dynamic libraries (DLLs), such as the Intel MKL DLLs, without the need for an import library.


Fortran 2003 and 2008

Features from the later Fortran 2003 and 2008 standards are available with FTN95, including: Fortran 2003: * Standard intrinsics in initialisation statements. * NINT, AINT, ANINT and TRANSPOSE allowed in initialisation statements. * "Allocate on assignment” * ISO_C_BINDING. * Allocate on assignment for PACK and RESHAPE intrinsics. * The Fortran 2003 Procedure pointers and type-bound procedures: (1) Type bound procedures (defined within TYPE CONTAINS). (2) Type procedure pointers (defined as members of a TYPE). (3) General procedure pointers (not defined with a TYPE). * STREAM input and output. * Intrinsic MOVE_ALLOC. * INTENT for POINTER arguments * I/O FLUSH statement. * I/O routines, keyword argument IOMSG. * Intrinsic GET_ENVIRONMENT_VARIABLE. * ASSOCIATE construct. * Parameterised derived types. * PROTECTED attribute for module variables. Fortran 2008: * Intrinsic EXECUTE_COMMAND_LINE. * ISO_FORTRAN_ENV with intrinsics COMPILER_VERSION() and COMPILER_OPTIONS(). * Complex intrinsics such as ACOS, ACOSH, COSH, and TAN. * Real intrinsics ACOSH, ASINH, and ATANH. * DO CONCURRENT construct. * Intrinsic ATAN(Y,X). * z%re and z%im for complex z. * Intrinsic HYPOT(X,Y) * Intrinsic FINDLOC. * ISO_C_BINDING, C_SIZEOF intrinsic. * Intrinsic STORAGE_SIZE. * BLOCK construct. * BACK argument for MINLOC, MAXLOX and FINDLOCK.


References


External links

* {{Official website, https://www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.aspx}
Silverfrost user forum
Fortran compilers Programming tools for Windows