C   PROFL_RI.FOR                                                        
                                                                        
      SUBROUTINE PROFRI(IOP, C0, Z0, C1, Z1, AS, AY, NOPT, TITLE,     
     & ZY, CX)                                                          
                                                                        
      CHARACTER*3 XBTYPE, YBTYPE                                        
      CHARACTER*4 TITLE(20)                                             
      CHARACTER*30 DLAB(10)                                             
      CHARACTER*80 TITLEX, TITLEY, TITXUP, OPTION                       
                                                                        
      REAL ZY( * ), CX( * )                                             
C      REAL BETA(-1:3), SCATT(2)                                         
      REAL AS(5), AY(NOPT,7)                                            
                                                                        
C      DOUBLE PRECISION CC0, CC1                                         
      DOUBLE PRECISION H0, H1                                           
      DOUBLE PRECISION C0( * ), Z0( * ), C1( * ), Z1( * )               
                                                                        
      COMMON /LUNIT/ LUPLP, LUPLT, LUPRT         
      COMMON /TITL/ TITXUP, TITLEX, TITLEY, XBTYPE, YBTYPE              
      COMMON /XAXN/ DX, XDIV                                            
      COMMON /YAXN/ DY, YDIV                                            
                                                                        
  100 FORMAT(1H ,//,'  REVISE Y AXIS FOR OPTION "PROFL".')              
  200 FORMAT(1H ,//,'   ERROR IN PROFL SUBROUTINE ')                    
  820 FORMAT('Sound speed (m/s)$')                                      
  840 FORMAT('Depth (m)$')                                              
                                                                        
      TITXUP= ' '                                                       
      OPTION= ' '                                                       
      XBTYPE= 'LIN'                                                     
      YBTYPE= 'LIN'                                                     
      XDIV= 1.0                                                         
      YDIV= 1.0                                                         
      WRITE(TITLEX,820)                                                 
      WRITE(TITLEY,840)                                                 
C                                                                       
      XLEFT= AS(1)                                                      
      XRIGHT= AS(2)                                                     
      XLEN= AS(3)                                                       
      IF( AS(5) .LT. 1.0 )   XLEN= 2.5 * XLEN                           
      XINC= AS(4)                                                       
      YLEN= AY(IOP,3)                                                   
      YINC= AY(IOP,4)                                                   
      DX=0.0                                                            
      DY=0.0                                                            
      XOFF=0.0                                                          
      YOFF=0.0                                                          
      DLAB(1)=' '                                                       
      OPTION(1:12)='SNAP   PROFL'                                       
C                                                                       
C                                                                       
      REWIND 10                                                         
C      READ(10) MINMOD, MAXMOD                                           
      READ(10) IDUMMY
      NDTOT=0                                                           
C      READ(10) RKM                                                      
      READ(10) DUMMY
C      READ(10) R1, R2, H0, H1, ND0, ND1                                  
      READ(10) DUMMY, DUMMY, H0, H1, ND0, ND1
      H0H1= H0 + H1                                                     
C      READ(10) (BETA(J), J= 1, 3), SCATT, CC0, CC1                      
      READ(10) DUMMY
      READ(10) (Z0(J), C0(J),J= 1, ND0)                                 
      IF(ND1.GT.0)   READ(10) (Z1(J), C1(J),J= 1, ND1)                  
C      READ(10)C2,C2S                                                    
      READ(10) DUMMY
C                                                                       
C   REVISING OF Y AXIS                                                  
C                                                                       
      IF(AY(IOP,1).LT.AY(IOP,2))   GO TO 1100                           
      TEMP=AY(IOP,1)                                                    
      AY(IOP,1)=AY(IOP,2)                                               
      AY(IOP,2)=TEMP                                                    
 1100 CONTINUE                                                          
      ZMIN=AY(IOP,1)                                                    
      ZMAX=AY(IOP,2)                                                    
      IF(AY(IOP,5).LT.1.0)   ZMAX=H0H1                                  
C   CHECK ON MIN DEPTH                                                  
      IF(ZMIN.GE.0.0)   GO TO 1200                                      
      WRITE(LUPRT,100)                                                  
      GO TO 6800                                                        
                                                                        
C   CHECK ON MAX/MIN DEPTH INTERVAL                                     
 1200 CONTINUE                                                          
      ZYAX=ZMAX                                                         
      ZMAX=AMIN1(H0H1,ZYAX)                                             
      IF((ZMAX-ZMIN).GT.0.0)   GO TO 1400                               
      WRITE(LUPRT,100)                                                  
      GO TO 6800                                                        
 1400 CONTINUE                                                          
C                                                                       
C   ARRAYS C0,Z0,C1 AND Z1 ARE NOW SCANNED TO BUILD                     
C   ARRAYS ZY AND CX WHICH WILL CONTAIN ONLY                            
C   THE DATA TO BE PLOTTED.                                             
C                                                                       
      IF(ZMIN.GE.H0)   GO TO 2500                                       
C                                                                       
C  WATER LAYER                                                          
C                                                                       
      DO 1800   I=2,ND0                                                 
      IF(Z0(I).LE.ZMIN)   GO TO 1800                                    
      NDTOT=NDTOT+1                                                     
      ZY(NDTOT)=ZMIN                                                    
      CX(NDTOT)=(C0(I)-C0(I-1))*((ZMIN-Z0(I-1))/(Z0(I)-                 
     $Z0(I-1)))+C0(I-1)                                                 
      GO TO 2000                                                        
 1800 CONTINUE                                                          
 2000 CONTINUE                                                          
      DO 2200   J=I,ND0                                                 
      IF(Z0(J).GE.ZMAX)   GO TO 2400                                    
      NDTOT=NDTOT+1                                                     
      ZY(NDTOT)=Z0(J)                                                   
      CX(NDTOT)=C0(J)                                                   
 2200 CONTINUE                                                          
      I=1                                                               
      GO TO 2800                                                        
 2400 CONTINUE                                                          
      NDTOT=NDTOT+1                                                     
      ZY(NDTOT)=ZMAX                                                    
      CX(NDTOT)=(C0(J)-C0(J-1))*((ZMAX-Z0(J-1))/(Z0(J)-                 
     $Z0(J-1)))+C0(J-1)                                                 
      GO TO 3400                                                        
C                                                                       
C   SEDIMENT LAYER                                                      
C                                                                       
 2500 CONTINUE                                                          
      DO 2600   I=2,ND1                                                 
      IF(H0+Z1(I).LE.ZMIN)   GO TO 2600                                 
      NDTOT=NDTOT+1                                                     
      ZY(NDTOT)=ZMIN                                                    
      CX(NDTOT)=(C1(I)-C1(I-1))*((ZMIN-H0-Z1(I-1))/(Z1(I)-              
     $Z1(I-1)))+C1(I-1)                                                 
      GO TO 2800                                                        
 2600 CONTINUE                                                          
 2800 CONTINUE                                                          
      DO 3000   J=I,ND1                                                 
      IF(H0+Z1(J).GE.ZMAX)   GO TO 3200                                 
      NDTOT=NDTOT+1                                                     
      ZY(NDTOT)=H0+Z1(J)                                                
      CX(NDTOT)=C1(J)                                                   
 3000 CONTINUE                                                          
      WRITE(LUPRT,200)                                                  
      STOP 'STOP PROFL.FOR '                                            
 3200 CONTINUE                                                          
      NDTOT=NDTOT+1                                                     
      ZY(NDTOT)=ZMAX                                                    
      CX(NDTOT)=(C1(J)-C1(J-1))*((ZMAX-H0-Z1(J-1))/(Z1(J)-              
     $Z1(J-1)))+C1(J-1)                                                 
 3400 CONTINUE                                                          
      YUP=ZMIN                                                          
      YDOWN=ZYAX                                                        
      CALL PLTFIL(TITLE,          
     $             0,              
     $             OPTION,         
     $             0,              
     $             1,              
     $             XLEN,           
     $             YLEN,           
     $             XLEFT,          
     $             XRIGHT,         
     $             XINC,           
     $             YDOWN,          
     $             YUP,            
     $             YINC,           
     $             DLAB)
C                                                                       
C                                                                       
      CALL PLTF1(1,NDTOT,1,XOFF,YOFF)                                   
C                                                                       
C                                                                       
      CALL PLTF2(CX,1,NDTOT)                                            
      CALL PLTF2(ZY,1,NDTOT)                                            
C                                                                       
C                                                                       
6800  CONTINUE                                                          
      REWIND 10                                                         
      RETURN                                                            
      END