anchor.diff:          fsave = Nmax
       endif
   
  -    write(*,*)
  +    print *
       print *, 'Un pas de temps =', T*dt, 'sec.'
  +
  +
  +    ! dynamic arrays
  +    allocate( x(pasx+1) )
  +    allocate( y(pasx) )
  +
  +    allocate( eta(pasx+1, pasy) )
  +    allocate( b(pasx+1, pasy) )
  +    allocate( q(pasx+1, pasy) )
  +
  +    allocate( jacob(pasx+1, pasy) )
  +    allocate( deta(pasx+1, 2) )
  +
  +    allocate( leta(pasx+1, pasy) )
  +    allocate( v1(pasx+1, pasy) )
  +    allocate( v2(pasx+1, pasy) )
   
       ! Calcul du profil initial
         
  
positive.code:     close (UNIT=1)
  
      !  Commentaires finaux
  
      print *, 'Calcul effectu sur ', Nmax*T*dt, 'sec.'
      print *, 'Nb itrations (moy) ', kmoy/Nmax
      print *, 'Rsultats dans RES.M'
        
      ! free memory
      deallocate( x )
      deallocate( y )
  
negative.code: ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  !                       Fluides geophysiques  v14         (11.04.96)
  !                       -------------------------
  !   . Red Black
  !   . Calcul des vitesses
  !   . Sauvegarde tous les X pas de temps
  ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  
  module GEOPHY
  
      integer, parameter :: DP  = KIND(1.0D0)            !< double precision
  
      real(DP), parameter :: U = 1D-1
      real(DP), parameter :: g = 1D-2
      real(DP), parameter :: f = 1D-4
  
      integer, parameter :: pasx  = 31    
      integer, parameter :: pasy  = 31
  
  end module GEOPHY    
  
  
  
  program NIHOUL
  
      use GEOPHY    
      implicit none
  
      ! Declarations
  
      integer :: Nmax
      logical :: fin
      integer :: i, j, n, compt, startj, start, nsave, fsave, saveu
      real(DP) :: pi, h0, L, T, Lx, Ly, Bu, Ro, Et, w
      real(DP) :: dx, dy, dt, tol, kmoy
  
      real(DP), allocatable :: x(:), y(:)
      
      real(DP) :: temp1, temp2, temp3, temp4, temp5, erreur
      real(DP) :: d1, d2, d3
      real(DP) :: aeta1, aeta2     
      
      real(DP), allocatable :: eta(:,:), b(:,:), q(:,:)
      real(DP), allocatable :: jacob(:,:), deta(:,:)
      real(DP), allocatable :: leta(:,:), v1(:,:), v2(:,:)
  
  
      ! Donnees
  
  