Fortran para arquitecturas .NETFortran 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 ? 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 ? specify directory containing include file
-[n]in ? default IMPLICIT NONE
-[n]info ? display informational messages
-library ? create .NET code library
-linkmod ? specify .NET module file name to link
-linkres ? specify .NET resource file name to
link
-[n]long ? extend 4-byte integers to 8-byte
-main ? specify main entry point class method
name
-[n]maxfatals ? specify maximum fatal error
count before aborting
-ml ? specify Win32 mixed language target
-module ? create .NET module
-o0 ? no optimizations
-out ? specify output file name
-[n]passbyval ? default argument passing by value
-[n]private ? default private accessibility
-refer ? specify .NET assembly reference file
name
-[n]swm ? 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© 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 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. 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.
|
|