
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.0 Enterprise, Developer, and Educational 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) |
No 28 |
|
COMPLEX(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
(KIND=16) |
No 28 |
|
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) |
No 28 |
|
COMPLEX(KIND=4) |
Yes |
|
(KIND=8) |
Yes |
|
(KIND=16) |
No 28 |
|
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 Types 38, 39, 40, 41, 46, 47 |
Supported? |
|
Array component |
Yes |
|
ALLOCATABLE component |
Yes |
|
POINTER component |
Yes |
|
Component has derived type |
Yes |
|
default initialize |
Yes 14 |
|
Structure Constructors |
Yes 42 |
Supported Operators
|
Operator |
Supported? |
|
+,-,*,/ |
Yes |
|
** |
Yes |
|
==,/= |
Yes |
|
>,>=,<,<= |
Yes |
|
.NOT. |
Yes |
|
.OR.,.AND. |
Yes |
|
.EQV.,.NEQV. |
Yes |
Array Support
|
Arrays 1 |
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 |
Yes 41 |
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 |
Yes 10 25 |
|
Internal procedure |
No 29 |
Support for Arguments and Interfaces
|
Arguments |
Supported? |
|
Intent |
Yes |
|
Keywords |
Yes |
|
Optional |
Yes |
|
Dummy Procedures |
No 30 |
|
Procedure Arguments |
No 31 |
|
Alternate Returns |
No 32 |
|
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 |
No 33 |
|
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 |
No 33 |
|
VALUE Statement |
Yes |
|
CHANGEENTRY Statement |
No 33 |
|
DLL_EXPORT Statement |
No |
|
DLL_IMPORT Statement |
Yes 13 |
|
REFERENCE Statement |
Yes |
|
Other Declarations |
Supported? |
|
DATA Statement |
Yes 6 |
|
COMMON Statement |
Yes 2 |
|
EQUIVALENCE Statement |
Yes 4 |
|
IMPLICIT Statement |
Yes |
|
NAMELIST Statement |
No 33 |
|
CRAY POINTER Statement |
No 33 |
|
TYPE Statement |
Yes |
|
SEQUENCE Statement |
Yes |
|
END TYPE Statement |
Yes |
|
STRUCTURE Statement |
Yes |
|
END STRUCTURE Statement |
Yes |
|
UNION Statement |
No 33 |
|
END UNION Statement |
No 33 |
|
MAP Statement |
No 33 |
|
END MAP Statement |
No 33 |
|
INTERFACE Statement |
Yes |
|
END INTERFACE Statement |
Yes |
|
MODULE PROCEDURE Statement |
Yes |
|
USE Statement |
Yes |
|
FORMAT Statement |
Yes |
|
Statement Function Statement 24 |
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 |
Yes 43 |
|
END DO Statement |
Yes |
|
CYCLE Statement |
Yes |
|
EXIT Statement |
Yes |
|
CONTINUE Statement |
Yes |
|
FORALL Construct |
No 33 |
|
FORALL Construct Statement |
No 33 |
|
END FORALL Statement |
No 33 |
|
FORALL Statement |
No 33 |
|
WHERE Construct |
Yes 39 40 |
|
WHERE Construct Statement |
Yes 39 40 |
|
ELSEWHERE Statement |
Yes |
|
END WHERE Statement |
Yes |
|
WHERE Statement |
Yes 39 40 |
|
IF Statement |
Yes |
|
Arithmetic IF Statement |
Yes |
|
Assignment, Allocate |
Supported? |
|
Assignment Statement |
Yes |
|
Pointer Assignment Statement |
Yes 38 |
|
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 |
Yes 11 26 39 40 |
|
PRINT Statement |
Yes 11 26 39 40 |
|
WRITE Statement |
Yes 11 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 |
Yes 13 |
|
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 |
No 34 |
|
CMPLX |
Yes |
|
DCMPLX |
Yes |
|
QCMPLX |
No 34 |
|
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 |
No 34 |
|
RRSPACING |
Yes |
|
SPACING |
Yes |
|
SCALE |
Yes |
|
SET_EXPONENT |
Yes |
|
MERGE |
No 34 |
|
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 |
No 34 |
|
ADJUSTR |
No 34 |
|
CHAR |
Yes |
|
ICHAR |
Yes |
|
INDEX |
Yes |
|
LGE |
Yes |
|
LGT |
Yes |
|
LLE |
Yes |
|
LLT |
Yes |
|
IACHAR |
Yes |
|
LEN_TRIM |
No 34 |
|
REPEAT |
No 34 |
|
SCAN |
No 34 |
|
TRIM |
No 34 |
|
VERIFY |
No 34 |
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 |
Yes 35 |
|
LBOUND |
Yes |
|
UBOUND |
Yes |
|
SHAPE |
Yes |
|
SIZE |
Yes |
Support for Date and Time Intrinsic Subroutines
|
Function |
Supported? |
|
CPU_TIME |
No 34 |
|
DATE_AND_TIME |
Yes |
|
SYSTEM_CLOCK |
No 34 |
Support for Array Intrinsic Procedures
|
Function |
Supported? |
|
DOT_PRODUCT |
Yes |
|
MATMUL |
No 34 |
|
ALL |
No 34 |
|
ANY |
No 34 |
|
COUNT |
No 34 |
|
MAXVAL |
No 34 |
|
MINVAL |
No 34 |
|
PRODUCT |
No 34 |
|
SUM |
No 34 |
|
PACK |
No 34 |
|
RESHAPE |
Yes 45 |
|
SPREAD |
No 34 |
|
UNPACK |
No 34 |
|
CSHIFT |
No 34 |
|
EOSHIFT |
No 34 |
|
TRANSPOSE |
No 34 |
|
MAXLOC |
No 34 |
|
MINLOC |
No 34 |
Support for Other Intrinsic Procedures
|
Function |
Supported? |
|
NULL |
Yes |
|
SELECTED_INT_KIND |
Yes |
|
SELECTED_REAL_KIND |
Yes |
|
TRANSFER |
No 34 |
|
LOC |
No 34 |
|
RANDOM_NUMBER |
No 34 |
|
RANDOM_SEED |
No 34 |
|
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 cant 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 Developer 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© 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 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© 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 64-bit
computers; Windows Millennium Edition and Microsoft Windows NT(r)
4.0 are not supported
- 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 SystemThe 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.
|
| |