06.03.2014 Views

Intel Fortran Language Reference - NCI National Facility

Intel Fortran Language Reference - NCI National Facility

Intel Fortran Language Reference - NCI National Facility

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1 <strong>Intel</strong> <strong>Fortran</strong> <strong>Language</strong> <strong>Reference</strong><br />

• The FORALL statement and construct<br />

In <strong>Fortran</strong> 90, you could build array values element-by-element by using array constructors<br />

and the RESHAPE and SPREAD intrinsics. The <strong>Fortran</strong> 95 FORALL statement and construct<br />

offer an alternative method.<br />

FORALL allows array elements, array sections, character substrings, or pointer targets to be<br />

explicitly specified as a function of the element subscripts. A FORALL construct allows<br />

several array assignments to share the same element subscript control.<br />

FORALL is a generalization of WHERE. They both allow masked array assignment, but<br />

FORALL uses element subscripts, while WHERE uses the whole array.<br />

For more information, see “FORALL Statement and Construct”.<br />

• PURE user-defined procedures<br />

Pure user-defined procedures do not have side effects, such as changing the value of a<br />

variable in a common block. To specify a pure procedure, use the PURE prefix in the function<br />

or subroutine statement. Pure functions are allowed in specification statements.<br />

For more information, see “Pure Procedures”.<br />

• ELEMENTAL user-defined procedures<br />

An elemental user-defined procedure is a restricted form of pure procedure. An elemental<br />

procedure can be passed an array, which is acted upon one element at a time. To specify an<br />

elemental procedure, use the ELEMENTAL prefix in the function or subroutine statement.<br />

For more information, see “Functions” and “Subroutines”.<br />

• CPU_TIME intrinsic subroutine<br />

This new intrinsic subroutine returns a processor-dependent approximation of processor time.<br />

For more information, see “CPU_TIME”.<br />

• NULL intrinsic function<br />

In <strong>Fortran</strong> 90, there was no way to assign a null value to the pointer by using a pointer<br />

assignment operation. A <strong>Fortran</strong> 90 pointer had to be explicitly allocated, nullified, or<br />

associated with a target during execution before association status could be determined.<br />

<strong>Fortran</strong> 95 provides the NULL intrinsic function that can be used to nullify a pointer.<br />

For more information, see “NULL”.<br />

• New obsolescent features<br />

<strong>Fortran</strong> 95 deletes several language features that were obsolescent in <strong>Fortran</strong> 90, and<br />

identifies new obsolescent features.<br />

<strong>Intel</strong> <strong>Fortran</strong> fully supports features deleted in <strong>Fortran</strong> 95.<br />

For more information, see Appendix A, “Deleted and Obsolescent <strong>Language</strong> Features”.<br />

1-4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!