8

The Pascal main program,

program VarRecmain;

VarRecmain.p

 

 

type

 

vr =

 

record

 

case tag: char of

 

'a': ( ch1, ch2: char );

 

'b': ( flag: boolean );

 

'K': ( ALIGN: integer )

 

end;

 

var

 

Rec: vr;

 

procedure varrec(var d: vr); external fortran;

 

begin

 

Rec.tag := 'a';

 

Rec.ch1 := 'a';

 

Rec.ch2 := 'b';

 

varrec(Rec);

 

writeln(Rec.ch2)

 

end. { VarRecmain }

 

 

The commands to compile and execute VarRec.f and VarRecmain.p without –xl

hostname% f77 -c VarRec.f VarRec.f:

varrec:

hostname% pc VarRec.o VarRecmain.p -lpfc -lF77 hostname% a.out

b

Value Parameters

With external fortran on the procedure statement, Pascal passes value parameters as FORTRAN expects them.

The FORTRAN–Pascal Interface

197