       module hcode
   
       integer, parameter :: n_gfcn = 46

       character(64), dimension(n_gfcn), target :: gnames = 
     & (/'psi','alp','cux','cuy','cuz','uxx','uxy','uxz','uyy',
     &   'uyz','uzz','gxx','gxy','gxz','gyy','gyz','gzz','rg',
     &   'qxx','qxy','qxz','qyy','qyz','qzz','dxuxx','dxuxy',
     &   'dxuxz','dxuyy','dxuyz','dxuzz','dyuxx','dyuxy',
     &   'dyuxz','dyuyy','dyuyz','dyuzz','dzuxx','dzuxy',
     &   'dzuxz','dzuyy','dzuyz','dzuzz','x','y','z','r'/)


       integer, dimension(n_gfcn) :: 
     &  ntlev = (/1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,
     &           2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1/)

       integer psi,alp,cux,cuy,cuz,uxx,uxy,uxz,uyy,
     &   uyz,uzz,gxx,gxy,gxz,gyy,gyz,gzz,rg,
     &   qxx,qxy,qxz,qyy,qyz,qzz,dxuxx,dxuxy,
     &   dxuxz,dxuyy,dxuyz,dxuzz,dyuxx,dyuxy,
     &   dyuxz,dyuyy,dyuyz,dyuzz,dzuxx,dzuxy,
     &   dzuxz,dzuyy,dzuyz,dzuzz,xx,yy,zz,rr

       parameter(psi=1,alp=2,cux=3,cuy=4,cuz=5,uxx=6,uxy=7)
       parameter(uxz=8,uyy=9,uyz=10,uzz=11,gxx=12,gxy=13)
       parameter(gxz=14,gyy=15,gyz=16,gzz=17,rg=18,qxx=19)
       parameter(qxy=20,qxz=21,qyy=22,qyz=23,qzz=24,dxuxx=25)
       parameter(dxuxy=26,dxuxz=27,dxuyy=28,dxuyz=29,dxuzz=30)
       parameter(dyuxx=31,dyuxy=32,dyuxz=33,dyuyy=34)
       parameter(dyuyz=35,dyuzz=36)
       parameter(dzuxx=37,dzuxy=38,dzuxz=39,dzuyy=40,dzuyz=41)
       parameter(dzuzz=42,xx=43,yy=44,zz=45,rr=46)

       integer, parameter :: ndim = 3 
       
       real, parameter  :: t_init = 0.0d0

       end module hcode








