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 com-
	       piler 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  ex-
       pression	 that  resolves	 into an integer value.	 A statement is	termi-
       nated 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
ending	the  line to be	continued with an underline.  The underline is not in-
cluded 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  ini-
tialized 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  distribu-
       tion 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 pub-
       lic 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
       declared	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 14.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+14.3.quarterly>

home | help