Man Page fsplit.1




NAME

     fsplit - split a multi-routine  FORTRAN  90  or  FORTRAN  77
     source file into individual files.


SYNOPSIS

     fsplit [ -e efile ] ... [ fsplit_options ]  file


DESCRIPTION

     fsplit takes as input a file containing FORTRAN 77  or  FOR-
     TRAN  90  source  code.  It attempts to split the input into
     separate routine  files  of  the  form  <name>.<syf>,  where
     <name>  is  the  name of the program unit (function, subrou-
     tine, module, block data or program) and <syf> is  extension
     of  name;  it  corresponds  to the source language of source
     code.

     Block data subprograms with no names get names of  the  form
     blkdtaNNN.<syf>,  where  NNN  are three digits and a file of
     this name does not already exist.

     Main  programs  with  no  names  get  names  of   the   form
     mainNNN.<syf>

     If there is a trouble in classifying a program  unit, or  if
     name.<syf> already exists, the program unit is put in a file
     of the form zzzNNN.<syf>, where the file  zzzNNN.<syf>  does
     not already exist.


OPTIONS

     -e efile
          Normally, each subprogram unit is split into a separate
          file.  But  if e-option is used, then only  subprograms
          named in the e-option are split off.
          Example
           The command fsplit -e sub1 -e sub2 prog.f
           isolates sub1 and sub2 in the files sub1.f and  sub2.f
          only.

     -u   Default all unit names are  converted  to  lower  case.
          When the u-option is used all units save their own ori-
          ginal names.
          Example Let the file main.f77 contain:
              subroutine SUB1
              ...
              end
              subroutine SUB2
              ...
              end

          Then the command
               fsplit  main.f77
           will build files named "sub1.f77" and "sub2.f77"

          And the command
              fsplit  -u main.f77
           will build files named "SUB1.f77" and "SUB2.f77"

     naming-options
          As it was noted above fsplit program takes source files
          containing  FORTRAN-77  and FORTRAN-90 code.  If naming
          options are not set (see below), fsplit  is  guided  by
          the following rules:
            - If <syf> is '.f90' or '.F90'  then  input  file  is
          considered as FORTRAN-90 text in a free form.
            - If <syf> is '.f77' or '.F' then input file is  con-
          sidered as FORTRAN-77 text.
            - If <syf> is other then above-mentioned (for example
          '.f'  or '.for'), then input file is also considered as
          FORTRAN-77 text.

     There are some options for the definition of source language
     and source form

     -f90 fsplit will treat source file as FORTRAN-90.

     -fixed
          fsplit will treat source file  as  fixed  form.   (This
          option has meaning for fortran-90 text only).


EXAMPLES

     1.   fsplit -f90 -fixed main1.f


     main1.f  file  will  be  considered  as  a  file  containing
     FORTRAN-90 text in a fixed form.

     2.   fsplit -f90  main2.f


     main2.f  file  will  be  considered  as  a  file  containing
     FORTRAN-90 text in a free form.

     3.   fsplit -f90  main3.f77


     main3.f77 file will  be  considered  as  a  file  containing
     FORTRAN-90 text in a free form.


DIAGNOSTICS

     If names specified via the -e option are not found, a  diag-
     nostic is written to standard error.


BUGS

     Nonstandard source formats may confuse fsplit.

     If source code is not syntactically  right  program  it  may
     confuse fsplit.

     It is hard to use -e option for unnamed  main  programs  and
     block  data  subprograms  since you must predict the created
     file name.