10   SUBROUTINE init_filtre_fft(coeffu,modfrstu,jfiltnu,jfiltsu,coeffv,modfrstv,jfiltnv,jfiltsv)
 
   13     include 
'dimensions.h' 
   14     REAL,   
INTENT(IN) :: coeffu(
iim,jjm)
 
   15     INTEGER,
INTENT(IN) :: modfrstu(jjm)
 
   16     INTEGER,
INTENT(IN) :: jfiltnu
 
   17     INTEGER,
INTENT(IN) :: jfiltsu
 
   18     REAL,   
INTENT(IN) :: coeffv(
iim,jjm)
 
   19     INTEGER,
INTENT(IN) :: modfrstv(jjm)
 
   20     INTEGER,
INTENT(IN) :: jfiltnv
 
   21     INTEGER,
INTENT(IN) :: jfiltsv
 
   23     INTEGER            :: index_vp(
iim)
 
   32       index_vp(
iim/2+i+1)=
iim-2*i+1
 
   42         IF (index_vp(i) < modfrstu(j)) 
THEN 
   52         IF (index_vp(i) < modfrstu(j)) 
THEN 
   62         IF (index_vp(i) < modfrstv(j)) 
THEN 
   72         IF (index_vp(i) < modfrstv(j)) 
THEN 
   82         IF (index_vp(i) < modfrstu(j)) 
THEN 
   85           filtre_inv(i,j)=coeffu(index_vp(i),j)/(1.+coeffu(index_vp(i),j))
 
   92         IF (index_vp(i) < modfrstu(j)) 
THEN 
   95           filtre_inv(i,j)=coeffu(index_vp(i),j)/(1.+coeffu(index_vp(i),j))
 
  106   SUBROUTINE filtre_u_fft(vect_inout,jjb,jje,jj_begin,jj_end,nbniv)
 
  112     include 
'dimensions.h' 
  113     INTEGER,
INTENT(IN) :: jjb
 
  114     INTEGER,
INTENT(IN) :: jje
 
  115     INTEGER,
INTENT(IN) :: jj_begin
 
  116     INTEGER,
INTENT(IN) :: jj_end
 
  117     INTEGER,
INTENT(IN) :: nbniv
 
  118     REAL,
INTENT(INOUT) :: vect_inout(
iim+1,jjb:jje,nbniv)
 
  120     REAL               :: vect(
iim+inc,jj_end-jj_begin+1,nbniv)
 
  121     COMPLEX            :: TF_vect(
iim/2+1,jj_end-jj_begin+1,nbniv)
 
  131       DO j=1,jj_end-jj_begin+1
 
  133           vect(i,j,ll_nb)=vect_inout(i,j+jj_begin-1,l)
 
  139     nb_vect=(jj_end-jj_begin+1)*ll_nb
 
  143     CALL fft_forward(vect,tf_vect,nb_vect)
 
  154       DO j=1,jj_end-jj_begin+1
 
  156           tf_vect(i,j,l)=tf_vect(i,j,l)*
filtre_u(i,jj_begin+j-1)
 
  161     CALL fft_backward(tf_vect,vect,nb_vect)
 
  175       DO j=1,jj_end-jj_begin+1
 
  177           vect_inout(i,j+jj_begin-1,l)=vect(i,j,ll_nb)
 
  186   SUBROUTINE filtre_v_fft(vect_inout,jjb,jje,jj_begin,jj_end,nbniv)
 
  192     include 
'dimensions.h' 
  193     INTEGER,
INTENT(IN) :: jjb
 
  194     INTEGER,
INTENT(IN) :: jje
 
  195     INTEGER,
INTENT(IN) :: jj_begin
 
  196     INTEGER,
INTENT(IN) :: jj_end
 
  197     INTEGER,
INTENT(IN) :: nbniv
 
  198     REAL,
INTENT(INOUT) :: vect_inout(
iim+1,jjb:jje,nbniv)
 
  200     REAL               :: vect(
iim+inc,jj_end-jj_begin+1,nbniv)
 
  201     COMPLEX            :: TF_vect(
iim/2+1,jj_end-jj_begin+1,nbniv)
 
  210       DO j=1,jj_end-jj_begin+1
 
  212           vect(i,j,ll_nb)=vect_inout(i,j+jj_begin-1,l)
 
  219     nb_vect=(jj_end-jj_begin+1)*ll_nb
 
  221     CALL fft_forward(vect,tf_vect,nb_vect)
 
  224       DO j=1,jj_end-jj_begin+1
 
  226           tf_vect(i,j,l)=tf_vect(i,j,l)*
filtre_v(i,jj_begin+j-1)
 
  231     CALL fft_backward(tf_vect,vect,nb_vect)
 
  238       DO j=1,jj_end-jj_begin+1
 
  240           vect_inout(i,j+jj_begin-1,l)=vect(i,j,ll_nb)
 
  249   SUBROUTINE filtre_inv_fft(vect_inout,jjb,jje,jj_begin,jj_end,nbniv)
 
  255     include 
'dimensions.h' 
  256     INTEGER,
INTENT(IN) :: jjb
 
  257     INTEGER,
INTENT(IN) :: jje
 
  258     INTEGER,
INTENT(IN) :: jj_begin
 
  259     INTEGER,
INTENT(IN) :: jj_end
 
  260     INTEGER,
INTENT(IN) :: nbniv
 
  261     REAL,
INTENT(INOUT) :: vect_inout(
iim+1,jjb:jje,nbniv)
 
  263     REAL               :: vect(
iim+inc,jj_end-jj_begin+1,nbniv)
 
  264     COMPLEX            :: TF_vect(
iim/2+1,jj_end-jj_begin+1,nbniv)
 
  273       DO j=1,jj_end-jj_begin+1
 
  275           vect(i,j,ll_nb)=vect_inout(i,j+jj_begin-1,l)
 
  281     nb_vect=(jj_end-jj_begin+1)*ll_nb
 
  283     CALL fft_forward(vect,tf_vect,nb_vect)
 
  286       DO j=1,jj_end-jj_begin+1
 
  288           tf_vect(i,j,l)=tf_vect(i,j,l)*
filtre_inv(i,jj_begin+j-1)
 
  293     CALL fft_backward(tf_vect,vect,nb_vect)
 
  299       DO j=1,jj_end-jj_begin+1
 
  301           vect_inout(i,j+jj_begin-1,l)=vect(i,j,ll_nb)
 
subroutine filtre_u_fft(vect_inout, jjb, jje, jj_begin, jj_end, nbniv)
 
logical, save use_filtre_fft
 
subroutine init_filtre_fft(coeffu, modfrstu, jfiltnu, jfiltsu, coeffv, modfrstv, jfiltnv, jfiltsv)
 
subroutine filtre_inv_fft(vect_inout, jjb, jje, jj_begin, jj_end, nbniv)
 
c c zjulian c cym CALL iim cym klev iim
 
real, dimension(:,:), allocatable, save filtre_u
 
real, dimension(:,:), allocatable, save filtre_inv
 
real, dimension(:,:), allocatable, save filtre_v
 
subroutine filtre_v_fft(vect_inout, jjb, jje, jj_begin, jj_end, nbniv)