Index: LMDZ6/branches/LMDZ-ECRAD/makelmdz
===================================================================
--- LMDZ6/branches/LMDZ-ECRAD/makelmdz	(revision 3880)
+++ LMDZ6/branches/LMDZ-ECRAD/makelmdz	(revision 4171)
@@ -19,5 +19,5 @@
 chimie=false
 parallel=none
-paramem="par"
+paramem="mem"
 compil_mod=prod
 io=ioipsl
@@ -27,8 +27,7 @@
 cosp2=false
 cospv2=false
-sisvat=false
 inlandsis=false
 rrtm=false
-rrtm=false
+rad=""
 ecrad=false
 dust=false
@@ -88,5 +87,5 @@
 ########################################################################
 
-CPP_KEY="" 
+CPP_KEY="IN_LMDZ" 
 INCLUDE='-I$(LIBF)/grid -I$(LIBF)/misc -I$(LIBF)/filtrez -I. '
 LIB=""
@@ -123,8 +122,7 @@
 [-cosp2 true/false]    : compile with/without cosp2 package (default: false)
 [-cospv2 true/false]    : compile with/without cospv2 package (default: false)
-[-sisvat true/false]  : compile with/without sisvat package (default: false)
 [-inlandsis true/false]  : compile with/without inlandsis package (default: false)
 [-rrtm true/false]    : compile with/without rrtm package (default: false)
-[-ecrad true/false]    : compile with/without ecrad package (default: false)
+[-rad old/rrtm/ecrad]    : compile with old/rrtm/ecrad radiatif code (default: old)
 [-dust true/false]    : compile with/without the dust package from Boucher et al. (default: false)
 [-strataer true/false]    : compile with/without the strat aer package from Boucher et al. (default: false)
@@ -135,5 +133,5 @@
 [-cpp CPP_KEY]             : additional preprocessing definitions
 [-adjnt]                   : adjoint model, not operational ...
-[-mem]                     : reduced memory dynamics (if in parallel mode)
+[-mem]                     : reduced memory dynamics (obsolete flag; always on in parallel mode)
 [-filtre NOMFILTRE]        : use filtre from libf/NOMFILTRE (default: filtrez)
 [-full]                    : Full (re)compilation (from scratch)
@@ -194,15 +192,12 @@
           cospv2="$2" ; shift ; shift ;;
       
-      "-sisvat")
-          sisvat="$2" ; shift ; shift ;;
-
       "-inlandsis")
           inlandsis="$2" ; shift ; shift ;;  
 
       "-rrtm")
-          rrtm="$2" ; shift ; shift ;;
-
-      "-ecrad")
-          ecrad="$2" ; shift ; shift ;;
+          rrtm="$2" ; if [ "$2" = "false" ] ; then rad="old" ; else rad="rrtm" ; fi ; shift ; shift ;;
+
+      "-rad")
+          rad="$2" ; shift ; shift ;;
 
       "-dust")
@@ -213,4 +208,5 @@
       
       "-mem")
+          echo "option -mem is obsolete (now always on in parallel)"
           paramem="mem" ; shift ;;
 
@@ -358,5 +354,4 @@
 if [[ "${physique:0:5}" == "venus" ]] ; then phys_root=venus ; fi
 if [[ "${physique:0:5}" == "titan" ]] ; then phys_root=titan ; fi
-if [[ "${physique:0:3}" == "mar" ]] ; then phys_root=mar ; fi
 if [[ "${physique:0:3}" == "dev" ]] ; then phys_root=dev ; fi
 
@@ -523,11 +518,4 @@
 
 
-if [[ "$sisvat" == "true" ]]
-then
-   CPP_KEY="$CPP_KEY CPP_SISVAT"
-   src_dirs="$src_dirs phy${physique}/sisvat"
-fi
-
-
 if [[ "$inlandsis" == "true" ]]
 then
@@ -537,11 +525,10 @@
 
 
-if [[ "$rrtm" == "true" ]]
+if [[ "$rad" == "rrtm" ]]
 then
    CPP_KEY="$CPP_KEY CPP_RRTM"
    src_dirs="$src_dirs phy${physique}/rrtm"
 fi
-
-if [[ "$ecrad" == "true" ]]
+if [[ "$rad" == "ecrad" ]]
 then
    CPP_KEY="$CPP_KEY CPP_ECRAD"
@@ -549,4 +536,10 @@
 fi
 
+if [[ "$ecrad" == "true" ]]
+then
+   CPP_KEY="$CPP_KEY CPP_ECRAD"
+   src_dirs="$src_dirs phy${physique}/ecrad"
+fi
+
 
 if [[ "$dust" == "true" ]]
@@ -561,4 +554,8 @@
    src_dirs="$src_dirs phy${physique}/StratAer"
 fi
+
+#add new ocean skin modelisation to source dir by default
+
+src_dirs="$src_dirs phy${physique}/Ocean_skin"
 
 
@@ -703,8 +700,20 @@
 echo suf_make $suf_make
 
+########################################################################
+# (re)Creation du makefile
+########################################################################
+
+echo "Controle de la necessite de recreer le makefile"
 \rm tmp77 tmp90
 for dir in $src_dirs ; do
-find libf/$dir -name '*.[Fh]' -print | sort >> tmp77
-find libf/$dir -name '*.F90' -print | sort >> tmp90
+   # On recupere la liste de tous les subroutine, use et include pour
+   # vérifier que les dépendense n'ont pas changé et reconstuire le
+   # makefile le cas échéant
+   # On enleve tout apres ONLy et on met un "uniq" pour que ca ne recrée pas
+   # le makefile si on se contente d'ajouter des lignes dans le ONLY
+   for str in subroutine "use " "include " ; do
+      grep -i "$str" libf/$dir/*.[Fh] | cut -d\( -f1 | sed -e 's/[Oo][Nn][Ll][Yy].*.$//' | uniq >> tmp77
+      grep -i "$str" libf/$dir/*.F90  | cut -d\( -f1 | sed -e 's/[Oo][Nn][Ll][Yy].*.$//' | uniq >> tmp90
+   done
 done
 
@@ -726,9 +735,10 @@
   \mv -f tmp $makefile
   echo "New makefile created"
-fi
+else
+  echo Pas besoin de recreer le makefile
+fi
+
 
 ln -sf $makefile makefile
-
-#Create a .makelmdz file containing main compilation option for later comparisons
 echo "$lmdz_configuration" > .makelmdz
 
