Alkim: I have made ascii data files for ut's 4->17, every hour (14 files). I tar'd them into a single file and compressed it. The file is on the machine hao.hao.ucar.edu in the anonymous ftp directory /pub/foster. The file is named alkimdat.tar.Z. Its about 4.8Mb. You can get it via anonymous ftp, with ftp in binary mode. Then uncompress it ("uncompress alkimdat.tar.Z", resulting in the file alkimdat.tar, ~19.4Mb). Then untar that file (tar xf alkimdat.tar). You should then have 14 separate ascii files with names tseydrx.utxx.dat, where xx is the ut. You can then remove the tar file. (I assume you are doing all this on a unix machine of course) Let me know when you have done this so I can remove the file from the ftp account on hao. Each ut file contains data for 44 "frames". Each frame consists of a 4-line header, followed by "x" values (the 73 longitudes), then the "y" values (31 heights from 75 to 105km), immediately followed by the data, which is a two dimensional array (73,31), with longitude varying first as in fortran. Each frame is a field at a single latitude. These are what we call "latitude slices", i.e., a vertical slice around a single latitude. The latitude at each frame is between -2.5 and 47.5 deg, every 5 deg, i.e., 11 slices. There are 4 fields (tn, o3, o1, and rho (o+o2+n2)), hence 11*4=44 frames. Each header gives the field, latitude, and ut. The x and y values are redundant, so you can remove them if you want. The neutral temperatures are deg K; O3, O1, and rho are number densities (cm3). These are all from a solar minimum March equinox run (94080) of the timesgcm, F107=67., F107A=72., HP=3GW, PHI=30KV. I recommend reading these ascii files, and rewriting binary files in whatever your favorite format is, then remove the ascii data. Then use the binary files to interpolate in all 4 dimensions to your flight paths. Below is a short fortran program to help you see how to read the ascii data. Good Luck, and let me know how it goes, --Ben ----------------------------------------------------------------------- Ben Foster High Altitude Observatory (HAO) foster@ncar.ucar.edu phone: 303-497-1595 fax: 303-497-1589 Nat. Center for Atmos. Res. P.O. Box 3000 Boulder CO 80307 USA ----------------------------------------------------------------------- program rdascii c character*40 fname character*80 histvol,field,lab,labx,laby character*1 ans dimension xx(100),yy(100),f(100,100) data lurd/9/ c do 200 iii=1,1000 write(6,"(' ')") write(6,"('Enter file name (zzz to stop): ',$)") read(5,*) fname if (fname(1:3).eq.'zzz') stop 'bye' open(lurd,file=fname,status='OLD',err=901) write(6,"('Ask about printing for every frame in the', + ' file? (y/n): ',$)") read(5,*) ans iprompt = 0 if (ans.eq.'y') iprompt = 1 nfr = 0 c c Read data from each frame: c 100 continue read(lurd,"(a)",end=900) histvol read(lurd,"(a)") field read(lurd,"(6x,i4)") iframe read(lurd,"(a)") lab read(lurd,"(a)") labx read(labx,"(3x,i4)") nx if (nx.gt.1) read(lurd,"(6e13.5)") (xx(i),i=1,nx) read(lurd,"(a)") laby read(laby,"(3x,i4)") ny if (ny.gt.1) read(lurd,"(6e13.5)") (yy(i),i=1,ny) c if (nx.gt.1.and.ny.gt.1) then read(lurd,"(6e13.5)") ((f(i,ii),i=1,nx),ii=1,ny) elseif (nx.eq.1.and.ny.gt.1) then read(lurd,"(6e13.5)") (f(1,i),i=1,ny) elseif (ny.eq.1.and.nx.gt.1) then read(lurd,"(6e13.5)") (f(i,1),i=1,nx) endif nfr = nfr+1 c c Conditionally echo to stdout: c write(6,"(' ')") write(6,"(a)") histvol(1:lenstr(histvol)) write(6,"(a)") field(1:lenstr(field)) write(6,"('Frame ',i4)") iframe write(6,"(a)") lab(1:lenstr(lab)) write(6,"(a)") labx(1:lenstr(labx)) if (nx.gt.1) then if (nfr.eq.1.or.iprompt.gt.0) then write(6,"('Print x-axis values? (y/n/q): ',$)") read(5,*) ans else ans = 'n' endif if (ans.eq.'y') write(6,"(6e13.5)") (xx(i),i=1,nx) if (ans.eq.'q') goto 902 endif write(6,"(a)") laby(1:lenstr(laby)) if (ny.gt.1) then if (nfr.eq.1.or.iprompt.gt.0) then write(6,"('Print y-axis values? (y/n/q): ',$)") read(5,*) ans else ans = 'n' endif if (ans.eq.'y') write(6,"(6e13.5)") (yy(i),i=1,ny) if (ans.eq.'q') goto 902 endif if (nfr.eq.1.or.iprompt.gt.0) then write(6,"('Print data values? (y/n/q): ',$)") read(5,*) ans else ans = 'n' endif if (ans.eq.'y') then if (nx.gt.1.and.ny.gt.1) then write(6,"(6e13.5)") ((f(i,ii),i=1,nx),ii=1,ny) elseif (nx.eq.1.and.ny.gt.1) then write(6,"(6e13.5)") (f(1,i),i=1,ny) elseif (ny.eq.1.and.nx.gt.1) then write(6,"(6e13.5)") (f(i,1),i=1,nx) endif endif if (ans.eq.'q') goto 902 goto 100 c stop 900 continue write(6,"('EOF encountered on file ',a,' (lu ',i3,')')") + fname,lurd 902 close(lurd) goto 200 901 write(6,"('Error opening file ',a)") fname 200 continue stop end c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c function lenstr(str) character*(*) str c c Return index to last non-blank char in str c length = len(str) do i=length,1,-1 if (str(i:i).ne.' ') then lenstr = i return endif enddo lenstr = 0 return end c subroutine clearstr(str) c c Set given string to all blanks c character*(*) str length = len(str) do i=1,length str(i:i) = ' ' enddo return end c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c