| 1 |
jmc |
1.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 |
jmc |
1.2 |
% $Header: /u/gcmpack/MITgcm_contrib/jmc_script/c_levs.m,v 1.1 2008/10/09 01:08:27 jmc Exp $ |
| 8 |
jmc |
1.1 |
% $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 |
jmc |
1.2 |
if d0 <= 0, |
| 21 |
|
|
ctl=0; return |
| 22 |
|
|
end |
| 23 |
|
|
k0=log(d0)/log(10); |
| 24 |
|
|
kd=round(k0); |
| 25 |
|
|
pp=10.^kd; |
| 26 |
jmc |
1.1 |
dd=round(d0/pp); |
| 27 |
jmc |
1.2 |
if dd == 0, |
| 28 |
|
|
kd=floor(k0); |
| 29 |
|
|
pp=10.^kd; |
| 30 |
jmc |
1.1 |
dd=round(d0/pp); |
| 31 |
|
|
end |
| 32 |
|
|
dd=pp*dd; |
| 33 |
|
|
if dBug > 0, fprintf(' -dc= %i ; d0 = %e ; kd,k0= %i,%f ; pp=%e ; dd=%e\n', ... |
| 34 |
|
|
-dc,d0,kd,k0,pp,dd); end |
| 35 |
|
|
end |
| 36 |
|
|
|
| 37 |
|
|
ctl=[ceil(mn/dd):floor(Mx/dd)]*dd; |
| 38 |
|
|
|
| 39 |
|
|
return |