Hi All:
I have a script to apply mask to a 3D array with dimension (I,J,K) at each k level. However, I found that the "append" command cannot save all the data at k levels. It only saves the last K index. The append works fine if the array is at (I,J,L) dimension, i.e., on L index. Below is my script:
let num=3022*12*30; use "/home/liz/tgtbox_scripts/mask_osra_mod.nc" repeat/range=2000:2006/name=m (use "/data/CP_GOM/cp_map_ann_`m`.nc";\ repeat/k=1:30 (let cp_ann=cp*mask2[d=1]/num;\ save/append/clobber/file="/data/CP_GOM/cp_map_ann_`m`_v2.nc" cp_ann;))
Thanks for your help!
Jean
--- On Thu, 1/10/13, Ansley Manke <ansley.b.manke@xxxxxxxx> wrote:
From: Ansley Manke
<ansley.b.manke@xxxxxxxx> Subject: Re: [ferret_users] SIGDIG hysteresis! To: "Ryo Furue" <furue@xxxxxxxxxx> Cc: ferret_users@xxxxxxxx Date: Thursday, January 10, 2013, 7:52 PM
Hi Ryo,
Well that's interesting (and what a wonderful word, hysteresis). I
imagine there are un-initialized variables somewhere, or something
along those lines. Fortran does some unexpected things saving values
between one pass through a piece of code and the next. Actually
/SIGDIG (which comes from the old PPLUS syntax nsig) is a big of a
misnomer isn't it. We're changing the number of digits not the
number of significant digits.
Thank you for the report. I'll have a look.
Ansley
Thank you for the report.
On 1/10/2013 1:57 PM, Ryo Furue wrote:
Ferret developers,
I'm trying to control the format of contour labels
and I'm bewildered by the SIGDIG qualifier. I suppose
there is a bug there.
I did this test:
yes? set data levitus_climatology
yes? set region/y=60s:40s
yes? contour/lev=(5,15,1)/k=1 temp !--(0)
yes? contour/lev=(5,15,1)/k=1/sigdig=1 temp !--(1)
yes? contour/lev=(5,15,1)/k=1/sigdig=2 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=3 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=4 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=5 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=4 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=3 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=2 temp
yes? contour/lev=(5,15,1)/k=1/sigdig=1 temp
yes? contour/lev=(5,15,1)/k=1 temp
!. . . Go back to (1) . . .
The results are
Without SIGDIG:"5.0", "6.0", . . . , "12.0"
SIGDIG=1 gives "5.0", "6.0", . . . , "12.0"
SIGDIG=2 gives "5", "6", . . . , "12"
SIGDIG=3 gives "5.0", "6.0", . . . , "12.0"
SIGDIG=4 gives "5.00", "6.00", . . . , "12.00"
SIGDIG=5 gives "5.000", "6.000", . . . , "12.000"
SIGDIG=4 gives "5.0000","6.0000",. . . , "12.0000"
SIGDIG=3 gives "5.000", "6.000", . . . , "12.000"
SIGDIG=2 gives "5.00", "6.00", . . . , "12.00"
SIGDIG=1 gives "5.0", "6.0", . . . , "12.0"
Without SIGDIG:"5", "6", . . . , "12"
As you can see, there is "hysteresis"! I've verified
that the above cycle exactly repeats.
Since at least I've found the pattern, I can exactly
control the format of my contour labels. :-)
FERRET v6.81
Linux 2.6.32-279.1.1.el6.x86_64 32-bit
- 07/23/12 10-Jan-13 11:48
Cheers,
Ryo
|