C INTERNATIONAL AVS CENTER C (This disclaimer must remain at the top of all files) C C WARRANTY DISCLAIMER C C This module and the files associated with it are distributed free of charge. C It is placed in the public domain and permission is granted for anyone to use, C duplicate, modify, and redistribute it unless otherwise noted. Some modules C may be copyrighted. You agree to abide by the conditions also included in C the AVS Licensing Agreement, version 1.0, located in the main module C directory located at the International AVS Center ftp site and to include C the AVS Licensing Agreement when you distribute any files downloaded from C that site. C C The International AVS Center, MCNC, the AVS Consortium and the individual C submitting the module and files associated with said module provide absolutely C NO WARRANTY OF ANY KIND with respect to this software. The entire risk as to C the quality and performance of this software is with the user. IN NO EVENT C WILL The International AVS Center, MCNC, the AVS Consortium and the individual C submitting the module and files associated with said module BE LIABLE TO C ANYONE FOR ANY DAMAGES ARISING FROM THE USE OF THIS SOFTWARE, INCLUDING, C WITHOUT LIMITATION, DAMAGES RESULTING FROM LOST DATA OR LOST PROFITS, OR ANY C SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES. C C This AVS module and associated files are public domain software unless C otherwise noted. Permission is hereby granted to do whatever you like with C it, subject to the conditions that may exist in copyrighted materials. Should C you wish to make a contribution toward the improvement, modification, or C general performance of this module, please send us your comments: why you C liked or disliked it, how you use it, and most important, how it helps your C work. We will receive your comments at avs@ncsc.org. C C Please send AVS module bug reports to avs@ncsc.org. C subroutine ftghtbb(unit,maxdim,rowlen,nrows,tfields,st) integer unit,maxdim,rowlen,nrows,tfields,st integer tbcol(999) character*80 ttype(999) character*80 tform(999) character*80 tunit(999) character*80 extname call ftghtb(unit,maxdim,rowlen,nrows,tfields,ttype, * tbcol,tform,tunit,extname,st) return end subroutine ftghbnn(unit,maxdim,nrows,tfields, * varidat,st) integer unit,maxdim,nrows,tfields,st,varidat character*80 ttype(999) character*80 tform(999) character*80 tunit(999) character*80 extname call ftghbn(unit,maxdim,nrows,tfields,ttype, * tform,tunit,extname,varidat,st) CCCC istart=1 CCCC do i=1,tfields CCCC do j=80,1,-1 CCCC if(ttype(i)(j:j).gt.' ') then CCCC string(istart:istart+j-1)=ttype(i)(1:j) CCCC istart=istart+j CCCC goto 10 CCCC end if CCCC end do CCCC10 continue CCCC do j=80,1,-1 CCCC if(tunit(i)(j:j).gt.' ') then CCCC string(istart:istart)='/' CCCC istart=istart+1 CCCC string(istart:istart+j-1)=tunit(i)(1:j) CCCC istart=istart+j-1 CCCC goto 20 CCCC end if CCCC end do CCCC CCCC20 string(istart:istart)='^' CCCC istart=istart+1 CCCC end do CCCC istart=istart-1 CCCC string(istart:istart)=char(0) return end subroutine get_data_type(unit,component,type,string, * width,repeat,st,mode) integer unit,component,st,repeat,width,type,mode integer tbcol(1) character*(*) string character*80 ttype(1) character*80 tform(1) character*80 tunit(1) character*80 snull character*80 tdisp character*80 datatype real*8 tscal,tzero integer tnull,rep2 if(mode.eq.1) then call ftgacl(unit,component,ttype,tbcol,tunit,tform, * tscal,tzero,snull,tdisp,st) if(st.ne.0) return call ftbnfm(tform,type,repeat,width,st) else call ftgbcl(unit,component,ttype,tunit,datatype,repeat, * tscal,tzero,tnull,tdisp,st) call ftbnfm(datatype,type,rep2,width,st) if(type .lt.0) type = -type end if do i=len(ttype(1)),1,-1 if(ttype(1)(i:i).gt.' ') then lng=i goto 10 end if end do lng=0 10 if(lng.eq.0) then lng=6 string(1:lng)='String' else string(1:lng)=ttype(1) end if string(lng+1:lng+1)=char(0) return end subroutine ftgcvss(unit,comp,rownum,felem,nelem, * width,string,anyf,st) character*(*) string character*80 tab(999) integer unit,comp,rownum,felem,nelem integer anyf,st,width character*80 nullval nullval='NULL' call ftgcvs(unit,comp,rownum,felem,nelem, * nullval,tab,anyf,st) istart=1 do i=felem,nelem do j=width,1,-1 if(tab(i)(j:j).gt.' ') then string(istart:istart+j-1)=tab(i)(1:j) istart=istart+j goto 20 end if end do 20 string(istart:istart)='^' istart=istart+1 end do istart=istart-1 string(istart:istart)=char(0) return end