#!/usr/bin/perl
#
#..... generates single ctim*for file from CTIM-CORE tree
#

#  $vers=$ARGV[0];  shift(@ARGV);
$v=`pwd`; chop($v); ($min2,$min1,$maj)=reverse(split('\.',$v));
$vers="$maj.$min1.$min2";
print STDERR "$0: version $vers\n";

@flist=("ctim_tucan.f",
"ctim_output.f",
"ctim_init.f",
"ctim_compo.f",
"ctim_elecden.f",
"ctim_elecfield.f",
"ctim_inshaun.f",
"ctim_interpols.f",
"ctim_ions.f",
"ctim_loop.f",
"ctim_molion.f",
"ctim_prodneut.f",
"ctim_read_MHD.f",
"ctim_rice.f",
"ctim_shajutor.f",
"ctim_shaun.f",
"ctim_smooth.f",
"ctim_solar.f",
"ctim_spole.f",
"ctim_tool.f",
"ctim_trans.f",
"ctim_erf.f",
"ctim_cotr.f",
"ctim_div2.f",
"ctim_zparse.f");

@hlist=("ctim_dynamo.h","ctim_fnames.h","datastat.h","mhd_varcom.h","param.h","tipch.h","varcom.h" );

$n=0;
$b[$n++]="Cc****************************************************************";
$b[$n++]="Cc*  do not modify this file";
$b[$n++]="Cc*  this is generated by $0 from";
$b[$n++]="Cc*  the sources in CTIM-CORE.$vers";
$b[$n++]="Cc*  J. Raeder, IGPP/UCLA,  Mar 5, 2000";
$b[$n++]="Cc****************************************************************";
foreach $ff ( @flist ){
  open FF,"<$ff"; while(<FF>){ chop; $b[$n++]=$_; } close(FF);
}  print STDERR "$0 read $n lines\n";

foreach $ff ( @hlist ){
  $b[$n++]=".macro ctim_$ff(none)";
  open FF,"<$ff"; while(<FF>){ chop; $b[$n++]=$_; } close(FF);
  $b[$n++]=".endmacro";
}  print STDERR "$0 read $n lines\n";

for($i=0;$i<$n;$i++){
  $s=$b[$i]; $s=~s/\'//g; ($a1,$a2)=split(' ',lc($s)); $ic=0;
  if($a1 eq "include"){
    #print STDERR "$0 found include $a2\n";
    foreach $h ( @hlist ){ if($h eq $a2){$ic=1; $b[$i]=".call ctim_$h(none)"; } }
    if($ic==0){print STDERR "$0 include not in list: $a2\n"; exit; }
  }
}

$ff="../ctim-core.for";  print STDERR "$0 writing $ff\n";
open FF,">$ff";
for($i=0;$i<$n;$i++){ print FF "$b[$i]\n"; }
close(FF)

