31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| 
								 | 
							
								subroutine genwspr(message,msgsent,itone)
							 | 
						||
| 
								 | 
							
								! Encode a WSPR message and generate the array of channel symbols.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  character*22 message,msgsent
							 | 
						||
| 
								 | 
							
								  parameter (MAXSYM=176)
							 | 
						||
| 
								 | 
							
								  integer*1 symbol(MAXSYM)
							 | 
						||
| 
								 | 
							
								  integer*1 data0(11)
							 | 
						||
| 
								 | 
							
								  integer*4 itone(162)
							 | 
						||
| 
								 | 
							
								  integer npr3(162)
							 | 
						||
| 
								 | 
							
								  data npr3/                                      &
							 | 
						||
| 
								 | 
							
								      1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,    &
							 | 
						||
| 
								 | 
							
								      0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,    &
							 | 
						||
| 
								 | 
							
								      0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1,    &
							 | 
						||
| 
								 | 
							
								      1,0,1,0,0,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,    &
							 | 
						||
| 
								 | 
							
								      0,0,1,0,1,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,    &
							 | 
						||
| 
								 | 
							
								      0,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,0,0,1,1,    &
							 | 
						||
| 
								 | 
							
								      0,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,1,1,    &
							 | 
						||
| 
								 | 
							
								      0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,1,1,0,    &
							 | 
						||
| 
								 | 
							
								      0,0/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  call wqencode(message,ntype,data0)          !Source encoding
							 | 
						||
| 
								 | 
							
								  call encode232(data0,162,symbol)            !Convolutional encoding
							 | 
						||
| 
								 | 
							
								  call inter_wspr(symbol,1)                   !Interleaving
							 | 
						||
| 
								 | 
							
								  do i=1,162
							 | 
						||
| 
								 | 
							
								     itone(i)=npr3(i) + 2*symbol(i)
							 | 
						||
| 
								 | 
							
								  enddo
							 | 
						||
| 
								 | 
							
								  msgsent=message                             !### To be fixed... ?? ###
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return
							 | 
						||
| 
								 | 
							
								end subroutine genwspr
							 |