home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / relnotes / ftn90_dev / ch4.z / ch4
Encoding:
Text File  |  2002-10-08  |  28.1 KB  |  990 lines

  1.  
  2.  
  3.  
  4.                                                - 1 -
  5.  
  6.  
  7.  
  8.                     7.3 Fortran 90 Release Notes
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                                - 2 -
  69.  
  70.  
  71.  
  72.                     4.  _N_e_w__F_e_a_t_u_r_e_s
  73.  
  74.                     This chapter lists the MIPSpro 7 Fortran 90
  75.                     features for the 7.3 release, including the new
  76.                     Fortran 95 features.  The MIPSpro 7 Fortran 90
  77.                     compiler now fully supports Fortran 95.
  78.  
  79.  
  80.                     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
  81.  
  82.                     The following sections describe the new f90
  83.                     command line options supported with the MIPSpro
  84.                     7.3 release.
  85.  
  86.  
  87.  
  88.                     4.1.1  _C_h_e_c_k_s__a_n_d__C_o_m_m_e_n_t_s
  89.  
  90.                     The -fullwarn option requests that the compiler
  91.                     perform additional checks and generate comment-
  92.                     level messages. These messages are suppressed by
  93.                     default. Specifying this option can be useful
  94.                     during software development.
  95.  
  96.  
  97.  
  98.                     4.1.2  _C_o_d_e__S_c_h_e_d_u_l_e_r
  99.  
  100.                     The -r12000 option specifies the code scheduler
  101.                     for the R12000(TM) processor.
  102.  
  103.  
  104.  
  105.                     4.1.3  _S_t_a_t_i_c__V_a_r_i_a_b_l_e_s
  106.  
  107.                     The -static_thread_private option makes all
  108.                     static variables private to each thread.  This
  109.                     option can be combined with the -static option
  110.                     that promotes local/automatic variables to be
  111.                     static.
  112.  
  113.  
  114.                     4.1.4  _C_o_n_f_o_r_m_a_n_c_e__C_h_e_c_k_i_n_g
  115.  
  116.                     The DEBUG:conform_check option determines
  117.                     whether conformance checking is enabled.  When
  118.                     set to YES, the compiler generates code to check
  119.                     if operands are conformable.  Conformance check
  120.                     failures generate run-time warnings unless the
  121.                     environment variable F90_CONFORM_CHECK_ABORT is
  122.                     set to YES. The default is OFF.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.                                                - 3 -
  135.  
  136.  
  137.  
  138.                     4.1.5  _E_x_t_e_r_n_a_l__N_a_m_e_s
  139.  
  140.                     The -noappend option for external names is now
  141.                     supported.  This option prevents the compiler
  142.                     from appending a trailing underbar on external
  143.                     names.
  144.  
  145.  
  146.  
  147.                     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
  148.  
  149.                     The -fb<_f_i_l_e> option specifies a feedback file
  150.                     for use with the prof(1) command.
  151.  
  152.  
  153.  
  154.                     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
  155.  
  156.                     New flags for the -IPA option group are as
  157.                     follows:
  158.  
  159.                     common_pad_size=_n   Specifies the amount by
  160.                                         which to pad common block
  161.                                         array dimensions.
  162.  
  163.                     multi_clone=_n       Specifies the maximum number
  164.                                         of clones that can be
  165.                                         created from a single
  166.                                         procedure.
  167.  
  168.                     node_bloat=_n        When used in conjunction
  169.                                         with -IPA:multi_clone,
  170.                                         specifies the maximum
  171.                                         percentage growth of the
  172.                                         total number of procedures
  173.                                         relative to the original
  174.                                         program.
  175.  
  176.  
  177.  
  178.                     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
  179.  
  180.                     The -ipa option invokes the Interprocedural
  181.                     Analyzer option group.  This is a new alias for
  182.                     -IPA:=ON.  Compiling with the -ipa and -pfa
  183.                     options together instructs the compiler to
  184.                     perform interprocedural parallelization.  The
  185.                     compiler applies a sophisticated analysis to
  186.                     determine when it can parallelize loops with
  187.                     calls.
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.                                                - 4 -
  201.  
  202.  
  203.  
  204.                     4.1.9  _L_i_s_t_i_n_g__C_o_n_t_r_o_l
  205.  
  206.                     The -flist option invokes the Fortran listing
  207.                     control group.  This is equivalent to
  208.                     -FLIST:=ON.
  209.  
  210.                     The emit_omp=_f_l_a_g suboption to the -FLIST option
  211.                     directs the compiler to use OpenMP(TM)
  212.                     directives (_f_l_a_g=ON) or MIPS(TM) multiprocessing
  213.                     directives (_f_l_a_g=OFF).
  214.  
  215.  
  216.  
  217.                     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
  218.  
  219.                     The -LNO:local_pad_size=_n option specifies the
  220.                     amount by which to pad local array dimensions.
  221.  
  222.  
  223.  
  224.                     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
  225.  
  226.                     The -LNO:pure={_f_l_a_g} option tells the compiler
  227.                     how to use the PURE attribute when gathering
  228.                     information about calls for parallelization
  229.                     analysis.  The PURE attribute and the !DIR$
  230.                     NOSIDE EFFECTS directive have the same meaning.
  231.                     The values for the flag is as follows:
  232.  
  233.                     0    Ignores the fact that a PURE procedure or a
  234.                          procedure declared with a !DIR$ NO SIDE
  235.                          EFFECTS directive does not modify global
  236.                          data or its arguments.
  237.  
  238.                     1    (default) Accounts for the fact that PURE
  239.                          procedures and !DIR$ NO SIDE EFFECT
  240.                          procedures do not modify global data or
  241.                          procedure arguments.
  242.  
  243.                     2    User asserts that PURE and !DIR$ NO SIDE
  244.                          EFFECT functions not only do not modify
  245.                          global data or dummy arguments of the
  246.                          procedure, but also do not access global
  247.                          data.  The only nonlocal data referenced by
  248.                          the routine are the dummy arguments to the
  249.                          procedure. This is an extension of the
  250.                          normal meaning of PURE and !DIR$ NO SIDE
  251.                          EFFECTS.  More agressive parallelization
  252.                          may occur if procedures are known not to
  253.                          access global data.
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.                                                - 5 -
  267.  
  268.  
  269.  
  270.                     Fortran language multiprocessor programs are now
  271.                     supported by ProDev ProMP graphical user
  272.                     interface.  (ProDev ProMP was formerly known as
  273.                     WorkShop Pro MPF.)  Among other things, ProDev
  274.                     ProMP lets you see the transformed source
  275.                     alongside the original program source code.
  276.  
  277.  
  278.  
  279.                     4.1.12  _P_r_o_c_e_d_u_r_e__R_e_o_r_d_e_r_i_n_g
  280.  
  281.                     The -OPT:procedure_reorder=_f_e_e_d_b_a_c_k__f_i_l_e option
  282.                     has been added to the ld(1) man page to specify
  283.                     a file for procedure ordering. The
  284.                     procedure_reorder option has been added to the
  285.                     opt(5) man page to specify whether a reorder
  286.                     file exists.  In addition, new procedure
  287.                     ordering informational messages are issued.
  288.  
  289.  
  290.  
  291.                     4.1.13  _S_p_e_c_u_l_a_t_i_v_e__L_o_c_a_t_i_o_n_s
  292.  
  293.                     The -OPT:speculative_ptr_deref={ON/OFF} option
  294.                     allows speculative loads of memory locations
  295.                     that differ by a small offset from some
  296.                     referenced memory location.  For more
  297.                     information, see the opt(5) man page.
  298.  
  299.  
  300.  
  301.                     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
  302.  
  303.                     The target option group has the following new
  304.                     controls:
  305.  
  306.                     dismiss_mem_faults=_f_l_a_g   Forces the kernel to
  307.                                               dismiss memory faults
  308.                                               that occur during
  309.                                               execution.
  310.  
  311.                     exc_max=_v_a_l_u_e             Specifies the maximum
  312.                                               set of IEEE-754
  313.                                               floating point
  314.                                               exceptions for which
  315.                                               traps can be enabled
  316.                                               at run time.
  317.  
  318.                     exc_min=_v_a_l_u_e             Specifies the minimum
  319.                                               set of IEEE-754
  320.                                               floating point
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.                                                - 6 -
  333.  
  334.  
  335.  
  336.                                               exceptions for which
  337.                                               traps must be enabled
  338.                                               at run time.
  339.  
  340.                     isa=_v_a_l_u_e                 Identifies the target
  341.                                               instruction set
  342.                                               architecture for
  343.                                               compilation.
  344.  
  345.                     sync=_f_l_a_g                 Enables or disables
  346.                                               the use of SYNC
  347.                                               instructions.
  348.  
  349.  
  350.                     4.1.15  _-_T_E_N_V__S_u_b_o_p_t_i_o_n
  351.  
  352.                     The large_got=ON/OFF suboption to the -TENV
  353.                     compiler option replaces the -avoid_gp_overflow
  354.                     and the -xgot options.
  355.  
  356.  
  357.  
  358.  
  359.                     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
  360.  
  361.                     The following sections describe new options for
  362.                     the assign command.
  363.  
  364.  
  365.                     4.2.1  _F_F_I_O__L_a_y_e_r_s
  366.  
  367.                     The assign command now accepts the -F global
  368.                     option for global layers, the -F tmf option for
  369.                     tape layers, and the -F vms option for
  370.                     VAX(TM)/VMS files.
  371.  
  372.  
  373.                     4.2.2  _D_a_t_a__C_o_n_v_e_r_s_i_o_n
  374.  
  375.                     The following data conversion options are now
  376.                     available on the assign command:
  377.  
  378.                        +o -N ieee_64
  379.  
  380.                        +o -N ieee_le
  381.  
  382.                        +o -N vax
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                                                - 7 -
  399.  
  400.  
  401.  
  402.                     4.3  _I_n_t_r_i_n_s_i_c_s
  403.  
  404.                     The following sections describe intrinsics
  405.                     supported in the MIPSpro 7.3 release.
  406.  
  407.  
  408.  
  409.                     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
  410.  
  411.                      A second argument has been added to the CEILING
  412.                     and the FLOOR intrinsics. This argument is
  413.                     optional, and specifies the kind type of the
  414.                     result of the intrinsic.
  415.  
  416.  
  417.                     4.3.2  _C_P_U___T_I_M_E__I_n_t_r_i_n_s_i_c
  418.  
  419.                     The CPU_TIME intrinsic returns processor (user)
  420.                     time.  It does not return system time.  The
  421.                     following example illustrates the use of the
  422.                     CPU_TIME intrinsic:
  423.  
  424.                     CALL CPU_TIME(REAL_TIME_VALUE)
  425.  
  426.  
  427.  
  428.                     4.3.3  _N_U_L_L_(_)__I_n_t_r_i_n_s_i_c
  429.  
  430.                     The NULL() intrinsic returns a disassociated
  431.                     pointer.
  432.  
  433.  
  434.  
  435.                     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
  436.  
  437.                     The following sections describe utilities and
  438.                     other routines supported in the MIPSpro 7.3
  439.                     release.
  440.  
  441.  
  442.                     4.4.1  _D_a_t_a__C_o_p_y_i_n_g__U_t_i_l_i_t_y
  443.  
  444.                     The fdcp(1) command is now available.
  445.  
  446.  
  447.  
  448.                     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
  449.  
  450.                     Fortran-callable versions of POPCNT, POPPAR,
  451.                     LEADZ, and MASK are now available.
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.                                                - 8 -
  465.  
  466.  
  467.  
  468.                     4.4.3  _F_o_r_t_r_a_n__P_X_F__R_o_u_t_i_n_e_s
  469.  
  470.                     The following Fortran PXF interface routines are
  471.                     now available, although not yet documented:
  472.  
  473.                        PXFAINTGET
  474.                        PXFAINTSET
  475.                        PXFCLOSE
  476.                        PXFDUP
  477.                        PXFDUP2
  478.                        PXFEINTGET
  479.                        PXFEINTSET
  480.                        PXFGETISPEED
  481.                        PXFGETOSPEED
  482.                        PXFLSEEK
  483.                        PXFMKFIFO
  484.                        PXFSETISPEED
  485.                        PXFSETOSPEED
  486.                        PXFTCFLOW
  487.                        PXFTCFLUSH
  488.                        PXFTCGETATTR
  489.                        PXFTCGETPGRP
  490.                        PXFTCSENDBREAK
  491.                        PXFTCSETATTR
  492.                        PXFTCSETATTR
  493.                        PXFTCSETPGRP
  494.                        PXFSYSTEM
  495.                        PXFWRITE
  496.  
  497.  
  498.  
  499.  
  500.                     4.4.4  _R_a_n_d_o_m__N_u_m_b_e_r__R_o_u_t_i_n_e_s
  501.  
  502.                     The random number routines, RANF, RANSET, and
  503.                     RANGET have been enhanced.  These changes cause
  504.                     slight differences in the sixteenth digit for
  505.                     64-bit random numbers and from the sixteenth
  506.                     digit to the end of 128-bit random numbers.
  507.  
  508.  
  509.  
  510.                     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
  511.  
  512.                     The following user-callable conversion routines
  513.                     are now available:
  514.  
  515.                     MIPS2IEG and IEG2MIPS         Conversion between
  516.                                                   IEEE Fortran data
  517.                                                   types and IRIX
  518.                                                   IEEE Fortran data
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.                                                - 9 -
  531.  
  532.  
  533.  
  534.                                                   types.
  535.  
  536.                     MIPS2VAX and VAX2MIPS         Conversion between
  537.                                                   VAX Fortran data
  538.                                                   types and IRIX
  539.                                                   IEEE Fortran data
  540.                                                   types.
  541.  
  542.  
  543.  
  544.                     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
  545.  
  546.                     The following sections describe other Fortran
  547.                     enhancements supported by this MIPSpro 7 Fortran
  548.                     90 release.
  549.  
  550.  
  551.                     4.5.1  _E_d_i_t__D_e_s_c_r_i_p_t_o_r__C_h_a_n_g_e_s
  552.  
  553.                     The following edit descriptor features are now
  554.                     supported:
  555.  
  556.                        +o The backslash (\) is now recognized as
  557.                          another carriage control indicator, as a
  558.                          synonym for the dollar sign ($).
  559.  
  560.                        +o The Q edit descriptor now returns the
  561.                          number of characters left in a formatted
  562.                          record.
  563.  
  564.                        +o An empty or zero field width is now a legal
  565.                          value in data edit descriptors such as I,
  566.                          B, O, Z, D, E, F, G, and L. This feature
  567.                          includes some MIPS FORTRAN 77 extensions
  568.                          that came from VAX Fortran.  These are now
  569.                          pseudo standards.
  570.  
  571.  
  572.                     4.5.2  _E_L_S_P_E_C__E_n_h_a_n_c_e_m_e_n_t_s
  573.  
  574.                     When information regarding data that needs to be
  575.                     loaded relative to the Global Pointer (the gprel
  576.                     area) is missing from the ELSPEC file, the
  577.                     system generates the following messages:
  578.  
  579.                     ld32: FATAL 173:  No gprel area specified in elspec file.
  580.                           Try using "default_gprel" after the data section
  581.                           declaration.
  582.                           See ELSPEC(5)
  583.                     ld32: INFO 152: Output file removed because of error.
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.                                                - 10 -
  597.  
  598.  
  599.  
  600.                     To correct the file, you can add the following
  601.                     line:
  602.  
  603.                     default_gprel
  604.  
  605.  
  606.  
  607.  
  608.                     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
  609.  
  610.                     Support has been added for the Fortran 95 FORALL
  611.                     construct. FORALL constructs and statements
  612.                     control the execution of assignment and pointer
  613.                     assignment statements with selection by sets of
  614.                     index values and an optional mask expression.
  615.                     The following example illustrates the use of the
  616.                     FORALL construct:
  617.  
  618.                     integer a(10,10), b(20)
  619.  
  620.                     forall (i = 1:m:n, k =1:mm:nn, b(i+k) > 0)
  621.  
  622.                        a(i,k) = 1 / b(i+k)
  623.  
  624.                     endforall
  625.  
  626.                     Semantics are as follows:
  627.  
  628.                       1.  Calculate the range of indices and masks.
  629.  
  630.                       2.  Evaluate all RH expressions.
  631.  
  632.                       3.  Do all LH assignments.
  633.  
  634.                     The FORALL construct cannot be used with OpenMP
  635.                     directives.
  636.  
  637.  
  638.                     4.5.4  _F_O_R_M_=_S_Y_S_T_E_M__S_u_p_p_o_r_t
  639.  
  640.                     Support has been added for FORM="SYSTEM" in OPEN
  641.                     and INQUIRE statements.
  642.  
  643.  
  644.                     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
  645.                     _P_r_e_p_r_o_c_e_s_s_o_r
  646.  
  647.                     ftpp has been removed from the release package
  648.                     and replaced with the integrated preprocessor.
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.                                                - 11 -
  663.  
  664.  
  665.  
  666.                     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
  667.  
  668.                     A generic name can now be specified on the END
  669.                     INTERFACE statement as well as on the INTERFACE
  670.                     statement. The name on the INTERFACE and END
  671.                     INTERFACE statements must be the same.
  672.  
  673.  
  674.                     4.5.7  _G_l_o_b_a_l__S_e_m_a_n_t_i_c_s
  675.  
  676.                     The compiler does a limited amount of semantic
  677.                     checking across program units within a file. For
  678.                     example, if you define a subroutine in the file
  679.                     being compiled and then call that subroutine in
  680.                     the same compilation, the compiler will do call
  681.                     site checking.
  682.  
  683.  
  684.                     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
  685.  
  686.                     Default initialization can now be declared for
  687.                     each component in a derived type definition. All
  688.                     objects declared to be of a particular derived
  689.                     type have their components initialized to the
  690.                     values specified in the derived type definition.
  691.                     You can override default initialization by
  692.                     explicitly initializing an object declared of
  693.                     that type.  The following example illustrates
  694.                     the use of default initialization of derived
  695.                     type components:
  696.  
  697.                     type x
  698.  
  699.                           integer :: i = 10
  700.  
  701.                     endtype
  702.  
  703.                     type (x) :: var1
  704.  
  705.                     type (x) :: var2 = x(11)
  706.  
  707.                     The value of var1%i is 10.  The value of var2%i
  708.                     is 11.
  709.  
  710.  
  711.                     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
  712.                     _E_n_h_a_n_c_e_m_e_n_t_s
  713.  
  714.                     Comments that begin with an exclamation point
  715.                     (!) are now recognized in NAMELIST input
  716.                     records. For more information, see the assign
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.                                                - 12 -
  729.  
  730.  
  731.  
  732.                     command (-Y on/off option).
  733.  
  734.                     New options (-y, -S, -W, and -U) on the assign
  735.                     command control the NAMELIST and list-directed
  736.                     output statements.
  737.  
  738.  
  739.                     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
  740.  
  741.                     A negative floating point zero (-0.0) is now
  742.                     recognized for IEEE floating point systems.  The
  743.                     minus sign is suppressed.
  744.  
  745.  
  746.                     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
  747.  
  748.                     WHERE constructs can now be named and contain
  749.                     FORALL constructs and other WHERE constructs. In
  750.                     addition, the ELSEWHERE statement can now
  751.                     contain a mask.  The result is that some nested
  752.                     IF constructs can be translated to array
  753.                     notation without forming complicated mask
  754.                     expressions.
  755.  
  756.                     The following example illustrates the use of the
  757.                     WHERE and ELSEWHERE constructs:
  758.  
  759.                     REAL, DIMENSION(10) :: A,B
  760.  
  761.                     WHERE (A<0)
  762.  
  763.                          WHERE (A< -1.0)
  764.  
  765.                              B = 1
  766.  
  767.                          ELSEWHERE (A < -0.5)
  768.  
  769.                              B = 3
  770.  
  771.                          ENDWHERE
  772.  
  773.                     ENDWHERE
  774.  
  775.  
  776.  
  777.                     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
  778.                     _F_o_r_t_r_a_n _9_5
  779.  
  780.                     Silicon Graphics supports the following FORTRAN
  781.                     77/Fortran 90 features, even though they have
  782.                     been deleted from the Fortran 95 standard. An
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.                                                - 13 -
  795.  
  796.  
  797.  
  798.                     ANSI message is issued when these features are
  799.                     used.
  800.  
  801.                        +o Using REAL and DOUBLE PRECISION DO
  802.                          variables
  803.  
  804.                        +o Branching to an END IF statement from
  805.                          outside its IF block
  806.  
  807.                        +o Using PAUSE statements
  808.  
  809.                        +o Using ASSIGN, assigned GOTO, and assigned
  810.                          FORMAT statements
  811.  
  812.                        +o Using the H edit descriptor
  813.  
  814.                     Silicon Graphics supports certain other Fortran
  815.                     features, even though the standard has declared
  816.                     them obsolescent. (Obsolescent features are
  817.                     Fortran 90 features that were redundant and for
  818.                     which better methods are available in Fortran
  819.                     95.)  A comment message is issued when these
  820.                     features are used. The following list provides
  821.                     the obsolescent feature with the corresponding
  822.                     preferred feature in parentheses:
  823.  
  824.                        +o Arithmetic IF  (Use the IF statement or the
  825.                          IF construct).
  826.  
  827.                        +o Shared DO termination and termination on a
  828.                          statement other than an END DO or CONTINUE
  829.                          statement (Use an END DO or CONTINUE
  830.                          statement for each DO statement.)
  831.  
  832.                        +o Alternate return  (Use a return code with a
  833.                          CASE construct upon return).
  834.  
  835.                        +o Computed GOTO statement  (Use the CASE
  836.                          construct).
  837.  
  838.                        +o Statement functions (Use internal
  839.                          procedures).
  840.  
  841.                        +o DATA statements among executable statements
  842.                          (Place DATA statements before all
  843.                          executable statements).
  844.  
  845.                        +o Assumed length character functions (Some
  846.                          uses can be replaced with an automatic
  847.                          character length function, where the length
  848.                          of the function result is declared in a
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.                                                - 14 -
  861.  
  862.  
  863.  
  864.                          specification expression. Other uses can be
  865.                          replaced by the use of a subroutine whose
  866.                          arguments correspond to the function result
  867.                          and the function arguments).
  868.  
  869.                        +o Fixed source form (Use free source form).
  870.  
  871.                        +o CHARACTER*char-length form of character
  872.                          declaration (Use CHARACTER*(char-length) or
  873.                          one of the other forms listed in the
  874.                          _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
  875.                          1).
  876.  
  877.  
  878.                     4.5.13  _P_o_i_n_t_e_e_s
  879.  
  880.                     Pointees can now be of derived type.
  881.  
  882.  
  883.  
  884.                     4.5.14  _R_u_n_-_T_i_m_e__L_i_n_k_e_r
  885.  
  886.                     The following options have been added to the
  887.                     _RLD_ARGS environment variable:
  888.  
  889.                     -f    Specifies no re-resolution of symbols that
  890.                           are closed by the dlclose command.  This
  891.                           option significantly improves the startup
  892.                           and run time of some applications.  This
  893.                           is the default.
  894.  
  895.                     -s    Restores the older rld behavior (some
  896.                           applications will start and run
  897.                           significantly slower with -s set).
  898.  
  899.                     -idv  By default, delay-loaded dynamic shared
  900.                           objects (DSOs) now have their versions
  901.                           checked.  This option restores the old
  902.                           behavior of not checking versions.
  903.  
  904.                     It should not be necessary to set the _RLD_ARGS
  905.                     environment variable.  It can be used as a
  906.                     workaround if an application fails.
  907.  
  908.  
  909.                     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
  910.  
  911.                     The MIPSpro 7.3 release supports the
  912.                     Supercomputing Application Programming Interface
  913.                     (API), a set of language features and library
  914.                     functions that are implemented across the
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.                                                - 15 -
  927.  
  928.  
  929.  
  930.                     Silicon Graphics and Cray(TM) product line to
  931.                     meet the application portability needs of high-
  932.                     performance, technical computing customers.  For
  933.                     more information, see the online Supercomputing
  934.                     API document at the following URL:
  935.  
  936.                     http:/www.sgi.com/software/scapi.html
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.