Index: /trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F
===================================================================
--- /trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F	(revision 270)
+++ /trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F	(revision 271)
@@ -1,4 +1,4 @@
 !
-! $Id: conf_gcm.F 1418 2010-07-19 15:11:24Z jghattas $
+! $Id: conf_gcm.F 1438 2010-10-08 10:19:34Z jghattas $
 !
 c
@@ -6,5 +6,4 @@
       SUBROUTINE conf_gcm( tapedef, etatinit )
 c
-      USE control_mod
 #ifdef CPP_IOIPSL
       use IOIPSL
@@ -13,4 +12,9 @@
       use ioipsl_getincom
 #endif
+      use misc_mod
+      use mod_filtre_fft, ONLY : use_filtre_fft
+      use mod_hallo, ONLY : use_mpi_alloc
+      use parallel, ONLY : omp_chunk
+      USE control_mod
       IMPLICIT NONE
 c-----------------------------------------------------------------------
@@ -33,10 +37,10 @@
 #include "serre.h"
 #include "comdissnew.h"
+!#include "clesphys.h"
+#include "iniprint.h"
 #include "temps.h"
 #include "comconst.h"
 
 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
-! #include "clesphys.h"
-#include "iniprint.h"
 c
 c
@@ -49,5 +53,5 @@
       LOGICAL  fxyhypbb, ysinuss
       INTEGER i
-      LOGICAL use_filtre_fft
+      
 c
 c  -------------------------------------------------------------------
@@ -78,5 +82,11 @@
 c   initialisations:
 c   ----------------
-
+      adjust=.false.
+      call getin('adjust',adjust)
+      
+      itaumax=0
+      call getin('itaumax',itaumax);
+      if (itaumax<=0) itaumax=HUGE(itaumax)
+      
 !Config  Key  = lunout
 !Config  Desc = unite de fichier pour les impressions
@@ -180,7 +190,8 @@
 
 !Config  Key  = nsplit_phys
-!Config  Desc = nombre de subdivisions par pas physique
-!Config  Def  = 1 
-!Config  Help = nombre de subdivisions par pas physique
+!Config  Desc = nombre d'iteration de la physique
+!Config  Def  = 240 
+!Config  Help = nombre d'itration de la physique
+!
        nsplit_phys = 1 
        CALL getin('nsplit_phys',nsplit_phys)
@@ -330,4 +341,5 @@
        CALL getin('tau_top_bound',tau_top_bound)
 
+!
 !Config  Key  = coefdis
 !Config  Desc = coefficient pour gamdissip
@@ -396,4 +408,6 @@
        ip_ebil_dyn = 0
        CALL getin('ip_ebil_dyn',ip_ebil_dyn)
+!
+
 
 ccc  ....   P. Le Van , ajout  le 7/03/95 .pour le zoom ...
@@ -600,5 +614,13 @@
        offline = .FALSE.
        CALL getin('offline',offline)
-
+       IF (offline .AND. adjust) THEN
+          WRITE(lunout,*) 
+     &         'WARNING : option offline does not work with adjust=y :'
+          WRITE(lunout,*) 'the files defstoke.nc, fluxstoke.nc ', 
+     &         'and fluxstokev.nc will not be created'
+          WRITE(lunout,*) 
+     &         'only the file phystoke.nc will still be created ' 
+       END IF
+       
 !Config  Key  = config_inca
 !Config  Desc = Choix de configuration de INCA
@@ -634,5 +656,4 @@
       ok_dyn_ave = .FALSE. 
       CALL getin('ok_dyn_ave',ok_dyn_ave) 
-
 
       write(lunout,*)' #########################################'
@@ -649,4 +670,5 @@
       write(lunout,*)' day_step = ', day_step
       write(lunout,*)' iperiod = ', iperiod
+      write(lunout,*)' nsplit_phys = ', nsplit_phys
       write(lunout,*)' iconser = ', iconser
       write(lunout,*)' iecri = ', iecri
