[MITgcm-devel] testreport on sunos

Martin Losch Martin.Losch at awi.de
Wed Jun 25 10:19:00 EDT 2008


Hi Oliver,
thanks, I have also figured that out by now, but unfortunately, this  
fix does not produce the expected results (the WARNING remains). Will  
look more into this tomorrow.

Should we use nawk? nawk does work, but I am not sure that is it as  
general as awk (gawk certainly isn't).

Martin

On 25 Jun 2008, at 16:07, Oliver Jahn wrote:

> Hi Martin,
>
> I think it should be
>> tst=`echo $sVar $listVar | awk '{ for(i=2;i<=NF;i++){if($i==$1){t 
>> +=1}}; print t }'`
>                                                                   
> ^^^^^^
> since in gawk, ($i==$1) evaluates to 1 (true) if $i==$1 and 0  
> (false) otherwise.  testreport checks for tst to be equal to 1  
> (found one match) or not.  Don't have a sun awk to test this, though.
>
> I think there is a program called nawk ('new awk') on sun that  
> should behave similarly to awks on other systems (not just linux).
>
> Oliver
>
>
> On Wed, 25 Jun 2008, Martin Losch wrote:
>
>> Me again,
>>
>> I actually found someone with "awk"-skills and we figured that the  
>> correct syntax would be this:
>>> tst=`echo $sVar $listVar | awk '{ for(i=2;i<=NF;i++){if($i==$1);t 
>>> +=$1}; print t }'`
>> on the command line this give the same result, but within  
>> testreport it causes this problem:
>>> ==> WARNING: selected var >PS< not found
>>> ==> WARNING: in checked list: PS Tmn Tmx Tav Tsd Smn Smx Sav Ssd  
>>> Umn Umx Uav Usd Vmn Vmx Vav Vsd pt1mn pt1mx pt1av pt1sd pt2mn  
>>> pt2mx pt2av pt2sd pt3mn pt3mx pt3av pt3sd pt4mn pt4mx pt4av pt4sd  
>>> pt5mn pt5mx pt5av pt5sd
>>
>>
>> Maybe you can help?
>>
>> Martin
>>
>> On 25 Jun 2008, at 09:12, Martin Losch wrote:
>>
>>> Hallo Jean-Michel,
>>> there is a small problem with testreport on SunOS (rays1); and as  
>>> usual the problem boils down to "awk". Obviously "awk" on linux  
>>> systems is real "gawk". "gawk" has more features than awk and we  
>>> are gettting so used to (g)awk that that we don't realize it's  
>>> the "wrong" awk. Anyway, the SunOS-awk returns an error in line 229:
>>> tst=`echo $sVar $listVar | awk '{ for(i=2;i<=NF;i++){t+=($i== 
>>> $1)}; print t }'`
>>> and more specifically it is this part: ($i==$1) that awk does not  
>>> recognize (gawk does, even on SunOS). What can we do?
>>> 1. Replace awk with gawk in this line? I am not sure that gawk is  
>>> available on all systems.
>>> 2. replace all "awk"s with $AWK and set this or pass this as an  
>>> argument?
>>> 3. I like best: find a syntax that SunOS awk can handle. I don't  
>>> know what this line really does, and in particular, what t+=($i== 
>>> $1) is supposed to do, but maybe there is a better way of doing  
>>> this (with sed, which is more universal, as far as I remember  
>>> from our problems with genmake2 years ago). Do you still have  
>>> access to a Sun? If not, can you describe what this thing is  
>>> supposed to do and I'll try to figure out how to do it on a Sun.
>>> I believe there are still users on SunOS (there were some emails,  
>>> recently), and this problem is likely to occur on other systems  
>>> that do not run Linux (e.g. SX8, or IBM, ...)
>>> Martin
>>> PS. I don't think that this thing actually causes problems with  
>>> testreport in my case (somehow emails don't get sent to  
>>> jmc at mitgcm.org since last week), but it's still worth fixing.
>>> _______________________________________________
>>> MITgcm-devel mailing list
>>> MITgcm-devel at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list