home *** CD-ROM | disk | FTP | other *** search
- INTRO_INTRIN(3I) Last changed: 4-13-99
-
-
- NNAAMMEE
- IINNTTRROO__IINNTTRRIINN - Introduction to intrinsic procedures
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- UNICOS, UNICOS/mk, and IRIX systems
-
- CF90, MIPSpro 7 Fortran 90, MIPSpro Fortran 77
-
- DDEESSCCRRIIPPTTIIOONN
- _I_n_t_r_i_n_s_i_c _p_r_o_c_e_d_u_r_e_s are predefined procedures that are defined by the
- computer programming language. They are invoked in the same way that
- other procedures are invoked.
-
- The Fortran standard defines intrinsic procedures, and the CF90 and
- MIPSpro 7 Fortran 90 compilers support all the intrinsics described in
- the Fortran 95 standard. The CF90 and MIPSpro 7 Fortran 90 compilers
- support other intrinsics as extensions to the standard. The MIPSpro
- Fortran 77 compiler conforms to the outmoded FORTRAN 77 standard; the
- intrinsics supported by this compiler are fewer in number than those
- supported by the CF90 and MIPSpro 7 Fortran 90 compilers.
-
- There are four classes of Fortran intrinsic procedures as defined by
- the Fortran 95 standard: inquiry functions, elemental functions,
- transformational functions, and subroutines. Additional intrinsics
- provided with the CF90 and MIPSpro 7 Fortran 90 compiler include
- intrinsics that support IEEE floating-point arithmetic and other
- compiler extensions.
-
- The CF90 and MIPSpro 7 Fortran 90 compilers evaluate intrinsic
- procedures in line or by calling external code. Depending on your
- platform and your program, the following intrinsics can be evaluated
- in line:
-
- * AABBSS
-
- * AACCHHAARR
-
- * AAIIMMAAGG
-
- * AAIINNTT
-
- * AALLLL
-
- * AANNDD
-
- * AANNIINNTT
-
- * AANNYY
-
- * BBIITT__SSIIZZEE
-
- * MM@@CCLLRR, MM@@LLDD, MM@@MMXX, MM@@LLDDMMXX, MM@@UULL (the BMM intrinsics)
-
- * BBTTEESSTT
-
- * CCEEIILLIINNGG
-
- * CCHHAARR, IICCHHAARR
-
- * CCLLEEAARR__IIEEEEEE__EEXXCCEEPPTTIIOONN
-
- * CCLLOOCC
-
- * CCMMPPLLXX
-
- * CCOOMMPPLL
-
- * CCOONNJJGG
-
- * CCOOUUNNTT
-
- * CCSSHHIIFFTT
-
- * CCSSMMGG
-
- * CCVVMMGGMM, CCVVMMGGNN, CCVVMMGGPP, CCVVMMGGZZ, CCVVMMGGTT
-
- * DDBBLLEE
-
- * DDIIGGIITTSS
-
- * DDIIMM
-
- * DDIISSAABBLLEE__IIEEEEEE__IINNTTEERRRRUUPPTT
-
- * DDOOTT__PPRROODDUUCCTT
-
- * DDPPRROODD
-
- * DDSSHHIIFFTTLL
-
- * DDSSHHIIFFTTRR
-
- * EENNAABBLLEE__IIEEEEEE__IINNTTEERRRRUUPPTT
-
- * EEOOSSHHIIFFTT
-
- * EEPPSSIILLOONN
-
- * EEQQVV
-
- * EEXXPPOONNEENNTT
-
- * FFCCDD
-
- * FFLLOOOORR
-
- * FFLLOOAATT
-
- * FFRRAACCTTIIOONN
-
- * GGEETT__IIEEEEEE__EEXXCCEEPPTTIIOONNSS
-
- * GGEETT__IIEEEEEE__IINNTTEERRRRUUPPTTSS
-
- * GGEETT__IIEEEEEE__RROOUUNNDDIINNGG__MMOODDEE
-
- * GGEETT__IIEEEEEE__SSTTAATTUUSS
-
- * HHUUGGEE
-
- * II2244MMUULLTT
-
- * IIAACCHHAARR
-
- * IIAANNDD
-
- * IIBBCCLLRR
-
- * IIBBIITTSS
-
- * IIBBSSEETT
-
- * IIEEEEEE__CCLLAASSSS
-
- * IIEEEEEE__CCOOPPYY__SSIIGGNN
-
- * IIEEEEEE__FFIINNIITTEE
-
- * IIEEEEEE__IINNTT
-
- * IIEEEEEE__IISS__NNAANN
-
- * IIEEEEEE__RREEAALL
-
- * IIEEEEEE__UUNNOORRDDEERREEDD
-
- * IIEEOORR
-
- * IINNTT
-
- * IINNTT__MMUULLTT__UUPPPPEERR
-
- * IIOORR
-
- * IISSHHFFTT
-
- * IISSHHFFTTCC
-
- * KKIINNDD
-
- * LLBBOOUUNNDD
-
- * LLEEAADDZZ
-
- * LLEENN
-
- * LLGGEE, LLGGTT, LLLLEE, LLLLTT
-
- * LLOOCC
-
- * LLOOGGIICCAALL
-
- * MMAASSKK
-
- * MMAATTMMUULL
-
- * MMAAXX
-
- * MMAAXXEEXXPPOONNEENNTT
-
- * MMAAXXLLOOCC
-
- * MMAAXXVVAALL
-
- * MMEEMMOORRYY__BBAARRRRIIEERR
-
- * MMEERRGGEE
-
- * MMIINN
-
- * MMIINNEEXXPPOONNEENNTT
-
- * MMIINNVVAALL
-
- * MMOODD, AAMMOODD
-
- * MMOODDUULLOO
-
- * MMVVBBIITTSS
-
- * MMYY__PPEE
-
- * NNEEAARREESSTT
-
- * NNEEQQVV, XXOORR
-
- * NNIINNTT
-
- * NNOOTT
-
- * NNUUMMAARRGG
-
- * OORR
-
- * PPOOPPCCNNTT
-
- * PPOOPPPPAARR
-
- * PPRREECCIISSIIOONN
-
- * PPRREESSEENNTT
-
- * PPRROODDUUCCTT
-
- * RRAADDIIXX
-
- * RRAANNGGEE
-
- * RREEAALL
-
- * RREEMMOOTTEE__WWRRIITTEE__BBAARRRRIIEERR
-
- * RRRRSSPPAACCIINNGG
-
- * RRTTCC, IIRRTTCC
-
- * SSCCAALLEE
-
- * SSEELLEECCTTEEDD__IINNTT__KKIINNDD
-
- * SSEETT__EEXXPPOONNEENNTT
-
- * SSEETT__IIEEEEEE__EEXXCCEEPPTTIIOONN
-
- * SSEETT__IIEEEEEE__EEXXCCEEPPTTIIOONNSS
-
- * SSEETT__IIEEEEEE__IINNTTEERRRRUUPPTTSS
-
- * SSEETT__IIEEEEEE__RROOUUNNDDIINNGG__MMOODDEE
-
- * SSEETT__IIEEEEEE__SSTTAATTUUSS
-
- * SSHHAAPPEE
-
- * SSHHIIFFTT
-
- * SSHHIIFFTTAA
-
- * SSHHIIFFTTLL
-
- * SSHHIIFFTTRR
-
- * SSIIGGNN
-
- * SSPPAACCIINNGG
-
- * SSPPRREEAADD
-
- * SSUUMM
-
- * SSYYSSTTEEMM__CCLLOOCCKK
-
- * TTEESSTT__IIEEEEEE__EEXXCCEEPPTTIIOONN
-
- * TTEESSTT__IIEEEEEE__IINNTTEERRRRUUPPTT
-
- * TTIINNYY
-
- * TTRRAANNSSFFEERR
-
- * TTRRAANNSSPPOOSSEE
-
- * UUBBOOUUNNDD
-
- * WWRRIITTEE__MMEEMMOORRYY__BBAARRRRIIEERR
-
- The CF90 compiler supports vector versions of some intrinsic
- procedures. Using one of these intrinsics means that the presence of
- the intrinsic itself, in a loop, does not inhibit the loop's ability
- to vectorize. Vector versions of the following CF90 intrinsic
- procedures exist on UNICOS platforms:
-
- * AABBSS
-
- * AACCOOSS, DDAACCOOSS
-
- * AAIIMMAAGG
-
- * AAIINNTT
-
- * AANNDD
-
- * AANNIINNTT
-
- * AASSIINN
-
- * AATTAANN
-
- * AATTAANN22
-
- * BBIITT__SSIIZZEE
-
- * MM@@CCLLRR, MM@@LLDD, MM@@MMXX, MM@@LLDDMMXX, and MM@@UULL (the BMM intrinsics)
-
- * BBTTEESSTT
-
- * CCEEIILLIINNGG
-
- * CCMMPPLLXX
-
- * CCOOMMPPLL
-
- * CCOONNJJGG
-
- * CCOOSS
-
- * CCOOSSHH, DDCCOOSSHH
-
- * CCOOTT, DDCCOOTT
-
- * CCSSMMGG
-
- * CCVVMMGGMM, CCVVMMGGNN, CCVVMMGGPP, CCVVMMGGZZ, CCVVMMGGTT
-
- * DDBBLLEE, DDFFLLOOAATT
-
- * DDIIGGIITTSS
-
- * DDIIMM
-
- * DDPPRROODD
-
- * DDSSHHIIFFTTLL
-
- * DDSSHHIIFFTTRR
-
- * EEPPSSIILLOONN
-
- * EEQQVV
-
- * EEXXPP
-
- * EEXXPPOONNEENNTT
-
- * FFLLOOOORR
-
- * FFRRAACCTTIIOONN
-
- * HHUUGGEE
-
- * II2244MMUULLTT
-
- * IIAANNDD
-
- * IIBBCCLLRR
-
- * IIBBIITTSS
-
- * IIBBSSEETT
-
- * IIEEEEEE__CCLLAASSSS
-
- * IIEEEEEE__CCOOPPYY__SSIIGGNN
-
- * IIEEEEEE__FFIINNIITTEE
-
- * IIEEEEEE__IINNTT
-
- * IIEEEEEE__IISS__NNAANN
-
- * IIEEEEEE__RREEAALL
-
- * IIEEEEEE__UUNNOORRDDEERREEDD
-
- * IIEEOORR
-
- * IINNTT, IIDDIINNTT, IIFFIIXX
-
- * IINNTT__MMUULLTT__UUPPPPEERR
-
- * IIOORR
-
- * IISSHHFFTT
-
- * IISSHHFFTTCC
-
- * KKIINNDD
-
- * LLEEAADDZZ
-
- * LLOOGG
-
- * LLOOGG1100
-
- * LLOOGGIICCAALL
-
- * MMAASSKK
-
- * MMAAXX
-
- * MMAAXXEEXXPPOONNEENNTT
-
- * MMEERRGGEE
-
- * MMIINN
-
- * MMIINNEEXXPPOONNEENNTT
-
- * MMOODD
-
- * MMVVBBIITTSS
-
- * NNEEAARREESSTT
-
- * NNEEQQVV, XXOORR
-
- * NNIINNTT
-
- * NNOOTT
-
- * OORR
-
- * PPOOPPCCNNTT
-
- * PPOOPPPPAARR
-
- * PPRREECCIISSIIOONN
-
- * PPRREESSEENNTT
-
- * RRAADDIIXX
-
- * RRAANNDDOOMM__NNUUMMBBEERR
-
- * RRAANNFF
-
- * RRAANNGGEE
-
- * RREEAALL
-
- * RRRRSSPPAACCIINNGG
-
- * SSCCAALLEE
-
- * SSEELLEECCTTEEDD__IINNTT__KKIINNDD
-
- * SSEETT__EEXXPPOONNEENNTT
-
- * SSHHIIFFTT
-
- * SSHHIIFFTTAA
-
- * SSHHIIFFTTLL
-
- * SSHHIIFFTTRR
-
- * SSIIGGNN
-
- * SSIINN
-
- * SSIINNHH
-
- * SSPPAACCIINNGG
-
- * SSPPRREEAADD
-
- * SSQQRRTT
-
- * TTAANN
-
- * TTAANNHH
-
- * TTIINNYY
-
- The CF90 compiler supports vector versions of some intrinsic
- procedures and library-based operators on UNICOS/mk platforms, too.
- Using one of these intrinsics means that the presence of the intrinsic
- itself, in a loop, does not inhibit the loop's ability to vectorize.
- On UNICOS/mk platforms, you must specify --OO vveeccttoorr33 and --ll mmffaassttvv on
- your ff9900(1) command line in order for the compiler to be able to use
- vector versions of the following intrinsic procedures:
-
- * CCOOSS, AACCOOSS
-
- * CCOOSSSS
-
- * EEXXPP
-
- * LLOOGG, LLOOGG1100
-
- * MM@@LLDD, MM@@MMXX, MM@@LLDDMMXX, and MM@@UULL (the BMM intrinsics)
-
- * PPOOPPCCNNTT
-
- * RRAANNFF
-
- * RRTTOORR
-
- * SSIINN, AASSIINN
-
- * TTAANN, AATTAANN, AATTAANN22
-
- * SSQQRRTT
-
- The MIPSpro 7 Fortran 90 and the MIPSpro Fortran 77 compilers support
- both single-precision and double-precision vector versions of certain
- intrinsic procedures when --OO33 is specified on the compiler command
- line. These intrinsics are as follows:
-
- * CCOOSS, AACCOOSS
-
- * EEXXPP
-
- * LLOOGG, LLOOGG1100
-
- * SSIINN, AASSIINN
-
- * SSQQRRTT
-
- * TTAANN, AATTAANN
-
- For details about the Fortran 95 intrinsics, see the man pages
- themselves and the _F_o_r_t_r_a_n _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, _V_o_l_u_m_e _2.
-
- The C/C++ intrinsics either allow direct access to hardware
- instructions or result in the generation of inline code to perform
- specialized functions. The intrinsic functions are processed
- completely by the compiler, and no calls to external functions are
- generated. For details about the C intrinsic procedures, see the _C_r_a_y
- _C/_C++ _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
-
- For information about the math intrinsics, see the IINNTTRROO__LLIIBBMM(3I) man
- page. When using the MIPSpro 7 Fortran 90 compiler, the math
- intrinsic functions described in the _I_n_t_r_i_n_s_i_c _P_r_o_c_e_d_u_r_e_s _R_e_f_e_r_e_n_c_e
- _M_a_n_u_a_l, are not used. See the SGI math library documentation for
- information about math intrinsics supported on IRIX systems.
-
- TTEERRMMIINNOOLLOOGGYY
- The Fortran intrinsic procedure man pages use the terms
- _s_i_n_g_l_e _p_r_e_c_i_s_i_o_n, _d_o_u_b_l_e _p_r_e_c_i_s_i_o_n, and _q_u_a_d _p_r_e_c_i_s_i_o_n. These terms
- have different meanings depending on your operating system.
-
- The meaning of the term _s_i_n_g_l_e _p_r_e_c_i_s_i_o_n is as follows:
-
- * On IRIX systems, REAL(KIND=4) and COMPLEX(KIND=4).
-
- * On UNICOS and UNICOS/mk systems, REAL(KIND=8) and COMPLEX(KIND=8).
-
- The meaning of the term _d_o_u_b_l_e _p_r_e_c_i_s_i_o_n is as follows:
-
- * On UNICOS/mk and IRIX systems, REAL(KIND=8) and COMPLEX(KIND=8).
-
- * On UNICOS systems, REAL(KIND=16) and COMPLEX(KIND=16).
-
- The meaning of the term _q_u_a_d _p_r_e_c_i_s_i_o_n is as follows:
-
- * On UNICOS and IRIX systems, REAL(KIND=16) and COMPLEX(KIND=16).
-
- * On UNICOS/mk systems, REAL(KIND=8) and COMPLEX(KIND=8).
-
- SSEEEE AALLSSOO
- IINNTTRROO__LLIIBBMM(3I), IINNTTRROO__SSHHMMEEMM(3)
-
- _F_o_r_t_r_a_n _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, _V_o_l_u_m_e _2
-
- _C_r_a_y _C/_C++ _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
-
- _I_n_t_r_i_n_s_i_c _P_r_o_c_e_d_u_r_e_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l for the printed version of this
- man page.
-