Index: LMDZ4/branches/IPSL-CM4_IPCC_branch/makegcm
===================================================================
--- LMDZ4/branches/IPSL-CM4_IPCC_branch/makegcm	(revision 588)
+++ LMDZ4/branches/IPSL-CM4_IPCC_branch/makegcm	(revision 628)
@@ -29,4 +29,5 @@
 ###### VERSION LMDZ.4
 # set LMDGCM=$HOME/LMDZ.4
+#set LMDGCM="`pwd`"
 #
 
@@ -403,5 +404,9 @@
 
      case -psmile
-        set psmile="$2" ; shift ; shift ; goto top
+        set psmile="$2" 
+	if ( "$psmile" == 'true' ) then
+	  set couple='true'
+	endif
+	shift ; shift ; goto top
   
      case -t
@@ -478,4 +483,9 @@
 endif
 
+if ( "$psmile" == 'true' ) then
+   set optim="$optim -DCPP_PSMILE"
+   set optim90="$optim90 -DCPP_PSMILE"
+   set optimtru90="$optimtru90 -DCPP_PSMILE"
+endif
 
 ########################################################################
@@ -585,5 +595,5 @@
 
 cd dimension
-makdim $ntrac $dim
+./makdim $ntrac $dim
 cat $libf/grid/dimensions.h
 
@@ -650,12 +660,38 @@
   banner couple
   pwd
-  if ( `diff $libf/phy$physique/oasis.F $libf/phy$physique/oasis.true | wc -w` ) then
-   \cp $libf/phy$physique/oasis.F $libf/phy$physique/oasis.dummy
-   \cp $libf/phy$physique/oasis.true $libf/phy$physique/oasis.F
+  if ( "$psmile" == 'true' ) then
+     if ( -f $libf/phy$physique/oasis.F ) then 
+	\rm $libf/phy$physique/oasis.F 
+     endif
+     if ( ! -f $libf/phy$physique/oasis.F90 ) then
+       \cp $libf/phy$physique/oasis.psmile $libf/phy$physique/oasis.F90	
+     endif
+     if ( `diff $libf/phy$physique/oasis.F90 $libf/phy$physique/oasis.psmile | wc -w` ) then
+       \cp $libf/phy$physique/oasis.psmile $libf/phy$physique/oasis.F90
+     endif
+  else
+     if ( -f $libf/phy$physique/oasis.F90 ) then
+       \rm $libf/phy$physique/oasis.F90
+     endif
+     if (! -f $libf/phy$physique/oasis.F ) then
+       \cp $libf/phy$physique/oasis.true $libf/phy$physique/oasis.F
+     else
+       if ( `diff $libf/phy$physique/oasis.F $libf/phy$physique/oasis.true | wc -w` ) then
+#         \cp $libf/phy$physique/oasis.F $libf/phy$physique/oasis.dummy
+         \cp $libf/phy$physique/oasis.true $libf/phy$physique/oasis.F
+       endif
+     endif
   endif
 else
-  if ( `diff $libf/phy$physique/oasis.F $libf/phy$physique/oasis.dummy | wc -w` ) then
-   \cp $libf/phy$physique/oasis.F $libf/phy$physique/oasis.true
-   \cp $libf/phy$physique/oasis.dummy $libf/phy$physique/oasis.F
+  if ( -f $libf/phy$physique/oasis.F90 ) then
+    \rm $libf/phy$physique/oasis.F90
+  endif
+  if (! -f $libf/phy$physique/oasis.F ) then
+    \cp $libf/phy$physique/oasis.dummy $libf/phy$physique/oasis.F
+  else
+    if ( `diff $libf/phy$physique/oasis.F $libf/phy$physique/oasis.dummy | wc -w` ) then
+      \cp $libf/phy$physique/oasis.F $libf/phy$physique/oasis.true
+      \cp $libf/phy$physique/oasis.dummy $libf/phy$physique/oasis.F
+    endif
   endif
 endif
@@ -762,11 +798,13 @@
    set f90="sxmpif90 -ftrace"
    if $MODIPSL then
-     set opt_link="-L$MODIPSLDIR"
+     set opt_link="$opt_link -L$MODIPSLDIR"
      if ($veget == true) then
        set opt_link="$opt_link $link_veget"
      endif
      if ($couple == true) then
+       if ($psmile == true) then
+       set opt_link="$opt_link -lsxioipsl -float0 $optdbl -P static $NCDFLIB "
+       else
        set opt_link="$opt_link -lsxioipsl -loasis2.4_mpi2 -float0 $optdbl -P static $NCDFLIB "
-       if ($psmile == true) then
        endif
      else
@@ -788,10 +826,14 @@
    set f90=sxmpif90
    if $MODIPSL then
-     set opt_link="-L$MODIPSLDIR"
+     set opt_link="$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 -size_t64 $optdbl -P static $NCDFLIB "
+	if ($psmile == true) then
+	set opt_link="$opt_link -lsxioipsl -float0 -size_t64 $optdbl -P static $NCDFLIB "
+	else
+	set opt_link="$opt_link -lsxioipsl -loasis2.4_mpi2 -float0 -size_t64 $optdbl -P static $NCDFLIB "
+	endif
      else
        set opt_link="$opt_link -lsxioipsl -float0 -size_t64 $optdbl -P static $NCDFLIB "
@@ -883,4 +925,5 @@
  set optimtru90=" $optimtru90 -I$libo "
 else if $LINUX then
+ set optimtru90=" $optimtru90 -module $libo "
  set optim90=" $optim90 -module $libo "
  set optim="$optim90"
