#!/usr/local/bin/perl $, = ' '; # set output field separator $\ = "\n"; # set output record separator @files = @ARGV; print <<'EOD';
CALL
statement, but make sure that the constant or expression has the
correct data type.
INTEGER arguments:
INTEGER or INTEGER*4 in the calling program,
not INTEGER*2.
REAL arguments:
REAL or REAL*4 in the calling program, not
REAL*8 or DOUBLE PRECISION.
LOGICAL arguments:
LOGICAL or LOGICAL*4 in the calling program.
CHARACTER arguments:
CHARACTER variable may be used (declared
CHARACTER*n for some integer n).
EOD # Extract documentation from pgplot source code: output index of routines print '
' if $echo == 0;
$echo = 1;
print &Getline0();
next;
};
/^C--/ && do
{
print '' if $echo == 1;
$echo = 0;
next;
};
next if ! $echo;
/^C/ && do
{
# replace module names with links. when a module name is recognized,
# it's replaced by a tag in the line to avoid multiple recognitions
# (by modules which have similar substrings). the tags are replaced
# by the actual links after all identifications have been made.
# it'd be cheaper to have the tags be variables that could be
# interpolated, but there's no guarantee that the rest of the text
# wouldn't be adversely affected. thus, a set of replacements is
# created and then eval'd
$line = substr($_, 2);
$reps = 0;
$repstr = '';
foreach $module (@modules)
{
$start = index($line, $module);
next if $start == -1;
$tag = sprintf("REPLACE<%04d>", $reps);
$line = join('', substr($line, 0, $start), $tag,
substr($line, $start+length($module)));
$repstr .= "\$line =~ s:$tag:$ref{$module}:;\n";
++$reps;
}
eval $repstr if $repstr ne '';
print $line;
next;
};
print;
}
print <<'EOD';