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

        imp1=im+1
        jmp1=jm+1

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

	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
