!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
                            Subroutine Bocov2l_oc(H,im,jm,ln)
!     ******************************************************************
!     *                                                                *
!     *  Boundary Conditions for Height Points on Octagon              *
!     *                                                                *
!     ******************************************************************
      implicit none
      integer,Parameter::nm=14
      integer::im,jm,lm,imp1,jmp1,im1,jm1,l,ln,k,k1,k2
!-----------------------------------------------------------------------
       real,Dimension(1-ln:im+ln,1-ln:jm+ln,nm)::H
!-----------------------------------------------------------------------
        lm=im

        imp1=im+1
        jmp1=jm+1

        im1=im-1
        jm1=jm-1
!
! Domain 1
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 1)=H(im-l,k, 7)
        H(l   ,jm+k-1, 1)=H(l     ,k, 3)
        H(1-k   ,l   , 1)=H(l     ,k, 8)
        H(jm+k-1,l   , 1)=H(im-l,k, 6)
      End Do
      enddo
        H(0   ,0   , 1)=0.
        H(imp1,0   , 1)=0.
        H(1-ln:0   ,jm:jm+ln-1, 1)=H(im-ln:im1,1:ln, 2)
        H(im:jm+ln-1,jm:jm+ln-1, 1)=H(1:ln  ,1:ln, 4)
!
! Domain 2
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 2)=H(im-k,jmp1-l, 8)
        H(l   ,jm+k-1, 2)=H(im-k,l     ,14)
        H(1-k   ,l   , 2)=H(im-k,l     ,11)
        H(im+k-1,l   , 2)=H(k  ,l     , 3)
      End Do
      End Do
        H(0   ,0   , 2)=0.
        H(im:im+ln-1,1-ln:0   , 2)=H(1:ln  ,jm-ln:jm1, 1)
        H(0   ,jmp1, 2)=0.
        H(im:im+ln-1,jm:jm+ln-1, 2)=H(1:ln  ,1:ln  , 5)
!
! Domain 3
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 3)=H(l  ,jm-k, 1)
        H(l   ,jm+k-1, 3)=H(l  ,k  , 5)
        H(1-k   ,l   , 3)=H(im-k,l  , 2)
        H(im+k-1,l   , 3)=H(k  ,l  , 4)
      End Do
      End Do

      do k1=1,ln
      do k2=1,ln
        H(1-k1   ,1-k2   , 3)=H(im-k2,k1  , 8)
        H(im+k1-1,1-k2   , 3)=H(k2  ,k1  , 6)
        H(1-k1   ,jm+k2-1, 3)=H(im-k2,jm-k1,14)
        H(im+k1-1,jm+k2-1, 3)=H(k2  ,jm-k1,12)
      enddo
      enddo
!
! Domain 4
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 4)=H(k  ,l     , 6)
        H(l   ,jm+k-1, 4)=H(k  ,jm-l,12)
        H(1-k   ,l   , 4)=H(im-k,l     , 3)
        H(im+k-1,l   , 4)=H(k  ,l     , 9)
      End Do
      End Do
        H(1-ln:0   ,1-ln:0   , 4)=H(im-ln:im-1,jm-ln:im-1, 1)
        H(imp1,0   , 4)=0.
        H(1-ln:0   ,jm:jm+ln-1, 4)=H(im-ln:im1,1:ln  , 5)
        H(imp1,jmp1, 4)=0.
!
! Domain 5
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 5)=H(l     ,jm-k, 3)
        H(l   ,jm+k-1, 5)=H(im-l,jm-k,13)
        H(1-k   ,l   , 5)=H(im-l,jm-k,14)
        H(im+k-1,l   , 5)=H(l     ,jm-k,12)
      End Do
      End Do
        H(1-ln:0   ,1-ln:0   , 5)=H(im-ln:im1,jm-ln:jm1, 2)
        H(im:im+ln-1,1-ln:0   , 5)=H(1:k  ,jm-ln:jm1, 4)
        H(0   ,jmp1, 5)=0.
        H(imp1,jmp1, 5)=0.
!
! Domain 6
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 6)=H(im-k,jm-l, 1)
        H(l   ,jm+k-1, 6)=H(l  ,k     , 9)
        H(1-k   ,l   , 6)=H(l  ,k     , 4)
        H(im+k-1,l   , 6)=H(k  ,l     , 7)
      End Do
      End Do

      do k1=1,ln
      do k2=1,ln
        H(1-k1   ,1-k2   , 6)=H(im-k2,k1, 3)
      enddo
      enddo
        H(im,0   , 6)=0.
        H(0   ,jm, 6)=0.
        H(im:im+ln-1,jm:jm+ln-1, 6)=H(1:ln  ,1:ln,10)
!
! Domain 7
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 7)=H(im-l,k, 1)
        H(l   ,jm+k-1, 7)=H(l     ,k,10)
        H(1-k   ,l   , 7)=H(im-k   ,l, 6)
        H(im+k-1,l   , 7)=H(k     ,l, 8)
      End Do
      End Do
        H(0   ,0   , 7)=0.
        H(imp1,0   , 7)=0.
        H(1-ln:0   ,jm:jm+ln-1, 7)=H(im-ln:im1,1:ln, 9)
        H(im:im+ln-1,jm:jm+ln-1, 7)=H(1:ln  ,1:ln,11)
