subroutine genwave(itone,nsym,nsps,nwave,fsample,hmod,f0,icmplx,cwave,wave) real wave(nwave) complex cwave(nwave) integer hmod integer itone(nsym) logical ex real*8 dt,phi,dphi,twopi,freq,baud dt=1.d0/fsample twopi=8.d0*atan(1.d0) baud=fsample/nsps ! Calculate the audio waveform phi=0.d0 if(icmplx.le.0) wave=0. if(icmplx.eq.1) cwave=0. k=0 do j=1,nsym freq=f0 + itone(j)*hmod*baud dphi=twopi*freq*dt do i=1,nsps k=k+1 if(icmplx.eq.1) then cwave(k)=cmplx(cos(phi),sin(phi)) else wave(k)=sin(phi) endif phi=phi+dphi if(phi.gt.twopi) phi=phi-twopi enddo enddo !### TEMPORARY code to allow transmitting both A and B submodes inquire(file='Q65_Tx2',exist=ex) if(ex) then k=0 do j=1,nsym freq=f0 + itone(j)*2.d0*hmod*baud + 500.d0 dphi=twopi*freq*dt do i=1,nsps k=k+1 wave(k)=0.5*(wave(k)+sin(phi)) phi=phi+dphi if(phi.gt.twopi) phi=phi-twopi enddo enddo endif !### return end subroutine genwave