[ncl-talk] how to separate data with tab using function write_matrix
Dennis Shea
shea at ucar.edu
Tue Apr 24 17:18:00 MDT 2018
The 'write_matrix' only handles numeric data types. No characters.
--
diro = "./"
filo = "example.txt"
ptho = diro +filo
;---Bogus data
nrow = 5
ncol = 7
x = new((/nrow,ncol/),float, -999.9)
x = 9.9
;---Tab character
tab = str_get_tab()
;---Array to hold data; Initialize
NROW = nrow+1
TabData = new( NROW, "string") ; , "No_FillValue") ; extra 'row' for
title
TabData = ""
;---First a title (optional)
TabData(0) = " Title "
;---Loop over ech row (line) and appended values
do nr=0,nrow-1
do nc=0,ncol-1
TabData(nr+1) = TabData(nr+1) + tab + sprintf("%5.1f",x(nr,nc)) ;
append
end do
end do
;---Create the file
system("/bin/rm -f "+ptho)
asciiwrite(ptho, TabData)
++++++++ OUTPUT ++++++++++++++
Title
9.9 9.9 9.9 9.9 9.9 9.9 9.9
9.9 9.9 9.9 9.9 9.9 9.9 9.9
9.9 9.9 9.9 9.9 9.9 9.9 9.9
9.9 9.9 9.9 9.9 9.9 9.9 9.9
9.9 9.9 9.9 9.9 9.9 9.9 9.9
On Mon, Apr 23, 2018 at 8:52 PM, wen <wenguanhuan at 163.com> wrote:
> Hi Dennis,
> Thank you for help. I have check the suggested method. It didn't work. I
> came up with error message. Following is the ncl code and error message.
> Do you have any other idea?
>
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>
> begin
> x = new((/5,5/),float)
> x = 9.9
> opt = True
> opt at fout = "test.txt"
> opt at title = "Normal"
> tab = str_get_tab()
> fmt = "5("+tab+",f4.1)"
> write_matrix (x, fmt , opt)
> end
>
>
> "writematrix.f", line 110: 1525-078 An extra comma was found in a format
> specification. The program will recover by ignoring the extra comma.
> "writematrix.f", line 110: 1525-078 An extra comma was found in a format
> specification. The program will recover by ignoring the extra comma.
> "writematrix.f", line 110: 1525-078 An extra comma was found in a format
> specification. The program will recover by ignoring the extra comma.
> "writematrix.f", line 110: 1525-078 An extra comma was found in a format
> specification. The program will recover by ignoring the extra comma.
> "writematrix.f", line 110: 1525-078 An extra comma was found in a format
> specification. The program will recover by ignoring the extra comma.
>
>
> --
> Best regards,
> Guanhuan Wen
>
> At 2018-04-24 00:43:52, "Dennis Shea" <shea at ucar.edu> wrote:
>
> https://www.ncl.ucar.edu/Document/Functions/Built-in/str_get_tab.shtml
>
> *UNTESTED*: Lets say you want 10 numbers for each row with all numbers
> preceded by a
> *tab.*
> *Note: *
> *fout* String specifying the output file name. If not present, the data
> is sent to standard out.
> *The maximum length of fout is 96 characters.*
>
> I think the fortran character variable is set at 96
>
> *---*
>
> tab = *str_get_tab*()
>
> fmt = "10("+tab+",f7.1)" ; clarity
>
> print("fmt="+fmt)
>
> opt = True
>
> opt at fout "./TEXT_with_TAB" ; "./test/text_with_tab/"
>
> system("/bin/rm -f "+opt at fout) ; rm any pre-existing file
>
> write_matrix (x, fmt, False)
>
> Let ncl-talk know if this works.
>
> THX
>
> On Sun, Apr 22, 2018 at 8:20 PM, wen <wenguanhuan at 163.com> wrote:
>
>> Hi all,
>> I want to write a 2 dimensional data into a file using function
>> write_matrix. I expect to separate data with character tab. How can I
>> realize that? Hope you can help. Thank you!
>>
>>
>>
>>
>> --
>> Best regards,
>> Guanhuan Wen
>>
>>
>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180424/96d1548c/attachment.html>
More information about the ncl-talk
mailing list