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