!
! Domain 8
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 8)=H(k     ,l, 1)
        H(l   ,jm+k-1, 8)=H(l     ,k,11)
        H(1-k   ,l   , 8)=H(im-k   ,l, 7)
        H(im+k-1,l   , 8)=H(im-l,k, 2)
      End Do
      End Do
        H(0   ,0   , 8)=0
      do k1=1,ln
      do k2=1,ln
        H(im+k1-1,1-k2   , 8)=H(k2  ,k1, 3)
        H(1-k1   ,jm+k2-1, 8)=H(im-k1,k2,10)
      enddo
      enddo
        H(imp1,jmp1, 8)=0.
!
! Domain 9
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   , 9)=H(l  ,jm-k, 6)
        H(l   ,jm+k, 9)=H(l  ,1+k  ,12)
        H(1-k   ,l   , 9)=H(im-k,l  , 4)
        H(im+k,l   , 9)=H(1+k  ,l  ,10)
      End Do
      End Do
        H(0   ,0   , 9)=0
        H(im:im+ln-1,1-ln:0   , 9)=H(1:ln,jm-ln:jm1, 7)
        H(0   ,jmp1, 9)=0.
        H(im:im+ln-1,jm:jm+ln-1, 9)=H(1:ln,1:ln  ,13)
!
! Domain 10
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   ,10)=H(l  ,jm-k, 7)
        H(l   ,jm+k-1,10)=H(l  ,k  ,13)
        H(1-k   ,l   ,10)=H(im-k,l  , 9)
        H(im+k-1,l   ,10)=H(k  ,l  ,11)
      End Do
      End Do
        H(1-ln:0   ,1-ln:0   ,10)=H(im-ln:im1,jm-ln:jm1, 6)
        H(im:im+ln-1,1-ln:0   ,10)=H(1:ln  ,jm-ln:jm1, 8)
        H(1-ln:0   ,jm:jm+ln-1,10)=H(im-ln:im1,1:ln  ,12)
        H(im:im+ln-1,jm:jm+ln-1,10)=H(1:ln  ,1:ln  ,14)
!
! Domain 11
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   ,11)=H(l  ,jm-k, 8)
        H(l   ,jm+k-1,11)=H(l  ,k  ,14)
        H(1-k   ,l   ,11)=H(im-k,l  ,10)
        H(im+k-1,l   ,11)=H(k  ,l  , 2)
      End Do
      End Do
        H(1-ln:0   ,1-ln:0   ,11)=H(im-ln:im1,jm-ln:jm1, 7)
        H(imp1,0   ,11)=0.
        H(1-ln:0   ,jm:jm+ln-1,11)=H(im-ln:im1,1:ln  ,13)
        H(imp1,jmp1,11)=0.
!
! Domain 12
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   ,12)=H(l  ,jm-k, 9)
        H(l   ,jm+k-1,12)=H(im-k,l  , 5)
        H(1-k   ,l   ,12)=H(im-l,jm-k, 4)
        H(im+k-1,l   ,12)=H(k  ,l  ,13)
      End Do
      End Do
        H(0   ,0   ,12)=0.
        H(im:im+ln-1,1-ln:0   ,12)=H(1 :ln ,jm-ln:jm1,10)
      do k1=1,ln
      do k2=1,ln
        H(1-k1   ,jm+k2-1,12)=H(im-k2,im-k1, 3)
      enddo
      enddo
        H(im,jm,12)=0.
!
! Domain 13
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   ,13)=H(l     ,jm-k,10)
        H(l   ,jm+k-1,13)=H(im-l,jm-k, 5)
        H(1-k   ,l   ,13)=H(im-k   ,l  ,12)
        H(im+k-1,l   ,13)=H(k     ,l  ,14)
      End Do
      End Do
        H(1-ln:0   ,1-ln:0   ,13)=H(im-ln:im1,jm-ln:jm1, 9)
        H(im:im+ln-1,1-ln:0   ,13)=H(1:ln  ,jm-ln:jm1,11)
        H(0   ,jm,13)=0.
        H(im,jm,13)=0.
!
! Domain 14
!
      do k=1,ln
      Do l=1,lm-1
        H(l   ,1-k   ,14)=H(l     ,jm-k,11)
        H(l   ,jm+k-1,14)=H(k  ,jm-l, 5)
        H(1-k   ,l   ,14)=H(im-k   ,l  ,13)
        H(im+k-1,l   ,14)=H(l     ,jm-k, 2)
      End Do
      End Do
        H(1-ln:0   ,1-ln:0   ,14)=H(im-ln:im1,jm-ln:jm1,10)
        H(imp1,0   ,14)=0.
        H(0   ,jmp1,14)=0.
      do k1=1,ln
      do k2=1,ln
        H(im+k1-1,jm+k2-1,14)=H(k2  ,jm-k1, 3)
      enddo
      enddo

!-----------------------------------------------------------------------
                            Return
                            End
