subroutine mv4dvar(NDIM,a,XX,AX,izs,rzs,dzs),7
implicit none
include 'champ.cdk'
include 'chobs.cdk'
integer NDIM, i, izs(1),IR
integer NTRAJ1
real*8 AX(NDIM), XX(NDIM)
real*8 rzs(1), dzs(1),a(1)
real ZRR(N,N),ZRRR(N,N)
real J
real dl_v(2*N*N*52)
GRFLAG = 0
OBFLAG = 0
JXFLAG = 0
NTRAJ1 = 52
IR = 0
DO IW = 1,N
DO JW = 1,N
ZR(IW,JW) = XX(IR+1)
IR = IR+1
ENDDO
ENDDO
CALL SQRTB
(ZR,ZO)
CALL RK
(ZR,ZO,KTX,KTY,IKTX,IKTY,N,N2,LWRK,
. FF1,FF2,FF3,WORK,TRIGS,IFAX,ZI)
CALL LININC
(J)
CALL H_4d
(ZTRA2,STRA2,dl_v)
DO IR = 1, 2*N*N*52
dl_v(IR) = dl_v(IR)/sigmao(IR)**2
END DO
CALL HT_4d
(dl_v,ZTRA2,STRA2)
CALL ADJINC
CALL KR
(ZO,ZR,KTX,KTY,IKTX,IKTY,N,N2,LWRK,
. FF1,FF2,FF3,WORK,TRIGS,IFAX,ZI)
CALL SQRTBT
(ZO,ZR)
IR =0
DO IW = 1,N
DO JW = 1,N
IR = IR +1
AX(IR) = DBLE(ZR(IW,JW)) + XX(IR)
ENDDO
ENDDO
end subroutine