Index: LMDZ.3.3/trunk/makegcm
===================================================================
--- LMDZ.3.3/trunk/makegcm	(revision 310)
+++ LMDZ.3.3/trunk/makegcm	(revision 311)
@@ -12,4 +12,6 @@
 set filtre=filtrez
 set grille=reg
+set couple=false
+set veget=true
 ########################################################################
 # path a changer contenant les sources et les objets du modele
@@ -29,4 +31,5 @@
   setenv LIBOGCM "`pwd`/lib"
   setenv IOIPSLDIR $LIBOGCM
+  setenv MODIPSLDIR $LIBOGCM
   cd $localdir
   if ( `hostname` == rhodes ) then
@@ -41,6 +44,4 @@
     endif 
   endif 
-  \cp libf/phylmd/oasis.F libf/phylmd/oasis.dummy
-  \cp libf/phylmd/oasis.true libf/phylmd/oasis.F
 else
   if ( ! $?LMDGCM ) then
@@ -56,4 +57,6 @@
     echo for instance: "setenv IOIPSLDIR /usr/myself/ioipsl" in .cshrc
     exit
+  else
+      setenv MODIPSLDIR $IOIPSLDIR
   endif
   if ( ! $?NCDFLIB ) then
@@ -70,13 +73,4 @@
 set model=$LMDGCM
 set libo=$LIBOGCM
-
-#Force/couple
-set COUPLE=0
-set ocean=`grep '^      parameter (ocean' libf/phylmd/physiq.F | awk -F\' '{print $2}'`
-banner $ocean
-if ($ocean == couple) then
-  set COUPLE=1
-endif
-
 
 ########################################################################
@@ -170,6 +164,6 @@
    set optimbis=" "
    set optim90=" -fast -fixed "
-   set optimtru90=" -fast -free"
-   set opt_link="-lf77compat -L$IOIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf"
+   set optimtru90=" -fast -free "
+   set opt_link="-lf77compat -L$MODIPSLDIR -lsechiba -lparameters -lstomate -lioipsl -L$NCDFLIB -lnetcdf "
    set mod_loc_dir=$localdir
    set mod_suffix=mod
@@ -185,11 +179,4 @@
    set optimbis=" -Wp,-DNC_DOUBLE -Ad -Z $LMDGCM/listage"
    set optim90="$optim $optimbis -X9 -w"
-   if $COUPLE then
-     set opt_link="-Wg,-c $MODIPSLDIR/liboasis2.4_mpi2.a /usr/lang/mpi2/lib64/libmpi.a /usr/lang/mpi2/lib64/libmp.a /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
-     set oplink="-Wl,-t,-P,-dy "
-   else
-     set opt_link="-Wg,-c /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
-     set oplink="-Wl,-t,-dy "
-   endif
    set mod_loc_dir=$MODIPSLDIR
    set mod_suffix=mod
@@ -199,8 +186,8 @@
 else if $LINUX then
    set optim="-fast "
-   set optim90=" -fast -module $libo"
-   set optimtru90=" -fast -c -Mfree -module /d3/fairhead/sechiba/ioipsl"
-   set opt_link=" -Mfree -L/usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$NCDFLIB -lnetcdf -L$IOIPSLDIR -lioipsl -Wl,-Bstatic "
-   set mod_loc_dir=$IOIPSLDIR
+   set optim90=" -fast "
+   set optimtru90=" -fast -c -Mfree -module $MODIPSLDIR "
+   set opt_link=" -Mfree -L /usr/local/pgi/linux86/lib -lpgf90 -lpgftnrtl -lpghpf -lpghpf2 -L$MODIPSLDIR -lsechiba -lparameters -lstomate -L$NCDFLIB -lnetcdf -lioipsl -Wl,-Bstatic -L/usr/lib/gcc-lib/i386-linux/2.95.2/"
+   set mod_loc_dir=$MODIPSLDIR
    set mod_suffix=mod
 else if $NEC then
@@ -209,25 +196,13 @@
    set optim="$optim90"
    set optimbis=" "
