subroutine mv3dvar(NDIM,a,XX,AX,izs,rzs,dzs),4

      implicit none

      include 'champ.cdk'
      include 'chobs.cdk'

      integer  NDIM, i, izs(1),IR
      real*8   AX(NDIM), XX(NDIM)
      real*8   rzs(1), dzs(1),a(1)
      real     ZRR(N,N),ZRRR(N,N)
      real     J

      
      IR = 0
      DO IW=1,N
      DO JW=1,N
         ZR(IW,JW) = XX(IR+1)
         IR = IR+1
      END DO 
      END DO

      CALL SQRTB(ZR,ZF)
      CALL H(ZF,SO,HX,NSTOP)
      DO IW = 1,2*N**2
         HX(IW) = HX(IW)/sigmao(IW)**2
      END DO
      
      CALL HT(HX,ZF,SO,NSTOP)
      CALL SQRTBT(ZF,ZR)

       IR = 0
       J = 0.0
       DO IW=1,N
       DO JW=1,N
          IR = IR+1
          AX(IR) = ZR(IW,JW) + XX(IR)
          J= J+AX(IR)**2
       END DO
       END DO
       


      end subroutine