JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for COMP-FORTRAN-90 Archives


COMP-FORTRAN-90 Archives

COMP-FORTRAN-90 Archives


COMP-FORTRAN-90@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

COMP-FORTRAN-90 Home

COMP-FORTRAN-90 Home

COMP-FORTRAN-90  August 2008

COMP-FORTRAN-90 August 2008

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Fortran compilers and 2003 and 2008 standard conformance

From:

Ian Chivers <[log in to unmask]>

Reply-To:

Fortran 90 List <[log in to unmask]>

Date:

Thu, 7 Aug 2008 16:19:51 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (253 lines)

The following is the basis for an updated table on compiler
support for the 2003 and 2008 standards. We would like comments.
The Fortran 2008 entries are based on a John Reid
article. This is available at the WG5 ftp site

ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1735.pdf

and in the August edition of Fortran Forum.

Jane and I have also had a suggestion from Richard Maine
about additional entries on allocatable scalars
and allocatable character length. I've added his email
at the end. Where would be the best place to add
Richards entries?

when the comment stage is completed well send the
updated document to J3, WG5 and the compiler people.

thanks in advance

ian chivers

"Fortran 2003 and 2008 Features and Compiler Support: Version 1, August 2008"
"Y=Yes, N=No, P=Partial."
	Cray	gfortran	g95	IBM	Intel	NAG	Sun

ISO TR 15580 IEEE Arithmetic	Y	N	P	Y	N	Y	Y
ISO TR 15581 Allocatable Enhancements	Y	Y	Y	Y	Y	Y	Y

Data enhancements and object orientation	Cray	gfortran	g95	IBM	Intel	NAG	Sun

Parameterized derived types	Y	C	N	N	N	N	N
Procedure pointers	Y	N	Y	Y	N	N	N
Finalization	N	N	N	Y	N	N	N
Procedures bound by name to a type	Y	N	N	Y	N	Y	N
The PASS attribute	Y	N	N	Y	N	Y	N
Procedures bound to a type as operators	Y	N	N	Y	N	Y	N
Type extension	Y	N	N	Y	N	Y	N
Overriding a type-bound procedure	Y	N	N	Y	N	Y	N
Enumerations	Y	Y	Y	Y	N	Y	N
ASSOCIATE construct	Y	N	N	Y	N	Y	N
Polymorphic entities	Y	N	N	Y	N	"Y, 1"	N
SELECT TYPE construct	Y	N	N	Y	N	Y	N
Deferred bindings and abstract types	N	N	N	Y	N	Y	N

Miscellaneous enhancements	Cray	gfortran	g95	IBM	Intel	NAG	Sun

Structure constructors	Y	N	Y	Y	N	N	N
The allocate statement	Y	N	P	Y	N	Y	N
Assignment to an allocatable array	"Y, 2"	N	N	Y	"Y, 2"	N	N
Transferring an allocation	Y	Y	N	Y	Y	N	N
More control of access from a module	Y	Y	N	Y	"Y, 6"	Y	N
Renaming operators on the USE statement	Y	P	Y	Y	Y	N	Y
Pointer assignment	Y	N	Y	Y	Y	Y	N
Pointer INTENT	Y	Y	Y	Y	Y	Y	N
The VOLATILE attribute	Y	Y	Y	Y	Y	Y	Y
The IMPORT statement	Y	Y	Y	Y	Y	Y	N
Intrinsic modules	Y	Y	Y	Y	Y	Y	Y
Access to the computing environment	Y	Y	Y	Y	Y	Y	Y
Support for international character sets	N	N	Y	P	N	P	N
Lengths of names and statements	Y	Y	?	Y	Y	Y	Y
"Binary, octal and hex constants"	Y	Y	Y	Y	Y	Y	Y
Array constructor syntax	Y	"P, 4"	Y	Y	N	"P, 4"	N
Specification and initialization expressions	P	P	Y	Y	P	N	N
Complex constants	Y	Y	Y	Y	Y	N	Y
Changes to intrinsic functions	Y	"P, 9"	Y	Y	N	P	N
Controlling IEEE underflow	Y	N	N	Y	N	N 	Y
Another IEEE class value	Y	N	N	Y	N	N	Y

Input/output enhancements	Cray	gfortran	g95	IBM	Intel	NAG	Sun

Derived type input/output	N	N	N	Y	N	N	N
Asynchronous input/output	Y	C	Y	Y	Y	P	Y
FLUSH statement	Y	Y	Y	Y	Y	N	Y
IOMSG= specifier	Y	Y	Y	Y	N	Y	Y
Stream access input/output	Y	Y	Y	Y	Y	Y	Y
ROUND= specifier	Y	N	P	Y	N	N	Y
DECIMAL= specifier	Y	C	Y	Y	N	Y	Y
SIGN= specifier	Y	C	Y	Y	N	Y	Y
Kind type parameters of integer specifiers	Y	N	?	Y	Y	Y	N
Recursive input/output	Y	P	Y	Y	Y	N	Y
Intrinsic function for newline character	Y	Y	Y	Y	Y	Y	N
Input and output of IEEE exceptional values	Y	Y	Y	Y	"Y, 7"	Y	Y
Comma after a P edit descriptor	Y	Y	Y	Y	Y	Y	Y