-   set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lioipsl  -L/u/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v "
+   set opt_link=" -C hopt -float0 -ew -P static -L$MODIPSLDIR -lioipsl  -L$NCDFLIB -lnetcdf_i8r8_v "
    set mod_loc_dir="."
    set mod_suffix="mod"
 else if $XNEC then
-   set optim90=' -clear -R5 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
-   set optimtru90=' -clear -R5 -f4 -C vopt -float0 -ew -P static -Wf,"-pvctl loopcnt=40000 fullmsg noassume "'
+   set optim90=" -clear $OPTIMI -float0 -ew -R5 $OPT_STACK"
+   set optimtru90=" -clear -f4 $OPTIMI -float0 -ew -R2 -R3 -R4 -R5 $OPT_STACK"
    set optim="$optim90"
    set optimbis=" "
-   if $MODIPSL then
-     if $COUPLE then
-       set opt_link="-L$IOIPSLDIR -lsxioipsl -loasis2.4_mpi2 -float0 -ew -P static -I$NCDFINC $NCDFLIB "
-     else
-       set opt_link="-L$IOIPSLDIR -lsxioipsl -float0 -ew -P static -I$NCDFINC $NCDFLIB "
-     endif
-     set mod_loc_dir="./"
-   else
-     set opt_link=" -C hopt -float0 -ew -P static -L$IOIPSLDIR -lsxioipsl -L /home/rech/psl/rpsl003/IOIPSL -lnetcdf_i8r8_v -I$NCDFINC "
-     set mod_loc_dir="."
-   endif
    set mod_suffix="mod"
-
 else
    set optim=""
@@ -307,4 +282,10 @@
            parametrisations physiques dans le repertoire:
             $LMDGCM/libf/phyPHYS
+
+-c false|true
+           pour selectionner le mode force (par defaut) ou couple
+
+-v true|false
+           pour selectionner la vegetation (par defaut) ou non
 
 -g grille  selectionne le type de grille qu'on veut utiliser.
@@ -362,4 +343,10 @@
         set grille="$2" ; shift ; shift ; goto top
 
+     case -c
+        set couple="$2" ; shift ; shift ; goto top
+
+     case -v
+        set veget="$2" ; shift ; shift ; goto top
+
      case -t
         set ntrac=$2 ; shift ; shift ; goto top
@@ -384,12 +371,17 @@
            setenv PARALLEL 2
            set optim=" -g -C "
+           set optim=" -g "
+           set optim90=" -fixed -g -C "
            set optim90=" -fixed -g "
-           set optimtru90=" -free -g "
+           set optimtru90=" -free -g -C "
+#           set optim=" -g "
+#           set optim90=" -fixed -g "
+#           set optimtru90=" -free -g "
         else if $CRAY then
            set optim="$optim"" -g "
            set optim90="$optim90"" -G1 "
         else if $LINUX then
-           set optim="$optim"" -g -Mbounds "
-           set optim90="$optim90"" -g -Mbounds "
+           set optim="$optim"" -g -Mbounds -C "
+           set optim90="$optim90"" -g -Mbounds -C "
         else 
            echo pas d option debug predefinie pour cette machine
@@ -403,6 +395,4 @@
    endsw
 endif
-
-echo apres les opts dim $dim
 
 ########################################################################
@@ -436,6 +426,6 @@
 ########################################################################
 
-\rm tmp ; touch tmp
-\rm tmp90 ; touch tmp90
+\rm -f tmp ; touch tmp
+\rm -f tmp90 ; touch tmp90
 foreach i ( $optim )
    echo $i | sed -e 's/\"//g' -e "s/\'//g" -e 's/-//g'  >> tmp
@@ -451,9 +441,8 @@
    set nomlib=DEC
 endif
-echo dimension avant sed $dim
 if ( $IBM ) then
    set dim=`echo $dim | sed -en 's/[^0-9]/ /g'`
    set dim_=`echo $dim | sed -en 's/[^0-9]/_/g'`
