C
C *** THE HASKELL'S MATRIX: ARS2(ARR2) AND ALS2(ALR2) ***
C
      SUBROUTINE ARAL2(AR,AL,LL,DEP,OM2,CV2,WN,DNS,VP,VS,THK,ML,NL)
C
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION DNS(ML),THK(ML)
      COMPLEX*16 VP(ML),VS(ML)
     *          ,AR(4,4),SAR(4,4),SBR(4,4)
     *          ,AL(2,2),SAL(2,2),SBL(2,2)
     *          ,WP2,WS2,CMP,CMS,BM2,PM,QM,RBM,RAM
     *          ,CQ,SQ,STQ,SDQ,CP,SP,STP,SDP
C
      WN2=WN*WN
C
C *** AA MATRIX ***
C
      DO 100 I=1,4
        DO 110 J=1,4
          AR(I,J) =(0.0D0,0.0D0)
  110   CONTINUE
        AR(I,I)=(1.0D0,0.0D0)
  100 CONTINUE
C
      AL(1,1)=(1.D0,0.D0)
      AL(1,2)=(0.D0,0.D0)
      AL(2,1)=(0.D0,0.D0)
      AL(2,2)=(1.D0,0.D0)
C
      DO 200 IL=NL-1,LL,-1
C
        DO 160 I=1,4
          DO 170 J=1,4
            SAR(I,J) =AR(I,J)
  170     CONTINUE
  160   CONTINUE
C
        SAL(1,1)=AL(1,1)
        SAL(1,2)=AL(1,2)
        SAL(2,1)=AL(2,1)
        SAL(2,2)=AL(2,2)
C
        BM2=VS(IL)*VS(IL)
        WP2=OM2/(VP(IL)*VP(IL))
        WS2=OM2/BM2
C
        CMP=CDSQRT(WP2-WN2)
        CMS=CDSQRT(WS2-WN2)
        IF(IMAG(CMP).GT.0.D0)CMP=-CMP
        IF(IMAG(CMS).GT.0.D0)CMS=-CMS
C
        RAM=CMP/WN
        PM=CMP*THK(IL)
        IF(IL.EQ.LL)PM=CMP*(THK(IL)-DEP)
        CP=CDCOS(PM)
        SP=CDSIN(PM)
        STP=RAM*SP
        SDP=SP/RAM
C
        RBM=CMS/WN
        QM=CMS*THK(IL)
        IF(IL.EQ.LL)QM=CMS*(THK(IL)-DEP)
        CQ=CDCOS(QM)
        SQ=CDSIN(QM)
        STQ=RBM*SQ
        SDQ=SQ/RBM
C
        CALL ARALSB(SBR,SBL,CV2,DNS(IL),BM2
     *             ,CQ,STQ,SDQ,CP,STP,SDP)
C
        DO 210 I=1,4
          DO 220 J=1,4
            AR(I,J)=(0.D0,0.D0)
            DO 230 K=1,4
              AR(I,J) =AR(I,J) +SAR(I,K)*SBR(K,J)
  230       CONTINUE
  220     CONTINUE
  210   CONTINUE
C
        DO 250 I=1,2
          DO 260 J=1,2
            AL(I,J)=(0.D0,0.D0)
            DO 270 K=1,2
              AL(I,J) =AL(I,J) +SAL(I,K)*SBL(K,J)
  270       CONTINUE
  260     CONTINUE
  250   CONTINUE
C
  200 CONTINUE
C
      RETURN
      END
