mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			44 lines
		
	
	
		
			796 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			796 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| 
								 | 
							
								subroutine interleave24(id,ndir)
							 | 
						||
| 
								 | 
							
								  integer*1 id(0:205),itmp(0:205)
							 | 
						||
| 
								 | 
							
								  integer j0(0:205)
							 | 
						||
| 
								 | 
							
								  logical first
							 | 
						||
| 
								 | 
							
								  data first/.true./
							 | 
						||
| 
								 | 
							
								  save first,j0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if(first) then
							 | 
						||
| 
								 | 
							
								     k=-1
							 | 
						||
| 
								 | 
							
								     do i=0,255
							 | 
						||
| 
								 | 
							
								        m=i
							 | 
						||
| 
								 | 
							
								        n=iand(m,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/2,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/4,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/8,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/16,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/32,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/64,1)
							 | 
						||
| 
								 | 
							
								        n=2*n + iand(m/128,1)
							 | 
						||
| 
								 | 
							
								        if(n.le.205) then
							 | 
						||
| 
								 | 
							
								           k=k+1
							 | 
						||
| 
								 | 
							
								           j0(k)=n
							 | 
						||
| 
								 | 
							
								        endif
							 | 
						||
| 
								 | 
							
								     enddo
							 | 
						||
| 
								 | 
							
								     first=.false.
							 | 
						||
| 
								 | 
							
								  endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if(ndir.eq.1) then
							 | 
						||
| 
								 | 
							
								     do i=0,205
							 | 
						||
| 
								 | 
							
								        itmp(j0(i))=id(i)
							 | 
						||
| 
								 | 
							
								     enddo
							 | 
						||
| 
								 | 
							
								  else
							 | 
						||
| 
								 | 
							
								     do i=0,205
							 | 
						||
| 
								 | 
							
								        itmp(i)=id(j0(i))
							 | 
						||
| 
								 | 
							
								     enddo
							 | 
						||
| 
								 | 
							
								  endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  do i=0,205
							 | 
						||
| 
								 | 
							
								     id(i)=itmp(i)
							 | 
						||
| 
								 | 
							
								  enddo
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								end subroutine interleave24
							 |