@@ -795,4 +817,12 @@
        offline = .FALSE.
        CALL getin('offline',offline)
+       IF (offline .AND. adjust) THEN
+          WRITE(lunout,*) 
+     &         'WARNING : option offline does not work with adjust=y :'
+          WRITE(lunout,*) 'the files defstoke.nc, fluxstoke.nc ', 
+     &         'and fluxstokev.nc will not be created'
+          WRITE(lunout,*) 
+     &         'only the file phystoke.nc will still be created ' 
+       END IF
 
 !Config  Key  = config_inca
@@ -807,10 +837,10 @@
 
 !Config  Key  = ok_dynzon 
-!Config  Desc = sortie des transports zonaux dans la dynamique
+!Config  Desc = calcul et sortie des transports 
 !Config  Def  = n 
-!Config  Help =  
+!Config  Help = Permet de mettre en route le calcul des transports 
 !Config          
-       ok_dynzon = .FALSE.
-       CALL getin('ok_dynzon',ok_dynzon) 
+      ok_dynzon = .FALSE. 
+      CALL getin('ok_dynzon',ok_dynzon) 
 
 !Config  Key  = ok_dyn_ins
@@ -834,15 +864,38 @@
 !Config  Def  = false
 !Config  Help = permet d'activer l'utilisation des FFT pour effectuer
-!Config         le filtrage aux poles.
-! Le filtre fft n'est pas implemente dans dyn3d 
+!Config         le filtrage aux poles. 
       use_filtre_fft=.FALSE.
       CALL getin('use_filtre_fft',use_filtre_fft)
 
-      IF (use_filtre_fft) THEN
-        write(lunout,*)'STOP !!!'
-        write(lunout,*)'use_filtre_fft n est pas implemente dans dyn3d'
-        STOP
+      IF (use_filtre_fft .AND. grossismx /= 1.0) THEN
+        write(lunout,*)'WARNING !!! '
+        write(lunout,*)"Le zoom en longitude est incompatible",
+     &                 " avec l'utilisation du filtre FFT ",
+     &                 "---> filtre FFT dÃ©sactivÃ© "
+       use_filtre_fft=.FALSE.
       ENDIF
       
+ 
+      
+!Config  Key  = use_mpi_alloc
+!Config  Desc = Utilise un buffer MPI en mï¿½moire globale
+!Config  Def  = false
+!Config  Help = permet d'activer l'utilisation d'un buffer MPI
+!Config         en mï¿½moire globale a l'aide de la fonction MPI_ALLOC.
+!Config         Cela peut amï¿½liorer la bande passante des transferts MPI
+!Config         d'un facteur 2  
+      use_mpi_alloc=.FALSE.
+      CALL getin('use_mpi_alloc',use_mpi_alloc)
+
+!Config  Key  = omp_chunk
+!Config  Desc = taille des blocs openmp
+!Config  Def  = 1
+!Config  Help = defini la taille des packets d'itï¿½ration openmp
+!Config         distribuï¿½e ï¿½ chaque tï¿½che lors de l'entrï¿½e dans une
+!Config         boucle parallï¿½lisï¿½e
+  
+      omp_chunk=1
+      CALL getin('omp_chunk',omp_chunk)
+
 !Config key = ok_strato
 !Config  Desc = activation de la version strato
@@ -922,7 +975,10 @@
       write(lunout,*)' offline = ', offline
       write(lunout,*)' config_inca = ', config_inca
-      write(lunout,*)' ok_dynzon = ', ok_dynzon
+      write(lunout,*)' ok_dynzon = ', ok_dynzon 
       write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 
       write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 
+      write(lunout,*)' use_filtre_fft = ', use_filtre_fft
+      write(lunout,*)' use_mpi_alloc = ', use_mpi_alloc
+      write(lunout,*)' omp_chunk = ', omp_chunk
       write(lunout,*)' ok_strato = ', ok_strato
       write(lunout,*)' ok_gradsfile = ', ok_gradsfile
