#!/usr/bin/perl
#
$template = 'tgcmproc_ereg_template.inp'; # template namelist file must exist
$basename = 'tgcmproc-ereg-';             # basename for new file names
$daybeg = 121;
$dayend = 365;
$deltaday = 30;
$nfiles = ($dayend - $daybeg) / $deltaday;
print "daybeg=$daybeg dayend=$dayend deltaday=$deltaday nfiles=$nfiles\n";
exit;

#$nfiles = 4;                              # number of new files to make
#
# User name for use in default file paths:
#
$user  = $ENV{"LOGNAME"};
($USER = $user) =~ tr/a-z/A-Z/;
$TGCMDATA  = $ENV{"TGCMDATA"};
#
# Set keyword values for each namelist file to be made:
#
%keyval = ();
#
#mtimes =  1,0,0,'to',29,23,0,'by',60
$keyval{'mtimes'} = 
 [ (" 1,0,0,\'to\',30 ,23,0,\'by\',60",
    "31,0,0,\'to\',60 ,23,0,\'by\',60",
    "61,0,0,\'to\',90 ,23,0,\'by\',60",
    "91,0,0,\'to\',120,23,0,\'by\',60") ];
#
#flnm_cgm = 'sy2y.ereg.d001-030.cgm'
#flnm_cgm = 'sy2y.ereg.d031-060.cgm'
#flnm_cgm = 'sy2y.ereg.d061-090.cgm'
#
$basename_cgm = 'sy2y.ereg.d';
$basename_ps  = 'sy2y.ereg.d';
$basename_dat = 'sy2y.ereg.d';
my $i = $daybeg;
$d1 = &mknum($i);
$d2 = &mknum($i+$deltaday-1);
for ($i=1; $i<=$nfiles; ++$i) {
  print "i=$i d1=$d1 d2=$d2\n";
  $cgmfile = "\'$basename_cgm${d1}-${d2}.cgm\'";
  $psfile = "\'$basename_cgm${d1}-${d2}.ps\'";
  $datfile = "\'$basename_cgm${d1}-${d2}.dat\'";
  push(@cgmfiles,$cgmfile);
  push(@psfiles,$psfile);
  push(@datfiles,$datfile);
  $d1 = &mknum($d1+$deltaday);
  $d2 = &mknum($d2+$deltaday);
}
$keyval{'flnm_cgm'} = [( @cgmfiles )];
$keyval{'flnm_ps'}  = [( @psfiles )];
$keyval{'flnm_dat'} = [( @datfiles )];

#flnm_ps  = 'sy2y.ereg.d001-002.ps'
#flnm_dat = 'sy2y.ereg.d001-002.dat'
#sendcgm =  'vishnu.hao:/e/foster/mendillo/timegcm1.2_sy2y/sy2y.ereg.d001-029.cgm'
#sendps  =  'vishnu.hao:/e/foster/mendillo/timegcm1.2_sy2y/sy2y.ereg.d001-029.ps'
#senddat =  'vishnu.hao:/e/foster/mendillo/timegcm1.2_sy2y/sy2y.ereg.d001-029.dat'

#
# Save template file in @template_lines:
#
open (TEMPLATE,"< $template") || die "Cannot open template file $template";
while (<TEMPLATE>) {
  push(@template_lines,$_);
}
close TEMPLATE;
#
# For each new file:
#
for ($n=1; $n<=$nfiles; ++$n) {
  if ($n <= 9) {
    $n = "00${n}";
  } elsif ($n <= 99) {
    $n = "0${n}";
  } 
  $newfile = "$basename${n}.inp";
  print "Making file $newfile\n"; 
  open (NEWFILE,"> $newfile")   || die "Cannot open new file $newfile";
#
# Lines of template file:
#
  foreach $line (@template_lines) {
    $found = 0;
#
# Check for keywords in current line, and replace values if found:
#
    foreach $key (keys %keyval) {
      if ($line =~ /\s*$key\s*=/ and $line !~ /\S+$key/) {   # found keyword
        $nvals = $#{ $keyval{$key} } + 1;   # number of user values this key
        if ($n > $nvals) {                  # not enough user values!
          print "WARNING file $n: key $key has only $nvals values.\n" };
        $value = (@{$keyval{$key}})[$n-1];  # user's value for this file
        print NEWFILE " $key = $value\n";   # new keyword=value pair
        $found = 1;
      } # found keyword
    } # foreach key
    if (! $found) { print NEWFILE $line; }  # echo template's keyword=value
  } # while template
  close NEWFILE;
} # for n=1,nfiles
#-----------------------------------------------------------------------
sub mknum(num) {
  my ($num) =  @_;
  my $i;
  if ($num <= 9) {
    $i = "00${num}";
  } elsif ($num <= 99) {
    $i = "0${num}";
  } else {
    $i = "${num}";
  } 
# print "mknum: num=$num -- returning i=$i\n";
  return $i; 
}
