Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FLOW(1) 		     General Commands Manual			 FLOW(1)

NAME
     flow - show subroutine dependence of Fortran77 programs

SYNOPSIS
     flow  [-hCcFfRSsUVW]  file(s)

DESCRIPTION
     flow is a utility which shows the SUBROUTINE dependence of a Fortran77 pro-
     gram.  It	lists the called routine names and indicates their CALL level by
     indention.

     CALL statements in the case of an IF condition are also  reported	but  not
     separately marked.

     By  default  no warning is given if a called SUBROUTINE is not found in the
     input files. This gives the possibility to reduce the  output  by	omitting
     some file names including further subroutine-calls.

     In addition a little statistic with the count of total, comment and source-
     code  lines is presented. Further the number of IF statements is also given
     as the number of declared SUBROUTINE procedures and CALL sequences.

     There is no limitation of the number of given files. By use of an appropri-
     ate shell wildcards like * or ?  can be used in the name(s) of the file(s).

OPTIONS
     -h   Print a usage message on standard output and exit.

     -C   Print each CALL statement which is found in input.

     -c   Each found CALL of a SUBROUTINE is reported in a file named  FLOW.CALL
	  with the name of the file where it was called and the line number. The
	  file	FLOW.CALL may be sorted in alphabetically order by the sort com-
	  mand.

     -F   Print the FILE name of input which is actually on work.

     -f   The output of the dependence is written on a file with the name of the
	  program and the ending .FLOW instead of the screen.

     -r <name>
	  Set a new starting point. Instead of starting at the PROGRAM the  work
	  is done only for the SUBROUTINE <name>. This option is useful to check
	  all called routines out of this one.

     -R   Omit	recursive  hanging.  Each  called SUBROUTINE is printed with all
	  subsequent CALL statements only the first time it is invoked.  At  the
	  later times only the root SUBROUTINE (=starting point) is given.

     -S   Print each SUBROUTINE statement which is found in input.

     -s   Each	found  declaration  of	a SUBROUTINE is reported in a file named
	  FLOW.SUBS with the name of the file where it is declared together with
	  the line number. The file FLOW.SUBS may be  sorted  in  alphabetically
	  order by the sort command.

     -U   If  a  SUBROUTINE is called which is not found in the input, a warning
	  message is given.  Such a case can occur for example by  system  calls
	  like CALL EXIT

     -V   Print  version  number of flow and name of author. Finally the program
	  ends.

     -W   A warning is given if a line exceeds a length of 72 characters. Spaces
	  at the end of the line are thereby not counted. Comment lines are  not
	  controlled.

KNOWN BUGS?
     Recursive	hanging  is  omitted by the option -R which has the effect, that
     only the first time a called SUBROUTINE is followed up to	the  last  CALL.
     However  if  the  call  starts out of another level of the program, e.g. an
     deeper lying SUBROUTINE the  consecutively  following  CALLs  will  not  be
     printed again. This obviously shortens the output and may lead to some con-
     fusion. Be cautious!

     IF ... THEN ... ELSEIF(...)CALL
     statements  are not considered to appeare in the code. (Is such a construc-
     tion allowed?)

EXAMPLE
     flow -U *.f | less
	  All files with suffix .f of the current directory are used as input. A
	  warning message will be given if a subroutine is called which  is  not
	  part	of  any  input	file.  The output is piped to less(1) so you can
	  browse up and down through it during it grows.

     flow -V
	  The number of the actual version is printed.

     flow -h
	  You get a little help message.

     flow -s *.f ; sort FLOW.SUBS > SUBS.SORT
	  Each found subroutine in all fortran files of the actual directory  is
	  written  to  the  file  FLOW.SUBS together with the file name and line
	  number where the declaration appears. After this the sort  Program  is
	  called  to  sort the names of the subroutines in alphabetically order.
	  The file SUBS.SORT contains the final result.

     flow -scFfUW *.f
	  This is maybe the best combination of all Options if	the  program  is
	  spread over several files.

AUTHOR
     Dirk Geschke <geschke@physik.uni-kassel.de>

FUTURE EXTENSIONS
     A	formatted  output into special file formats like TeX/LaTeX or Postscript
     is planned?

SEE ALSO
     bash(1), csh(1), f77(1), ksh(1), less(1), sort(1), tcsh(1)

Flow Version 0.12		  7. March 1997 			 FLOW(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=flow&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help