| 1 | function [ctl]=c_levs(mn,Mx,dc,dBug); | 
| 2 | % [ctl]=c_levs(mn,Mx,dc,[option]); | 
| 3 | %- return contour levels | 
| 4 | %  dc > 0 : select contour-levels as multiple of "dc" within [mn,Mx] | 
| 5 | %  dc < 0 : select aproximatively |dc| contour levels, within [mn,Mx] | 
| 6 |  | 
| 7 | % $Header:  $ | 
| 8 | % $Name:  $ | 
| 9 |  | 
| 10 | if nargin < 3, | 
| 11 | error('Not enough argument (need at least 3)'); | 
| 12 | return | 
| 13 | end | 
| 14 | if nargin < 4, dBug=0; end | 
| 15 |  | 
| 16 | if dc > 0, | 
| 17 | dd=dc; | 
| 18 | else | 
| 19 | d0=(mn-Mx)/dc; | 
| 20 | k0=log(d0)/log(10); | 
| 21 | kd=round(k0); | 
| 22 | pp=10.^kd; | 
| 23 | dd=round(d0/pp); | 
| 24 | if dd == 0, | 
| 25 | kd=floor(k0); | 
| 26 | pp=10.^kd; | 
| 27 | dd=round(d0/pp); | 
| 28 | end | 
| 29 | dd=pp*dd; | 
| 30 | if dBug > 0, fprintf(' -dc= %i ; d0 = %e ; kd,k0= %i,%f ; pp=%e ; dd=%e\n', ... | 
| 31 | -dc,d0,kd,k0,pp,dd); end | 
| 32 | end | 
| 33 |  | 
| 34 | ctl=[ceil(mn/dd):floor(Mx/dd)]*dd; | 
| 35 |  | 
| 36 | return |