home *** CD-ROM | disk | FTP | other *** search
-
-
-
- - 1 -
-
-
-
- 7.3 Fortran 90 Release Notes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- 4. _N_e_w__F_e_a_t_u_r_e_s
-
- This chapter lists the MIPSpro 7 Fortran 90
- features for the 7.3 release, including the new
- Fortran 95 features. The MIPSpro 7 Fortran 90
- compiler now fully supports Fortran 95.
-
-
- 4.1 _N_e_w__C_o_m_p_i_l_e_r__C_o_m_m_a_n_d__L_i_n_e__O_p_t_i_o_n_s
-
- The following sections describe the new f90
- command line options supported with the MIPSpro
- 7.3 release.
-
-
-
- 4.1.1 _C_h_e_c_k_s__a_n_d__C_o_m_m_e_n_t_s
-
- The -fullwarn option requests that the compiler
- perform additional checks and generate comment-
- level messages. These messages are suppressed by
- default. Specifying this option can be useful
- during software development.
-
-
-
- 4.1.2 _C_o_d_e__S_c_h_e_d_u_l_e_r
-
- The -r12000 option specifies the code scheduler
- for the R12000(TM) processor.
-
-
-
- 4.1.3 _S_t_a_t_i_c__V_a_r_i_a_b_l_e_s
-
- The -static_thread_private option makes all
- static variables private to each thread. This
- option can be combined with the -static option
- that promotes local/automatic variables to be
- static.
-
-
- 4.1.4 _C_o_n_f_o_r_m_a_n_c_e__C_h_e_c_k_i_n_g
-
- The DEBUG:conform_check option determines
- whether conformance checking is enabled. When
- set to YES, the compiler generates code to check
- if operands are conformable. Conformance check
- failures generate run-time warnings unless the
- environment variable F90_CONFORM_CHECK_ABORT is
- set to YES. The default is OFF.
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- 4.1.5 _E_x_t_e_r_n_a_l__N_a_m_e_s
-
- The -noappend option for external names is now
- supported. This option prevents the compiler
- from appending a trailing underbar on external
- names.
-
-
-
- 4.1.6 _F_e_e_d_b_a_c_k__F_i_l_e__S_p_e_c_i_f_i_c_a_t_i_o_n
-
- The -fb<_f_i_l_e> option specifies a feedback file
- for use with the prof(1) command.
-
-
-
- 4.1.7 _I_n_t_e_r_p_r_o_c_e_d_u_r_a_l__A_n_a_l_y_z_e_r__O_p_t_i_o_n__G_r_o_u_p
-
- New flags for the -IPA option group are as
- follows:
-
- common_pad_size=_n Specifies the amount by
- which to pad common block
- array dimensions.
-
- multi_clone=_n Specifies the maximum number
- of clones that can be
- created from a single
- procedure.
-
- node_bloat=_n When used in conjunction
- with -IPA:multi_clone,
- specifies the maximum
- percentage growth of the
- total number of procedures
- relative to the original
- program.
-
-
-
- 4.1.8 _I_n_t_e_r_p_r_o_c_e_d_u_r_a_l__P_a_r_a_l_l_e_l_i_z_a_t_i_o_n
-
- The -ipa option invokes the Interprocedural
- Analyzer option group. This is a new alias for
- -IPA:=ON. Compiling with the -ipa and -pfa
- options together instructs the compiler to
- perform interprocedural parallelization. The
- compiler applies a sophisticated analysis to
- determine when it can parallelize loops with
- calls.
-
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- 4.1.9 _L_i_s_t_i_n_g__C_o_n_t_r_o_l
-
- The -flist option invokes the Fortran listing
- control group. This is equivalent to
- -FLIST:=ON.
-
- The emit_omp=_f_l_a_g suboption to the -FLIST option
- directs the compiler to use OpenMP(TM)
- directives (_f_l_a_g=ON) or MIPS(TM) multiprocessing
- directives (_f_l_a_g=OFF).
-
-
-
- 4.1.10 _L_o_c_a_l__A_r_r_a_y__D_i_m_e_n_s_i_o_n__P_a_d_d_i_n_g
-
- The -LNO:local_pad_size=_n option specifies the
- amount by which to pad local array dimensions.
-
-
-
- 4.1.11 _P_a_r_a_l_l_e_l_i_z_a_t_i_o_n__A_n_a_l_y_s_i_s
-
- The -LNO:pure={_f_l_a_g} option tells the compiler
- how to use the PURE attribute when gathering
- information about calls for parallelization
- analysis. The PURE attribute and the !DIR$
- NOSIDE EFFECTS directive have the same meaning.
- The values for the flag is as follows:
-
- 0 Ignores the fact that a PURE procedure or a
- procedure declared with a !DIR$ NO SIDE
- EFFECTS directive does not modify global
- data or its arguments.
-
- 1 (default) Accounts for the fact that PURE
- procedures and !DIR$ NO SIDE EFFECT
- procedures do not modify global data or
- procedure arguments.
-
- 2 User asserts that PURE and !DIR$ NO SIDE
- EFFECT functions not only do not modify
- global data or dummy arguments of the
- procedure, but also do not access global
- data. The only nonlocal data referenced by
- the routine are the dummy arguments to the
- procedure. This is an extension of the
- normal meaning of PURE and !DIR$ NO SIDE
- EFFECTS. More agressive parallelization
- may occur if procedures are known not to
- access global data.
-
-
-
-
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
- Fortran language multiprocessor programs are now
- supported by ProDev ProMP graphical user
- interface. (ProDev ProMP was formerly known as
- WorkShop Pro MPF.) Among other things, ProDev
- ProMP lets you see the transformed source
- alongside the original program source code.
-
-
-
- 4.1.12 _P_r_o_c_e_d_u_r_e__R_e_o_r_d_e_r_i_n_g
-
- The -OPT:procedure_reorder=_f_e_e_d_b_a_c_k__f_i_l_e option
- has been added to the ld(1) man page to specify
- a file for procedure ordering. The
- procedure_reorder option has been added to the
- opt(5) man page to specify whether a reorder
- file exists. In addition, new procedure
- ordering informational messages are issued.
-
-
-
- 4.1.13 _S_p_e_c_u_l_a_t_i_v_e__L_o_c_a_t_i_o_n_s
-
- The -OPT:speculative_ptr_deref={ON/OFF} option
- allows speculative loads of memory locations
- that differ by a small offset from some
- referenced memory location. For more
- information, see the opt(5) man page.
-
-
-
- 4.1.14 _T_a_r_g_e_t__O_p_t_i_o_n__G_r_o_u_p__C_o_n_t_r_o_l_s
-
- The target option group has the following new
- controls:
-
- dismiss_mem_faults=_f_l_a_g Forces the kernel to
- dismiss memory faults
- that occur during
- execution.
-
- exc_max=_v_a_l_u_e Specifies the maximum
- set of IEEE-754
- floating point
- exceptions for which
- traps can be enabled
- at run time.
-
- exc_min=_v_a_l_u_e Specifies the minimum
- set of IEEE-754
- floating point
-
-
-
-
-
-
-
-
-
-
-
- - 6 -
-
-
-
- exceptions for which
- traps must be enabled
- at run time.
-
- isa=_v_a_l_u_e Identifies the target
- instruction set
- architecture for
- compilation.
-
- sync=_f_l_a_g Enables or disables
- the use of SYNC
- instructions.
-
-
- 4.1.15 _-_T_E_N_V__S_u_b_o_p_t_i_o_n
-
- The large_got=ON/OFF suboption to the -TENV
- compiler option replaces the -avoid_gp_overflow
- and the -xgot options.
-
-
-
-
- 4.2 _N_e_w__O_p_t_i_o_n_s__f_o_r__t_h_e__a_s_s_i_g_n__C_o_m_m_a_n_d
-
- The following sections describe new options for
- the assign command.
-
-
- 4.2.1 _F_F_I_O__L_a_y_e_r_s
-
- The assign command now accepts the -F global
- option for global layers, the -F tmf option for
- tape layers, and the -F vms option for
- VAX(TM)/VMS files.
-
-
- 4.2.2 _D_a_t_a__C_o_n_v_e_r_s_i_o_n
-
- The following data conversion options are now
- available on the assign command:
-
- +o -N ieee_64
-
- +o -N ieee_le
-
- +o -N vax
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 7 -
-
-
-
- 4.3 _I_n_t_r_i_n_s_i_c_s
-
- The following sections describe intrinsics
- supported in the MIPSpro 7.3 release.
-
-
-
- 4.3.1 _C_E_I_L_I_N_G__a_n_d__F_L_O_O_R__I_n_t_r_i_n_s_i_c_s__E_n_h_a_n_c_e_m_e_n_t_s
-
- A second argument has been added to the CEILING
- and the FLOOR intrinsics. This argument is
- optional, and specifies the kind type of the
- result of the intrinsic.
-
-
- 4.3.2 _C_P_U___T_I_M_E__I_n_t_r_i_n_s_i_c
-
- The CPU_TIME intrinsic returns processor (user)
- time. It does not return system time. The
- following example illustrates the use of the
- CPU_TIME intrinsic:
-
- CALL CPU_TIME(REAL_TIME_VALUE)
-
-
-
- 4.3.3 _N_U_L_L_(_)__I_n_t_r_i_n_s_i_c
-
- The NULL() intrinsic returns a disassociated
- pointer.
-
-
-
- 4.4 _U_t_i_l_i_t_i_e_s__a_n_d__O_t_h_e_r__R_o_u_t_i_n_e_s
-
- The following sections describe utilities and
- other routines supported in the MIPSpro 7.3
- release.
-
-
- 4.4.1 _D_a_t_a__C_o_p_y_i_n_g__U_t_i_l_i_t_y
-
- The fdcp(1) command is now available.
-
-
-
- 4.4.2 _F_o_r_t_r_a_n_-_C_a_l_l_a_b_l_e__R_o_u_t_i_n_e_s
-
- Fortran-callable versions of POPCNT, POPPAR,
- LEADZ, and MASK are now available.
-
-
-
-
-
-
-
-
-
-
-
-
- - 8 -
-
-
-
- 4.4.3 _F_o_r_t_r_a_n__P_X_F__R_o_u_t_i_n_e_s
-
- The following Fortran PXF interface routines are
- now available, although not yet documented:
-
- PXFAINTGET
- PXFAINTSET
- PXFCLOSE
- PXFDUP
- PXFDUP2
- PXFEINTGET
- PXFEINTSET
- PXFGETISPEED
- PXFGETOSPEED
- PXFLSEEK
- PXFMKFIFO
- PXFSETISPEED
- PXFSETOSPEED
- PXFTCFLOW
- PXFTCFLUSH
- PXFTCGETATTR
- PXFTCGETPGRP
- PXFTCSENDBREAK
- PXFTCSETATTR
- PXFTCSETATTR
- PXFTCSETPGRP
- PXFSYSTEM
- PXFWRITE
-
-
-
-
- 4.4.4 _R_a_n_d_o_m__N_u_m_b_e_r__R_o_u_t_i_n_e_s
-
- The random number routines, RANF, RANSET, and
- RANGET have been enhanced. These changes cause
- slight differences in the sixteenth digit for
- 64-bit random numbers and from the sixteenth
- digit to the end of 128-bit random numbers.
-
-
-
- 4.4.5 _U_s_e_r_-_C_a_l_l_a_b_l_e__C_o_n_v_e_r_s_i_o_n__R_o_u_t_i_n_e_s
-
- The following user-callable conversion routines
- are now available:
-
- MIPS2IEG and IEG2MIPS Conversion between
- IEEE Fortran data
- types and IRIX
- IEEE Fortran data
-
-
-
-
-
-
-
-
-
-
-
- - 9 -
-
-
-
- types.
-
- MIPS2VAX and VAX2MIPS Conversion between
- VAX Fortran data
- types and IRIX
- IEEE Fortran data
- types.
-
-
-
- 4.5 _O_t_h_e_r__F_o_r_t_r_a_n__E_n_h_a_n_c_e_m_e_n_t_s
-
- The following sections describe other Fortran
- enhancements supported by this MIPSpro 7 Fortran
- 90 release.
-
-
- 4.5.1 _E_d_i_t__D_e_s_c_r_i_p_t_o_r__C_h_a_n_g_e_s
-
- The following edit descriptor features are now
- supported:
-
- +o The backslash (\) is now recognized as
- another carriage control indicator, as a
- synonym for the dollar sign ($).
-
- +o The Q edit descriptor now returns the
- number of characters left in a formatted
- record.
-
- +o An empty or zero field width is now a legal
- value in data edit descriptors such as I,
- B, O, Z, D, E, F, G, and L. This feature
- includes some MIPS FORTRAN 77 extensions
- that came from VAX Fortran. These are now
- pseudo standards.
-
-
- 4.5.2 _E_L_S_P_E_C__E_n_h_a_n_c_e_m_e_n_t_s
-
- When information regarding data that needs to be
- loaded relative to the Global Pointer (the gprel
- area) is missing from the ELSPEC file, the
- system generates the following messages:
-
- ld32: FATAL 173: No gprel area specified in elspec file.
- Try using "default_gprel" after the data section
- declaration.
- See ELSPEC(5)
- ld32: INFO 152: Output file removed because of error.
-
-
-
-
-
-
-
-
-
-
-
-
- - 10 -
-
-
-
- To correct the file, you can add the following
- line:
-
- default_gprel
-
-
-
-
- 4.5.3 _F_O_R_A_L_L__C_o_n_s_t_r_u_c_t__S_u_p_p_o_r_t
-
- Support has been added for the Fortran 95 FORALL
- construct. FORALL constructs and statements
- control the execution of assignment and pointer
- assignment statements with selection by sets of
- index values and an optional mask expression.
- The following example illustrates the use of the
- FORALL construct:
-
- integer a(10,10), b(20)
-
- forall (i = 1:m:n, k =1:mm:nn, b(i+k) > 0)
-
- a(i,k) = 1 / b(i+k)
-
- endforall
-
- Semantics are as follows:
-
- 1. Calculate the range of indices and masks.
-
- 2. Evaluate all RH expressions.
-
- 3. Do all LH assignments.
-
- The FORALL construct cannot be used with OpenMP
- directives.
-
-
- 4.5.4 _F_O_R_M_=_S_Y_S_T_E_M__S_u_p_p_o_r_t
-
- Support has been added for FORM="SYSTEM" in OPEN
- and INQUIRE statements.
-
-
- 4.5.5 _f_t_p_p _R_e_p_l_a_c_e_d _w_i_t_h _I_n_t_e_g_r_a_t_e_d
- _P_r_e_p_r_o_c_e_s_s_o_r
-
- ftpp has been removed from the release package
- and replaced with the integrated preprocessor.
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 11 -
-
-
-
- 4.5.6 _G_e_n_e_r_i_c__N_a_m_e__o_n__E_N_D__I_N_T_E_R_F_A_C_E
-
- A generic name can now be specified on the END
- INTERFACE statement as well as on the INTERFACE
- statement. The name on the INTERFACE and END
- INTERFACE statements must be the same.
-
-
- 4.5.7 _G_l_o_b_a_l__S_e_m_a_n_t_i_c_s
-
- The compiler does a limited amount of semantic
- checking across program units within a file. For
- example, if you define a subroutine in the file
- being compiled and then call that subroutine in
- the same compilation, the compiler will do call
- site checking.
-
-
- 4.5.8 _I_n_i_t_i_a_l_i_z_a_t_i_o_n__o_f__D_e_r_i_v_e_d__C_o_m_p_o_n_e_n_t_s
-
- Default initialization can now be declared for
- each component in a derived type definition. All
- objects declared to be of a particular derived
- type have their components initialized to the
- values specified in the derived type definition.
- You can override default initialization by
- explicitly initializing an object declared of
- that type. The following example illustrates
- the use of default initialization of derived
- type components:
-
- type x
-
- integer :: i = 10
-
- endtype
-
- type (x) :: var1
-
- type (x) :: var2 = x(11)
-
- The value of var1%i is 10. The value of var2%i
- is 11.
-
-
- 4.5.9 _N_A_M_E_L_I_S_T _a_n_d _L_i_s_t-_D_i_r_e_c_t_e_d _I/_O
- _E_n_h_a_n_c_e_m_e_n_t_s
-
- Comments that begin with an exclamation point
- (!) are now recognized in NAMELIST input
- records. For more information, see the assign
-
-
-
-
-
-
-
-
-
-
-
- - 12 -
-
-
-
- command (-Y on/off option).
-
- New options (-y, -S, -W, and -U) on the assign
- command control the NAMELIST and list-directed
- output statements.
-
-
- 4.5.10 _N_e_g_a_t_i_v_e__F_l_o_a_t_i_n_g__P_o_i_n_t__Z_e_r_o
-
- A negative floating point zero (-0.0) is now
- recognized for IEEE floating point systems. The
- minus sign is suppressed.
-
-
- 4.5.11 _N_e_s_t_e_d__W_H_E_R_E__C_o_n_s_t_r_u_c_t__S_u_p_p_o_r_t
-
- WHERE constructs can now be named and contain
- FORALL constructs and other WHERE constructs. In
- addition, the ELSEWHERE statement can now
- contain a mask. The result is that some nested
- IF constructs can be translated to array
- notation without forming complicated mask
- expressions.
-
- The following example illustrates the use of the
- WHERE and ELSEWHERE constructs:
-
- REAL, DIMENSION(10) :: A,B
-
- WHERE (A<0)
-
- WHERE (A< -1.0)
-
- B = 1
-
- ELSEWHERE (A < -0.5)
-
- B = 3
-
- ENDWHERE
-
- ENDWHERE
-
-
-
- 4.5.12 _O_b_s_o_l_e_s_c_e_n_t _F_e_a_t_u_r_e _D_e_t_e_c_t_i_o_n _f_o_r
- _F_o_r_t_r_a_n _9_5
-
- Silicon Graphics supports the following FORTRAN
- 77/Fortran 90 features, even though they have
- been deleted from the Fortran 95 standard. An
-
-
-
-
-
-
-
-
-
-
-
- - 13 -
-
-
-
- ANSI message is issued when these features are
- used.
-
- +o Using REAL and DOUBLE PRECISION DO
- variables
-
- +o Branching to an END IF statement from
- outside its IF block
-
- +o Using PAUSE statements
-
- +o Using ASSIGN, assigned GOTO, and assigned
- FORMAT statements
-
- +o Using the H edit descriptor
-
- Silicon Graphics supports certain other Fortran
- features, even though the standard has declared
- them obsolescent. (Obsolescent features are
- Fortran 90 features that were redundant and for
- which better methods are available in Fortran
- 95.) A comment message is issued when these
- features are used. The following list provides
- the obsolescent feature with the corresponding
- preferred feature in parentheses:
-
- +o Arithmetic IF (Use the IF statement or the
- IF construct).
-
- +o Shared DO termination and termination on a
- statement other than an END DO or CONTINUE
- statement (Use an END DO or CONTINUE
- statement for each DO statement.)
-
- +o Alternate return (Use a return code with a
- CASE construct upon return).
-
- +o Computed GOTO statement (Use the CASE
- construct).
-
- +o Statement functions (Use internal
- procedures).
-
- +o DATA statements among executable statements
- (Place DATA statements before all
- executable statements).
-
- +o Assumed length character functions (Some
- uses can be replaced with an automatic
- character length function, where the length
- of the function result is declared in a
-
-
-
-
-
-
-
-
-
-
-
- - 14 -
-
-
-
- specification expression. Other uses can be
- replaced by the use of a subroutine whose
- arguments correspond to the function result
- and the function arguments).
-
- +o Fixed source form (Use free source form).
-
- +o CHARACTER*char-length form of character
- declaration (Use CHARACTER*(char-length) or
- one of the other forms listed in 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, Volume
- 1).
-
-
- 4.5.13 _P_o_i_n_t_e_e_s
-
- Pointees can now be of derived type.
-
-
-
- 4.5.14 _R_u_n_-_T_i_m_e__L_i_n_k_e_r
-
- The following options have been added to the
- _RLD_ARGS environment variable:
-
- -f Specifies no re-resolution of symbols that
- are closed by the dlclose command. This
- option significantly improves the startup
- and run time of some applications. This
- is the default.
-
- -s Restores the older rld behavior (some
- applications will start and run
- significantly slower with -s set).
-
- -idv By default, delay-loaded dynamic shared
- objects (DSOs) now have their versions
- checked. This option restores the old
- behavior of not checking versions.
-
- It should not be necessary to set the _RLD_ARGS
- environment variable. It can be used as a
- workaround if an application fails.
-
-
- 4.5.15 _S_u_p_e_r_c_o_m_p_u_t_i_n_g__A_P_I__S_u_p_p_o_r_t
-
- The MIPSpro 7.3 release supports the
- Supercomputing Application Programming Interface
- (API), a set of language features and library
- functions that are implemented across the
-
-
-
-
-
-
-
-
-
-
-
- - 15 -
-
-
-
- Silicon Graphics and Cray(TM) product line to
- meet the application portability needs of high-
- performance, technical computing customers. For
- more information, see the online Supercomputing
- API document at the following URL:
-
- http:/www.sgi.com/software/scapi.html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-