|
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
Th 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:
Supported Data Types
|
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 |
|
Derived Types38, 39, 40, 41, 46, 47 |
Supported? |
|
Array component |
Yes |
|
ALLOCATABLE component |
Yes |
|
POINTER component |
Yes |
|
Component has derived type |
Yes |
|
default initialize |
Yes14 |
|
Structure Constructors |
Yes42 |
Supported Operators
|
Operator |
Supported? |
|
+,-,*,/ |
Yes |
|
** |
Yes |
|
==,/= |
Yes |
|
>,>=,<,<= |
Yes |
|
.NOT. |
Yes |
|
.OR.,.AND. |
Yes |
|
.EQV.,.NEQV. |
Yes |
Array Support
|
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 |
Supported Program Units
|
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 |
Yes10 25 |
|
Internal procedure |
No29 |
Support for Arguments and Interfaces
|
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 |
Support for Declaration of Program Units, Variables, and Attributes
|
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 |
Support for Executable Statements
|
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 |
Yes39 40 |
|
WHERE Construct Statement |
Yes39 40 |
|
ELSEWHERE Statement |
Yes |
|
END WHERE Statement |
Yes |
|
WHERE Statement |
Yes39 40 |
|
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 |
Yes11 26 39 40 |
|
PRINT Statement |
Yes11 26 39 40 |
|
WRITE Statement |
Yes11 26 39 40 |
|
BACKSPACE Statement |
Yes |
|
ENDFILE Statement |
Yes |
|
REWIND Statement |
Yes |
|
INQUIRE Statement |
Yes |
Support for Object Oriented Extensions, .NET Extensions
|
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 |
Support for Numeric Intrinsic Functions
|
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 |
Support for Mathematical Intrinsic Functions
|
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 |
Support for Character Intrinsic Functions
|
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 |
Support for Bit Manipulation Intrinsic Functions
|
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 |
Support for Inquiry Intrinsic Functions
|
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 |
Support for Date and Time Intrinsic Subroutines
|
Function |
Supported? |
|
CPU_TIME |
No34 |
|
DATE_AND_TIME |
Yes |
|
SYSTEM_CLOCK |
No34 |
Support for Array Intrinsic Procedures
|
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 |
Support for Other Intrinsic Procedures
|
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:
- The Empty Project template provides a solution and project
without any source files or references. You can add items to this
project by using the "Project/Add New Item" menu selection.
- The Class Library template consists of a library project
and a skeletal Fortran class library containing a single static
method. When compiled, this project type creates a .NET DLL file,
which may be supplied as a reference to other .NET applications.
- The Console Application consists of a console project,
and a skeletal main program. When compiled, this project type creates
a console application. If this application is invoked from a console,
it executes within the console. If the application is invoked from
an icon, the Run menu, or Windows Explorer, it creates a console
to run in, and destroys the console when the program completes execution.
- The ASP Web Application template is a Web Forms Designer
project, which begins in design mode with a blank Web form. Controls
may be dragged from the toolbox onto the form, and Fortran source code
will be generated to implement the control. The project consists of
an HTML web page that uses Fortran for .NET to provide the code behind.
- The ASP Web Service template is also a Web Forms Designer
project in which the Web Form provides a user interface on the local
machine, with Fortran for .NET powering the application on the server side.
- The Windows Application template is a Windows Form designer project,
which begins in design mode with a blank form. Controls may be dragged
from the toolbox onto the form, and Fortran source code will be generated
to implement the control. This project type compiles into an event
driven Windows application.
- The Setup and Deployment template allows the programmer to
create installation programs that can ease the task of distributing
.NET applications. A setup project packages the files that make up
an application, facilitates the creation of directory structures,
and provides a means of installing and registering assemblies.
- The Database template provides a means of manipulating
databases and designing and executing SQL scripts and queries without
having to create an application.
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 |
|
1 |
FRT4009: Rank of array exceeding 7 is restricted |
|
2 |
FRT4011: A common block object that has a POINTER, TARGET or derived type is restricted |
|
4 |
FRT4012: An equivalence object that has a TARGET or derived type is restricted |
|
6 |
FRT4010: A data statement object list containing two or more variables that belong to another common block and equivalence association is restricted |
|
6 |
FRT4019: Initialization for structure component is restricted in this version of Fortran for .NET. |
|
10 |
FRT4013: An elemental function subprogram that has a non-sequence derived type result is restricted |
|
10 |
FRT4014: An elemental procedure that has a non-sequence derived type dummy argument is restricted |
|
11 |
FRT4015: Specifying array pointer, assumed shape array or array section to internal file unit is restricted |
|
11 |
FRT4016: I/O item of derived type is restricted in this version of Fortran for .NET. |
|
13 |
DLL_IMPORT can�t be specified in a module or internal procedure |
|
13 |
Procedure named in DLL_IMPORT statement must have an explicit interface, and cannot be a dummy procedure |
|
14 |
FRT4007: Specifying the /data-statement-value-list/ for a component is restricted |
|
24 |
FRT4018: Statement function result and dummy argument of derived type is restricted in this version of Fortran for .NET |
|
24 |
FRT4021: An elemental procedure that has a character type dummy argument is restricted in this version of Fortran for .NET |
|
25 |
FRT4022: An elemental function subprogram that has a non-constant character length result is restricted in this version of Fortran for .NET |
|
26 |
FRT4017: I/O item with vector subscript is restricted in this version of Fortran for .NET |
|
28 |
FRT4002: Quadruple precision real and complex are restricted in this version of Fortran for .NET. |
|
29 |
FRT4003: Internal procedure is restricted in this version of Fortran for .NET. |
|
30 |
FRT4004: Dummy procedure 'parm' is restricted in this version of Fortran for .NET. |
|
31 |
FRT4005: Procedure argument 'parm' is restricted in this version of Fortran for .NET. |
|
32 |
FRT4006: Alternate return is restricted in this version of Fortran for .NET. |
|
33 |
FRT4001: This statement is restricted in this version of Fortran for .NET. |
|
34 |
This intrinsic procedure is restricted in this version of Fortran for .NET. |
|
35 |
Second argument of intrinsic function 'xxxxx' is restricted in this version of Fortran for .NET. |
|
38 |
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. |
|
39 |
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. |
|
40 |
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. |
|
41 |
FRT4027: Array constructor of derived type is restricted in this version of Fortran for .NET. |
|
42 |
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. |
|
43 |
FRT2409: Invalid type or attribute for DO variable or loop control parameter. (UINTEGER type variable is restricted) |
|
44 |
FRT1439: Invalid correspondence between operator and operand. (UINTEGER type variable is restricted) |
|
45 |
FRT4029: Intrinsic function 'parm' of derived type is restricted in this version of Fortran for .NET. |
|
46 |
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. |
|
47 |
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
With Visual Studio
- Processor
450-megahertz (MHz) Pentium II-class processor,
600-MHz Pentium III-class processor recommended
- Operating System
Visual Studio .NET 2003 can be installed onto any of the following systems:
- Microsoft Windows©Vista (see notes)
- Microsoft Windows© Server 2003
- Windows XP Professional
- Windows XP Home Edition
(Limited functionality. Visual Studio .NET 2003 does not support creating ASP.NET Web applications or ASP.NET XML Web services when using Windows XP Home Edition.)
- Windows 2000 Professional
- Windows 2000 Server
- Memory
- Windows Vista:
160 megabytes (MB) of RAM
- Windows Server 2003:
160 megabytes (MB) of RAM
- Windows XP Professional:
160 MB of RAM
- Windows XP Home Edition:
96 MB of RAM
- Windows 2000 Professional:
96 MB of RAM
- Windows 2000 Server:
192 MB of RAM
- Hard Disk
- 900 MB of available space required on system drive, 3.3 gigabytes (GB) of available space required on installation drive
- Additional 1.9 GB of available space required for optional MSDN Library documentation
- Drive
CD-ROM or DVD-ROM drive
- Display
Super VGA (1024 x 768) or higher-resolution display with 256 colors
- Mouse
Microsoft Mouse or compatible pointing device
Command-line Only
To use Fortran for .NET without the Visual Studio .NET Fortran Integration:
- Processor
- Client (a computer not working in a server capacity): 90-megahertz (MHz) Intel Pentium-class processor
- Server (a computer working in a server capacity): 133-MHz Intel Pentium-class processor
- Operating System
The Fortran for .NET and the .NET Framework 1.1 SDK can be installed on the following platforms:
- Microsoft Windows©Vista (see notes)
- Microsoft Windows© Server 2003 family
- Windows 2000, with the latest Windows service pack and critical updates available from the Microsoft Security Web site
- Windows XP (Windows XP Professional is required to run ASP.NET)
Note: The .NET Framework SDK 1.1 cannot be installed on Windows Millennium Edition and Microsoft Windows NT(r) 4.0.
- Memory
- Client: 32 megabytes (MB) of RAM, 96 MB recommended
- Server: 128 MB of RAM, 256 MB recommended
- Hard Disk
660 MB of hard disk space required, 190 MB additional hard disk space required for installation (850 MB total)
- Display
800 x 600 or higher-resolution display with 256 colors
- Input Device
Microsoft mouse or compatible pointing device
- Other
- Microsoft Internet Explorer 5.01 or later is required
- Microsoft Data Access Components 2.6 is required for data scenarios (version 2.7 is recommended on a server)
- Install the latest Windows service packs and critical updates from the Microsoft Windows Update site
Target Operating System
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
Vista, 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. |
|