


      RF(1)                      (Bull-SPS9)                      RF(1)



      NAME
           rf,f77 - R-FORTRAN compiler

      SYNTAX
           rf [ options ] ... file1 [file2] ...
           or
           f77 [ options ] ... file1 [file2] ...

      DESCRIPTION
           Rf  compiles,  optimizes,  assembles  and  links   programs,
           yielding  executable  code  in  a  file  named  a.out in the
           current directory.

           Rf automatically links the  FORTRAN,  FORTRAN  I/O,  FORTRAN
           system   call   interface,  C  and  Math  libraries  to  the
           executable  file.   Other  (non-default)  libraries  may  be
           linked  by  means  of the -l option (explained below), or by
           giving its pathname with the filename  arguments.   A  user-
           written  library  (with  a .a suffix) would be linked by the
           latter method.

           File.r is to be  preprocessed  by  the  Ratfor  preprocessor
           before FORTRAN compilation.
           File.e is to be preprocessed by the EFL preprocessor  before
           FORTRAN compilation.
           File.F is to be preprocessed by the  C  preprocessor  before
           FORTRAN compilation.
           File.f is taken to be a FORTRAN source program.
           File.c is taken to be a C source program.
           File.p is taken to be a Pascal source program.
           File.s is taken to be an assembly language source program.
           File.o is taken to be an object file ready to be linked.
           File.a is taken to be an archive  library  of  object  files
           ready to be linked.

           Each FORTRAN, C, Pascal, or assembly language source program
           is  compiled and the resulting object file is given the name
           of the source file with  .o  substituted  for  the  original
           suffix.   These  .o  files  will  be  left  in  the  current
           directory.

           -v   Show each  phase  (preprocessor,  compiler,  assembler,
                linker etc.) and its options as it is invoked.

           -c   Suppress the link edit phase of the compilation.

           -S   Suppress both the assembly and link edit phases of  the
                compilation.   Leave,  in  the  current  directory,  an
                assembly language  file  corresponding  to  each  named
                source  file. These files will be given the name of the
                source  file  with  .s  substituted  for  the  original
                suffix.



      Page 1                                          (73 A2 02MT REV1)






      RF(1)                      (Bull-SPS9)                      RF(1)



           -E   Run only the preprocessor on the named  C,  and  Pascal
                source  programs,  and  send the result to the standard
                output. Suppress all further phases of compilation.

           -P   Run only the preprocessor on the named  C,  and  Pascal
                source programs, and leave the results in corresponding
                files in the current directory.  These  files  will  be
                given  the  name of the source file with .i substituted
                for the original suffix.  Suppress all  further  phases
                of compilation.

           -Q   Run the appropriate preprocessor on the named  .r,  .e,
                and .F files.  Leave the results in corresponding files
                in current directory. These files  will  be  given  the
                name  of  the  source  file with .f substituted for the
                original  suffix.  Suppress  all  further   phases   of
                compilation.

           -4   Run m4(1) on the named .r and .e files  before  running
                Ratfor or EFL.

           -Wc,arg1[,arg2]
                Hand off the argument(s) arg to phase c, where c is one
                of    [mre0cfpal]    indicating    m4,   Ratfor,   EFL,
                preprocessor,  R-C  compiler,  R-FORTRAN  compiler,  R-
                Pascal  compiler,  assembler,  or linker, respectively.
                When an option  is  made  of  two  arguments,  the  two
                arguments must be separated by a comma.

           -Tc,name
                Rename the phase, library or startup routine c where  c
                is  one  of  [mre0cfpasSCMFIUPl] indicating m4, Ratfor,
                EFL, preprocessor, R-C  compiler,  R-FORTRAN  compiler,
                R-Pascal compiler, assembler, startup routine (crt0.o),
                Profiled startup routine  (mcrt0.o),  C  library,  Math
                library,  FORTRAN library, FORTRAN I/O library, FORTRAN
                system  call  interface  library,  Pascal  library,  or
                linker  respectively. Name must be a full path name. If
                more than one -T or -Y option is  applied  to  any  one
                tool, then the last occurrence holds.

           -Y[mre0cfpasSl],dirname
                Specify a new pathname, dirname, for the  locations  of
                the   tools   designated   in   the   first   argument.
                [mre0cfpalsS] represents m4, Ratfor, EFL, preprocessor,
                R-C  compiler,  R-FORTRAN  compiler, R-Pascal compiler,
                assembler, startup routine (crt0.o),  Profiled  startup
                routine (mcrt0.o), linker. If the location of a tool is
                being specified, then the new  pathname  for  the  tool
                will  be dirname/tool. If more than one -T or -Y option
                is applied to any one tool, then  the  last  occurrence
                holds.



      Page 2                                          (73 A2 02MT REV1)






      RF(1)                      (Bull-SPS9)                      RF(1)



           -C   This option is understood by the preprocessor.  Do  not
                strip  C  language style comments during preprocessing.
                All comments (except those found  on  directive  lines)
                are passed along.

           -D name

           -D name=def
                This option is understood by the  preprocessor.  Define
                name as if by a #define directive. If no =def is given,
                name is defined as 1.

           -U name
                This option is understood by the  preprocessor.  Remove
                any  initial  definition  of  name,  where  name  is  a
                reserved symbol that is predefined  by  the  particular
                processor.

           -I dir
                This option is understood by the  preprocessor.  Change
                the  algorithm  for  searching for #include files whose
                names do not begin with / to look in dir before looking
                in the directories on the standard list.

           -p   (NOT CURRENTLY IMPLEMENTED). Arrange for  the  compiler
                to  produce  code which counts the number of times each
                routine is called; Also, if link editing  takes  place,
                replace  the  standard  startup  routine  by  one which
                automatically  calls  monitor(3C)  at  the  start   and
                arranges   to  write  out  a  mon.out  file  at  normal
                termination of execution of  the  object  program.   An
                execution  profile  can  then  be  generated  by use of
                prof(1).

           -g   Produce  additional  symbol   table   information   for
                symbolic debugging.

           -O   Optimize  the  program  for  speed,  at  the  risk   of
                increasing   program   size.    Perform  various  speed
                optimizations, such as moving constant expressions  out
                of  loops;  generally  this will make programs somewhat
                larger.   Do  not  specify  -O  option   systematically
                without experimenting it (for example code which is not
                loop bound may increase in size and  become  slower)  .
                After  experimenting  with a program, it is possible to
                discover which modules benefit from -O and  which  ones
                do  not.   Note  that  all  optimizations  that  make a
                program both smaller and faster are automatically done.

           -w   Suppress all warning messages produced by the compiler.

           -k   This option is understood only  by  the  R-C  compiler.



      Page 3                                          (73 A2 02MT REV1)






      RF(1)                      (Bull-SPS9)                      RF(1)



                Treat  the  char  data type as signed.  By default, the
                char data type is treated as an unsigned quantity.

           -1   Compile FORTRAN DO-loops to be executed at  least  once
                if  reached. Standard FORTRAN DO-loops are not executed
                at all if the iteration test fails initially.

           -2   In FORTRAN, define  undeclared  integer  constants  and
                variables  as  16  bits. The default size of undeclared
                integers and variables is 32 bits.   With  -2,  integer
                constants  outside  the  range  -32768..32767 cannot be
                represented.

           -J   In FORTRAN, set the  type  of  undefined  variables  to
                "undefined"  rather than use FORTRAN rules for defining
                undefined variables.

           -B arg
                This option, only understood by the R-FORTRAN compiler,
                allows  the  user  to  access to the Bull extensions as
                described  in  the  R-FORTRAN  user  guide   (see   the
                apropriate paragraphe of that document).
                The authorized arguments  arg  and  their  meaning  are
                listed bellow :

                n indicates to  the  compiler  that  the  Bull  FORTRAN
                language extensions are not available to the user.

                v indicates to the compiler that it  has  to  interpret
                the tab characters in the same way as VAX/VMS FORTRAN.

                D indicates to the compiler that  the  lines  with  the
                letter  D  in  column 1 should be compiled after having
                replaced the letter D by a blank.  In  the  absence  of
                this option such lines are ignored.

                p permits to have a variable number of actual arguments
                for  FORTRAN  procedures. Furthermore it permits to add
                informations  in  the   stack   about   the   procedure
                arguments.

                l  indicates  to  the  compiler  that  all  file  names
                connected  to  a  FORTRAN  unit  by a OPEN statement or
                preconnected are logical file  names  (defined  in  the
                environment).

           -n   In FORTRAN and Pascal, do not convert uppercase letters
                to  lowercase.  The  default  is to convert FORTRAN and
                Pascal programs to lowercase  except  within  character
                strings.

           -b   Compile FORTRAN and Pascal code that  will  check  that



      Page 4                                          (73 A2 02MT REV1)






      RF(1)                      (Bull-SPS9)                      RF(1)



                subscripts are within the declared array bounds.

           -i   Force R-Pascal compiler to accept ISO  standard  Pascal
                only, and abort compiler on non-conforming code.

           -F s This option is only understood by the R-C and  R-Pascal
                compilers.  Process  real  numbers as single precision.
                The default is double precision.

           -F f Force R-FORTRAN compiler to check  and  compile  FORMAT
                statements  at  compile-time.  This option may speed up
                FORTRAN programs that perform many formatted I/O.

           -j num
                This  option  is  only  understood  by   the   R-Pascal
                compiler.   Allow sets of integers to contain up to num
                elements.  Default value for  num  is  32  (see  user's
                guide).

           -o name
                Rename a.out to name.  This option is  passed  to  link
                editor ld(1).

           -l library
                Name a library to be linked in.  This option is  passed
                to link editor ld(1).

           The -W option must be used to pass arguments to m4,  Ratfor,
           EFL, and the assembler. Preprocessor options others than -I,
           -D, -U, -C, and linker options others than -o, -l, must also
           be passed with the -W driver option.
           The -l library option of the linker must not  be  passed  to
           the  linker  with the -W driver option but directly with the
           -l library driver option.

           All options, including the -l  library  options,  must  come
           before  any  source  or object file names.  All compilations
           are done in the order given;  except  that  archive  library
           names  are  put  on the same list as the -l library options.
           This list is put after the list of object files on the  link
           editor  list.  The link editing is then performed using this
           order and the executable program file a.out is produced.

      FILES
                file.[reFfcps]      input file
                file.o              object file
                file.a              archive library of object files
                a.out               loaded output
                /tmp/comp*          temporary files
                /usr/bin/m4         m4 preprocessor
                /usr/bin/ratfor          ratfor preprocessor
                /usr/bin/efl        efl preprocessor



      Page 5                                          (73 A2 02MT REV1)






      RF(1)                      (Bull-SPS9)                      RF(1)



                /lib/cpp       C preprocessor
                /usr/lib/rccom      R-C compiler
                /usr/lib/rfcom      R-FORTRAN compiler
                /usr/lib/rpcom      R-Pascal compiler
                /bin/as             assembler
                /lib/crt0.o         startup routine
                /lib/mcrt0.o        profiled startup routine
                /lib/libc.a         C library
                /lib/libm.a         Math library
                /usr/lib/libF77.a   FORTRAN library
                /usr/lib/libI77.a   FORTRAN I/O library
                /usr/lib/libU77.a   FORTRAN system call interface library
                /usr/lib/libpas.a   Pascal library
                /bin/ld             link editor

      SEE ALSO
           as(1), ld(1),  cpp(1),  m4(1),  ratfor(1),  efl(1),  dbx(1),
           debug(1), prof(1), monitor(3C).
           ROS Programmer's Guide.




































      Page 6                                          (73 A2 02MT REV1)



