      SUBROUTINE BCOND(A,F,MXNOD,NNODX,NNODM,IDIAG,COORD,ICOORD,
     +                 XLEN,RADCRY,YVEL)
      INTEGER MXNOD,NNODX,NNODM,IDIAG,ICOORD
      DOUBLE PRECISION A(2*MXNOD,*),F(*),COORD(ICOORD,*),
     +                 XLEN,RADCRY,YVEL
      DOUBLE PRECISION BIG
      PARAMETER(BIG=1.0D+12)
      INTEGER I,NX


      DO 10 I=1,NNODX
         A(2*I-1,IDIAG)=BIG
         F(2*I-1)=0.0D0
         A(2*I,IDIAG)=BIG
         F(2*I)=BIG*(YVEL*RADCRY**2.0D0/(XLEN**2.0D0))
 10   CONTINUE

      NX=(NNODX-1)/2+1


      DO 20 I=1,NNODM,3*NX-1
         A(2*I-1,IDIAG)=BIG
         F(2*I-1)=0.0D0
 20   CONTINUE

      DO 25 I=NNODX+1,NNODM-NNODX+1,3*NX-1
         A(2*I-1,IDIAG)=BIG
         F(2*I-1)=0.0D0
 25   CONTINUE


      DO 30 I=NNODX,NNODM,3*NX-1
         A(2*I-1,IDIAG)=BIG
         F(2*I-1)=0.0D0
 30   CONTINUE

      DO 35 I=NNODX+NX,NNODM-NNODX,3*NX-1
         A(2*I-1,IDIAG)=BIG
         F(2*I-1)=0.0D0
 35   CONTINUE


      DO 40 I=NNODM-NNODX+1,NNODM


            A(2*I-1,IDIAG)=BIG
            F(2*I-1)=0.0D0


         IF (COORD(1,I) .LT. (RADCRY-1.0D+4/BIG)) THEN
            A(2*I,IDIAG)=BIG
            F(2*I)=BIG*YVEL
         ELSE
            A(2*I,IDIAG)=BIG
            F(2*I)=0.0D0
         ENDIF
 40   CONTINUE

      RETURN
      END
