WSJT-X/lib/scr258.f90

52 lines
2.1 KiB
Fortran

subroutine scr258(isync,idat,ndir,ichan)
integer*1 isync(43)
integer*1 idat(215)
integer*1 ichan(258)
integer indx(258)
data indx/ &
-1, 1, 129, 65, 193, 33, -2, 161, 97, 17, & ! 10
145, 81, -3, 209, 49, 177, 113, 9, -4, 137, & ! 20
73, 201, 41, 169, -5, 105, 25, 153, 89, 57, & ! 30
-6, 185, 121, 5, 133, 69, -7, 197, 37, 165, & ! 40
101, 21, -8, 149, 85, 213, 53, 181, -9, 117, & ! 50
13, 141, 77, 205, -10, 45, 173, 109, 29, 157, & ! 60
-11, 93, 61, 189, 125, 3, -12, 131, 67, 195, & ! 70
35, 163, -13, 99, 19, 147, 83, 211, -14, 51, & ! 80
179, 115, 11, 139, -15, 75, 203, 43, 171, 107, & ! 90
-16, 27, 155, 91, 59, 187, -17, 123, 7, 135, & !100
71, 199, -18, 39, 167, 103, 23, 151, -19, 87, & !110
215, 55, 183, 119, -20, 15, 143, 79, 207, 47, & !120
-21, 175, 111, 31, 159, 95, -22, 63, 191, 127, & !130
2, 130, -23, 66, 194, 34, 162, 98, -24, 18, & !140
146, 82, 210, 50, -25, 178, 114, 10, 138, 74, & !150
-26, 202, 42, 170, 106, 26, -27, 154, 90, 58, & !160
186, 122, -28, 6, 134, 70, 198, 38, -29, 166, & !170
102, 22, 150, 86, -30, 214, 54, 182, 118, 14, & !180
-31, 142, 78, 206, 46, 174, -32, 110, 30, 158, & !190
94, 62, -33, 190, 126, 4, 132, 68, -34, 196, & !200
36, 164, 100, 20, -35, 148, 84, 212, 52, 180, & !210
-36, 116, 12, 140, 76, 204, -37, 44, 172, 108, & !220
28, 156, -38, 92, 60, 188, 124, 8, -39, 136, & !230
72, 200, 40, 168, -40, 104, 24, 152, 88, 56, & !240
-41, 184, 120, 16, 144, 80, -42, 208, 48, 176, & !250
112, 32, -43, 160, 96, 64, 192, 128/
save
if(ndir.gt.0) then
do i=1,258
j=indx(i)
if(j.lt.0) ichan(i)=isync(-j)
if(j.gt.0) ichan(i)=idat(j)
enddo
else
do i=1,258
j=indx(i)
if(j.lt.0) isync(-j)=ichan(i)
if(j.gt.0) idat(j)=ichan(i)
enddo
endif
end subroutine scr258