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

FreeBSD Manual Pages

  
 
  

home | help
UNTITLED()			      LOCAL			      UNTITLED()

NAME
     ratfor77 -- ratfor preprocessor for fortran77

SYNOPSIS
     ratfor77 [-C] [-l n] [-o output] [input]

DESCRIPTION
     Ratfor77  reads the ratfor source code in the file input (or standard input
     if input is not given) and converts it Fortran77 source code.

     The following options are available:

     -C      If the -C options is specified, ratfor77  will  keep  the	comments
	     from the ratfor source in the Fortran77 output (useful for compiler
	     directives).

     -l n    The user sets the starting label to n.

     -o output
	     Specify output file, otherwise it is the standard output.

     Ratfor has the following syntax:

     prog:   stat
	     prog stat

     stat:   if (...) stat
	     if (...) stat else stat
	     while (...) stat
	     repeat stat
	     repeat stat until (...)
	     for (...;...;...) stat
	     do ... stat
	     switch (intexpr) { case val[,val]: stmt ... default: stmt }
	     break n
	     next n
	     return (...)
	     digits stat
	     { prog }  or  [ prog ]  or  $( prog $)
	     anything unrecognizable

     where stat is any Fortran or Ratfor statement, and intexpr is an expression
     that  resolves into an integer value.  A statement is terminated by an end-
     of-line or a semicolon.  The following translations are also performed.

     <.lt.<=.le.
     ==.eq.
     !=.ne.^=.ne.~=.ne.
     >=.ge.>.gt.
     |.or.&.and.
     !.not.^.not.~.not.

Integer constants in bases other that decimal  may  be	specified  as  n%dddd...
where  n is a decimal number indicating the base and dddd...  are digits in that
base.  For bases > 10, letters are used for digits above  9.   Examples:   8%77,
16%2ff,  2%0010011.   The number is converted the equivalent decimal value using
multiplication; this may cause sign problems if the number has too many digits.

String literals ("..." or '...') can be continued across line boundaries by end-
ing the line to be continued with an underline.  The underline is  not	included
as  part  of the literal.  Leading blanks and tabs on the next line are ignored;
this facilitates consistent indentation.

	include file

will include the named file in the input.

	define (name,value)	or
	define name value

defines name as a symbolic parameter with the indicated value.	 Names	of  sym-
bolic  parameters  may contain letters, digits, periods, and underline character
but must begin with a letter (e.g.  B.FLAG).  Upper case is  not  equivalent  to
lower case in parameter names.

	string name "character string"		or
	string name(size) "character string"

defines  name  to  be an integer array long enough to accomodate the ascii codes
for the given character string, one per word.  The last word of name is initial-
ized to the symbolic parameter EOS, and indicates the end of string.

HISTORY
     This is a C version of ratfor, derived from a UofA ratfor in ratfor. It was
     originally released to the net sometime ago, and It is re-released for  the
     benefit of those sites who only get mod->comp.sources.

     It now includes minor changes to produce F77 code as well.

     This code *is* PD. You (public) have all the rights to the code.  [But this
     also means you (singular) do not have any *extra* rights to the code, hence
     it  is impossible for you to restrict the use and distribution of this code
     in any way.]

     I would, as usual, appreciate hearing about bug fixes and improvements.

	  oz

	  Usenet: [decvax|ihnp4]!utzoo!yetti!oz ||

	       ...seismo!mnetor!yetti!oz

	  Bitnet: oz@[yusol|yuyetti].BITNET

	  Phonet: [416] 736-5257 x 3976

BUGS
     This is not a bug but a design error in both AT&T ratfor  and  this  public
     domain ratfor:

     The  problem is with the switch statment.	It switches on an integer valued
     expression.  It should switch on an integer variable.

     The reason is that

	  "implicit undefined"

	  "implicit null"

     is unusable because the switch is done on a new variable that  is	not  de-
     clared or declarable by the programmer who cannot guess its name.

     Please let me know if you fix this.

	  jon@sep.stanford.edu.us

FreeBSD ports 15.quarterly	 August 26, 2000		     RATFOR77(1)

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

home | help