SUBROUTINE RDSD(I,WORD,REREAD,LUIN,ALPHA1,HTOT,HMIN,           
     & SRD,*    )                                       
C                                7000                                   
                                                                        
      INTEGER REREAD, ERROR                                             
                                                                        
      DIMENSION SRD(NOPT,KSRD,2)                                        
      DIMENSION BUFFIN(4)                                               
                                                                        
      CHARACTER*80 WORD, BLANK                                          
      CHARACTER*5 ALPHA1(NOPT)
                                                                        
      COMMON /CFIELD/ FLDRD(3),PULRD(3)                                 
      COMMON /LUNIT/ LUPLP, LUPLT, LUPRT
      COMMON /MODSMP/ MSPH0, MODSED, MSPH1                              
      COMMON /PARA1/ NFF,MSP,NDEP,NOPT,ICF,KSRD

      DATA BLANK /' '/
C                                                                       
  125 FORMAT(A80)                                                       
  480 FORMAT(1H ,//,' THE SOURCE DEPTH SPECIFIED FOR OPTION "',A5,'" IS 
     & NOT ACCEPTABLE.',/,' SOURCE DEPTH =',F10.3,' M',/,               
     & ' MAX ALLOWED DEPTH  =',F10.3,' M',/,' EXECUTION IS TERMINATED') 
  481 FORMAT(1H ,//,' THE RECEIVER DEPTH SPECIFIED FOR OPTION "',A5,    
     & '" IS NOT ACCEPTABLE.',/,' RECEIVER DEPTH  =',F10.3,' M',/,      
     & ' MAX ALLOWED DEPTH =',F10.3,' M',/,' EXECUTION IS TERMINATED')  
  482 FORMAT(1H ,//,' THE RECEIVER DEPTH SPECIFICATION FOR OPTION "',A5,
     &'" IS NOT ACCEPTABLE. ',/,                                        
     & ' MIN RECEIVER DETH  = ',F10.3,/,                                
     & ' MAX RECEIVER DEPTH = ',F10.3,/,                                
     & ' DELZ               = ',F10.3,/,                                
     & ' MAX ALLOWED DEPTH  = ',F10.3,/, ' EXECUTION IS TERMINATED')    
  483 FORMAT(1H ,//,'  MISSING SOURCE SPECIFICATION FOR OPTION "',A5,   
     & '"',/,'  EXECUTION IS TERMINATED')                               
  484 FORMAT(1H ,//,' THE SOURCE DEPTH SPECIFICATION FOR OPTION "',A5,  
     & ' IS NOT ACCEPTABLE. ',/,                                        
     & ' SOURCE DEPTH       = ',F10.3,/,                                
     & ' MAX ALLOWED DEPTH  = ',F10.3,/, ' EXECUTION IS TERMINATED')    
  500 FORMAT(1H ,'MAXIMUM NUMBER OF SOURCE/RECEIVER DEPTH',
     & ' COMBINATIONS',/,' FOR OPTION "',A5,'" HAS BEEN REACHED. ',/,
     & ' EXECUTION IS TERMINATED.')          
  820 FORMAT(1H ,//,'  MISSING DEPTH SPECIFICATION FOR OPTION "',A5,    
     & '"',/,'  EXECUTION IS TERMINATED')                               
                                                                        
                                                                        
C                                                                       
C     READING OF SOURCE/RECEIVER DEPTHS                                 
C                                                                       
      FLAGSD=0.0                                                        
      FLAGRD=0.0                                                        
      DO   6300   K=1,KSRD + 1                                          
C           TLRAN GROUP TLAVR TLDEP TLAVF ANGLE PHASE CONDR CONFR PROFL 
C           MODES CONDA HORWN PARAM FIELD PULSE                         
      WORD= BLANK
      GO TO(5900 ,7000 ,6000 ,6000 ,6000 ,5900 ,6000 ,6000 ,5900 ,7000 ,
     &      7000 ,6000 ,7000 ,7000 ,5850),I                             
 5850 CONTINUE                                                          
      READ(LUIN, 125, END= 6800) WORD
      IF( WORD .EQ. BLANK )   GO TO 5850
      IF(WORD(1:4) .EQ. '@EOF')   GO TO 6800                              
      IF(K .EQ. 1)  THEN                                                
       CALL RFFORM(WORD,80,BUFFIN,1,3,ERROR)                            
       IF(ERROR .GT. 0)   GOTO 6500                                     
