function psidot=semidi(t,psi,flag,dx,xx)
% systeme d'edos pour HJ semidiscret 
%
% xx grille 
% psi phase 
% dx pas en espace 
% flag : pas utilise 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% taille du domaine : sx
[a,sx]=size(xx);
%% preallocation des tableaux de travail 
%% prend automatiquement les conditions aux bords
zz=zeros(1,sx);
dp=zz;
dm=zz;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% difference decentree avant  
dp(1:sx-1) = (psi(2:sx)-psi(1:sx-1))/dx;
%% difference decentree arriere 
dm(2:sx) = dp(1:sx-1);
%% derivee "upwind" 
du=modmax(max(dm,zz),min(dp,zz)); 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% evaluation du hamiltonien (gradxp ne servent a rien)
%%(premier argument  utilise lorsque  
%% le hamiltonien depend du temps
%% psidot doit etre une colonne 
[h,gradx,gradp]=ache(t,xx,du) ; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
%% systeme semidisretise
psidot= -h' ; 

