#!/usr/bin/perl
#
# Make plot(s) involving the blackbody emission function
#
# MWR 8/13/2020



##################################################################
# plot intensity as a function of wavelength for 5800 K (the Sun)

  my($output_file, $term_options);

  $datafile = "./bb_lam_5800.dat";
  $output_file = "./bb_lam_a.ps";
  $term_options = "postscript color enhanced 'Helvetica,18' ";

  $cmdfile = "gnuplot.in";
  
  open (CMDFILE, ">$cmdfile") || die("can't open $cmdfile for writing");
  printf CMDFILE "set output '$output_file' \n";
  printf CMDFILE "set term $term_options \n";

  # revert to some oldish default colors
  printf CMDFILE "set style line 1 lt rgb 'red' lw 3  \n";
  printf CMDFILE "set style line 2 lt rgb 'green' lw 3  \n";
  printf CMDFILE "set style line 3 lt rgb 'blue' lw 3  \n";
  printf CMDFILE "set style line 4 lt rgb 'cyan' lw 3  \n";
  printf CMDFILE "set style line 5 lt rgb 'violet' lw 3  \n";

  printf CMDFILE "set grid \n";
  printf CMDFILE "set key top right \n";
  printf CMDFILE "set xrange [-9:2]  \n";
  printf CMDFILE "set yrange [-14:15]  \n";
  printf CMDFILE "set xlabel 'Log_{10} (Wavelength [m])  '  \n";
  printf CMDFILE "set ylabel 'Log_{10} (Joules per sq.m. per sec per meter)' \n";
  #  printf CMDFILE "set title '' \n"; 

  printf CMDFILE "plot '$datafile' using 1:4 with lines ls 1  t '' \n ";


  printf CMDFILE "set output \n";
  printf CMDFILE "quit \n";
  close(CMDFILE) ;
  
  $retval = `gnuplot < $cmdfile`;
  printf "retval is ..%s..\n", $retval;
  
  if ($term_options =~ /postscript/) {
    $psfile = $output_file;
    $giffile = $psfile;
    $giffile =~ s/.ps/.png/;
    $cmd = "convert -rotate 90 $psfile $giffile";
    printf "cmd is ..$cmd.. \n";
    $ret = `$cmd`;
  }



##################################################################
# plot intensity as a function of wavelength for 5800 K (the Sun)
#    highlight the optical

  my($output_file, $term_options);

  $output_file = "./bb_lam_b.ps";
  $term_options = "postscript color enhanced 'Helvetica,18' ";

  $cmdfile = "gnuplot.in";
  
  open (CMDFILE, ">$cmdfile") || die("can't open $cmdfile for writing");
  printf CMDFILE "set output '$output_file' \n";
  printf CMDFILE "set term $term_options \n";

  # revert to some oldish default colors
  printf CMDFILE "set style line 1 lt rgb 'red' lw 3  \n";
  printf CMDFILE "set style line 2 lt rgb 'green' lw 3  \n";
  printf CMDFILE "set style line 3 lt rgb 'blue' lw 3  \n";
  printf CMDFILE "set style line 4 lt rgb 'cyan' lw 3  \n";
  printf CMDFILE "set style line 5 lt rgb 'violet' lw 3  \n";
  printf CMDFILE "set style line 6 lt rgb 'black' lw 3  \n";

  printf CMDFILE "set grid \n";
  printf CMDFILE "set key top right \n";
  printf CMDFILE "set xrange [-9:2]  \n";
  printf CMDFILE "set yrange [-14:15]  \n";
  printf CMDFILE "set xlabel 'Log_{10} (Wavelength [m])  '  \n";
  printf CMDFILE "set ylabel 'Log_{10} (Joules per sq.m. per sec per meter)' \n";

  printf CMDFILE "set arrow 1 from -6.0970,-14 to -6.0970,13.23 nohead ls 6 \n";
  printf CMDFILE "set arrow 2 from -6.3980,-14 to -6.3980,13.37 nohead ls 6 \n";

  printf CMDFILE "plot 'bb_lam_5800.dat' using 1:4 with lines ls 1  t '' ";
#  printf CMDFILE " , ";
#  printf CMDFILE "     'bb_lam_5800_opt.dat' using 1:4 with impulse ls 6  t '' ";

  printf CMDFILE " \n";

  printf CMDFILE "set output \n";
  printf CMDFILE "quit \n";
  close(CMDFILE) ;
  
  $retval = `gnuplot < $cmdfile`;
  printf "retval is ..%s..\n", $retval;
  
  if ($term_options =~ /postscript/) {
    $psfile = $output_file;
    $giffile = $psfile;
    $giffile =~ s/.ps/.png/;
    $cmd = "convert -rotate 90 $psfile $giffile";
    printf "cmd is ..$cmd.. \n";
    $ret = `$cmd`;
  }



##################################################################
# plot intensity as a function of wavelength for 5800 K (the Sun)
#    zoom in on the optical, and make little boxes showing how
#    to do the numerical integration

  my($output_file, $term_options);

  $output_file = "./bb_lam_c.ps";
  $term_options = "postscript color enhanced 'Helvetica,18' ";

  $cmdfile = "gnuplot.in";
  
  open (CMDFILE, ">$cmdfile") || die("can't open $cmdfile for writing");
  printf CMDFILE "set output '$output_file' \n";
  printf CMDFILE "set term $term_options \n";

  # revert to some oldish default colors
  printf CMDFILE "set style line 1 lt rgb 'red' lw 3  \n";
  printf CMDFILE "set style line 2 lt rgb 'green' lw 3  \n";
  printf CMDFILE "set style line 3 lt rgb 'blue' lw 3  \n";
  printf CMDFILE "set style line 4 lt rgb 'cyan' lw 3  \n";
  printf CMDFILE "set style line 5 lt rgb 'violet' lw 3  \n";
  printf CMDFILE "set style line 6 lt rgb 'black' lw 3  \n";

  printf CMDFILE "set grid \n";
  printf CMDFILE "set key top right \n";
  printf CMDFILE "set xrange [-6.6:-6.0]  \n";
  printf CMDFILE "set yrange [12.5:13.5]  \n";
  printf CMDFILE "set xlabel 'Log_{10} (Wavelength [m])  '  \n";
  printf CMDFILE "set ylabel 'Log_{10} (Joules per sq.m. per sec per meter)' \n";

#  printf CMDFILE "set arrow 1 from -6.0970,-14 to -6.0970,13.23 nohead ls 6 \n";
#  printf CMDFILE "set arrow 2 from -6.3980,-14 to -6.3980,13.37 nohead ls 6 \n";

  printf CMDFILE "plot 'bb_lam_5800.dat' using 1:4 with lines ls 1  t '' ";
  printf CMDFILE " , ";
  printf CMDFILE "     'bb_lam_5800_opt.dat' every 30 using 1:4 with boxes ls 6  t '' ";

  printf CMDFILE " \n";

  printf CMDFILE "set output \n";
  printf CMDFILE "quit \n";
  close(CMDFILE) ;
  
  $retval = `gnuplot < $cmdfile`;
  printf "retval is ..%s..\n", $retval;
  
  if ($term_options =~ /postscript/) {
    $psfile = $output_file;
    $giffile = $psfile;
    $giffile =~ s/.ps/.png/;
    $cmd = "convert -rotate 90 $psfile $giffile";
    printf "cmd is ..$cmd.. \n";
    $ret = `$cmd`;
  }








exit 0;
