Supported Features in FTN95 for .NET

The following table provides a list of supported features in FTN95 for Microsoft .NET

Data Types
Operators
Arrays
Program units
Arguments and Interfaces
Declaration of Program Units, Variables and Attributes
Executable Statements
Numeric Intrinsic Procedures
Mathematical Intrinsic Procedures
Character Intrinsic Procedures
Bit Manipulation Intrinsic Procedures
Inquiry Intrinsic Intrinsic Procedures
Data and Time Intrinsic Procedures
Array Intrinsic Procedures
Other Intrinsic Procedures
.NET Extensions


Data Types


Intrinsic Data Types Supported in Silverfrost FTN95 .NET
1 byte INTEGER Yes
2 byte INTEGER Yes
4 byte INTEGER Yes
8 byte INTEGER Yes
4 byte REAL Yes
8 byte REAL Yes
16/10 byte REAL NoSS2
8 byte COMPLEX Yes
16 byte COMPLEX Yes
32/20 byte COMPLEX NoSS2
1 byte LOGICAL Yes
2 byte LOGICAL Yes
4 byte LOGICAL Yes
8 byte LOGICAL Yes
1 byte CHARACTER Yes
Derived type Yes
Literal Constants Supported in Silverfrost FTN95 .NET
1 byte INTEGER Yes
2 byte INTEGER Yes
4 byte INTEGER Yes
8 byte INTEGER Yes
4 byte REAL Yes
8 byte REAL Yes
16 byte REAL NoSS2
8 byte COMPLEX Yes
16 byte COMPLEX Yes
32/20 byte COMPLEX NoSS2
1 byte LOGICAL Yes
2 byte LOGICAL Yes
4 byte LOGICAL Yes
8 byte LOGICAL Yes
1 byte CHARACTER Yes
Binary Yes
Octal Yes
Hexadecimal Yes
Derived Types Supported in Silverfrost FTN95 .NET
Array component Yes
ALLOCATABLE component NoSS1
POINTER component Yes
Component has derived type Yes
Default initialise Yes
Structure constructors Yes

Example code


Operators


Operator Supported in Silverfrost FTN95 .NET
+,-,*,/ Yes
** Yes
==,/=,.EQ.,.NE. Yes
>,>=,<,<= Yes
.NOT. Yes
.OR.,.AND. Yes
.EQV.,.NEQV. Yes
// Yes

Example code


Arrays


Arrays Supported in Silverfrost FTN95 .NET
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

Example code


Program Units


Program Unit Supported in Silverfrost FTN95 .NET
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
Internal procedure Yes

Example code


Arguments and Interfaces


Arguments Supported in Silverfrost FTN95 .NET
Intent Yes
Keywords Yes
Optional Yes
Dummy procedures Yes
Procedure arguments Yes
Alternate returns Yes
Call by value Yes
Call by address Yes
Interface Block Supported in Silverfrost FTN95 .NET
Generic Names Yes
Defined Operations Yes
Defined Assignment Yes

Example code


Declaration of Program Units, Variables, and Attributes


Program Unit Declaration Supported in Silverfrost FTN95 .NET
PROGRAM Statement Yes
FUNCTION Statement Yes
SUBROUTINE Statement Yes
ENTRY Statement Yes
MODULE Statement Yes
END MODULE Statement Yes
BLOCK DATA Statement Yes
END BLOCK DATA Statement Yes
CONTAINS Statement Yes
Variable Type Declaration Supported in Silverfrost FTN95 .NET
INTEGER Statement Yes
REAL Statement Yes
DOUBLE PRECISION Statement Yes
COMPLEX Statement Yes
LOGICAL Statement Yes
CHARACTER Statement Yes
TYPE Statement Yes
CLASS Statement (F2003) NoSS4
Initialisation Yes
Attribute Declaration Supported in Silverfrost FTN95 .NET
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
Other Declarations Supported in Silverfrost FTN95 .NET
DATA Statement Yes
COMMON Statement Yes
EQUIVALENCE Statement Yes
IMPLICIT Statement Yes
NAMELIST Statement Yes
TYPE Statement Yes
SEQUENCE Statement Yes
END TYPE Statement Yes
UNION Statement Yes
END UNION Statement Yes
MAP Statement Yes
END MAP Statement Yes
INTERFACE Statement Yes
END INTERFACE Statement Yes
MODULE PROCEDURE Statement Yes
USE Statement Yes
FORMAT Statement Yes
Statement Function Statement Yes
PROCEDURE statement (F2003) NoSS4
GENERIC statement (F2003) NoSS4
TYPEALIAS statement (F2003) Yes

