program shuffle character*120 s character*10 s10 integer,allocatable::ind(:) nat=27 allocate(ind(6*nat+1)) ind(1)=1 do 1 i=1,3*nat do 1 k=-1,1,2 j=1+i if(k.lt.0)j=1+3*nat+i c new order l=2+2*(i-1)+(k+1)/2 ind(j)=l 1 write(6,600)i,k,j,l 600 format(i6,i3,2i6) open(9,file='SHUFFLE.OUT') do 2 i=1,6*nat+1 write(s10,100)ind(i) 100 format(i10) call ss(s10,i1,i2) open(8,file=s10(i1:i2)//'.G.out',status='old') 3 read(8,80,end=99,err=99)s 80 format(a120) call ws(s) goto 3 99 close(8) 2 write(6,601)i,s10//'.G.out' 601 format(i6,' ',a16) close(9) end subroutine ws(s) character*(*) s call ss(s,i,j) do 1 ii=1,j 1 write(9,90)s(ii:ii) 90 format(A1,$) write(9,*) return end subroutine ss(s,i,j) character*(*) s do 1 i=1,len(s) 1 if(s(i:i).ne.' ')goto 2 2 do 3 j=len(s),1,-1 3 if(s(j:j).ne.' ')goto 4 4 return end