3 ($primer,$zinput,$options,$output) = @ARGV;
4 $output =~ s/^\-o// or die "$output ?";
5 die if $primer =~ m/^\-/;
6 die if $zinput =~ m/^\-/;
8 die unless $options =~ m/^\-([lT])$/;
11 $gnuplot= "$output.gnuplot.tmp";
12 $initdata= "$output.initdata.tmp";
14 open Z, "$zinput" or die "$zinput $!";
15 open G, ">$gnuplot" or die $!;
17 sub pg ($$) { printf G "%s(u,v) = %s\n", @_ or die $!; }
20 $!=0; defined($_= <Z>) or die "$zinput $!";
25 } elsif ($ztype eq 'T') {
26 next unless m/^splot\s+([^,]+),([^,]+),([^,]+)\s*$/;
27 pg('x',$1); pg('y',$2); pg('z',$3);
32 printf G "set print \"-\"\n" or die $!;
37 $!=0; system($_[0]); die "$! $?" if $! or $?;
40 run("./$primer >>$gnuplot");
41 run("gnuplot $gnuplot >$initdata");
43 open I, "$initdata" or die "$initdata $!";
44 open B, ">$output.new" or die "$output.new $!";
47 m/^(\d+) .*/ or die "$_ ?";
50 for ($i=0; $i<$dim; $i++) {
51 $!=0; defined($_= <I>) or die "$initdata $!";
52 print B pack "d", $_ or die $!;
56 rename "$output.new",$output or die $!;
58 print " wrote $output\n";