C
C P R O G R A M V E L P L C ************************* C C PROGRAM VELPL IS DESIGNED FOR THE PLOTTING OF PLANE SECTIONS C OF SLOWNESS, PHASE VELOCITY AND GROUP VELOCITY SURFACES C FOR GENERAL ANISOTROPIC MEDIA C C ************************************************************ C CHARACTER*80 TEXT,PSTEXT,FILEIN,FILEOU,FILE1 DATA RTOD/57.29578122/ C C ************************************************** C LIN=5 LOU=6 LU3=1 FILEIN='velpl.dat' FILEOU='velpl.out' FILE1='lu3.dat' WRITE(*,'(2A)') ' (VELPL) SPECIFY NAMES OF INPUT AND OUTPUT', 1' FILES LIN, LOU, LU3: ' READ(*,*) FILEIN,FILEOU,FILE1 IF(FILE1.EQ.' ') GO TO 99 OPEN(LIN,FILE=FILEIN,FORM='FORMATTED',STATUS='OLD') OPEN(LOU,FILE=FILEOU,FORM='FORMATTED') OPEN(LU3,FILE=FILE1,FORM='FORMATTED',STATUS='OLD') C C************************************************** C IRUN=0 TEXT='VELPL' PSTEXT=' ' IPLOT=0 IPRINT=0 SC=1. READ(LIN,*)TEXT WRITE(LOU,100)TEXT READ(LIN,*)IPLOT,IPRINT,SC,PSTEXT WRITE(LOU,107)IPLOT,IPRINT,SC,PSTEXT IF(IPRINT.LT.0)THEN CALL PLOTN(PSTEXT,0) IPRINT=-IPRINT END IF CALL PLOTS(LDUM1,LDUM2,7) IF(IPLOT.GE.0)THEN READ(LIN,*)XM,XLEN,DTICX,YM,YLEN,DTICY WRITE(LOU,106)XM,XLEN,DTICX,YM,YLEN,DTICY XMER=.5*XLEN/XM YMER=.5*YLEN/YM ELSE READ(LIN,*)XLEN,DTICX,YMIN,YMAX,YLEN,DTICY WRITE(LOU,106)XLEN,DTICX,YMIN,YMAX,YLEN,DTICY XMER=XLEN/90. YMER=YLEN/(YMAX-YMIN) END IF NTICX=1 NTICY=1 NDX=0 NDY=0 READ(LIN,*)NTICX,NTICY,NDX,NDY WRITE(LOU,101)NTICX,NTICY,NDX,NDY C CALL PLOT(XLEN,YLEN,-3) IF(IPLOT.GE.0)THEN CALL BORDER(XLEN,DTICX,YLEN,DTICY,SC,TEXT,-1,-XM,XM,-YM,YM, 1 NTICX,NTICY,NDX,NDY) ELSE CALL BORDER(XLEN,DTICX,YLEN,DTICY,SC,TEXT,-1,0.,90.,YMIN,YMAX, 1 NTICX,NTICY,NDX,NDY) END IF C 1 CONTINUE DO 3 I=1,3 READ(LU3,101)ITYPE,NPAR,INUM IF(ITYPE.EQ.0)GO TO 99 IF(IPRINT.NE.0)THEN IF(NPAR.EQ.1)WRITE(LOU,103) IF(NPAR.EQ.2)WRITE(LOU,104) IF(NPAR.EQ.3)WRITE(LOU,105) END IF DO 2 K=1,INUM READ(LU3,102)DDELTA,XV,YV,ZV V=XV*XV+YV*YV+ZV*ZV HV=SQRT(XV*XV+YV*YV) IF(XV.LT.0.)HV=-HV V=SQRT(V) IF(NPAR.EQ.2)THEN IF(V.NE.0.)V=1./V HV=HV*V*V ZV=ZV*V*V END IF IF(IPRINT.NE.0)WRITE(LOU,106)DDELTA,V,XV,YV,ZV IF(IPLOT.GE.0)THEN XX=XLEN/2.+HV*XMER ZZ=YLEN/2.+ZV*YMER IF(ABS(HV*XMER).LE..5*XLEN.AND.ABS(ZV*YMER).LE..5*YLEN) * CALL SYMBOL(XX,ZZ,.01,'.',0.,-1) ELSE DEG=DDELTA*RTOD XX=DEG*XMER ZZ=(V-YMIN)*YMER IF(XX.LE.XLEN.AND.ZZ.GE.0..AND.ZZ.LE.YLEN) * CALL SYMBOL(XX,ZZ,.01,'.',0.,-1) END IF 2 CONTINUE 3 CONTINUE GO TO 1 C 100 FORMAT(A) 101 FORMAT(16I5) 102 FORMAT(6E15.5) 103 FORMAT(5x,'ANGLE',5x,'SLOW',8x,'PX',8x,'PY',8x,'PZ') 104 FORMAT(5x,'ANGLE',5x,'PHVEL',7x,'VPX',7x,'VPY',7x,'VPZ') 105 FORMAT(5x,'ANGLE',5x,'GRVEL',7x,'VGX',7x,'VGY',7x,'VGZ') 106 FORMAT(8F10.5) 107 FORMAT(2I5,F10.5,1X,A) c 99 CALL PLOT(0.,0.,999) STOP END C C======================================================================= C INCLUDE 'border.for' C border.for INCLUDE 'error.for' C error.for INCLUDE 'calcops.for' C calcops.for C C======================================================================= C