The FORTRAN–Pascal Interface
189
8
Character Dummy Arguments
When you call FORTRAN 77 routines with character dummy arguments from
Pascal programs—that is, routines in which string arguments are specified as
character*(*)
in the FORTRAN source, there is no explicit analogue in
Pascal.
So, if you try to simply pass an actual string and specify the FORTRAN routine
as
extern fortran
, the program fails, because implementation of this type
of arguments implies that the actual length of the string is implicitly passed as
an extra value argument after the string pointer.
To specify this routine in Pascal, declare it as having two arguments: a
VAR
argument of string type for the string pointer, and an extra value argument of
integer32
type for the string length.
It is incorrect to specify the routine as
extern fortran
because Pascal passes
all arguments to FORTRAN routines by reference. Consequently, to pass this
type of argument, you must:
•
Declare two arguments as described above, specifying the routine as simply
external
(without the
fortran
directive)
•
Add a trailing underscore to the routine name in a Pascal program
The commands to compile and
execute
StrVar.f
and
StrVarmain.p
hostname% f77 -c StrVar.f
StrVar.f:
strvar:
hostname% pc StrVar.o StrVarmain.p -lpfc -lF77
hostname% a.out
abcdefghij
abcdefghijklmnopqrstuvwxyz
oyvay
length(v)= 5
Summary of Contents for SunSoft Pascal 4.0
Page 14: ...xiv Pascal 4 0 User s Guide ...
Page 16: ...xvi Pascal 4 0 User s Guide ...
Page 30: ...6 Pascal 4 0 User s Guide 1 ...
Page 160: ...136 Pascal 4 0 User s Guide 6 ...
Page 268: ...244 Pascal 4 0 User s Guide 11 ...
Page 320: ...296 Pascal 4 0 User s Guide B ...
Page 331: ...Index 307 ...
Page 333: ......