8

Chapter 6, “The C–Pascal Interface,” has an example that matches the following example.

The FORTRAN subroutine, VarRec.f. The variable ALIGN is integer*2 and is needed to match the Pascal variant record layout.

subroutine VarRec ( VRec ) structure /a_var/

character ch1, ch2 end structure

structure /b_var/ character flag

end structure structure /c_var/

integer*2 ALIGN end structure structure /var_part/

 

union

 

map

 

record /a_var/ a_rec

 

end map

 

map

 

record /b_var/ b_rec

 

end map

 

map

 

record /c_var/ c_rec

 

end map

 

end union

 

end structure

 

structure /vrnt/

 

character tag

 

record /var_part/ var_rec

 

end structure

 

record /vrnt/ VRec

 

if ( VRec.var_rec.a_rec.ch1 .eq. 'a' )

&

VRec.var_rec.a_rec.ch2 = 'Z'

 

return

 

end

196

Pascal 4.0 User’s Guide