# H.2 High Performance Fortran Language Extensions

This section summarizes the High Performance Fortran language extensions to the Fortran 95 standard. Extensions that are limited to Tru64 UNIX systems are labeled as (TU*X only).

System Inquiry Intrinsic Procedures

The following intrinsic procedures are extensions:

- MY_PROCESSOR( ) (see Section 9.3.107)
- NUMBER_OF_PROCESSORS( ) (see Section 9.3.112)
- PROCESSORS_SHAPE( ) (see Section 9.3.119)

Procedure Prefixes

The following prefixes are allowed in functions, subroutines, modules, and block data statements as extensions:

- EXTRINSIC (HPF)
- EXTRINSIC (HPF_LOCAL)
- EXTRINSIC (HPF_SERIAL)

Data Alignment and Distribution Directives (TU*X only)

The following directives are extensions:

- !HPF$ ALIGN (see Section 15.3.2)
- !HPF$ DISTRIBUTE (see Section 15.3.3)
- !HPF$ INHERIT (see Section 15.3.5)
- !HPF$ PROCESSORS (see Section 15.3.6)
- !HPF$ SHADOW (see Section 15.3.8)
- !HPF$ TEMPLATE (see Section 15.3.9)

Data Parallel Directive (TU*X only)

The !HPF$ INDEPENDENT directive is an extension (see Section 15.3.4).

Sequence and Storage Association Directives (TU*X only)

The following directives are extensions (see Section 15.3.7):

- !HPF$ NOSEQUENCE
- !HPF$ SEQUENCE

Synchronization Control Subroutine (TU*X only)

The HPF_SYNC ( ) subroutine is an extension (see Appendix G).

Mapping Inquiry Subroutines (TU*X only)

The following subroutines are extensions (see Appendix G):

- HPF_ALIGNMENT (ALIGNEE, LB, UB, STRIDE, AXIS_MAP, IDENTITY_MAP,DYNAMIC, NCOPIES)
- HPF_TEMPLATE (ALIGNEE, TEMPLATE_RANK, LB, UB, AXIS_TYPE, AXIS_INFO,NUMBER_ALIGNED, DYNAMIC)
- HPF_DISTRIBUTION (DISTRIBUTEE, AXIS_TYPE, AXIS_INFO, PROCESSORS_RANK, PROCESSORS_SHAPE)

Bit Manipulation Functions

The following functions are extensions:

- ILEN (I) (see Section 9.3.68)
- LEADZ (I) (TU*X only) (see Appendix G)
- POPCNT (I) (TU*X only) (see Appendix G)
- POPPAR (I) (TU*X only) (see Appendix G)

HPF_LIBRARY Array Reduction Functions (TU*X only)

The following functions are extensions (see Appendix G):

- IALL (IARRAY, DIM, MASK)
- IANY (IARRAY, DIM, MASK)
- IPARITY (IARRAY, DIM, MASK)
- PARITY (MASK, DIM)

HPF_LIBRARY Array Combining Scatter Functions (TU*X only)

The following functions are extensions (see Appendix G):

- ALL_SCATTER (MASK, BASE, INDX1, . . . , INDX(n))
- ANY_SCATTER (MASK, BASE, INDX1, . . . , INDX(n))
- COPY_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- COUNT_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- IALL_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- IANY_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- IPARITY_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- MAXVAL_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- MINVAL_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- PARITY_SCATTER (MASK, BASE, INDX1, . . . , INDX(n))
- PRODUCT_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)
- SUM_SCATTER (ARRAY, BASE, INDX1, . . . , INDX(n), MASK)

HPF_LIBRARY Array Parallel Prefix and Suffix Functions (TU*X only)

The following functions are extensions (see Appendix G):

- ALL_PREFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- ALL_SUFFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- ANY_PREFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- ANY_SUFFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- COPY_PREFIX (MASK, DIM, SEGMENT)
- COPY_SUFFIX (MASK, DIM, SEGMENT)
- COUNT_PREFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- COUNT_SUFFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- IALL_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- IALL_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- IANY_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- IANY_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- IPARITY_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- IPARITY_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- MAXVAL_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- MAXVAL_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- MINVAL_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- MINVAL_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- PARITY_PREFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- PARITY_SUFFIX (MASK, DIM, SEGMENT, EXCLUSIVE)
- PRODUCT_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- PRODUCT_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- SUM_PREFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)
- SUM_SUFFIX (ARRAY, DIM, MASK, SEGMENT, EXCLUSIVE)

HPF_LIBRARY Array Sort Functions (TU*X only)

The following functions are extensions (see Appendix G):

- GRADE_DOWN (ARRAY, DIM)
- GRADE_UP (ARRAY, DIM)

HPF_LOCAL_LIBRARY (TU*X only)

The following subroutines are extensions (see Appendix G):

- ABSTRACT_TO_PHYSICAL (ARRAY, INDEX, PROC)
- GET_HPF_MYNODE ( )
- GET_HPF_NUMNODES ( )
- GLOBAL_ALIGNMENT (ALIGNEE, LB, UB, STRIDE, AXIS_MAP, IDENTITY_MAP, DYNAMIC, NCOPIES)
- GLOBAL_BOUNDS (ARRAY [,G_LOWER] [,G_UPPER])
- GLOBAL_DISTRIBUTION (DISTRIBUTEE, AXIS_TYPE, AXIS_INFO, PROCESSORS_RANK, PROCESSORS_SHAPE)
- GLOBAL_TEMPLATE (ALIGNEE, TEMPLATE_RANK, LB, UB, AXIS_TYPE, AXIS_INFORMATION, NUMBER_ALIGNED, DYNAMIC)
- GLOBAL_TO_LOCAL (ARRAY [,G_INDEX] [,L_INDEX] [,LOCAL])
- GLOBAL_TO_PHYSICAL (ARRAY, G_INDEX [,PROC] [,L_INDEX])
- LOCAL_TO_GLOBAL (ARRAY, L_INDEX, G_INDEX)
- PHYSICAL_TO_ABSTRACT (ARRAY, PROC, INDEX)

Previous Page Next Page Table of Contents