SUBROUTINE GENOBS,4
      IMPLICIT NONE
      include 'champ.cdk'
      EXTERNAL SETTING,MODDIR,INITXY
      REAL JX
c
c Programme permettant de generer les observations
c
      INTEGER II
c     REAL XX(KDIM)
      COMPLEX Z(IKTX,IKTY)
c     +
      TRFLAG =   0
      GRFLAG =   0
      OBFLAG =   0
      JXFLAG =   0
      TEFLAG =   0

      CALL SETTING
      NSTOP = 0

C     ------ DONNE LE NOMBRE DE VARIABLES DE CONTROLE ------------
      NCO=0
      DO IKX=1,IKTX
         DO IKY=1,IKTY
            IF (L(IKX+KTX,IKY).EQ.1) THEN
               NCO = NCO + 2
            ENDIF
         ENDDO
      ENDDO
      NCO = NCO*2
      PRINT*,'############# NCO EQUALS ############## =',NCO
C     -------------------------------------------------------------

c     NSTOP = 9900 
      
      IF (NSTOP.NE.0) THEN
         CALL INITXY (ZO,SO,IKTX,IKTY,KTX,
     .        KTY,DELT,WN,PXLIM,L,
     .        ZR,SR,N,N2,LWRK,FF1,FF2,FF3,WORK,TRIGS,IFAX,BJ,ILAP)

         CALL moddir(JX)
         open (15,file='guess.io',status='unknown')
         write(15,101) ((ZN(IW,JW),IW=1,IKTX),JW=1,IKTY)
         write(15,101) ((SN(IW,JW),IW=1,IKTX),JW=1,IKTY)
         close(15)
      ENDIF

      TRFLAG =   1
      GRFLAG =   1
      OBFLAG =   1


      open (15,file='guess.io',status='unknown')
      read(15,101) ((ZO(IW,JW),IW=1,IKTX),JW=1,IKTY)
      read(15,101) ((SO(IW,JW),IW=1,IKTX),JW=1,IKTY)
      close(15)


      DO IW=1,IKTX
         DO JW=1,IKTY
c     ZO(IW,JW) = 0.8 * ZO(IW,JW)
c     SO(IW,JW) = 0.8 * SO(IW,JW)
         END DO 
      END DO 

      NSTOP = NTRAJC - 2


      CALL MODDIR(JX)

 101  format(100e13.7)

      STOP 
      END