[ncl-talk] handling binary data with direct access

Dennis Shea shea at ucar.edu
Fri Oct 20 10:42:39 MDT 2017


If you are "new to NCL", please read the NCL User Guide created by DKRZ.
There are many examples.

https://www.ncl.ucar.edu/Document/Manuals/NCL_User_Guide/

==============
BinCreate.ncl (modified bincreate.ncl)

f1 = addfile("uwnd.850.1951.nc","r")
uwnd = f1->uwnd
dimu  = dimsizes(uwnd)
ntim   = dimu(0)

   do i = 0=ntim-1    ; each 'i' (time) is a record number
     fbindirwrite ("1951.bin",uwnd(i,:,:))  ; each time (record number) has
lat*lon pts
    end do

==================
Your binread.f95 is odd (?not correct?).

(a) You are opening units 11 and 12 but not reading either file (unit). Why
are they there?

(b) Where is 'uwnd' created? ***Where is the 'time' (record) dimension?***

(c) Further, it is *writing* (nor *reading* as the file name would imply)
one grid point value at each iteration.

To read what 'BinCreate.ncl' is doing you would need something like:

implicit none
integer::time,lon,lat,i,j,k,nu,nr
parameter (time=730)
parameter (lat=25)
parameter (lon=144)
real::uwnd(lat,lon)

open(11,file="1950.bin",form="unformatted",access="direct",recl=4*lat*lon)
open(21,file="1951.bin",form="unformatted",access="direct",recl=4*lat*lon)
open(31,file="50_51.bin",form="unformatted",access="direct",status="replace",recl=4*lat*lon)


     nr = 0
     do nu=11,21,10
        do i = 1,time
           read(nu,rec=i) uwnd    ! read all lat*lon
           nr = nr+1
           write(31,rec=nr) uwnd  ! write all lat*lon

        end do
     end do

close(31)
close(21)
close(11)

end


====================

Good luck


On Fri, Oct 20, 2017 at 7:05 AM, Arijeet Dutta <arijeet.uoh at gmail.com>
wrote:

> Hi, I am aware of addfiles() and I am able to merge nc files, that's not
> the issue; I am just playing around with fbindirread and fbindirwrite and
> make sense of them. Please have a look when you get time. Thanks
>
> Cheers
> Arijeet
>
> On Fri, Oct 20, 2017 at 6:17 PM, Rick Brownrigg <brownrig at ucar.edu> wrote:
>
>> I've not looked at the scripts just yet, but if all you are trying to do
>> is to merge several NetCDF files, you might want to look at the addfiles()
>> command:
>>
>> http://ncl.ucar.edu/Document/Functions/Built-in/addfiles.shtml
>>
>> This potentially save you some trouble.
>>
>> On Fri, Oct 20, 2017 at 6:17 AM, Arijeet Dutta <arijeet.uoh at gmail.com>
>> wrote:
>>
>>> Hi all, I am new to NCL. I had u-wind daily data at 850hPa as netcdf
>>> files. To get into how binary file works I converted the nc file into .bin
>>> using fbindirwrite and then used fortran to read and merge two such files
>>> and then tried to read the merged bin file in NCL with fbindirread I am
>>> having unrealistic values for u-wind. Please see the attached scripts I
>>> wrote and let me know if you can make out anything
>>>
>>> Cheers
>>> Arijeet
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>
> _______________________________________________
> 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/20171020/1200522d/attachment.html>


More information about the ncl-talk mailing list