program f integer ls,le,cs,ce,c,l,i,j character*50 s,fn logical lex real,allocatable::a(:,:) c extracts columns from multiple files in F.LST if(iargc().ne.4)then write(6,*)' usage: f linestart lineend columnstart columnend' else call getarg(1,s) read(s,*)ls call getarg(2,s) read(s,*)le call getarg(3,s) read(s,*)cs call getarg(4,s) read(s,*)ce inquire(file='F.LST',exist=lex) if(lex)then open(9,file='F.LST',status='old') i=0 1 read(9,*,end=99,err=99) i=i+1 goto 1 99 close(9) c write(6,*)i,' files in F.LST' if(i.gt.0)then n=le-ls+1 nc=ce-cs+1 m=nc*i allocate(a(n,m)) c write(6,*)'matrix ',n,' x ',m open(9,file='F.LST',status='old') do 2 j=1,i read(9,'(a)')fn c write(6,*)fn open(12,file=fn) do 3 l=1,ls-1 3 read(12,*) do 4 l=1,le-ls+1 jj=(j-1)*nc 4 read(12,*)(a(l,jj+1),c=1,cs-1),(a(l,jj+c),c=1,nc) 2 close(12) close(9) do 5 l=1,n 5 write(6,*)(a(l,c),c=1,m) else write(6,*)'nothing in F.LST' endif else write(6,*)'F.LST does not exist' endif endif end