<HTML dir=ltr><HEAD><TITLE>Re: [Proj] lla file format</TITLE>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.6000.16608" name=GENERATOR></HEAD>
<BODY>
<DIV id=idOWAReplyText36664 dir=ltr>
<DIV dir=ltr><FONT face="Times New Roman" color=#000000 size=2>Is this what you need?</FONT></DIV>
<DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr><FONT size=2>Cliff Mugnier</FONT></DIV>
<DIV dir=ltr><FONT size=2>LOUISIANA STATE UNIVERSITY</FONT></DIV>
<DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
<DIV dir=ltr>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; program convert.ftn&nbsp; -- cpfs csm golden,co<BR>c<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this routine converts ascii files of x,y,z1,z2,...zn <BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data to the center format for binary file storage<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the interactive nature allows for creation of the<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appropriate headers and file formats<BR>c<BR>c----------------------------------------------------------------<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; program convdam<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parameter(nfile=50,nx=6000,ny=10)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; character rident*56,pgm*8,filin(nfile)*30,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filout*30,formin*56<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; character gname(nfile)*8<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dimension data(ny,nx),zero(ny)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; common /inout/ iit,iot<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; common /input/ nv,nr,formin,rident,pgm,filout<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data iit,iot/5,6/,in,iout/30,31/,nc/-1/<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data pgm/'convertd'/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data x0,dx,y0,dy,angle/5*0.0/,zero/ny*0.0/</DIV>
<DIV dir=ltr>&nbsp;iit = 5<BR>&nbsp;iot = 6<BR>&nbsp;in = 30<BR>&nbsp;iout = 31<BR>&nbsp;nc = -1<BR>&nbsp;pgm = 'convertd'<BR>c<BR>c......................................................................<BR>1000&nbsp; format(///,5x,'this program converts a formatted data file to',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'an unformatted binary file conforming to the&nbsp; ',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'center format',//,' ** warning - the input files',<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' are assumed to have a uniform format;',<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /,' all the groups are to have the same number',<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' and type of variables',//,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'each group will come from one input file.',//,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'program is dimensioned to read',i3,' files of',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8x,i6,' variables per sample',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8x,i6,' samples per group',//)<BR>1005&nbsp; format(' enter number of input-files/output-groups',<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' (eg. flightlines):')<BR>1010&nbsp; format(' enter filename for input file ',i3,' :')<BR>1020&nbsp; format(/,' enter filename for output file:')<BR>1030&nbsp; format(a30)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>1040&nbsp; format(///,5x,'enter header information,up to 56 characters',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'this should include data identifier',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'and coordinate system used !!')<BR>1050&nbsp; format(a56)<BR>1070&nbsp; format(/,5x,'enter the number of variables at each location',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'this includes the x and y locations')&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>1080&nbsp; format(/,5x,'enter the format of the input file records',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5x,'e.g. (3f20.4)&nbsp;&nbsp;&nbsp; ')<BR>1100&nbsp; format(' enter an groupname (8 char) for input file ',a30,)<BR>1110&nbsp; format(a8) <BR>1120&nbsp; format('there will be',i3,' sample sets on each binary record')<BR>1130&nbsp; format(' there are ',i6,' samples in group: ',a8)<BR>1300&nbsp; format(' cannot open file ',a30,/,' reenter correct name:')<BR>1400&nbsp; format(' error in read; current format: ',a56,//,<BR>&nbsp;&nbsp;&nbsp;&nbsp; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' fix file and/or reenter correct format:')<BR>c......................................................................<BR>c<BR>c...write intro to screen</DIV>
<DIV dir=ltr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1000)nfile,ny,nx</DIV>
<DIV dir=ltr>c...get in and out filenames <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1005)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,*)nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 50 i = 1,nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1010)i<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1030)filin(i)<BR>50&nbsp;&nbsp;&nbsp; continue<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1020)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1030)filout<BR>c<BR>c...get input information from user and set pgm for header<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1040)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1050)rident<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1070)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,*)nv<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1080)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1050)formin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 60 i = 1,nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1100)filin(i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1110)gname(i)<BR>60&nbsp;&nbsp;&nbsp; continue<BR>c<BR>c...check input information and allow for changes<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call go(nfile,filin,gname)<BR>c<BR>c...now figure number of samples that will fit in 256 bytes<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nrec=64/nv<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1120)nrec<BR>c<BR>c...open output file<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open(iout,file=filout,access='direct',<BR>&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp; form='unformatted',status='unknown',recl=256)<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewind(iout)<BR>c<BR>c...write header to output file<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nrd = 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iout,rec=nrd)rident,pgm,nc,nr,nv,x0,dx,y0,dy,angle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nrd = nrd + 1<BR>c<BR>c...proceed to open input data files<BR>c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 70 if=1,nr<BR>1&nbsp;&nbsp;&nbsp;&nbsp; open(in,file=filin(if),status='old',err=2000)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewind(in)</DIV>
<DIV dir=ltr>c...read in file/group data and recover the number of samples (nsamp)<BR>&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;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j = 1<BR>80&nbsp;&nbsp;&nbsp; read(in,fmt=formin,end=100,err=3000) (data(k,j),k=1,nv)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j = j + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 80</DIV>
<DIV dir=ltr>100&nbsp;&nbsp; nsamp = j - 1</DIV>
<DIV dir=ltr>c...write group header to binary file</DIV>
<DIV dir=ltr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iout,rec=nrd)gname(if),nsamp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nrd = nrd + 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,1130)nsamp,gname(if)</DIV>
<DIV dir=ltr>c...check to see if last binary record is filled<BR>c&nbsp;&nbsp; (use integer division)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numrec = nsamp / nrec<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nsleft = nsamp - (nrec*numrec)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(nsleft.eq.0)then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numwri = numrec<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; numwri = numrec + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endif</DIV>
<DIV dir=ltr>c...see how many zeros are in remainder part of record</DIV>
<DIV dir=ltr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nremain = 64 - nv * nrec<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>c...write this data to records (extra space in records are zeros)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 110 k=1,numwri<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iout,rec=nrd)((data(j,i),j=1,nv),i=(k-1)*nrec+1,k*nrec),<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (zero(ir),ir=1,nremain)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nrd = nrd + 1&nbsp;&nbsp;&nbsp; <BR>110&nbsp;&nbsp; continue</DIV>
<DIV dir=ltr>c...zero data array for next file read<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 120 kk=1,nx<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 130 kkk=1,ny<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data(kkk,kk) = 0.0<BR>130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue<BR>120&nbsp;&nbsp; continue<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>c...loop back up and write next file<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close(in)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; go to 70<BR>2000&nbsp; write(iot,1300)filin(if)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1030)filin(if)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 1<BR>3000&nbsp; write(iot,1400)formin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,1050)formin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 80<BR>70&nbsp;&nbsp;&nbsp; continue<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close(iout)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stop&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end<BR>c-------------------------------------------------------------------<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subroutine go(nfile,filin,gname)<BR>c<BR>c&nbsp; purpose: allows alteration of input parameters<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; character rident*56,pgm*8,filin(nfile)*30,ac*1,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; filout*30,formin*56,gname(nfile)*8,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp; buffer*200<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; common /inout/ iit,iot<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; common /input/ nv,nr,formin,rident,pgm,filout<BR>c....................................................................<BR>100&nbsp;&nbsp; format(/,' there are ',i3,' input data files:',/)<BR>102&nbsp;&nbsp; format(' file ',i3,' is :',a30)<BR>103&nbsp;&nbsp; format(/,'&nbsp; enter filename number to change: ',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp; (enter 0 if no changes desired)')<BR>104&nbsp;&nbsp; format(/,' file ',i3,' is presently :',a30,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' please enter correct filename :')<BR>105&nbsp;&nbsp; format(a30)<BR>110&nbsp;&nbsp; format(/,' there are ',i3,' group names:',/)<BR>111&nbsp;&nbsp; format(' group ',i3,' is :',a8)<BR>112&nbsp;&nbsp; format(/,'&nbsp; enter groupname number to change: ',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp; (enter 0 if no changes desired)')<BR>113&nbsp;&nbsp; format(/,' group ',i3,' is presently :',a8,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' please enter correct groupname (8 char):')<BR>114&nbsp;&nbsp; format(a8)<BR>300&nbsp;&nbsp; format(/,' okay, enter changes ... (c/r twice when finished)',/)<BR>301&nbsp;&nbsp; format(a1)<BR>c....................................................................<BR>200&nbsp;&nbsp;&nbsp;&nbsp; write(iot,400)nr,nr,formin,filout,rident,pgm,nr,nv<BR>400&nbsp;&nbsp;&nbsp;&nbsp; format(/////,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' the following are the control parameters:',//,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 1. enter&nbsp; 1&nbsp; to change any of the ',i3,' input files',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 2. enter&nbsp; 2&nbsp; to change any of the ',i3,' group names',/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 3. input files format (assumed the same): ',/,4x,a56,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 4. output filename: ',/,4x,a30,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 5. output file header comment:',/,4x,a56,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 6. program title (8 CHARACTERS): ...................',A8,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 7. NUMBER OF DATA Groups in output file: ...........',i3,/,<BR>&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; ' 8. number of variables per sample: .................',i3,//)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,*)' do you wish to change anything ? (y/n) :'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,301)ac&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ac.eq.'n'.or.ac.eq.'n')return<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,300)<BR>c&nbsp;&nbsp;&nbsp; an 80 character buffer is used to input the changed parameters<BR>c&nbsp;&nbsp;&nbsp; from the crt screen.&nbsp; the number identifying the parameter is<BR>c&nbsp;&nbsp;&nbsp; read first then the parameter is read.&nbsp; changes are accordingly<BR>c&nbsp;&nbsp;&nbsp; made.&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; <BR>c<BR>201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,fmt='(a)',end=200)buffer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(buffer(1:2),403)chng&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>403&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format(f2.0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>410&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format(f2.0,1x,a8)<BR>420&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format(f2.0,1x,a30)<BR>430&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format(f2.0,1x,a56)<BR>440&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format(f2.0,1x,i3)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.1.0)goto 500<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.2.0)goto 600<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.3.0)read(buffer,430)chng,formin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.4.0)read(buffer,420)chng,filout<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.5.0)read(buffer,430)chng,rident<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.6.0)read(buffer,410)chng,pgm<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.7.0)read(buffer,440)chng,nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.8.0)read(buffer,440)chng,nv<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(chng.eq.0.0)goto 200<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 201<BR>c<BR>500&nbsp;&nbsp; write(iot,100)nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 501 i=1,nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,102)filin(i)<BR>501&nbsp;&nbsp; continue<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,103)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,*)ichng<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ichng.eq.0)goto 200<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,104)ichng,filin(ichng)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,105)filin(ichng)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 500</DIV>
<DIV dir=ltr>600&nbsp;&nbsp; write(iot,110)nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do 601 i=1,nr<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,111)gname(i)<BR>601&nbsp;&nbsp; continue<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,112)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,*)ichng<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ichng.eq.0)goto 200<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(iot,113)ichng,gname(ichng)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read(iit,114)gname(ichng)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 600<BR>c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end</DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> proj-bounces@lists.maptools.org on behalf of Eric Miller<BR><B>Sent:</B> Tue 26-Feb-08 12:00<BR><B>To:</B> PROJ.4 and general Projections Discussions<BR><B>Subject:</B> Re: [Proj] lla file format<BR></FONT><BR></DIV>
<DIV>
<P><FONT size=2>As far as I can tell, it is only documented in the Fortran source code for nadgrd.&nbsp; Get the sources and read "readme.grd" for some help...<BR><BR>"""<BR>The program NADCON reads binary grids that contain NAD 27 to NAD 83<BR>latitude and longitude shifts.&nbsp; The first record in a grid file consists of<BR>header information.&nbsp; All the other records consist of FORTRAN REAL*4<BR>numbers.&nbsp; The grid files are unformatted and direct access.<BR><BR>...<BR>"""&nbsp;<BR><BR>&gt;&gt;&gt; On 2/16/2008 at 5:30 PM, "Richard Greenwood" &lt;richard.greenwood@gmail.com&gt;<BR>wrote:<BR>&gt; Can anyone point me to documentation of the *.lla file format?<BR><BR><BR>_______________________________________________<BR>Proj mailing list<BR>Proj@lists.maptools.org<BR><A href="http://lists.maptools.org/mailman/listinfo/proj">http://lists.maptools.org/mailman/listinfo/proj</A><BR></FONT></P></DIV></BODY></HTML>