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

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

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

	h(im,2:jm-1,1)=h(im-1:2:-1,1,6)
	h(2:im-1,jm,1)=h(2:im-1,1,3)

	h(im,2:jm-1,2)=h(1,2:jm-1,3)
	h(2:im-1,jm,2)=h(im,2:jm-1,14)

	h(im,2:jm-1,3)=h(1,2:jm-1,4)
	h(2:im-1,jm,3)=h(2:im-1,1,5)

	h(im,2:jm-1,4)=h(1,2:jm-1,9)
	h(2:im-1,jm,4)=h(1,jm-1:2:-1,12)

	h(im,2:jm-1,5)=h(2:im-1,jm,12)
	h(2:im-1,jm,5)=h(im-1:2:-1,jm,13)

	h(1,2:jm-1,6)=h(2:im-1,1,4)
	h(2:im-1,jm,6)=h(2:im-1,1,9)
	h(im,2:jm-1,6)=h(1,2:jm-1,7)

	h(2:im-1,1,7)=h(im-1:2:-1,1,1)
	h(im,2:jm-1,7)=h(1,2:jm-1,8)
	h(2:im-1,jm,7)=h(2:im-1,1,10)

        h(2:im-1,1,8)=h(1,2:jm-1,1)
	h(im,2:jm-1,8)=h(im-1:2:-1,1,2)
	h(2:im-1,jm,8)=h(2:im-1,1,11)

	h(im,2:jm-1,9)=h(1,2:jm-1,10)
	h(2:im-1,jm,9)=h(2:im-1,1,12)

	h(im,2:jm-1,10)=h(1,2:jm-1,11)
	h(2:im-1,jm,10)=h(2:im-1,1,13)

	h(im,2:jm-1,11)=h(1,2:jm-1,2)
	h(2:im-1,jm,11)=h(2:im-1,1,14)

	h(im,2:jm-1,12)=h(1,2:jm-1,13)
	h(im,2:jm-1,13)=h(1,2:jm-1,14)
	h(2:im-1,jm,14)=h(1,jm-1:2:-1,5)

	h(1,1,8)=h(1,1,1)
	h(im,1,7)=h(1,1,1)
	h(im,1,6)=h(im,1,1)
	h(1,1,7)=h(im,1,1)
	h(im,1,2)=h(1,jm,1)
	h(1,1,3)=h(1,jm,1)
	h(im,1,3)=h(im,jm,1)
	h(1,1,4)=h(im,jm,1)

	h(im,1,11)=h(1,1,2)
	h(im,jm,8)=h(1,1,2)
	h(im,jm,11)=h(1,jm,2)
	h(im,1,14)=h(1,jm,2)

	h(im,jm,14)=h(im,jm,2)
	h(1,1,5)=h(im,jm,2)
	h(1,jm,3)=h(im,jm,2)
	h(im,1,5)=h(im,jm,3)
	h(1,jm,4)=h(im,jm,3)
	h(1,jm,12)=h(im,jm,3)

	h(1,jm,6)=h(im,1,4)
	h(1,1,9)=h(im,1,4)
	h(1,jm,9)=h(im,jm,4)
	h(1,1,12)=h(im,jm,4)

	h(1,jm,14)=h(1,jm,5)
	h(im,jm,13)=h(1,jm,5)
	h(im,jm,12)=h(im,jm,5)
	h(1,jm,13)=h(im,jm,5)

	h(1,jm,7)=h(im,jm,6)
	h(im,1,9)=h(im,jm,6)
	h(1,1,10)=h(im,jm,6)

	h(im,jm,7)=h(1,jm,8)
	h(im,1,10)=h(1,jm,8)
	h(1,1,11)=h(1,jm,8)

	h(im,jm,9)=h(1,1,13)
	h(im,1,12)=h(1,1,13)
	h(1,jm,10)=h(1,1,13)

	h(im,jm,10)=h(1,1,14)
	h(1,jm,11)=h(1,1,14)
	h(im,1,13)=h(1,1,14)
!-----------------------------------------------------------------------
                            Return
                            End
