Index: LMDZ4/trunk/makegcm_fcm
===================================================================
--- LMDZ4/trunk/makegcm_fcm	(revision 875)
+++ LMDZ4/trunk/makegcm_fcm	(revision 1002)
@@ -3,11 +3,11 @@
 # $Header$
 #
-# FH : on ne crée plus le fichier arch.mk qui est supposé exister par
+# FH : on ne cr�e plus le fichier arch.mk qui est suppos� exister par
 # FH : ailleurs.
-# FH : ultérieurement, ce fichier sera pré-existant pour une série
-# FH : de configurations en versions optimisées et debug qui seront
-# FH : liés (ln -s) avec arch.mk en fonction de l'architecture.
-# FH : Pour le moment, cette version est en test et on peut créer les
-# FH : arch.mk en lançant une première fois makegcm7.
+# FH : ult�rieurement, ce fichier sera pr�-existant pour une s�rie
+# FH : de configurations en versions optimis�es et debug qui seront
+# FH : li�s (ln -s) avec arch.mk en fonction de l'architecture.
+# FH : Pour le moment, cette version est en test et on peut cr�er les
+# FH : arch.mk en lan�ant une premi�re fois makegcm7.
 #
 set verbose echo
@@ -24,5 +24,6 @@
 set veget=false
 set chimie=false
-set parallel=false
+set parallel=none
+set compil_mod=prod
 set io=ioipsl
 set LIBPREFIX=""
@@ -40,5 +41,7 @@
 set LIB=""
 set adjnt=""
-
+set COMPIL_FFLAGS="%PROD_FFLAGS"
+set PARA_FFLAGS=""
+set PARA_LD=""
 
 ########################################################################
@@ -54,22 +57,22 @@
 manuel complet sur http://...
 Usage :
-makegcm
-[-h]                   : manuel abrégé
-[-d [[IMx]JMx]LM]      : IM, JM, LM sont les dims en x, y, z (def: $dim)
-[-t NTRAC]             : nombre de traceurs (def: 4)
-[-p PHYS]              : compilation avec la physique libf/phyPHYS, (def: lmd)
-[-debug]               : compile avec options debug.
-[-c false/MPI1/MPI2]   : couplé océan : MPI1/MPI2/false (def: false)
-[-v false/true]        : avec ou sans végétation (def: false)
-[-chimie SCHEMA/false] : nom du schéma chimique ou false (def)
-[-parallel true/false] : parallelisation, en développement (def: false)
-[-g GRI]               : conf. grille dans dyn3d/GRI_xy.h\
-                         (def: reg inclue un zoom)
-[-io IO]               : choix d'une librairie I/O, experts (def: ioipsl)
-[-include INCLUDES]    : variables supplementaires pour include cpp, experts.
-[-adjnt]               : adjoint, a remettre en route ...
-[-filtre NOMFILTRE]    : prend le filtre dans libf/NOMFILTRE (def: filtrez)
-[-link LINKS]          : liens optionels avec d'autres librairies
-[-m arch]              : nom de l'architecture cible
+makegcm [options] -m arch exec
+[-h]                       : manuel abrégé
+[-d [[IMx]JMx]LM]          : IM, JM, LM sont les dims en x, y, z (def: $dim)
+[-t NTRAC]                 : nombre de traceurs (def: 4)
+[-p PHYS]                  : compilation avec la physique libf/phyPHYS, (def: lmd)
+[-prod / -dev / -debug]    : compilation en mode production (default) / developpement / debug .
+[-c false/MPI1/MPI2]       : couplé océan : MPI1/MPI2/false (def: false)
+[-v false/true]            : avec ou sans végétation (def: false)
+[-chimie SCHEMA/false]     : nom du schéma chimique ou false (def)
+[-parallel none/mpi/omp/mpi_omp] : parallelisation (default: none) : mpi, openmp ou mixte mpi_openmp
+[-g GRI]                   : conf. grille dans dyn3d/GRI_xy.h  (def: reg inclue un zoom)
+[-io IO]                   : choix d'une librairie I/O, experts (def: ioipsl)
+[-include INCLUDES]        : variables supplementaires pour include cpp, experts.
+[-adjnt]                   : adjoint, a remettre en route ...
+[-filtre NOMFILTRE]        : prend le filtre dans libf/NOMFILTRE (def: filtrez)
+[-link LINKS]              : liens optionels avec d'autres librairies
+ -m arch                   : nom de l'architecture cible
+ exec                      : exécutable généré
 fin
 	exit
