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
       program.	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 se-
       quences.

       There  is  no limitation	of the number of given files. By use of	an ap-
       propriate 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 command.

       -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	alpha-
	    betically order by the sort	command.

       -U   If a SUBROUTINE is called which is not found in the	input, a warn-
	    ing	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 pro-
	    gram 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 confusion. Be cautious!

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

EXAMPLE
       flow -U *.f | less
	    All	files with suffix .f of	the current directory are used as  in-
	    put.  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	alpha-
	    betically 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	 Post-
       script 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)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | KNOWN BUGS? | EXAMPLE | AUTHOR | FUTURE EXTENSIONS | SEE ALSO

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

home | help