#!perl #
#
# Subroutine SRPCRT($NAME,$NUM1,$NUM2)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Perl subroutine designed to generate coordinates of the source and
# receiver points for given configuration parameters, perform two-point
# ray tracing, and convert unformatted output into a simple formatted
# file.
#
# Input:
# $NAME...Prefix of data files (name of the job). Should not exceed
# 5 characters under MS-DOS. $NAME, $NUM1 and $NUM2
# together should not exceed 8 characters under MS-DOS.
# $NUM1...Integer configuration parameter.
# $NUM2...Optional second configuration parameter.
#
# No output.
#
# Executable programs required:
# srp, crt, crtpts
# Input files:
# $NAMEsrp.dat... Input file for the 'srp' program to generate
# source and receiver files for given configuration
# parameters. The receiver file must be named
# $NAME-rec.out. Source and receiver names will be
# prefixed with $NUM1-.
# $NAMEcrt.dat... Input file for the 'crt' program.
# Output files:
# $NAME$NUM1$NUM2.out... File containing travel times, slowness
# vectors and amplitudes (in R.C.C.S.) at
# the receivers.
# $NAMEscr.out... Collected screen output of programs 'srp',
# 'crt', and 'crtpts' (written in an append mode).
#
# Version: 5.50
# Date: 2001, January 9
#
# ----------------------------------------------------------------------
#
# Include files required:
require 'go.pl';
#
sub SRPCRT {
#
# History file with input and output parameters:
open(LU,">$_[0]srp.h");
print LU "SRP='$_[0]srp.dat' CNAME='$_[1]-' CPAR1=$_[1] CPAR2=$_[2] \n";
print LU "REC='$_[0]rec.out' PTS='$_[0]$_[1]$_[2].out' NQ=11 KALL=0 KREC=1 KTT=0 \n";
close (LU) || die "Error in writing history file '$_[0]srp.h'";
#
# Source and receiver points for given configuration parameters:
&RUN("srp>>$_[0]scr.out","'$_[0]srp.h'");
#
# Ray tracing:
&RUN("crt>>$_[0]scr.out","'$_[0]crt.h'");
#
# Results of ray tracing:
&RUN("crtpts>>$_[0]scr.out","'$_[0]srp.h'");
#
# Screen output (output filename):
print "Output filename: $_[0]$_[1]$_[2].out \n";
}
1; #