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