C      MIN AND MAX RECEIVER DEPTH, AND DELZ FOR OPTION "FIELD"          
       FLDRD(1)=BUFFIN(1)                                               
       FLDRD(2)=BUFFIN(2)                                               
       FLDRD(3)=BUFFIN(3)                                               
       IF( (FLDRD(1) .LT. 0.)                      .OR.                 
     &     (FLDRD(1) .GT. HMIN)                   .OR.                  
     &     (FLDRD(2) .LE. 0.)                      .OR.                 
     &     (FLDRD(2) .GT. HMIN)                   .OR.                  
     &     (FLDRD(3) .LT. 0.)                      .OR.                 
     &     (FLDRD(3) .GT. (FLDRD(2)-FLDRD(1)))     .OR.                 
     &     (FLDRD(1) .GT. FLDRD(2)))                    THEN            
        WRITE(LUPRT,482) ALPHA1(I),(BUFFIN(J),J=1,3),HMIN                   
        RETURN                                                          
       END IF
       WORD= BLANK
 5860  READ(LUIN, 125, END= 6700) WORD
       IF( WORD .EQ. BLANK )   GO TO 5860
       IF( WORD(1:4) .EQ. '@EOF' )   GO TO 6700
      END IF                                                            
      IF(K.GT.KSRD)   GO TO 6400                                        
      CALL RFFORM(WORD,80,BUFFIN,1,1,ERROR)                             
      IF(ERROR.GT.0)   GO TO 6500                                       
C  SOURCE DEPTH FOR OPTION "FIELD"                                      
      SRD(I,K,1)=BUFFIN(1)                                              
      IF( (SRD(I,K,1) .LE. 0.) .OR.                                     
     &    (SRD(I,K,1) .GT. HTOT) )   THEN                            
       WRITE(LUPRT,484) ALPHA1(I),BUFFIN(1),HTOT                         
       RETURN                                                           
      END IF                                                            
      GO TO 6300                                                        
C                                                                       
 5900 CONTINUE                                                          
      READ(LUIN, 125, END= 6800) WORD
      IF( WORD .EQ. BLANK )   GO TO 5900
      IF(WORD(1:4) .EQ. '@EOF')   GO TO 6800                              
      CALL RFFORM(WORD,80,BUFFIN,1,2,ERROR)                             
      IF(ERROR.GT.0)   GO TO 6500                                       
      TEMP1=BUFFIN(1)                                                   
      TEMP2=BUFFIN(2)                                                   
      IF(K.GT.KSRD)   GO TO 6400                                        
C                                                                       
C   RECEIVER DEPTH IS CHECKED HERE:                                     
C                                                                       
      IF(TEMP2.LE.0.0.OR.TEMP2.GT.HMIN)   FLAGRD=1.0                    
      SRD(I,K,2)=TEMP2                                                  
      GO TO 6100                                                        
 6000 CONTINUE
      READ(LUIN, 125, END= 6800)   WORD
      IF( WORD .EQ. BLANK )   GO TO 6000
      IF(WORD(1:4) .EQ. '@EOF')   GO TO 6800                              
      CALL RFFORM(WORD,80,BUFFIN,1,2,ERROR)                             
      TEMP1=BUFFIN(1)                                                   
      IF(ERROR.NE.0)   GO TO 6500                                       
      IF(K.GT.KSRD)   GO TO 6400                                        
C                                                                       
C   SOURCE DEPTH IS CHECKED HERE:                                       
C                                                                       
 6100 IF(TEMP1.LE.0.0.OR.TEMP1.GT.HTOT)   FLAGSD=1.0                 
      IF(FLAGSD+FLAGRD.LT.1.0)   GO TO 6200                             
      IF(FLAGSD.GT.0.0)   WRITE(LUPRT,480) ALPHA1(I),TEMP1,HTOT          
      IF(FLAGRD.GT.0.0)   WRITE(LUPRT,481) ALPHA1(I),TEMP2,HMIN             
      RETURN                                                            
 6200 CONTINUE                                                          
      SRD(I,K,1)=TEMP1                                                  
                                                                        
C   "CONDR", NUMBER OF RECEIVERS IS SAVED HERE:                         
C   This is a hidden option: by default the number of receivers is      
C   defined by the variable MSP. The default action is overridden       
C   whenever srd(i,k,1) > 0.                                            
      IF( I .EQ. 8 )   THEN                                             
        IF( BUFFIN(2) .GT. 0. )  THEN                                   
          SRD(I,K,2)= BUFFIN(2)                                         
        ELSE                                                            
          SRD(I,K,2)= MSPH0                                             
        END IF                                                          
      END IF                                                            
                                                                        
 6300 CONTINUE                                                          
 6400 WRITE(LUPRT,500) ALPHA1(I)
      RETURN                                                            
 6500 CONTINUE                                                          
      IF(K .EQ. 1)   GO TO 7100                                           
      REREAD=1                                                          
      RETURN 1                                                          
 6700 CONTINUE                                                          
      WORD(1:4)= '@EOF'
      WRITE(LUPRT,483) ALPHA1(I)                                          
      RETURN                                                          
 6800 CONTINUE                                                          
      WORD(1:4)= '@EOF'
      REREAD=1                                                          
      IF(K.GT.1)   RETURN 1                                             
 7000 CONTINUE                                                          
      REREAD=0                                                          
      RETURN 1                                                          
 7100 WRITE(LUPRT,820) ALPHA1(I)                                            
      RETURN                                                            
      END