next up previous contents index
Next: IMPLICIT Statement Up: Specifying Data Type Previous: Specifying Data Type

Type Statements

  There are six different type statements, one for each data type. In their simplest form they just consist of the appropriate data-type keyword followed by a list of symbolic names. For example:
 
      INTEGER  AGE, GRADE 
      LOGICAL  SUPER  
      REAL  RATE, HOURS, PAY, TAX, INSURE

In this example the first four items declared to be real would have had that type anyway had the default rules been left to operate. Confirmatory type specification does no harm.

There is no limit to the number of type statements that can be used but a name must not have its type specified explicitly more than once in a program unit. Type statements must precede all executable statements in the unit; it is good practice, though not essential, for them to precede other specification statements referring to the same name. Type statements can be used in a subprogram to specify the types of the dummy arguments and, in an external function, the type of the function as well. Type statements by themselves have no effect on intrinsic function names but it is not a good idea to use them in this way.   The CHARACTER statement is slightly different from the others because it also specifies the length of each character item, i.e. the number of characters it holds. The length can be given separately for each item, thus:
CHARACTER NAME*15, STREET*30, TOWN*20, PCODE*7
Alternatively, if several items are to have the same length, a default length for the statement can be given at the beginning:
CHARACTER*20 STAR, GALAXY, COMET*4, PLANET
This declares the name COMET to have a length of 4 characters, whereas STAR, GALAXY, and PLANET are all 20 characters long. If the length is not specified at all it defaults to one. The length can also be specified by means of a named integer constant or an integer constant expression enclosed in parentheses. For example:

 
       PARAMETER (NEXT=15, LAST=80) 
       CHARACTER TEXT*(NEXT+LAST)

Note that the length of a character item is fixed at compilation time. The special form:
CHARACTER NAME*(*)
is permitted in two cases: for named constants the length of the literal constant in the PARAMETER statement is used (section 5.4); for dummy arguments of procedures the length of the associated actual argument is used (section 9.5). Type statements can also be used to declare the dimensions of arrays: this is described in section 5.6.


next up previous contents index
Next: IMPLICIT Statement Up: Specifying Data Type Previous: Specifying Data Type
Helen Rowlands
8/27/1998