       PROGRAM DWDT

       IMPLICIT NONE

C  DECLARATIONS

       INTEGER IT,NITT,N1MOIS
       COMPLEX T0,TE,TB,TN,TA
       
       REAL OMEGA,RELAX,ALPHA,PI,DT
       COMPLEX CI,C1

C  FICHIERS DE SORTIE:
      
      OPEN(20,file='../xmgr/dwdt_test.dat',form='formatted')

C  INITIALISATIONS

       PI=ACOS(-1.)
       CI=(0.,1.)
       C1=(1.,0.)

       DT=6.*24.*3600.
       T0=277.*C1
       TE=300.*C1
       OMEGA=2.*PI/24./3600./360.
       RELAX=OMEGA/10.
       ALPHA=0.01
C      ALPHA=0.00

C  NOMBRE DE JOURS D'INTEGRATIONS:

       N1MOIS=     30*24*3600/DT
       NITT=12*100*N1MOIS

       print *,NITT,N1MOIS

C  DEMARRAGE

       TB=T0

C FORWARD EULER STEP

       IT=1
       TN=TB+DT*CI*OMEGA*(TB-TE)
     C      -DT*RELAX*(REAL(TB)-REAL(TE))

       IF(MOD(IT,N1MOIS).EQ.1)WRITE(20,*)IT*DT/24./3600./360.,REAL(TN)

C BOUCLE AU MOYEN D'UNE BOUCLE LEAPFROG
       
C PREDICTEUR

       DO IT=2,NITT
       TA=TB+2*DT*CI*OMEGA*(TN-TE)
     C      -2*DT*RELAX*(REAL(TN)-REAL(TE))

C  CORRECTEUR (FILTRE DE ASSELIN)

       TB=TN+ALPHA*(TA-2*TN+TB)
       TN=TA
       
       IF(MOD(IT,N1MOIS).EQ.1)WRITE(20,*)IT*DT/24./3600./360.,REAL(TN)

C TEST EXPLOSION

       IF(REAL(TN).lt.0.or.REAL(TN).gt.1000)STOP

       ENDDO

       
       STOP
       END