-else if ( $SUN || $XNEC ) then
+else if ( $SUN ) then
    set dim=`echo $dim | sed -e 's/[^0-9]/ /g'` 
    set dim_=`echo $dim | sed -e 's/[^0-9]/_/g'`
@@ -502,5 +491,5 @@
 echo "Voulez-vous vraiment continuer?"
 if ( $< == "oui" ) then
-\rm $libf/grid/dimensions.h
+\rm -f $libf/grid/dimensions.h
 else
 exit
@@ -524,5 +513,5 @@
 
 set dimension=`echo $dim | wc -w`
-echo dimension $dimension dim $dim
+echo dimension $dimension
 if ( $dimension == 1 ) then
 echo pas de dynamique
@@ -542,15 +531,15 @@
 
 if ( -f $libf/phy$physique/raddim.h ) then
-if ( -f $libf/phy$physique/raddim.$dimh.h ) then
-\rm $libf/phy$physique/raddim.h
-cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
-echo $libf/phy$physique/raddim.$dimh.h 
-cat $libf/phy$physique/raddim.$dimh.h 
-cat $libf/phy$physique/raddim.h
-else
-echo On peut diminuer la taille de l executable en creant
-echo le fichier $libf/phy$physique/raddim.$dimh.h
-\cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
-endif
+ if ( -f $libf/phy$physique/raddim.$dimh.h ) then
+  \rm -f $libf/phy$physique/raddim.h
+  cp -p $libf/phy$physique/raddim.$dimh.h $libf/phy$physique/raddim.h
+  echo $libf/phy$physique/raddim.$dimh.h 
+  cat $libf/phy$physique/raddim.$dimh.h 
+  cat $libf/phy$physique/raddim.h
+ else
+  echo On peut diminuer la taille de l executable en creant
+  echo le fichier $libf/phy$physique/raddim.$dimh.h
+  \cp -p $libf/phy$physique/raddim.defaut.h $libf/phy$physique/raddim.h
+ endif
 endif
 
@@ -568,4 +557,20 @@
 echo $dimc
 
+########################################################################
+#  utilisation des vraies routines de couplage si on est en couple
+########################################################################
+if ( $couple == 'true' ) then
+  banner couple
+  pwd
+  if ( `diff $libf/phylmd/oasis.F $libf/phylmd/oasis.true | wc -w` ) then
+   \cp $libf/phylmd/oasis.F $libf/phylmd/oasis.dummy
+   \cp $libf/phylmd/oasis.true $libf/phylmd/oasis.F
+  endif
+else
+  if ( `diff $libf/phylmd/oasis.F $libf/phylmd/oasis.dummy | wc -w` ) then
+   \cp $libf/phylmd/oasis.F $libf/phylmd/oasis.true
+   \cp $libf/phylmd/oasis.dummy $libf/phylmd/oasis.F
+  endif
+endif
 ########################################################################
 #  Avant de lancer le make, on recree le makefile si necessaire
@@ -618,4 +623,14 @@
    set f77=frt
    set f90=$f77
+   if ($couple == true) then
+     set opt_link="-Wg,-c $MODIPSLDIR/liboasis2.4_mpi2.a /usr/lang/mpi2/lib64/libmpi.a /usr/lang/mpi2/lib64/libmp.a /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
+     set oplink="-Wl,-t,-P,-dy "
+   else
+     set opt_link="-Wg,-c /usr/local/lib/lib64/libnetcdf_cc_31.a -L$MODIPSLDIR -lioipsl"
+     set oplink="-Wl,-t,-dy "
+   endif
+   if ($veget == true) then
+     set opt_link="$opt_link -lsechiba -lparameters -lstomate -lioipsl /usr/local/lib/lib64/libnetcdf_cc_31.a"
+   endif
 else if $CRAY then
    set f77=f90
@@ -630,7 +645,31 @@
    set f77=f90
    set f90=f90