@@ -91,4 +94,13 @@
 	set couple="$2" ; shift ; shift ; goto top
 
+     case -prod
+        set compil_mod="prod" ; shift ; goto top
+
+     case -dev
+       set compil_mod="dev" ; shift ; goto top
+
+     case -debug
+       set compil_mod="debug" ; shift ; goto top
+
      case -io
         set io="$2" ; shift ; shift ; goto top
@@ -123,7 +135,4 @@
      case -m
        set arch=$2 ; shift ; shift ; goto top
-       
-     case -debug
-        echo 'option a reactiver' ; exit
 
      default
@@ -135,5 +144,5 @@
 
 ###############################################################
-# lecture des chemins propres à l'architecture  de la machine #
+# lecture des chemins propres � l'architecture  de la machine #
 ###############################################################
 
@@ -147,4 +156,11 @@
 ########################################################################
 
+if ( "$compil_mod" == 'prod' ) then
+  set COMPIL_FFLAGS="%PROD_FFLAGS"
+else if ( "$compil_mod" == 'dev' ) then
+  set COMPIL_FFLAGS="%DEV_FFLAGS"
+else if ( "$compil_mod" == 'debug' ) then
+  set COMPIL_FFLAGS="%DEBUG_FFLAGS"
+endif
 
 if ( "$physique" == 'nophys' ) then
@@ -187,6 +203,16 @@
 endif
 
-if ( "$parallel" == 'true' ) then
-   set CPP_KEY="$CPP_KEY CPP_PARA"
+if ( "$parallel" == 'mpi' ) then
+   set CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI"
+   set PARA_FFLAGS="%MPI_FFLAGS"
+   set PARA_LD="%MPI_LD"
+else if ("$parallel" == 'omp' ) then
+   set CPP_KEY="$CPP_KEY CPP_PARA CPP_OMP"
+   set PARA_FFLAGS="%OMP_FFLAGS"
+   set PARA_LD="%OMP_LD"
+else if ("$parallel" == 'mpi_omp' ) then
+   set CPP_KEY="$CPP_KEY CPP_PARA CPP_MPI CPP_OMP"
+   set PARA_FFLAGS="%MPI_FFLAGS %OMP_FFLAGS"
+   set PARA_LD="%MPI_LD %OMP_LD"
 endif
 
@@ -311,5 +337,5 @@
 set SUFF_NAME=${SUFF_NAME}_t${ntrac}_phy${physique}
 
-if ( "$parallel" == 'true' ) then
+if ( "$parallel" != 'none' ) then
   set SUFF_NAME=${SUFF_NAME}_para
   set DYN=dyn${dimc}dpar
@@ -349,6 +375,12 @@
 echo "%EXEC          $code"          >> $config_fcm
 echo "%SUFF_NAME     $SUFF_NAME"     >> $config_fcm
+echo "%COMPIL_FFLAGS $COMPIL_FFLAGS" >> $config_fcm
+echo "%PARA_FFLAGS   $PARA_FFLAGS"   >> $config_fcm
+echo "%PARA_LD       $PARA_LD"       >> $config_fcm
+
+
 
 ln -s machine/arch-${arch}.fcm arch.fcm
+rm -f $LIBOGCM/${arch}${SUFF_NAME}/.config/fcm.bld.lock
 ./build_gcm
 
