diff --git a/bin/Fortran90_stuff_interface.pm b/bin/Fortran90_stuff_interface.pm
index 7411b1feaa6aee6004281b60721f9937fe20e2be..3899f633eaaf127e118560c884f7381794cce9c0 100644
--- a/bin/Fortran90_stuff_interface.pm
+++ b/bin/Fortran90_stuff_interface.pm
@@ -97,8 +97,6 @@ sub study{
       $href->{indent}="                ";
     }
 
-    
-
     if($type_def) {
  #     $href->{content}='typedef';
     }
@@ -326,7 +324,7 @@ CRACK:    {
       $exec=0;
       $decl=1;
     }
-#print "cont $content \n \n";
+#print STDERR "cont $content \n \n";
 #    print "BB $unit_count $content $_";
     if($content  eq 'unknown') {
       print STDERR "Failed to crack statement starting at line $href->{first_line}",
@@ -577,18 +575,37 @@ sub study_exec{
   elsif(/^$name\s*%\s*$name\s*=/o) {                     #ZMYTYPE%ICOMP = .....
     $$content='scal_assign';
   }
+  elsif(/^$name\s*%\s*$name\s*%\s*$name\s*=/o) {                     #ZMYTYPE%ICOMP = .....
+    $$content='scal_assign';
+  }  
+  elsif(/^$name\s*%\s*$name\s*%\s*$name\s*%\s*$name\s*=/o) {                     #ZMYTYPE%ICOMP = .....
+    $$content='scal_assign';
+  }
+  elsif(/^$name\s*%\s*$name\s*%\s*$name\s*%\s*$name\s*%\s*$name\s*=/o) {                     #ZMYTYPE%ICOMP = .....
+    $$content='scal_assign';
+  }
+  
   elsif(/^$name\s*$nest_par\s*%\s*$name\s*=/o) {         #ZMYTYPE(JK)%ICOMP = .....
     $$content='array_assign';
   }
   elsif(/^$name\s*%\s*$name\s*$nest_par\s*=/o) {         #ZMYTYPE%ICOMP(JL) = .....
     $$content='array_assign';
   }
+  elsif(/^$name\s*%\s*$name\s*%\s*$name\s*$nest_par\s*=/o) {         #ZMYTYPE%ICOMP(JL) = .....
+    $$content='array_assign';
+  }
+  elsif(/^$name\s*%\s*$name\s*%\s*$name\s*%\s*$name\s*$nest_par\s*=/o) {         #ZMYTYPE%ICOMP(JL) = .....
+    $$content='array_assign';
+  }  
+  elsif(/^$name\s*%\s*$name\s*%\s*$name\s*%\s*$name\s*%\s*$name\s*$nest_par\s*=/o) {         #ZMYTYPE%ICOMP(JL) = .....
+    $$content='array_assign';
+  }   
   elsif(/^($name\s*($nest_par)*\s*%\s*$name\s*($nest_par)* *)+=/o) { #ZMYTYPE(JK)%ICOMP(JL) = ...
     $$content='array_assign';
   }
   elsif(/^$name\s*($nest_par)($nest_par)\s*=/o) {        #CLNAME(JK)(1:5) = ......
     $$content='array_assign';
-  }
+  }    
 }
 #===================================================================================
 #sub get_indent {
@@ -1839,13 +1856,13 @@ sub parse_prog_unit {
       my $tstatm=$_;
       $tstatm=~ s/\!.*\n/\n/g;   
       $tstatm=~s/\s//g;
-      #print "ok1\n",$tstatm,"\n";
+      #print STDERR "ok1\n",$tstatm,"\n";
       if (/.+\((.+)\).+\((.+)\)/) {
-	      #print "block1\n";
+	      #  print STDERR "block1\n";
       	$tstatm=~s/.+\((.+)\).+\((.+)\)/$1,$2/;
 	}
 	else {
-		# print "block2\n";
+		#	 print  STDERR "block2\n";
 	 $tstatm=~s/.+\((.+)\)/$1/;
 	}
 #      $tstatm=~s/.+\((.+)\)/$1/;	
@@ -2169,7 +2186,7 @@ sub create_interface_block {
 	    }
       }
       else{ 
-        if (/^USEMODD_TYPE/ || /^USEMODD_FMDECLAR/) {
+        if (/^USEMODD_TYPE/ || /^USEMODD_FMDECLAR/ || /^USELFI_/) {
 	push(@$interface_block,$myhref);  # Always include USE without ONLY for safety
       }  
     }}
diff --git a/bin/make_intfbl_f90.pl b/bin/make_intfbl_f90.pl
index 6af402e75e3291adf84a476cbfa34d8ae4eade04..1d863411727025e7eb6b4f1b9f249814e8994ff3 100755
--- a/bin/make_intfbl_f90.pl
+++ b/bin/make_intfbl_f90.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 #SURFEX_LIC Copyright 1994-2014 Meteo-France 
 #SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C  licence
 #SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
diff --git a/bin/spll b/bin/spll
index be461ba4d14e995780120158b24f10844073ff3a..d45a3c80af917c8865e45421a8d8b767262b922a 100755
--- a/bin/spll
+++ b/bin/spll
@@ -65,7 +65,7 @@ if [ "`echo $BASENAME | egrep  -i $FILE_WITHOUT_INTERFACE_NEDEED `" = "" ]
 then
     for sfile in `cat liste_file`
     do 
-	if [ "`egrep -ia '^ *module|^ *program' $sfile`" = "" ]
+	if [ "`egrep -i '^ *module|^ *program' $sfile`" = "" ]
         then
 	if [ "$SUF" = "f90" ]
 	then
@@ -91,7 +91,7 @@ then
 fi
 fi
 ls -1 $TMP > liste_file
-egrep -va "liste_file"  liste_file > liste_file2
+egrep -v "liste_file"  liste_file > liste_file2
 )
 #
 # génération des dependances
@@ -133,8 +133,8 @@ then
   cp $spllfile $DIRNAME/$spllfile
   touch $DIRNAME/$BASENAME2.D
 fi 
-dep=`egrep -ia "^[[:space:]]*use "    $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u `
-mod=`egrep -ia "^[[:space:]]*module " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u | grep -iv procedure `
+dep=`egrep -i "^[[:space:]]*use "    $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u `
+mod=`egrep -i "^[[:space:]]*module " $spllfile | sed -e 's/,/ /g' | awk '{ print '${TOCASE}'($2)".mod"}' | sort -u | grep -iv procedure `
 
 echo $mod        : $spllbase.o    >> $DIRNAME/$BASENAME2.D
 echo $spllbase.o : $spllfile $dep >> $DIRNAME/$BASENAME2.D