Tel: +44(0)1865 300 579
Fax: +44(0)1865 300 232
![]() |
![]() |
|
![]() |
Please refer to the prices page for information about Lahey compilers that are under development and still supported.
For LF Enterprise V7.1 only and no longer supported.
Fortran for .NET Language System
Fortran for .NET allows you to create applications for the Microsoft .NET Framework. Lahey and Fujitsu have combined advanced compiler technology with support for Forms designers and Web Services to enable Fortran organizations to develop .NET applications with Fortran as easily as with other Microsoft .NET languages. Fortran for .NET consists of a Fortran compiler and associated tools designed to help you create applications that run in the .NET Framework.
The Fortran for .NET language system is included in LF Fortran v7.1 Enterprise and Academic editions.
Fortran for .NET compiler
The Fortran for .NET compiler targets Microsoft's .NET Framework. The compiler does not directly generate processor dependent object code; rather, it generates Microsoft Intermediate Language (MSIL) code assemblies and code modules. The code in an assembly can be executed on any computer that supports an execution engine called the Common Language Runtime (CLR), such as the .NET Framework.
The CLR does much more than provide the ability to operate on different operating systems, it also provides the basis for interoperability between different .NET languages, interlanguage debugging, versioning, and application deployment, among other things.
Applications that are targeted for the CLR are called managed applications, or managed code. Managed applications are required to be type safe and to present standardized interfaces, so that interoperability and security requirements can be met. Because some older Fortran features (such as COMMON and EQUIVALENCE) can violate the CLRs rules for type safety and interfaces, certain restrictions had to be placed on .NET applications that do not allow 100% compatibility with Fortran standards. For details on restrictions, see Restrictions on Fortran for .NET Code.
Fortran for .NET language
Tables in this section identify language support in the following categories:
|
Intrinsic Data Types |
Supported? |
|
INTEGER(KIND=1) |
Yes |
|
(KIND=2) |
Yes |
|
(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
UINTEGER(KIND=1) |
Yes |
|
(KIND=2) |
Yes |
|
(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
REAL(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
(KIND=16) |
No28 |
|
COMPLEX(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
(KIND=16) |
No28 |
|
LOGICAL(KIND=1) |
Yes |
|
(KIND=2) |
Yes (treated as KIND=1) |
|
(KIND=4) |
Yes (treated as KIND=1) |
|
(KIND=8) |
Yes (treated as KIND=1) |
|
CHARACTER(KIND=1) |
Yes |
|
Derived type |
Yes |
|
Literal Constants |
Supported? |
|
INTEGER(KIND=1) |
Yes |
|
(KIND=2) |
Yes |
|
(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
UINTEGER(KIND=1) |
Yes |
|
(KIND=2) |
Yes |
|
(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
REAL(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
(KIND=16) |
No28 |
|
COMPLEX(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
(KIND=16) |
No28 |
|
LOGICAL(KIND=1) |
Yes |
|
(KIND=2) |
Yes (treated as KIND=1) |
|
(KIND=4) |
Yes (treated as KIND=1) |
|
(KIND=8) |
Yes (treated as KIND=1) |
|
CHARACTER(KIND=1) |
Yes |
|
Binary |
Yes |
|
Octal |
Yes |
|
Hexadecimal |
Yes |
|
Supported? |
|
|
Array component |
Yes |
|
ALLOCATABLE component |
Yes |
|
POINTER component |
Yes |
|
Component has derived type |
Yes |
|
default initialize |
Yes14 |
|
Structure Constructors |
Yes42 |
|
Operator |
Supported? |
|
+,-,*,/ |
Yes |
|
** |
Yes |
|
==,/= |
Yes |
|
>,>=,<,<= |
Yes |
|
.NOT. |
Yes |
|
.OR.,.AND. |
Yes |
|
.EQV.,.NEQV. |
Yes |
|
Arrays1 |
Supported? |
|
Explicit shape arrays |
Yes |
|
Allocatable Arrays |
Yes |
|
Array Pointers |
Yes |
|
Assumed-Shape Arrays |
Yes |
|
Assumed-Size Arrays |
Yes |
|
Automatic and Adjustable Arrays |
Yes |
|
Whole array |
Yes |
|
Subscript Triplets |
Yes |
|
Vector Subscripts |
Yes |
|
Array Constructors |
Yes41 |
|
Program Unit |
Supported? |
|
Main Program |
Yes |
|
Modules |
Yes |
|
Module Procedures |
Yes |
|
Using Modules |
Yes |
|
Block Data Program Units |
Yes |
|
Function Subprogram |
Yes |
|
Subroutine Subprogram |
Yes |
|
Recursive Procedures |
Yes |
|
Pure Procedures |
Yes |
|
Elemental Procedures |
|
|
Internal procedure |
No29 |
|
Arguments |
Supported? |
|
Intent |
Yes |
|
Keywords |
Yes |
|
Optional |
Yes |
|
Dummy Procedures |
No30 |
|
Procedure Arguments |
No31 |
|
Alternate Returns |
No32 |
|
Call by value |
Yes |
|
Call by address |
Yes |
|
Interface Block |
Supported? |
|
Generic Names |
Yes |
|
Defined Operations |
Yes |
|
Defined Assignment |
Yes |
|
Program Unit Declaration |
Supported? |
|
PROGRAM Statement |
Yes |
|
FUNCTION Statement |
Yes |
|
SUBROUTINE Statement |
Yes |
|
ENTRY Statement |
No33 |
|
MODULE Statement |
Yes |
|
END MODULE Statement |
Yes |
|
BLOCK DATA Statement |
Yes |
|
END BLOCK DATA Statement |
Yes |
|
CONTAINS Statement |
Yes |
|
Variable Type Declaration |
Supported? |
|
INTEGER Statement |
Yes |
|
UINTEGER Statement |
Yes |
|
REAL Statement |
Yes |
|
DOUBLE PRECISION Statement |
Yes |
|
COMPLEX Statement |
Yes |
|
LOGICAL Statement |
Yes |
|
CHARACTER Statement |
Yes |
|
TYPE Statement |
Yes |
|
BYTE Statement |
Yes |
|
RECORD Statement |
Yes |
|
CLASS statement (F200x) |
Yes |
|
Initialization |
Yes (with some restriction) |
|
Attribute Declaration |
Supported? |
|
PARAMETER Statement |
Yes |
|
PUBLIC Statement |
Yes |
|
PRIVATE Statement |
Yes |
|
DIMENSION Statement |
Yes |
|
ALLOCATABLE Statement |
Yes |
|
SAVE Statement |
Yes |
|
INTENT Statement |
Yes |
|
OPTIONAL Statement |
Yes |
|
POINTER Statement |
Yes |
|
TARGET Statement |
Yes |
|
INTRINSIC Statement |
Yes |
|
EXTERNAL Statement |
Yes |
|
AUTOMATIC Statement |
Yes |
|
STATIC Statement |
Yes |
|
VOLATILE Statement |
No33 |
|
VALUE Statement |
Yes |
|
CHANGEENTRY Statement |
No33 |
|
DLL_EXPORT Statement |
No |
|
DLL_IMPORT Statement |
Yes13 |
|
REFERENCE Statement |
Yes |
|
Other Declarations |
Supported? |
|
DATA Statement |
Yes6 |
|
COMMON Statement |
Yes2 |
|
EQUIVALENCE Statement |
Yes4 |
|
IMPLICIT Statement |
Yes |
|
NAMELIST Statement |
No33 |
|
CRAY POINTER Statement |
No33 |
|
TYPE Statement |
Yes |
|
SEQUENCE Statement |
Yes |
|
END TYPE Statement |
Yes |
|
STRUCTURE Statement |
Yes |
|
END STRUCTURE Statement |
Yes |
|
UNION Statement |
No33 |
|
END UNION Statement |
No33 |
|
MAP Statement |
No33 |
|
END MAP Statement |
No33 |
|
INTERFACE Statement |
Yes |
|
END INTERFACE Statement |
Yes |
|
MODULE PROCEDURE Statement |
Yes |
|
USE Statement |
Yes |
|
FORMAT Statement |
Yes |
|
Statement Function Statement24 |
Yes |
|
PROCEDURE statement (F2000) |
Yes |
|
GENERIC statement (F2000) |
Yes |
|
PROPERTY statement (Fj extension) |
Yes |
|
INITIAL statement (Fj extension) |
Yes |
|
TYPEALIAS statement (F2000) |
Yes |
|
Constructs |
Supported? |
|
IF Construct |
Yes |
|
IF THEN Statement |
Yes |
|
ELSE IF Statement |
Yes |
|
ELSE Statement |
Yes |
|
END IF Statement |
Yes |
|
CASE Construct |
Yes |
|
SELECT CASE Statement |
Yes |
|
CASE Statement |
Yes |
|
END SELECT Statement |
Yes |
|
DO Construct |
Yes |
|
DO Statement |
Yes43 |
|
END DO Statement |
Yes |
|
CYCLE Statement |
Yes |
|
EXIT Statement |
Yes |
|
CONTINUE Statement |
Yes |
|
FORALL Construct |
No33 |
|
FORALL Construct Statement |
No33 |
|
END FORALL Statement |
No33 |
|
FORALL Statement |
No33 |
|
WHERE Construct |
|
|
WHERE Construct Statement |
|
|
ELSEWHERE Statement |
Yes |
|
END WHERE Statement |
Yes |
|
WHERE Statement |
|
|
IF Statement |
Yes |
|
Arithmetic IF Statement |
Yes |
|
Assignment, Allocate |
Supported? |
|
Assignment Statement |
Yes |
|
Pointer Assignment Statement |
Yes38 |
|
ALLOCATE Statement |
Yes |
|
DEALLOCATE Statement |
Yes |
|
NULLIFY Statement |
Yes |
|
Control |
Supported? |
|
END Statement |
Yes |
|
END FUNCTION Statement |
Yes |
|
END PROGRAM Statement |
Yes |
|
END SUBROUTINE Statement |
Yes |
|
CALL Statement |
Yes |
|
GO TO Statement |
Yes |
|
RETURN Statement |
Yes |
|
STOP Statement |
Yes |
|
PAUSE Statement |
Yes |
|
Computed GO TO Statement |
Yes |
|
ASSIGN Statement |
Yes |
|
Assigned GO TO Statement |
Yes |
|
I/O Statements |
Supported? |
|
OPEN Statement |
Yes |
|
CLOSE Statement |
Yes |
|
READ Statement |
|
|
PRINT Statement |
|
|
WRITE Statement |
|
|
BACKSPACE Statement |
Yes |
|
ENDFILE Statement |
Yes |
|
REWIND Statement |
Yes |
|
INQUIRE Statement |
Yes |
|
Class definition |
Supported? |
|
static field |
Yes |
|
instance field |
Yes |
|
static method |
Yes |
|
instance method |
Yes |
|
method override |
Yes |
|
method overloaded |
Yes |
|
static property |
Yes |
|
instance property |
Yes |
|
property override |
Yes |
|
static constructor |
Yes |
|
instance constructor |
Yes |
|
inheritance |
Yes |
|
use interface |
Yes |
|
struct define |
Yes |
|
Class reference |
Supported? |
|
static field |
Yes |
|
instance field |
Yes |
|
static method |
Yes |
|
instance method |
Yes |
|
static property |
Yes |
|
instance property |
Yes |
|
instance constructor |
Yes |
|
base access |
Yes |
|
this access |
Yes |
|
Access modifier |
Supported? |
|
public |
Yes |
|
family(protected) |
Yes |
|
famorassem |
Yes |
|
assembly(internal) (Fortran PRIVATE) |
Yes |
|
private |
No |
|
Delegate |
Supported? |
|
definition |
Yes |
|
instantiation |
Yes |
|
multi-cast |
Yes |
|
Enums |
Supported? |
|
definition |
Yes |
|
operation |
Yes |
|
Namespaces |
Supported? |
|
define |
Yes |
|
using |
Yes |
|
typealias |
Yes |
|
Exception Handling |
Supported? |
|
throw |
Yes |
|
try-catch-finally |
Yes |
|
Others |
Supported? |
|
custom attributes |
Yes |
|
creating .netmodule |
Yes |
|
addmodule |
Yes |
|
invoke unmanaged dll |
Yes13 |
|
multiple files |
Yes |
|
optimization |
No |
|
Function |
Supported? |
|
INT |
Yes |
|
INT4 |
No |
|
JFIX |
No |
|
INT1 |
No |
|
INT2 |
No |
|
REAL |
Yes |
|
DBLE |
Yes |
|
QEXT |
No34 |
|
CMPLX |
Yes |
|
DCMPLX |
Yes |
|
QCMPLX |
No34 |
|
AINT |
Yes |
|
ANINT |
Yes |
|
NINT |
Yes |
|
I2NINT |
No |
|
ABS |
Yes |
|
MOD |
Yes |
|
SIGN |
Yes |
|
DIM |
Yes |
|
DPROD |
Yes |
|
MAX |
Yes |
|
MIN |
Yes |
|
AIMAG |
Yes |
|
CONJG |
Yes |
|
MODULO |
Yes |
|
CEILING |
Yes |
|
FLOOR |
Yes |
|
EXPONENT |
Yes |
|
FRACTION |
Yes |
|
NEAREST |
No34 |
|
RRSPACING |
Yes |
|
SPACING |
Yes |
|
SCALE |
Yes |
|
SET_EXPONENT |
Yes |
|
MERGE |
No34 |
|
LOGICAL |
Yes |
|
UINT |
Yes |
|
Function |
Supported? |
|
SQRT |
Yes |
|
CBRT |
Yes |
|
EXP |
Yes |
|
EXP2 |
Yes |
|
EXP10 |
Yes |
|
LOG |
Yes |
|
LOG10 |
Yes |
|
LOG2 |
Yes |
|
SIN |
Yes |
|
SIND |
Yes |
|
SINQ |
Yes |
|
COS |
Yes |
|
COSD |
Yes |
|
COSQ |
Yes |
|
TAN |
Yes |
|
TAND |
Yes |
|
TANQ |
Yes |
|
COTAN |
Yes |
|
COTAND |
Yes |
|
COTANQ |
Yes |
|
ASIN |
Yes |
|
ASIND |
Yes |
|
ASINQ |
Yes |
|
ACOS |
Yes |
|
ACOSD |
Yes |
|
ACOSQ |
Yes |
|
ATAN |
Yes |
|
ATAN2 |
Yes |
|
ATAND |
Yes |
|
ATAN2D |
Yes |
|
ATANQ |
Yes |
|
ATAN2Q |
Yes |
|
SINH |
Yes |
|
COSH |
Yes |
|
TANH |
Yes |
|
ERF |
Yes |
|
ERFC |
Yes |
|
GAMMA |
Yes |
|
LGAMMA |
Yes |
|
Function |
Supported? |
|
ACHAR |
Yes |
|
ADJUSTL |
No34 |
|
ADJUSTR |
No34 |
|
CHAR |
Yes |
|
ICHAR |
Yes |
|
INDEX |
Yes |
|
LGE |
Yes |
|
LGT |
Yes |
|
LLE |
Yes |
|
LLT |
Yes |
|
IACHAR |
Yes |
|
LEN_TRIM |
No34 |
|
REPEAT |
No34 |
|
SCAN |
No34 |
|
TRIM |
No34 |
|
VERIFY |
No34 |
|
Function |
Supported? |
|
NOT |
Yes |
|
IAND |
Yes |
|
AND |
Yes |
|
IOR |
Yes |
|
OR |
Yes |
|
IEOR |
Yes |
|
XOR |
Yes |
|
ISHFT |
Yes |
|
ISHFTC |
Yes |
|
LSHFT |
Yes |
|
RSHIFT |
Yes |
|
LRSHIFT |
Yes |
|
ISHA |
No |
|
ISHC |
No |
|
ISHL |
No |
|
IBCHNG |
No |
|
IBSET |
Yes |
|
IBCLR |
Yes |
|
BTEST |
Yes |
|
IBITS |
Yes |
|
MVBITS |
Yes |
|
IZEXT |
No |
|
IZEXT2 |
No |
|
JZEXT |
No |
|
JZEXT2 |
No |
|
HZEXT4 |
No |
|
Function |
Supported? |
|
LEN |
Yes |
|
ALLOCATED |
Yes |
|
BIT_SIZE |
Yes |
|
DIGITS |
Yes |
|
EPSILON |
Yes |
|
RADIX |
Yes |
|
TINY |
Yes |
|
HUGE |
Yes |
|
MAXEXPONENT |
Yes |
|
MINEXPONENT |
Yes |
|
KIND |
Yes |
|
PRESENT |
Yes |
|
PRECISION |
Yes |
|
RANGE |
Yes |
|
ASSOCIATED |
Yes35 |
|
LBOUND |
Yes |
|
UBOUND |
Yes |
|
SHAPE |
Yes |
|
SIZE |
Yes |
|
Function |
Supported? |
|
CPU_TIME |
No34 |
|
DATE_AND_TIME |
Yes |
|
SYSTEM_CLOCK |
No34 |
|
Function |
Supported? |
|
DOT_PRODUCT |
Yes |
|
MATMUL |
No34 |
|
ALL |
No34 |
|
ANY |
No34 |
|
COUNT |
No34 |
|
MAXVAL |
No34 |
|
MINVAL |
No34 |
|
PRODUCT |
No34 |
|
SUM |
No34 |
|
PACK |
No34 |
|
RESHAPE |
Yes45 |
|
SPREAD |
No34 |
|
UNPACK |
No34 |
|
CSHIFT |
No34 |
|
EOSHIFT |
No34 |
|
TRANSPOSE |
No34 |
|
MAXLOC |
No34 |
|
MINLOC |
No34 |
|
Function |
Supported? |
|
NULL |
Yes |
|
SELECTED_INT_KIND |
Yes |
|
SELECTED_REAL_KIND |
Yes |
|
TRANSFER |
No34 |
|
LOC |
No34 |
|
RANDOM_NUMBER |
No34 |
|
RANDOM_SEED |
No34 |
|
VAL |
No |
|
MALLOC |
No |
|
FREE |
No |
Visual Studio .NET integration
Visual Studio .NET 2003 is the industry standard in development environments. Fortran for .NET Visual Studio integration includes project management facilities, project/code templates, on-line integrated help, Fortran-smart editing, and mixed-language debugging.
Project Management
To efficiently manage the items that are required by your development effort, such as references, data connections, folders, and files, Visual Studio .NET provides two containers: solutions and projects. An interface for viewing and managing these containers and their associated items, Solution Explorer, is provided as part of the integrated development environment (IDE).
Project/Code Templates
Project/code templates syntactically correct compilable source code shells and associated project setting that help you create applications or services. Fortran for .NET provides the following Visual Studio project types:
On-line Integrated Help
The on-line integrated help provides Fortran for .NET installation and getting started instructions, a Fortran for .NET Users Guide, and a Fortran for .NET language reference. It also includes the MSDN Library and Visual Studio SDK help.
Fortran-Smart Editing
The Fortran for .NET language system provides the Visual Studio editor with the smarts to recognize and color-code Fortran language syntax.
Mixed-Language Debugging
Fortran for .NET code can be debugged in the Visual Studio debugger. If your application includes procedures written with other .NET languages, the Visual Studio debugger can seamless step from Fortran for .NET code to the other language code and back again.
Windows Forms
Windows Forms is the new platform for Microsoft Windows application development, based on the .NET Framework. This framework provides a clear, object-oriented, extensible set of classes that enables you to develop rich Windows applications.
A form is a bit of screen real estate, usually rectangular, that you can use to present information to the user and to accept input from the user. Forms can be standard windows, multiple document interface (MDI) windows, dialog boxes, or display surfaces for graphical routines. The easiest way to define the user interface for a form is to place controls on its surface.
Within a Windows Forms project, the form is the primary vehicle for user interaction. By combining different sets of controls and writing code, you can elicit information from the user and respond to it, work with existing stores of data, and query and write back to the file system on the user's local computer.
Although the form can be created entirely within the editor, it is easier to use the Windows Forms Designer to create and modify forms. Fortran for .NET's support for the Windows Forms Designer makes it easy for you to create Windows applications with Fortran.

ASP.NET Web Forms
Web Forms are an ASP.NET technology that you use to create programmable Web pages. Web Forms render themselves as browser-compatible HTML and script, which allows any browser on any platform to view the pages. Using Web Forms, you create Web pages by dragging and dropping controls onto the designer and then adding code, similar to the way that you create Windows Applications with the Windows Forms Designer.
ADO.NET
ADO.NET provides consistent access to data sources such as Microsoft SQL Server, as well as data sources exposed through OLE DB and XML. Data-sharing applications can use ADO.NET to connect to these data sources and retrieve, manipulate, and update data.
ADO.NET cleanly factors data access from data manipulation into discrete components that can be used separately or in tandem. ADO.NET includes .NET Framework data providers for connecting to a database, executing commands, and retrieving results. Those results are either processed directly, or placed in an ADO.NET DataSet object in order to be exposed to the user in an ad-hoc manner, combined with data from multiple sources, or remoted between tiers. The ADO.NET DataSet object can also be used independently of a .NET Framework data provider to manage data local to the application or sourced from XML.
Fortran for .NET compiler options
-addres <name> — specify .NET resource file name to embed
-[n]co — display compiler options
-[n]cs — case sensitive names
-[n]dbl — extend single precision reals to double precision
-exe — create .NET console executable
-[n]f95 — F95 standard conformance warnings
-[n]fix — fixed source form
-[n]g — generate debugging information
-i <path> — specify directory containing include file
-[n]in — default IMPLICIT NONE
-[n]info — display informational messages
-library — create .NET code library
-linkmod <name> — specify .NET module file name to link
-linkres <name> — specify .NET resource file name to link
-[n]long — extend 4-byte integers to 8-byte
-main <method> — specify main entry point class method name
-[n]maxfatals <value> — specify maximum fatal error count before aborting
-ml — specify Win32 mixed language target
-module — create .NET module
-o0 — no optimizations
-out <name> — specify output file name
-[n]passbyval — default argument passing by value
-[n]private — default private accessibility
-refer <name> — specify .NET assembly reference file name
-[n]swm <value> — specify individual warning message(s) to suppress
-verbose — display verbose information
-version — display version and owner information only
-[n]w — display warnings
-[n]wide — extended fixed source form line length
-winexe — create .NET Windows executable
-[n]wo — obsolescent feature warnings
Restrictions on Fortran for .NET Code
|
Note |
Error Code and Restriction Message |
|
FRT4009: Rank of array exceeding 7 is restricted |
|
|
FRT4011: A common block object that has a POINTER, TARGET or derived type is restricted |
|
|
FRT4012: An equivalence object that has a TARGET or derived type is restricted |
|
|
FRT4010: A data statement object list containing two or more variables that belong to another common block and equivalence association is restricted |
|
|
FRT4019: Initialization for structure component is restricted in this version of Fortran for .NET. |
|
|
FRT4013: An elemental function subprogram that has a non-sequence derived type result is restricted |
|
|
FRT4014: An elemental procedure that has a non-sequence derived type dummy argument is restricted |
|
|
FRT4015: Specifying array pointer, assumed shape array or array section to internal file unit is restricted |
|
|
FRT4016: I/O item of derived type is restricted in this version of Fortran for .NET. |
|
|
DLL_IMPORT can’t be specified in a module or internal procedure |
|
|
Procedure named in DLL_IMPORT statement must have an explicit interface, and cannot be a dummy procedure |
|
|
FRT4007: Specifying the /data-statement-value-list/ for a component is restricted |
|
|
FRT4018: Statement function result and dummy argument of derived type is restricted in this version of Fortran for .NET |
|
|
FRT4021: An elemental procedure that has a character type dummy argument is restricted in this version of Fortran for .NET |
|
|
FRT4022: An elemental function subprogram that has a non-constant character length result is restricted in this version of Fortran for .NET |
|
|
FRT4017: I/O item with vector subscript is restricted in this version of Fortran for .NET |
|
|
FRT4002: Quadruple precision real and complex are restricted in this version of Fortran for .NET. |
|
|
FRT4003: Internal procedure is restricted in this version of Fortran for .NET. |
|
|
FRT4004: Dummy procedure 'parm' is restricted in this version of Fortran for .NET. |
|
|
FRT4005: Procedure argument 'parm' is restricted in this version of Fortran for .NET. |
|
|
FRT4006: Alternate return is restricted in this version of Fortran for .NET. |
|
|
FRT4001: This statement is restricted in this version of Fortran for .NET. |
|
|
This intrinsic procedure is restricted in this version of Fortran for .NET. |
|
|
Second argument of intrinsic function 'xxxxx' is restricted in this version of Fortran for .NET. |
|
|
FRT4024: Specifying the target of a pointer assignment whose rightmost structure component does not have POINTER attribute is restricted in this version of Fortran for .NET. |
|
|
FRT4025: Specifying a structure component that has part-ref with nonzero rank except the rightmost in WHERE statement, WHERE construct, or input/output statement is restricted in this version of Fortran for .NET. |
|
|
FRT4026: Specifying a structure component that has nonzero rank and of derived type in WHERE statement, WHERE construct, or input/output statement is restricted in this version of Fortran for .NET. |
|
|
FRT4027: Array constructor of derived type is restricted in this version of Fortran for .NET. |
|
|
FRT4028: In the structure constructor, specifying a scalar expression as the expression which corresponds to the component of array and of derived type is restricted in this version of Fortran for .NET. |
|
|
FRT2409: Invalid type or attribute for DO variable or loop control parameter. (UINTEGER type variable is restricted) |
|
|
FRT1439: Invalid correspondence between operator and operand. (UINTEGER type variable is restricted) |
|
|
FRT4029: Intrinsic function 'parm' of derived type is restricted in this version of Fortran for .NET. |
|
|
FRT4030: Specifying a structure component that has TARGET attribute for an actual argument which corresponds to a dummy argument that has TARGET attribute is restricted in this version of Fortran for .NET. |
|
|
FRT4031: In a structure constructor, specifying a structure component that has TARGET attribute for an expression corresponds to a pointer component is restricted in this version of Fortran for .NET. |
Hardware and software requirements for Enterprise and Academic Editions
To use Fortran for .NET without the Visual Studio .NET Fortran Integration:
Note: The .NET Framework SDK 1.1 cannot be installed on 64-bit computers; Windows Millennium Edition and Microsoft Windows NT(r) 4.0 are not supported
The target operating system for a Fortran for .NET application is required to have the Common Language Runtime (CLR) v1.1 installed. As a convenience, three installation options are provided to assist the programmer who wishes to install a redistributable CLR and place Fortran runtime DLLs on a target machine. See On-line help for more information. LF Fortran for .NET applications are compatible with Microsoft Windows XP, 2000, NT 4.0, Me, or 98
What can you do with Fortran for .NET and why would you want to?
|
What? |
Why? |
|
Mix Fortran and other .NET languages in the same application. |
Libraries written in other languages exist. Use the right language for the right task. |
|
Create Windows user interfaces by dragging and dropping buttons, data entry fields, check boxes, and more. |
Reduce development costs. You want more than a command-line interface. |
|
Create web forms using the same technique. |
You want to make your application and its professional user interface available to the world over the Internet. |
|
Create reusable custom controls, with Fortran, that anyone can use in their Visual Studio environment. |
You know Fortran, you've created custom controls for one application, why not reuse those controls? Reduce development costs. |
|
Create procedures that access or collect data that exist somewhere over the Internet. (XML Web service.) |
Somebody else already did the work of collecting the information. Make it available, accessible. Offer a service. |
|
Create applications that call procedures that access or collect that data. |
Use the data that's available. You can reduce the time to obtain answers. |
|
Create COM objects with Fortran. |
You know Fortran. Use your Fortran procedures from other, non- .NET language programs. |
|
Call, from Fortran, COM objects written in other languages. |
You have access to any COM object that's ever been written. |
|
Create applications that run wherever .NET has been implemented. |
Microsoft's .NET Framework is based on open standards and will be implemented on other platforms. |
|
Create libraries of useful functionality with Fortran (i.e., class libraries) that can be used and extended by any .NET language. |
Don't limit your users to only those who know Fortran. |
|
Easily call Windows APIs from Fortran. |
You know Fortran and want to use the building blocks of Windows. |
|
Code functionality into your web pages using Fortran. |
You know Fortran. It's a way to add smarts to a web page. |
|
Easily read from and write to databases. (ADO.NET - drag and drop database access.) |
It's where you keep your data. |
Lahey Computer Systems Inc Home Page