C  FIRSTP.FOR                                                           
      SUBROUTINE FIRSTP( DELTAR, NL, MODE, EIGF,                        
     &   A, CK, CKTAIL, CPL,                                            
     &   BCTOP, KTOP2,                                            
     &   BCBOT, KBOT2 )                                           
                                                                        
                                                                        
C     Computes the pressure field along the interface.                  
C     Also returns information needed for the tails in the halfspaces   
                                                                        
      COMPLEX CZERO
      PARAMETER ( MAXMED = 50 )                                         
      PARAMETER ( CZERO= ( 0.0, 0.0 ), PI = 3.141592 )
                                                                        
      INCLUDE 'param.inc'                                               
      INCLUDE 'acommon.inc'                                             
                                                                        
C     N(1)= MH0 ; N(2)= MSED ;                                          
C      INTEGER    N( MAXMED )                                           
                                                                        
      CHARACTER*8 MODEL                                                   
      CHARACTER  BCBOT*1, BCTOP*1                                       
                                                                        
                                                                        
      DOUBLE PRECISION EIGF( * )                                        
                                                                        
                                                                        
      COMPLEX AEXT, CI                                                  
      COMPLEX    CK( * ), CKTAIL( * ), CPL( * ), A( * )                   
      COMPLEX KTOP2, KBOT2                                              
      COMPLEX SNAPCK                                                      
C      COMPLEX*16 PEKRT                                                 
      COMPLEX PEKRT                                                     
                                                                        
                                                                        
      COMMON /MODEL/ MODEL                                                
                                                                        
      DATA CI / (0.0, 1.0 )/                                            
                                                                        
                                                                        
                                                                        
C     *** Compute pressure at the interface ***                         
                                                                        
          AEXT= A( MODE ) * EXP( -CI * CK( MODE ) * DELTAR )            
          DO 2500 IZ = 1, NL                                            
C          CPL( IZ ) = CPL( IZ ) + AEXT * MODSET( IZ, MODE )            
          CPL( IZ ) = CPL( IZ ) + AEXT * SNGL(EIGF( IZ ))          
 2500     CONTINUE                                                      
                                                                        
C        ------ Halfspace information ------                            
                                                                        
                                                                        
C          PHITL( MODE ) = AEXT * MODSET(  1, MODE )                    
C          PHIBL( MODE ) = AEXT * MODSET( NL, MODE )                    
           PHITL( MODE ) = AEXT * SNGL(EIGF( 1 ))                       
C          PHITL( MODE ) = 0.0                                          
           PHIBL( MODE ) = AEXT * SNGL(EIGF( NL ))                      
                                                                        
          GAMTL( MODE ) = CZERO
          GAMBL( MODE ) = CZERO
                                                                        
          IF( MODEL(1:7) .EQ. 'C-SNAP ' )   THEN                           
            SNAPCK = CMPLX( REAL( CKTAIL( MODE ) )**2, 0.0 )               
          ELSE                                                             
            SNAPCK = CK( MODE ) ** 2                                       
          END IF                                                           
                                                                        
          IF ( BCTOP .EQ. 'A' )                                         
     &      GAMTL( MODE ) = PEKRT( SNAPCK - KTOP2 )                        
          IF ( BCBOT .EQ. 'A' )                                         
     &      GAMBL( MODE ) = PEKRT( SNAPCK - KBOT2 )                        
                                                                        
                                                                        
      RETURN                                                            
      END