C
C Program CRT2P collecting 2-point rays from the unformatted output of
C program CRT.
C
C Version: 5.50
C Date: 2001, January 18
C
C Coded by: Ludek Klimes
C Department of Geophysics, Charles University Prague,
C Ke Karlovu 3, 121 16 Praha 2, Czech Republic,
C E-mail: klimes@seis.karlov.mff.cuni.cz
C
C.......................................................................
C
C
C Description of data files:
C
C Main input data read from external interactive device (*):
C The data consist of character strings, read by list directed (free
C format) input. The strings have thus to be enclosed in
C apostrophes. The interactive * external unit may be redirected to
C the file containing the data.
C (1) 'RAYALL','INIALL','RAY2P','INI2P',/
C 'RAYALL'... Input file CRT-R with the quantities stored along rays
C (see C.R.T.5.5.1), or input file CRT-S with the quantities
C stored at the specified surfaces (see C.R.T.5.5.2).
C 'INIALL'... Input file CRT-I with the quantities at the initial
C points of rays, corresponding to file RAYALL (see
C C.R.T.6.1).
C 'RAY2P'... Output file CRT-R or CRT-S, with the quantities
C corresponding to the 2-point rays only.
C 'INI2P'... Output file CRT-I with the quantities at the initial
C points of 2-point rays, corresponding to file RAY2P (see
C C.R.T.6.1).
C Default: 'RAYALL'='r01.out', 'INIALL'='r01i.out',
C 'RAY2P'='ray2p.out', 'INI2P'='ini2p.out'.
C
C Unformatted files RAYALL and RAY2P:
C See the description within source code file 'writ.for'.
C Description of files CRT-R
C Description of files CRT-S
C
C Unformatted files INIALL and INI2P:
C See the description within source code file 'writ.for'.
C Description of files CRT-I
C
C-----------------------------------------------------------------------
C
C Common block /POINTC/ to store the results of complete ray tracing:
INCLUDE 'pointc.inc'
C pointc.inc
C None of the storage locations of the common block are altered.
C
C Subroutines and external functions required:
EXTERNAL AP00
C AP00... File 'ap.for'.
C
C-----------------------------------------------------------------------
C
C Auxiliary storage locations:
INTEGER LU1,LU2,LU3,LU4,I
PARAMETER (LU1=1,LU2=2,LU3=3,LU4=4)
CHARACTER*80 FILE1,FILE2,FILE3,FILE4
C
C.......................................................................
C
C Opening input and output files:
FILE1='r01.out'
FILE2='r01i.out'
FILE3='ray2p.out'
FILE4='ini2p.out'
WRITE(*,'(2A)')
* ' Enter 4 filenames (r01.out, r01i.out, ray2p.out, ini2p.out): '
READ(*,*) FILE1,FILE2,FILE3,FILE4
OPEN(LU1,FILE=FILE1,FORM='UNFORMATTED',STATUS='OLD')
OPEN(LU2,FILE=FILE2,FORM='UNFORMATTED',STATUS='OLD')
OPEN(LU3,FILE=FILE3,FORM='UNFORMATTED')
OPEN(LU4,FILE=FILE4,FORM='UNFORMATTED')
C
C Loop for the points of rays
10 CONTINUE
C Reading the results of the complete ray tracing
CALL AP00(0,LU1,LU2)
IF(IWAVE.LT.1)THEN
C End of rays
GO TO 80
END IF
IF (IREC.GT.0) THEN
C Two-point ray:
WRITE(LU3) IWAVE,IRAY,NY,ICB1,ISRF,X,YL,(Y(I),I=1,NY)
IF(IPT.LE.1)THEN
C New ray - recording the initial point
WRITE(LU4) -IWAVE,IRAY,ICB1I,IEND,ISHEET,IREC,YLI,YI
END IF
END IF
GO TO 10
C
80 CONTINUE
CLOSE(LU1)
CLOSE(LU2)
CLOSE(LU3)
CLOSE(LU4)
STOP
END
C
C=======================================================================
C
INCLUDE 'error.for'
C error.for
INCLUDE 'length.for'
C length.for
INCLUDE 'ap.for'
C ap.for
C
C=======================================================================
C