subroutine PickRecord(str,len,rec,nn) !将字符串str中的记录,转换成果数组rec(nn) implicit none character*800::str,b integer::len,nn,i,j,k,m,err real*8::rec(800) !--------------------------------------------------------------------- len=len_trim(str) if(len<2)then rec=0.d0;nn=0;return endif k=1; m=1 do i=1,len if(str(i:i)==','.or.str(i:i)==' '.or.iachar(str(i:i))==9.or.iachar(str(i:i))==11) then if(i-1>=m) then do j=1,len b(j:j)=' ' enddo b(1:i-m+1)=str(m:i-1) read(b,*,iostat=err) rec(k) if(abs(err)>0)rec(k)=-1.d0 k=k+1 endif m=i+1 endif enddo b(1:i-m+1)=str(m:len) read(b,*,iostat=err) rec(k) if(abs(err)>0)rec(k)=-1.d0 nn=k end