subroutine sim4di(kdim,xx,jx,gx) 1,1

      implicit none
      integer kdim
      include 'champ.cdk'
      include 'chinc.cdk'

      real jz,js,xx(kdim),gx(kdim),jx
      complex zd,sd

      external lininc,adjinc

      nco=-1
      do ikx=1,iktx
      do iky=1,ikty
        if (l(ikx+ktx,iky).eq.1) then
         nco = nco + 2
         zo(ikx,iky) = cmplx(xx(nco),xx(nco+1))
        else
         zo(ikx,iky) = cmplx(0.,0.)
        endif
      enddo
      enddo
      do ikx=1,iktx
      do iky=1,ikty
        if (l(ikx+ktx,iky).eq.1) then
         nco = nco + 2
         so(ikx,iky) = cmplx(xx(nco),xx(nco+1))
        else
         so(ikx,iky) = cmplx(0.,0.)
        endif
      enddo
      enddo

      jz = 0.
      js = 0.
      do ikx=1,iktx
         do iky=1,ikty
          if (l(ikx+ktx,iky).eq.1) then
           zd = zo(ikx,iky)+ztraj(ikx,iky,1)-zm(ikx,iky)  
           sd = so(ikx,iky)+straj(ikx,iky,1)-sm(ikx,iky)  
           jz = jz + real(zd*conjg(zd)) 
           js = js + real(sd*conjg(sd)) 
          endif
         enddo 
      enddo
      write(22,101) jz,js
 101  format(2e12.4)

      grflag = 0 
      obflag = 0
      jxflag = 1
      call lininc(jx)

      call adjinc

      nco=0
      do ikx=1,iktx
      do iky=1,ikty
        if (l(ikx+ktx,iky).eq.1) then
         nco = nco + 1
         gx(nco) = real(zo(ikx,iky))
         nco = nco + 1
         gx(nco) = aimag(zo(ikx,iky))
        endif
      enddo
      enddo
      do ikx=1,iktx
      do iky=1,ikty
        if (l(ikx+ktx,iky).eq.1) then
         nco = nco + 1
         gx(nco) = real(so(ikx,iky))
         nco = nco + 1
         gx(nco) = aimag(so(ikx,iky))
        endif
      enddo
      enddo

      return
      end