Dear Ferret users, I’m trying to loop over some ocean data to calculate the thermocline and then output the results whilst retaining the original filename formatting. I’m using the following code: define axis/f=1:103:1 ffile define grid/f=ffile gfile file/grid=gfile/format=DELIMITED/var="filenames" filenames.txt file/grid=gfile/format=DELIMITED/var="output" output.txt repeat/range=1:103:1/name=nf ( ;\ define symbol ff=`nf` ;\ set data `filenames[n=($ff),d=1]` ;\ let dtdz = thetao[z=@ddc] ;\ let dtdz_min = dtdz[z=@min] ;\ let zero_at_min = dtdz - dtdz_min ;\ let zt = zero_at_min[z=@loc:0] ;\ save/i=1/j=1/clob/ilimits=1:360/jlimits=1:181/ncformat=netcdf4/file=`output[n=($ff),d=2]` zt ;\ repeat/j=1:181 ( save/ncformat=netcdf4/app/file=`output[n=($ff),d=2]` zt ;\ ) ;\ cancel data 3 ;\ ) When running this script in Ferret 6.95 I get a signal = 11 crash yes? go calculate_zt.jnl define axis/f=1:103:1 ffile define grid/f=ffile gfile file/grid=gfile/format=DELIMITED/var="filenames" filenames.txt file/grid=gfile/format=DELIMITED/var="output" output.txt repeat/range=1:103:1/name=nf ( ;\ define symbol ff=`nf` ;\ set data `filenames[n=($ff),d=1]` ;\ let dtdz = thetao[z=@ddc] ;\ let dtdz_min = dtdz[z=@min] ;\ let zero_at_min = dtdz - dtdz_min ;\ let zt = zero_at_min[z=@loc:0] ;\ save/i=1/j=1/clob/ilimits=1:360/jlimits=1:181/ncformat=netcdf4/file=`output[n=($ff),d=2]` zt ;\ repeat/j=1:181 ( save/ncformat=netcdf4/app/file=`output[n=($ff),d=2]` zt ;\ ) ;\ cancel data 3 ;\ ) !-> repeat/range=1:103:1/name=nf ( ;define symbol ff=`nf` ;set data `filenames[n=($ff),d=1]` ;let dtdz = thetao[z=@ddc] ;let dtdz_min = dtdz[z=@min] ;let zero_at_min = dtdz - dtdz_min ;let zt = zero_at_min[z=@loc:0] ;save/i=1/j=1/clob/ilimits=1:360/jlimits=1:181/ncformat=netcdf4/file=`output[n=($ff),d=2]`
zt ;repeat/j=1:181 ( save/ncformat=netcdf4/app/file=`output[n=($ff),d=2]` zt ;\ ) ;cancel data 3 ;) !-> REPEAT: NF:1 !-> define symbol ff=1 !-> set data thetao_Omon_FIO-ESM_historical_r1i1p1_185001-185512_r360x181.nc !-> LIST/FORMAT=CDF/i=1/j=1/clob/ilimits=1:360/jlimits=1:181/ncformat=netcdf4/file=zt_Omon_FIO-ESM_historical_r1i1p1_185001-185512_r360x181.nc zt LISTing to file zt_Omon_FIO-ESM_historical_r1i1p1_185001-185512_r360x181.nc !-> repeat/j=1:181 ( save/ncformat=netcdf4/app/file=`output[n=($ff),d=2]` zt ;\ ) !-> REPEAT: J=1 !-> LIST/FORMAT=CDF/ncformat=netcdf4/app/file=zt_Omon_FIO-ESM_historical_r1i1p1_185001-185512_r360x181.nc zt LISTing to file zt_Omon_FIO-ESM_historical_r1i1p1_185001-185512_r360x181.nc !-> REPEAT: J=2 **ERROR Ferret crash; signal = 11 I can avoid this crash by changing the last couple of lines to use a static filename and the loop counter but this is not ideal. E.g.: save/i=1/j=1/clob/ilimits=1:360/jlimits=1:181/ncformat=netcdf4/file=zt_00($ff).nc zt ;\ repeat/j=1:181 ( save/ncformat=netcdf4/app/file=zt_00($ff).nc zt ) ;\ Cheers, Ben |