#!/opt/local/bin/perl # # Search input files for fortran-style include statements, # and where found, replace with C-style includes, e.g.: # include "params.h" # original fortran include #include "params.h" # new C-style include # # Get list of input files from args: while (@ARGV) { $_ = shift; push(@inpfiles,$_); } print "inpfiles = @inpfiles\n"; # # Loop over input files: # foreach $inpfile (@inpfiles) { # # Open current input file and a corresponding new output file: # open(INPFILE,"< $inpfile") || die "\n$0: Cannot open input file $inpfile\n"; $newfile = $inpfile . ".new"; open(NEWFILE,"> $newfile") || die "\n$0: Cannot open new file $newfile\n"; $n = 0; # # Read current input file: while () { # # Find a fortran include statement: if ( /^\s+include\s+[<"'](.*)[>"']/ ) { $include_file = $1; push(@include_files,$include_file); # # Make new C-style include and write to new file: $new_line = "#include \"$include_file\""; print NEWFILE "$new_line\n"; $n++; } else { print NEWFILE "$_"; } } print "Input file = $inpfile Output file = $newfile (made $n changes)\n"; close(NEWFILE); }