#!/usr/bin/perl

BEGIN {
#use lib 'd:/Programs/Perl/lib';
#use lib '/home/tkamiya/bin/lib';
my $BaseDir = $ENV{'TkPerlDir'};
print "\n\nBaseDir: $BaseDir\n";
@INC = ("$BaseDir/lib", "$BaseDir/VNL", "d:/Programs/Perl/lib", @INC);
}

use strict;
#use warnings;

use Utils;
use JFile;

use Sci qw($a0 $pi);
use Sci::Algorism;

use Crystal::AtomType;
use Crystal::Quantum;

#===============================================
# グローバル変数
#===============================================
my $IonName = "Na+";

my $Quantum = new Quantum;

#==========================================
# メイン関数スタート
#==========================================
&CalcSTO();
exit;

#===============================================
# スクリプト終了
#===============================================

#==========================================
# &Subroutines
#==========================================
sub CalcSTO
{
	my ($AtomicNumber, $AtomName, $Charge) = AtomType::GetAtomInformation($IonName);
	my $pHash = $Quantum->SpeculateElectronicConfiguration($AtomicNumber, $Charge);

	print("Ion Name     : $IonName\n");
	print("Atom Name    : $AtomName\n");
	print("Charge       : $Charge\n");
	print("Atomic Number: $AtomicNumber\n");
	print("Total: $pHash->{nTotal}\n");
	print(" 1s: $pHash->{n1s}\n");
	print(" 2s: $pHash->{n2s}\n");
	print(" 2p: $pHash->{n2p}\n");
	print(" 3s: $pHash->{n3s}\n");
	print(" 3p: $pHash->{n3p}\n");
	print(" 3d: $pHash->{n3d}\n");
	print(" 4s: $pHash->{n4s}\n");
	print(" 4p: $pHash->{n4p}\n");
	print(" 4d: $pHash->{n4d}\n");
	print(" 5s: $pHash->{n5s}\n");
	print(" 5p: $pHash->{n5p}\n");

	my ($zStar, $nStar, $n1, $Rmax) = $Quantum->CalSTO($IonName);

	print("Z    : $AtomicNumber\n");
	print("Z*   : $zStar\n");
	print("R(r) = N * r^$n1 * exp[-($zStar/$nStar a0) * r]\n");
	print("     a0=$a0 m\n");
	print("Rmax = (a0/Z*)(n*)^2 = $Rmax (A)\n");
}

