<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div>The syntax of units field in a variable declaration depends on the data type: for grib is is a comma-delimited list of index numbers, for netcdf it is a comma-delimited list of coordinate axes, and for binary it is ignored.</div>
<div>—Jennifer<br>
<div>&nbsp;</div>
<div>
<div>
<div>
<div>On Jul 5, 2016, at 2:31 PM, Charles Seman - NOAA Federal &lt;<a href="mailto:charles.seman@noaa.gov">charles.seman@noaa.gov</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">Lydia,<br>
<br>
Another thing: I don't understand the characters like &quot;12,105,2 **&quot; in <br>
the vars records in your ctl file:<br>
<br>
TMAX 0 12,105,2 ** maximum temperature at 2m above surface [C]<br>
<br>
TMIN 0 11,105,2 ** minimum temperature at 2m above surface [C]<br>
<br>
PRCP 0 61,1,0 ** total precipitation backward accumulated [kg/m^2 or mm]<br>
<br>
SRAD 0 204,1,0 ** total surface downward shortwave radiation flux [mJ/m^2]<br>
<br>
How are these characters used by GrADS? &nbsp;I would expect something like <br>
&quot;0,y,x&quot;<br>
<br>
Chuck<br>
<br>
On 07/05/2016 02:21 PM, Charles Seman - NOAA Federal wrote:<br>
<blockquote type="cite">Lydia,<br>
<br>
I would try to verify some of the values in your arrays... To start,<br>
define a tmax_all(464,224), and read one record into it:<br>
read(17,REC=irec) tmax_all. &nbsp;Then, print out a common row and a column<br>
from it and from tmax to verify you get the same values. &nbsp;Do this for<br>
just one time level, and stop. &nbsp;This is slow and tedious work. &nbsp;Unless<br>
you have access to TotalView or some other visual debugger, then you can<br>
step through your code line by line and should be able to find it.<br>
<br>
Hope this helps,<br>
Chuck<br>
<br>
On 07/05/2016 01:41 PM, Lydia Rill wrote:<br>
<blockquote type="cite">Thanks Chuck! I double checked the record length and it is indeed 4.<br>
<br>
Thank you Jim! Sorry my code was a little messy, I have tried many<br>
different methods.<br>
Good point about the lower left hand corner, that was one of the issues<br>
here.<br>
<br>
When I use 32 x steps, 32 y steps, and 10 time steps I use a record<br>
length of 4096 for the output file and I get a file size of 160K, which<br>
roughly matches 32*32*10*4*4 = 16385<br>
<br>
I am now getting realistic numbers for my output! However, when I<br>
display the data in GrADS for one time I get only parts of the 4x4<br>
degree box, by latitude, for each variable, instead of getting the data<br>
for each variable for the whole box. For example in the middle of the<br>
box I get tmax for 43.5-44N, tmin for 43-43.5N, prcp around 43N, and<br>
srad around 42.5N. Any ideas on why this is happening?<br>
<br>
Here is the updated code:<br>
<br>
integer irec,i,j,t,days<br>
<br>
character(len=100) infile,outfile<br>
<br>
real tmin(464,224),tmax(464,224),prcp(464,224),srad(464,224)<br>
<br>
infile='/Volumes/WebData/NLDAS2/DailyNLDAS/daily.bin'<br>
<br>
outfile='/Volumes/WebData/NLDAS2/Fortran/testdaily.bin'<br>
<br>
open(17,file=infile,form=&quot;unformatted&quot;,access=&quot;direct&quot;,recl=32*32*4,status=&quot;old&quot;)<br>
<br>
<br>
open(18,file=outfile,form=&quot;unformatted&quot;,access=&quot;direct&quot;,recl=32*32*4,status=&quot;unknown&quot;)<br>
<br>
<br>
<br>
days=10<br>
<br>
irec=1<br>
<br>
do t=1,days<br>
<br>
&nbsp;&nbsp;read(17,REC=irec) ((tmax(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;read(17,REC=irec&#43;1) ((tmin(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;read(17,REC=irec&#43;2) ((prcp(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;read(17,REC=irec&#43;3) ((srad(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;write(18,REC=irec) ((tmax(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;write(18,REC=irec&#43;1) ((tmin(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;write(18,REC=irec&#43;2) ((prcp(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;write(18,REC=irec&#43;3) ((srad(i,j),i=129,160),j=129,160)<br>
<br>
&nbsp;&nbsp;irec=irec&#43;4<br>
<br>
enddo<br>
<br>
<br>
Here is the updated control file:<br>
<br>
dset ^testdaily.bin<br>
<br>
undef 9.999E&#43;20<br>
<br>
title Daily NLDAS2 Data for 04Z through 03Z<br>
<br>
xdef 32 linear -108.9375 0.125<br>
<br>
ydef 32 linear 41.0625 0.125<br>
<br>
tdef 10 linear 00Z02Jan1979 1dy<br>
<br>
zdef 1 linear 1 1<br>
<br>
vars 4<br>
<br>
TMAX 0 12,105,2 ** maximum temperature at 2m above surface [C]<br>
<br>
TMIN 0 11,105,2 ** minimum temperature at 2m above surface [C]<br>
<br>
PRCP 0 61,1,0 ** total precipitation backward accumulated [kg/m^2 or mm]<br>
<br>
SRAD 0 204,1,0 ** total surface downward shortwave radiation flux<br>
[mJ/m^2]<br>
<br>
ENDVARS<br>
<br>
<br>
Thank you both so much for your help,<br>
<br>
Lydia<br>
<br>
On Tue, Jul 5, 2016 at 12:44 PM, James T. Potemra &lt;<a href="mailto:jimp@hawaii.edu">jimp@hawaii.edu</a><br>
&lt;<a href="mailto:jimp@hawaii.edu">mailto:jimp@hawaii.edu</a>&gt;&gt; wrote:<br>
<br>
&nbsp;&nbsp;&nbsp;Hi Lydia,<br>
<br>
&nbsp;&nbsp;&nbsp;You have a couple problems. &nbsp;First, you are reading in tmax, tmin,<br>
&nbsp;&nbsp;&nbsp;prcp then srad, but then you write out tmin, tmin prcp and srad<br>
&nbsp;&nbsp;&nbsp;(tmin twice). &nbsp;Second, your program is reading and writing to the<br>
&nbsp;&nbsp;&nbsp;same variables, and then only the first 8x8 (lower left &quot;corner&quot; of<br>
&nbsp;&nbsp;&nbsp;the data sets). &nbsp;Perhaps these are all missing ?<br>
<br>
&nbsp;&nbsp;&nbsp;Finally, the record length is defined to be 464 by 224, then you<br>
&nbsp;&nbsp;&nbsp;only define (via read) and write the first 8 by 8, which should work<br>
&nbsp;&nbsp;&nbsp;ok, but recognize that the rest of the 464x224 array has not been<br>
&nbsp;&nbsp;&nbsp;defined. &nbsp;So, if you want to use your control file with &quot;xdef 8&quot; and<br>
&nbsp;&nbsp;&nbsp;&quot;ydef 8&quot; you'll need to change your &quot;open&quot; statement for the output<br>
&nbsp;&nbsp;&nbsp;file to be 8*8*4 and not 464*224*4. &nbsp;Alternately you could change<br>
&nbsp;&nbsp;&nbsp;the xdef/ydef lines.<br>
<br>
&nbsp;&nbsp;&nbsp;Note as a quick check, your output file should be 8*8*10*4*4<br>
&nbsp;&nbsp;&nbsp;(x*y*t*4) bytes large for that control file.<br>
<br>
&nbsp;&nbsp;&nbsp;Jim<br>
<br>
&nbsp;&nbsp;&nbsp;On 7/5/16 3:57 AM, Lydia Rill wrote:<br>
<blockquote type="cite">&nbsp;&nbsp;&nbsp;Hi all,<br>
<br>
&nbsp;&nbsp;&nbsp;I am a new grads user and I have never worked with binary files<br>
&nbsp;&nbsp;&nbsp;before. I have a large binary file I created in grads (code shown<br>
&nbsp;&nbsp;&nbsp;below). I want to split up the binary file by latitude and<br>
&nbsp;&nbsp;&nbsp;longitude degree into smaller binary files. While this is possible<br>
&nbsp;&nbsp;&nbsp;in GrADS, it is too slow for my needs, so I am trying to do it in<br>
&nbsp;&nbsp;&nbsp;Fortran 90.<br>
<br>
&nbsp;&nbsp;&nbsp;However, I am having problems reading the GrADS binary file in<br>
&nbsp;&nbsp;&nbsp;Fortran. It gives me the missing value for each of my variables at<br>
&nbsp;&nbsp;&nbsp;every time step and every location.<br>
<br>
&nbsp;&nbsp;&nbsp;The binary file contains NLDAS 2 forcing data, with 464 x steps,<br>
&nbsp;&nbsp;&nbsp;224 y steps, and 13688 daily time steps for 4 variables (only 1 Z<br>
&nbsp;&nbsp;&nbsp;level). It is a large file at 22GB, and I can successfully display<br>
&nbsp;&nbsp;&nbsp;the variables in GrADS from this binary file. This binary file was<br>
&nbsp;&nbsp;&nbsp;created from data in Grib files.<br>
<br>
&nbsp;&nbsp;&nbsp;I have tried many various ways of reading in the binary data,<br>
&nbsp;&nbsp;&nbsp;using x and y loops, or time loops, or looping through the 4<br>
&nbsp;&nbsp;&nbsp;variables, but nothing has been successful.<br>
<br>
&nbsp;&nbsp;&nbsp;I am working on a Mac (El Capitan).<br>
<br>
&nbsp;&nbsp;&nbsp;Here is the GrADS script I used to create the binary file:<br>
<br>
&nbsp;&nbsp;&nbsp;functionmain(args)<br>
<br>
&nbsp;&nbsp;&nbsp;counthr=subwrd(args,1)<br>
<br>
&nbsp;&nbsp;&nbsp;'reinit'<br>
<br>
&nbsp;&nbsp;&nbsp;'open /Volumes/WebData/NLDAS2/ProcessingFiles/24hours.ctl'<br>
<br>
&nbsp;&nbsp;&nbsp;'set undef 9.999e20'<br>
<br>
&nbsp;&nbsp;&nbsp;'set gxout fwrite'<br>
<br>
&nbsp;&nbsp;&nbsp;'set fwrite -ap /Volumes/WebData/NLDAS2/DailyNLDAS/daily.bin'<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;'set t 1'<br>
<br>
&nbsp;&nbsp;&nbsp;t1=1&#43;4<br>
<br>
&nbsp;&nbsp;&nbsp;t1p=1&#43;5<br>
<br>
&nbsp;&nbsp;&nbsp;while(t1&lt;=counthr&#43;5-23)<br>
<br>
&nbsp;&nbsp;&nbsp;t2=t1&#43;23<br>
<br>
&nbsp;&nbsp;&nbsp;t2p=t1p&#43;23<br>
<br>
&nbsp;&nbsp;&nbsp;'d (max(TMP2m,t='t1',t='t2')-273.15)'<br>
<br>
&nbsp;&nbsp;&nbsp;'d (min(TMP2m,t='t1',t='t2')-273.15)'<br>
<br>
&nbsp;&nbsp;&nbsp;'d sum(APCPsfc,t='t1p',t='t2p')'<br>
<br>
&nbsp;&nbsp;&nbsp;'d (ave(DSWRFsfc,t='t1',t='t2')*24*3600/1000000)'<br>
<br>
&nbsp;&nbsp;&nbsp;t1=t1&#43;24<br>
<br>
&nbsp;&nbsp;&nbsp;t1p=t1p&#43;24<br>
<br>
&nbsp;&nbsp;&nbsp;endwhile<br>
<br>
&nbsp;&nbsp;&nbsp;'quit'<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;Here is the Fortran script to read the binary file<br>
<br>
&nbsp;&nbsp;&nbsp;ProgramReadbin<br>
<br>
&nbsp;&nbsp;&nbsp;implicitnone<br>
<br>
&nbsp;&nbsp;&nbsp;integer irec,i,j,t,days<br>
<br>
&nbsp;&nbsp;&nbsp;real tmin(464,224),tmax(464,224),prcp(464,224),srad(464,224)<br>
<br>
&nbsp;&nbsp;&nbsp;OPEN(17,file='/Volumes/WebData/NLDAS2/DailyNLDAS/daily.bin',&amp;<br>
<br>
&nbsp;&nbsp;&nbsp;&amp;STATUS='Old',FORM='UNFORMATTED',ACCESS='DIRECT',RECL=464*224*4)<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;OPEN(18,file='/Volumes/WebData/NLDAS2/DailyNLDAS/testdaily.bin',&amp;<br>
<br>
&nbsp;&nbsp;&nbsp;&amp;STATUS='UNKNOWN',FORM='UNFORMATTED',ACCESS='DIRECT',RECL=464*224*4)<br>
<br>
&nbsp;&nbsp;&nbsp;days=10<br>
<br>
&nbsp;&nbsp;&nbsp;irec=1<br>
<br>
&nbsp;&nbsp;&nbsp;do t=1,days<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(17,REC=irec) ((tmax(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(17,REC=irec&#43;1) ((tmin(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(17,REC=irec&#43;2) ((prcp(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read(17,REC=irec&#43;3) ((srad(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(18,REC=irec) ((tmin(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(18,REC=irec&#43;1) ((tmin(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(18,REC=irec&#43;2) ((prcp(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(18,REC=irec&#43;3) ((srad(i,j),i=1,8),j=1,8)<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;irec=irec&#43;4<br>
<br>
&nbsp;&nbsp;&nbsp;enddo<br>
<br>
&nbsp;&nbsp;&nbsp;end program<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;The corresponding control file is:<br>
<br>
&nbsp;&nbsp;&nbsp;set ^testdaily.bin<br>
<br>
&nbsp;&nbsp;&nbsp;undef 9.999E&#43;20<br>
<br>
&nbsp;&nbsp;&nbsp;title Daily NLDAS2 Data for00Z through 23Z<br>
<br>
&nbsp;&nbsp;&nbsp;xdef 8linear -124.93750.125<br>
<br>
&nbsp;&nbsp;&nbsp;ydef 8linear 25.06250.125<br>
<br>
&nbsp;&nbsp;&nbsp;tdef 10linear 00Z02Jan1979 1dy<br>
<br>
&nbsp;&nbsp;&nbsp;zdef 1linear 11<br>
<br>
&nbsp;&nbsp;&nbsp;vars 4<br>
<br>
&nbsp;&nbsp;&nbsp;TMAX 012,105,2**maximum temperature at 2m above surface [C]<br>
<br>
&nbsp;&nbsp;&nbsp;TMIN 011,105,2**minimum temperature at 2m above surface [C]<br>
<br>
&nbsp;&nbsp;&nbsp;PRCP 061,1,0**total precipitation backward accumulated [kg/m^2ormm]<br>
<br>
&nbsp;&nbsp;&nbsp;SRAD 0204,1,0**total surface downward shortwave radiation flux<br>
&nbsp;&nbsp;&nbsp;[mJ/m^2]<br>
<br>
&nbsp;&nbsp;&nbsp;ENDVARS<br>
<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;Thanks,<br>
<br>
&nbsp;&nbsp;&nbsp;Lydia<br>
<br>
&nbsp;&nbsp;&nbsp;--<br>
&nbsp;&nbsp;&nbsp;Lydia D. Rill<br>
&nbsp;&nbsp;&nbsp;M.S., Michigan State University 2016<br>
&nbsp;&nbsp;&nbsp;B.S., Valparaiso University 2014<br>
&nbsp;&nbsp;&nbsp;(224) 406-5130<br>
&nbsp;&nbsp;&nbsp;<a href="mailto:Lydia.D.Rill@gmail.com">Lydia.D.Rill@gmail.com</a> &lt;<a href="mailto:Lydia.D.Rill@gmail.com">mailto:Lydia.D.Rill@gmail.com</a>&gt;<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;_______________________________________________<br>
&nbsp;&nbsp;&nbsp;gradsusr mailing list<br>
&nbsp;&nbsp;&nbsp;<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a> &lt;<a href="mailto:gradsusr@gradsusr.org">mailto:gradsusr@gradsusr.org</a>&gt;<br>
&nbsp;&nbsp;&nbsp;<a href="http://gradsusr.org/mailman/listinfo/gradsusr">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
</blockquote>
<br>
<br>
&nbsp;&nbsp;&nbsp;_______________________________________________<br>
&nbsp;&nbsp;&nbsp;gradsusr mailing list<br>
&nbsp;&nbsp;&nbsp;<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a> &lt;<a href="mailto:gradsusr@gradsusr.org">mailto:gradsusr@gradsusr.org</a>&gt;<br>
&nbsp;&nbsp;&nbsp;<a href="http://gradsusr.org/mailman/listinfo/gradsusr">http://gradsusr.org/mailman/listinfo/gradsusr</a><br>
<br>
<br>
<br>
<br>
--<br>
Lydia D. Rill<br>
M.S., Michigan State University 2016<br>
B.S., Valparaiso University 2014<br>
(224) 406-5130<br>
<a href="mailto:Lydia.D.Rill@gmail.com">Lydia.D.Rill@gmail.com</a> &lt;<a href="mailto:Lydia.D.Rill@gmail.com">mailto:Lydia.D.Rill@gmail.com</a>&gt;<br>
<br>
<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
http://gradsusr.org/mailman/listinfo/gradsusr<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
-- <br>
<br>
Please note that <a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a> should be considered my NOAA<br>
email address, not <a href="mailto:cjs@gfdl.noaa.gov">cjs@gfdl.noaa.gov</a>.<br>
<br>
********************************************************************<br>
&nbsp;Charles Seman &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:Charles.Seman@noaa.gov">Charles.Seman@noaa.gov</a><br>
&nbsp;U.S. Department of Commerce / NOAA / OAR<br>
&nbsp;Geophysical Fluid Dynamics Laboratory &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;voice: (609) 452-6547<br>
&nbsp;201 Forrestal Road &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fax: (609) 987-5063<br>
&nbsp;Princeton, NJ &nbsp;08540-6649 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.gfdl.noaa.gov/~cjs/">http://www.gfdl.noaa.gov/~cjs/</a><br>
********************************************************************<br>
<br>
&quot;The contents of this message are mine personally and do not reflect any<br>
official or unofficial position of the United States Federal Government,<br>
the United States Department of Commerce, or NOAA.&quot;<br>
_______________________________________________<br>
gradsusr mailing list<br>
<a href="mailto:gradsusr@gradsusr.org">gradsusr@gradsusr.org</a><br>
http://gradsusr.org/mailman/listinfo/gradsusr<br>
</blockquote>
</div>
<br>
<div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="font-size: 12px; orphans: 2; widows: 2;">--</div>
<div style="font-size: 12px; orphans: 2; widows: 2;">Jennifer Miletta Adams<br>
Center for Ocean-Land-Atmosphere Studies (COLA)<br>
George Mason University<br>
<br>
<br>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</body>
</html>