Interoperability with C	Cray	gfortran	g95	IBM	Intel	NAG	Sun

Interoperability of intrinsic types	Y	Y	Y	Y	Y	Y	Y
Interoperability with C pointers	Y	Y	Y	Y	"Y, 8"	Y	Y
Interoperability of derived types	Y	Y	Y	Y	Y	Y	Y
Interoperability of variables	Y	Y	Y	Y	Y	Y	Y
Interoperability of procedures	Y	Y	Y	Y	Y	Y	Y
Interoperability of global data	Y	Y	Y	Y	Y	Y	Y

	Cray	gfortran	g95	IBM	Intel	NAG	Sun


Notes

1	No unlimited polymorphics
2	Optional under flag
4	No type spec support
6	Protected only
7	All except NaN Hex
8	No procedure pointers
9	"kind= of maxloc, minloc, shape missing"


Fortran 2008 Features

Submodules

Coarrays

Performance enhancements

do concurrent
Contiguous attribute
Simply contiguous arrays

Data enhancements

Maximum rank
Long integers
Allocatable components
Implied-shape array
Pointer initialization
Kind of a forall index
Allocating a polymorphic variable

Accessing data objects

Accessing real and imaginary parts
Pointer functions

Input/Output

Finding a unit when opening a file
g0 edit descriptor
Unlimited format item
Recursive input/output

Execution control

The block construct
Exit statement
Stop code

Intrinsic procedures for bit processsing

Bit sequence comparison
Combined shifting
Counting bits
Masking bits
Shifting bits
Merging bits
Bit transformational functions

Intrinsic procedures and modules

Storage size
Selecting a real kind
Hyperbolic intrinsic functions
Bessel functions
Arc tangent function
Error and gamma functions
Euclidean vector norms
Parity
Execute command line
Location of maximum or minimum value in an array
Find location in an array
Constants
Module procedures

Programs and procedures

Empty contains section
Internal procedure as an actual argument
Generic resolution by pointer or allocatable attribute
Null pointer as a missing dummy argument
Elemental procedures that are not pure
Entry statement becomes obsolescent

Richards email
==============

I just got the latest Fortran Forum and noticed two somewhat related Fortran
2003 features that I personally think are important, but aren't reflected in
your table of features. If convenient, they might be useful to add to  
the table.

1. Allocatable scalars. To me, this is an important feature for object
orientation, and in particular for polymorphism. Basically, a polymorphic
object has to be either a pointer or an allocatable (or a dummy  
argument, which
is a bit restrictive). In my experiments with polymorphism, the polymorphic
objects pretty much always naturally "wanted" to be allocatable. But the NAG
compiler (which I was using at the time) didn't yet support allocatable
scalars. This meant that I either needed to make all the polymorphic objects
pointers or make them arrays (possibly of size 1). Neither of these
alternatives was attractive at all. I found this a significant enough
shortcoming to keep me from using the polymorphic features. Thus, I'd think
this would be something people would want to know about a compiler if they
planned to use polymorphism.

2. Allocatable character length. I think that allocatable character length is
one of the biggest "sleeper" features of f2003. It wasn't even on the list of
f2003 requirements, and thus sometimes doesn't show up in lists of new
features. It just naturally arise from allocatable length parameters for
parameterized derived types. It seemed like one should allow the same  
thing for
the one intrinsic type with a length type parameter. And lo, when it was all
put together, it seemed like this was finally a good way to do variable length
strings in Fortran. It integrates with the rest of the language immensely
better than iso_varying_string has any hope of doing. In fact, as I said, it
integrates so well that it came about as a consequence of the integration of
other features. Allocatable-length character strings act like so many people
intuitively think of character strings, unlike the fixed-length character
strings that we've had since f77.

Although this is related to allocatable scalars, in that you certainly want to
be able to have allocatable character strings that are scalar, it is also a
separate feature in that you can have allocatable scalars without necessarily
allowing character length to be allocatable. It is also different in
application, in that I see the main other usage of allocatable scalars  
as being
for polymorphism, whereas allocatable character strings are not much  
related to
polymorphism. It is also useful independent of parameterized derived types. I
personally expect to see allocatable character strings used far more than
parameterized derived types, even though it was the requirement for
parameterized derived types that lead to allocatable character  
strings. I could
almost see allocatable character strings as becoming the "normal" way  
that most
character string variables are done.

end of Richards email
=====================










Cheers

Ian

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

December 2023
February 2023
November 2022
September 2022
February 2022
January 2022
June 2021
November 2020
September 2020
June 2020
May 2020
April 2020
December 2019
October 2019
September 2019
March 2019
February 2019
January 2019
November 2018
October 2018
September 2018
August 2018
July 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
December 2015
November 2015
October 2015
September 2015
August 2015
June 2015
April 2015
March 2015
January 2015
December 2014
November 2014
October 2014
August 2014
July 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
July 2013
June 2013
May 2013
April 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
August 2010
July 2010
June 2010
March 2010
February 2010
January 2010
December 2009
October 2009
August 2009
July 2009
June 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager