#!/usr/bin/perl -w

use English;
use strict;
###################################################################
my $i = 1;
my $k;
my $ka;
my @lhdnr = ();
my $flag='allen';
#my $flag='flynn';
my $T=shift;
my $dt=shift;
my $sigmalogd;
my $sigmavR;
my $sigmapma;
my $sigmapmd;
my $d_m;
my $v_Rm;
my $mu_am;
my $mu_dm;
my $fname;
my @output;
my @output2;
print "#T=$T dt=$dt\n";
###################################################################
#Perl-Programm, das Orbits mittels obs2galn.f und orbit6n.f berechnet
#AUFRUF: obs2galmultiorbit.pl  T dt input.txt
#T: Zeit in Gyr mit Vorzeichen
#dt: Zeitschritt in Gyr 
#und je ein file pro Stern nameHDNr.txt fuer jeden Zeitpunkt                 
#Output: t  x  y  z  R  rho  U  V  W  V_r  Theta

#########################################################
while(<>){
  next if(/^\#/);
  $k=0;
  chomp;
  my ($lhd, $ra_h, $ra_min, $ra_sec, $dec_h, $dec_min, $dec_sec, $logd, $sigmalogd,$v_R, $sigmavR,$mu_alpha, $mu_delta,$sigmapma,$sigmapmd,$rest) = split;
#############################################################################
    $fname=join("",$lhd,'.orbit');
  if ($flag eq 'flynn'){
    $fname=join("",$lhd,'flynn','.orbit');
  }
    print "$fname\n";
    $d_m=(10**($logd))*0.001;           
    $mu_am=$mu_alpha;
    $mu_dm=$mu_delta;
    $v_Rm=$v_R;
    @output= `echo "$ra_h\n$ra_min\n$ra_sec\n$dec_h\n$dec_min\n$dec_sec\n$d_m\n$v_Rm\n$mu_am\n$mu_dm\n\"|./obs2gal_db`; 
    #########################################################
    open (OUT,">$fname") || die "Kann Datei $fname nicht oeffnen\n";
    print OUT "#t(Gyrs) x(kpc) y(kpc) z(kpc) |R|(kpc),rho(kpc),U(km/s),V(km/s),W(km/s),v_rho(km/s),Theta(km/s)\n";
  if ($flag eq 'allen'){
    @output2= `echo "@output $T\n $dt\n" |./orbit6n`;
  }
  if ($flag eq 'flynn'){
    @output2= `echo "@output $T\n $dt\n" |./orbit6nflynn`;
  }
#    print "output2 @output2\n";
    while (@output2) {
      my @out=split(/\s+/,shift(@output2));
      
      if ($out[0] eq 'b') {
       splice (@out,0,1);
       print OUT "@out\n";          
 	}    
}
   close OUT;
}

#mit Perldocumentation
=pod
 
=head1 obs2galmultiorbit.pl
 
Perl-Programm, das Orbits mittels obs2galn und orbit6n berechnet

=head1 SYNOPSIS
 
I<obs2galmultiorbit.pl> I<T> I<dt>  I<input-file> 

I<T>: Zeit in Gyr mit Vorzeichen

I<dt>: Zeitschritt in Gyr 

I<input-file>: HDNr. RA_h RA_min RA_s Dec_°(mit Vorzeichen) Dec_min Dec_sec 
logd/(pc) sigma(logd) v_rad(mit Vorzeichen)/(km/s) sigma(vrad) pma(mit cos(delta))/(mas/yr)
pmd/(mas/yr) sigma(pma) sigma(pmd)

Output:SternNr. R_min sigma R_max sigma |z|_max sigma ecc sigma nze sigma E(Anf.) sigma Jz(Anf.) sigma Uml. sigma Theta(Anf) sigma x(Anf.) sigma y(Anf.) sigma  z(Anf.) sigma U(Anf.) sigma V(Anf.) sigma  W(Anf.) sigma

=head1 Beispiel

obs2galmulti.pl  +2 0.001 1000 wdin1.txt 

=head1 AUTHOR           

Eva-Maria Pauli

=cut 
######################################################################
#######################################################################