Example code


Executable Statements


Constructs Supported in Silverfrost FTN95 .NET
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
END DO Statement Yes
CYCLE Statement Yes
EXIT Statement Yes
CONTINUE Statement Yes
FORALL Construct Yes
FORALL Construct Statement Yes
END FORALL Statement Yes
FORALL Statement Yes
WHERE Construct Yes
WHERE Construct Statement Yes
ELSEWHERE Statement Yes
END WHERE Statement Yes
WHERE Statement Yes
IF Statement Yes
Arithmetic IF Statement Yes
Assignment, Allocate Supported in Silverfrost FTN95 .NET
Assignment Statement Yes
Pointer Assignment Statement Yes
ALLOCATE Statement Yes
DEALLOCATE Statement Yes
NULLIFY Statement Yes
Control Supported in Silverfrost FTN95 .NET
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 in Silverfrost FTN95 .NET
OPEN Statement Yes
CLOSE Statement Yes
READ Statement Yes
PRINT Statement Yes
WRITE Statement Yes
BACKSPACE Statement Yes
ENDFILE Statement Yes
REWIND Statement Yes
INQUIRE Statement Yes

Example code


Numeric Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
INT Yes
REAL Yes
DBLE Yes
CMPLX Yes
AINT Yes
ANINT Yes
NINT Yes
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 Yes
RRSPACING Yes
SPACING Yes
SCALE Yes
SET_EXPONENT Yes
MERGE Yes
LOGICAL Yes

Example code


Mathematical Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
SQRT Yes
EXP Yes
LOG Yes
LOG10 Yes
LOG2 Yes
SIN Yes
COS Yes
TAN Yes
ASIN Yes
ACOS Yes
ATAN Yes
ATAN2 Yes
SINH Yes
COSH Yes
TANH Yes

Example code


Character Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
ACHAR Yes
ADJUSTL Yes
ADJUSTR Yes
CHAR Yes
ICHAR Yes
INDEX Yes
LGE Yes
LGT Yes
LLE Yes
LLT Yes
IACHAR Yes
LEN_TRIM Yes
REPEAT Yes
SCAN Yes
TRIM Yes
VERIFY Yes

Example code


Bit Manipulation Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
NOT Yes
IAND Yes
AND Yes
IOR Yes
OR Yes
IEOR Yes
XOR Yes
ISHFT Yes
ISHFTC Yes
IBSET Yes
IBCLR Yes
BTEST Yes
IBITS Yes
MVBITS Yes

Example code


Inquiry Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
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
LBOUND Yes
UBOUND Yes
SHAPE Yes
SIZE Yes

Example code


Date and Time Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
CPU_TIME Yes
DATE_AND_TIME Yes
SYSTEM_CLOCK Yes

Example code


Array Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
DOT_PRODUCT Yes
MATMUL Yes
ALL Yes
ANY Yes
COUNT Yes
MAXVAL Yes
MINVAL Yes
PRODUCT Yes
SUM Yes
PACK Yes
RESHAPE Yes
SPREAD Yes
UNPACK Yes
CSHIFT Yes
EOSHIFT Yes
TRANSPOSE Yes
MAXLOC Yes
MINLOC Yes

Example code


Other Intrinsic Procedures


Function Supported in Silverfrost FTN95 .NET
NULL Yes
SELECTED_INT_KIND Yes
SELECTED_REAL_KIND Yes
TRANSFER Yes
LOC Yes
RANDOM_NUMBER Yes
RANDOM_SEED Yes

Example code


.NET Extensions


Extension Supported in Silverfrost FTN95 .NET
Automatic exposure of routines to other .NET languages Yes
Alias exposed routine name Yes
Call .NET static functions Yes
Declare .NET objects Yes
Create .NET objects Yes
Call .NET class methods Yes
Intrinsic .NET String data type Yes
Automatic .NET String to Fortran character variable conversion Yes
Pass .NET objects as routine arguments Yes
Cast .NET objects to child/parent class Yes
Create and manage threads Yes
Synchonise threads Yes
Handle exceptions Yes
Throw exceptions Yes
Define a namespace/class for an assembly Yes
Create arrays of .NET objects Yes
Detect .NET/Win32 compilation at compile or run-time Yes
Call native Win32 code Yes






Restrictions on Silverfrost FTN95 .NET Code


Note Restriction
SS1 This is non-standard code which is not supported in FTN95 Win32 or .NET.
SS2 The .NET framework does not support more than 64 bit precision.
SS4 This Fortran 200X feature is not yet supported in the current version of FTN95.

 

 

 

Basket
Empty
 
Copyright © 1999-2024 Silverfrost Limited