SUBROUTINE SPECALL,4
C
      IMPLICIT NONE
      include 'champ.cdk'
      include 'chobs.cdk'

      INTEGER NV,NOZ,DELFLAG
      REAL JZ,JZO,JZM,JZF,JZS(20)

      PRINT*,'PASSE DANS LA ROUTINE SPECALL'

C
C     DELFLAG = 0 DONNE LA DIFFERENCE ENTRE LE CONTROLE ET
C                 LA TRAJECTOIRE 
C     DELFLAG = 1 DONNE LA DIFFERENCE ENTRE LE FIRST GUESS PRECEDANT
C                 ET LA TRAJECTOIRE
C

      DELFLAG = 0

      IF(DELFLAG.NE.1) THEN

        DO NV=1,20
         JZS(NV) = 0.0
        ENDDO

        NOZ = 0
        DO NT=0,NSTOP,36
 
         NOZ = NOZ + 1
         NV  = NT
         IF(NT.EQ.0) NV = -1

         JZ = 0
         DO IKX=1,IKTX
         DO IKY=1,IKTY
           IF (L(IKX+KTX,IKY).EQ.1) THEN
             RHZ(IKX,IKY) = ZCONT(IKX,IKY,NV+2)-ZTRAJ(IKX,IKY,NV+2)
             RHS(IKX,IKY) = CMPLX(0.,0.)
           ELSE
             RHZ(IKX,IKY) = CMPLX(0.,0.)
             RHS(IKX,IKY) = CMPLX(0.,0.)
           ENDIF
           JZ = JZ + REAL(RHZ(IKX,IKY)*CONJG(RHZ(IKX,IKY)))
         ENDDO
         ENDDO

         JZS(NOZ) = JZ
         IF(NT.EQ.0) THEN
          JZO = JZ
          CALL SPEC(RHZ,RHS,IKTX,IKTY,KTX,KTY,NS,SPZ,0,AJ,BJ,
     .                                          GRFLAG,NT*DELT)
         ENDIF
         IF(abs(NT-NSTOP/2+1).lt.18) THEN
          JZM = JZ
          CALL SPEC(RHZ,RHS,IKTX,IKTY,KTX,KTY,NS,SPZ,0,AJ,BJ,
     .                                          GRFLAG,NT*DELT)
         ENDIF
         IF(NT.EQ.NSTOP) THEN
          JZF = JZ
          CALL SPEC(RHZ,RHS,IKTX,IKTY,KTX,KTY,NS,SPZ,0,AJ,BJ,
     .                                          GRFLAG,NT*DELT)
         ENDIF

        ENDDO

        WRITE(22,101) NOITR,JZO,JZM,JZF
        WRITE(24,102) NOITR,(JZS(NV),NV=1,20)
 101    FORMAT(I10,3E12.4)
 102    FORMAT(I10,20E12.4)

      ELSE

         DO IKX=1,IKTX
         DO IKY=1,IKTY
           IF (L(IKX+KTX,IKY).EQ.1) THEN
             RHZ(IKX,IKY) = ZGM1(IKX,IKY)-ZTRAJ(IKX,IKY,1)
             RHS(IKX,IKY) = CMPLX(0.,0.)
             ZGM1(IKX,IKY)= ZTRAJ(IKX,IKY,1)
           ELSE
             RHZ(IKX,IKY) = CMPLX(0.,0.)
             RHS(IKX,IKY) = CMPLX(0.,0.)
             ZGM1(IKX,IKY)= CMPLX(0.,0.)
           ENDIF
         ENDDO
         ENDDO
          CALL SPEC(RHZ,RHS,IKTX,IKTY,KTX,KTY,NS,SPZ,0,AJ,BJ,
     .                                          GRFLAG,NT*DELT)

      ENDIF

      RETURN
      END