+   set opt_link="-L$MODIPSLDIR"
+   if ($veget == true) then
+     set opt_link="$opt_link -lsechiba -lparameters -lstomate"
+   endif
+   if ($couple == true) then
+     set opt_link="$opt_link -lioipsl -loasis2.4_mpi2 -float0 -ew -P static $NCDFLIB "
+   else
+     set opt_link="$opt_link -L$MODIPSLDIR -lioipsl -float0 -ew -P static $NCDFLIB "
+   endif
+   set mod_loc_dir="./"
 else if $XNEC then
    set f77=sxmpif90
    set f90=sxmpif90
+   if $MODIPSL then
+     set opt_link="-L$MODIPSLDIR"
+     if ($veget == true) then
+       set opt_link="$opt_link -lsxsechiba -lsxparameters -lsxstomate"
+     endif
+     if ($couple == true) then
+       set opt_link="$opt_link -lsxioipsl -loasis2.4_mpi2 -float0 -ew -P static $NCDFLIB "
+     else
+       set opt_link="$opt_link -lsxioipsl -float0 -ew -P static $NCDFLIB "
+     endif
+   else
+     set opt_link=" -C hopt -float0 -ew -P static -L$MODIPSLDIR -lsxsechiba -lsxparameters -lsxstomate -lsxioipsl $NCDFLIB -I$NCDFINC "
+   endif
+   set mod_loc_dir="./"
 else
    set f77=f77
@@ -649,6 +688,5 @@
 set make="make -k RANLIB=ranlib"
 else if $XNEC then
-set make="/usr/local/bin/gmake RANLIB=ls"
-set make="/usr/freeware/bin/gmake RANLIB=ls"
+set make="gmake RANLIB=ls"
 else
 set make="make RANLIB=ranlib"
@@ -681,22 +719,4 @@
 
 #
-# Encore un test temporaire: probleme de compilation sur VPP
-# l'optimisation de startvar se passe mal
-#
-if ($code == 'create_etat0' && $VPP) then
-   if ( ! -f $libo/libdyn3d.a ) then
-     echo "Priere de compiler gcm en premier pour des raisons d'optimisation"
-     \rm $libf/grid/dimensions.h                                             
-     exit                       
-   endif
-   set optim=" -Wv,-Of,-ilfunc"
-   set optimbis=" -Psia -Aa -Wv,-m3 -Wp,-DVPP -Z $LMDGCM/listage"
-   set optim90="$optim""$optimbis"" -X9 -w"
-   set opt_link="-L$IOIPSLDIR -lioipsl -L$NCDFLIB -lnetcdf"
-   touch $LMDGCM/libf/dyn3d/startvar.F
-   touch $LMDGCM/libf/dyn3d/etat0_netcdf.F
-endif
-
-#
 # etat0_netcdf a besoin d'info de la physique
 # A revoir
@@ -717,10 +737,7 @@
  \cp $IOIPSLDIR/*.mod $libo
 else if $SUN then
- set optim90=" $optim90 -M$libo "
- set optimtru90=" $optimtru90 -M$libo "
+ set optim90=" $optim90 -M$libo -M$MODIPSLDIR "
+ set optimtru90=" $optimtru90 -M$libo -M$MODIPSLDIR "
  set optim="$optim90"
- \cp /d3/fairhead/sechiba_sun/parameters/*.mod $libo
- \cp /d3/fairhead/sechiba_sun/sechiba/*.mod $libo
- \cp /d3/fairhead/sechiba_sun/stomate/*.mod $libo
  \cp $IOIPSLDIR/*.mod $libo
 else if $NEC then
@@ -730,5 +747,5 @@
  set optimtru90=" $optimtru90 -I$libo "
 else if $LINUX then
- set optim90=" -fast -module $libo "
+ set optim90=" $optim90 -module $libo "
  set optim="$optim90"
  set mod_loc_dir=$libo
@@ -796,7 +813,3 @@
 PROG=$code
 
-\rm $libf/grid/dimensions.h
-if $MODIPSL then
-  \cp libf/phylmd/oasis.F libf/phylmd/oasis.true
-  \cp libf/phylmd/oasis.dummy libf/phylmd/oasis.F
-endif
+\rm -f $libf/grid/dimensions.h
