App-SeismicUnixGui

 view release on metacpan or  search on metacpan

lib/App/SeismicUnixGui/fortran/src/txpr.for  view on Meta::CPAN

	SUBROUTINE TXPR(NL,VT,VB,DZ,PMIN,PMAX,DP,IR,MULTIN,
     &  NTP,ILA,PPP,XXX,TT)
C ** RAY TRACING MAIN LOGIC **
	DIMENSION VT(*),VB(*),DZ(*),XXX(*),TT(*)
	DIMENSION IR(*),MULTIN(*),ILA(*),PPP(*)
C
	NTP=0
	NL1=NL
	P=PMIN
45	X=0.
	T=0.
C
	DO 5 I=1,NL1
	M=MULTIN(I)
	I1=I+1
	ABP=ABS(P)
	CALL TXGRD(ABP,VT(I),VB(I),DZ(I),DT,DX,IN)
	IF(IN.EQ.0) GO TO 50
	IF(P.LT.0.0) DX=-DX
	X=X+DX*M
	T=T+DT*M
C ***********************************************
	IF(IN.EQ.1.OR.IR(I).EQ.1) THEN
	  NTP=NTP+1
	  XXX(NTP)=X
	  TT(NTP)=T
	  PPP(NTP)=P
	  ILA(NTP) = I !**POST CRITICAL REFLECTION
C
	  IF(IN.EQ.1) THEN
        	GO TO 62
	  ELSE
		A2=1./VT(I1)
		IF(ABP.LT.A2) ILA(NTP) = -I !**PRE CRITICAL REFLECTION
	  ENDIF
C
	ENDIF
5	CONTINUE
	GO TO 62
50	NL1=I-1
62	P=P+DP
   	IF(P.GT.PMAX) GO TO 65
	GO TO 45
C **** COMPUTATION  FINISHED ****
65	CONTINUE
	RETURN
	END



( run in 0.499 second using v1.01-cache-2.11-cpan-39bf76dae61 )