#!/usr/bin/perl

use strict;

use lib 'd:/Programs/Perl/lib';
use MultiColumnData;
use JFile;

my $path = "AFM-DOS-up.csv";

my $in = new MultiColumnData or die $!;
my ($nData, $pLabelArray, @DataArray) = $in->Read($path, 0);
my ($pX, $pY) = $in->SetXYDataByLabels("Energy.*", ".*DOS.*");
print "p=$pX, $pY\n";

my $dE = $pX->[1] - $pX->[0];
my (@dE, @JDOS);
for(my $i = 0 ; $i < $nData ; $i++) {
	$dE[$i]   = $dE * $i;
	$JDOS[$i] = 0.0;
}

for(my $i = 1 ; $i < $nData ; $i++) {
	my $Ei = $pX->[$i];
	my $D  = $pY->[$i];
	last if($Ei > 0.0);
	for(my $j = $i ; $j < $nData ; $j++) {
		my $Ef = $pX->[$j];
		next if($Ef < 0.0);
		my $di = $j - $i;
		$JDOS[$di] += $D * $pY->[$j];
	}
}

my $out = new JFile("JDOS.csv", "w") or die $!;
$out->print("Energy(eV),JDOS,Energy(eV),DOS\n");
for(my $i = 0 ; $i < $nData ; $i++) {
	$out->print("$dE[$i],$JDOS[$i],$pX->[$i],$pY->[$i]\n");
}
$out->Close();
	