diff --git a/CMakeLists.txt b/CMakeLists.txt index c6d19c6a9..3f7d8072f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -416,6 +416,7 @@ set_source_files_properties (${ka9q_CSRCS} PROPERTIES COMPILE_FLAGS -Wno-sign-co set (wsjt_CSRCS ${ka9q_CSRCS} lib/ftrsd/ftrsd2.c + lib/sgran.c lib/gran.c lib/igray.c lib/init_random_seed.c diff --git a/lib/JTMSKsim.f90 b/lib/JTMSKsim.f90 index 2a823d948..c9a17d605 100644 --- a/lib/JTMSKsim.f90 +++ b/lib/JTMSKsim.f90 @@ -41,6 +41,9 @@ program JTMSKsim phi0=0. sig=10.0**(0.05*snrdb) + call init_random_seed(1) ! seed Fortran RANDOM_NUMBER generator + call sgran() ! see C rand generator (used in gran) + ! Generate the Tx waveform cb11=0. do j=1,234 diff --git a/lib/chkfft.f90 b/lib/chkfft.f90 index 84208a91e..f0ab4e8a6 100644 --- a/lib/chkfft.f90 +++ b/lib/chkfft.f90 @@ -42,6 +42,8 @@ program chkfft call getarg(5,arg) read(arg,*) npatience + call sgran() + if(list) write(*,1000) infile,nr,nw,ncomplex,npatience 1000 format(/'infile: ',a12,' nr:',i2,' nw',i2,' nc:',i2,' np:',i2/) if(.not.list) write(*,1002) nfft,nr,nw,ncomplex,npatience diff --git a/lib/genmet.f90 b/lib/genmet.f90 index 0682bf80b..81f2e56d4 100644 --- a/lib/genmet.f90 +++ b/lib/genmet.f90 @@ -33,6 +33,8 @@ program genmet hist=0 nerr=0 + call sgran() + do iter=1,iters do i=0,ntones-1 r(i)=0. diff --git a/lib/init_random_seed.h b/lib/init_random_seed.h index aa9500514..01480338d 100644 --- a/lib/init_random_seed.h +++ b/lib/init_random_seed.h @@ -2,7 +2,7 @@ #define INIT_RANDOM_SEED_H__ #ifdef __cplusplus -exten "C" { +extern "C" { #endif /* diff --git a/lib/jt4sim.f90 b/lib/jt4sim.f90 index 1950ce327..aabaee707 100644 --- a/lib/jt4sim.f90 +++ b/lib/jt4sim.f90 @@ -45,7 +45,8 @@ program jt4sim freq=f0 !Silence compiler warning dphi=0.0 !Silence compiler warning - call init_random_seed() + call init_random_seed(1) ! seed Fortran RANDOM_NUMBER generator + call sgran() ! see C rand generator (used in gran) h=default_header(12000,npts) diff --git a/lib/jt65sim.f90 b/lib/jt65sim.f90 index 04f3ab62c..96f1331fa 100644 --- a/lib/jt65sim.f90 +++ b/lib/jt65sim.f90 @@ -35,7 +35,8 @@ program jt65sim go to 999 endif - call init_random_seed(1) + call init_random_seed(1) ! seed Fortran RANDOM_NUMBER generator + call sgran() ! see C rand generator (used in gran) csubmode='A' call getarg(1,csubmode) diff --git a/lib/jt9sim.f90 b/lib/jt9sim.f90 index 29c775101..c9f4c7e79 100644 --- a/lib/jt9sim.f90 +++ b/lib/jt9sim.f90 @@ -67,6 +67,9 @@ program jt9sim ! if(minutes.eq.30) f0=1025. + call init_random_seed(1) ! seed Fortran RANDOM_NUMBER generator + call sgran() ! see C rand generator (used in gran) + h=default_header(12000,npts) k=0 !Silence compiler warning diff --git a/lib/noisegen.f90 b/lib/noisegen.f90 index f92a9df01..333fc4696 100644 --- a/lib/noisegen.f90 +++ b/lib/noisegen.f90 @@ -2,6 +2,9 @@ subroutine noisegen(d4,nmax) real*4 d4(4,nmax) + call init_random_seed(1) ! seed Fortran RANDOM_NUMBER generator + call sgran() ! see C rand generator (used in gran) + do i=1,nmax d4(1,i)=gran() d4(2,i)=gran() diff --git a/lib/sgran.c b/lib/sgran.c index e3ac9a804..b48222e9b 100644 --- a/lib/sgran.c +++ b/lib/sgran.c @@ -1,8 +1,7 @@ #include "init_random_seed.h" -/* seed rand */ -float sgran_() +/* Fortran wrapper to seed the C library rand */ +void sgran_(void) { init_random_seed(); - return(0); } diff --git a/lib/t1.f90 b/lib/t1.f90 index 97dc73ba1..ea2a636c4 100644 --- a/lib/t1.f90 +++ b/lib/t1.f90 @@ -23,7 +23,9 @@ program t1 call getarg(3,arg) read(arg,*) iters - call init_random_seed() + call init_random_seed(1) ! seed Fortran RANDOM_NUMBER generator + call sgran() ! see C rand generator (used in gran) + call random_number(r) itone=0 where(r.gt.0.5) itone=1 diff --git a/lib/timefft.f90 b/lib/timefft.f90 index 4e00838df..72ab41b2b 100644 --- a/lib/timefft.f90 +++ b/lib/timefft.f90 @@ -19,6 +19,8 @@ program timefft lthreading=maxthreads.ge.1 maxthreads=max(1,maxthreads) + call sgran() ! see C rand generator (used in gran) + ! Allocate data arrays pa=fftwf_alloc_complex(int(nfft,C_SIZE_T)) call c_f_pointer(pa,a,[nfft]) diff --git a/main.cpp b/main.cpp index 5ed5b2aa6..c388b09ff 100644 --- a/main.cpp +++ b/main.cpp @@ -28,6 +28,7 @@ #include "SettingsGroup.hpp" #include "TraceFile.hpp" #include "mainwindow.h" +#include "lib/init_random_seed.h" namespace { @@ -44,6 +45,8 @@ namespace int main(int argc, char *argv[]) { + init_random_seed (); + register_types (); // make the Qt magic happen // Multiple instances: @@ -56,7 +59,7 @@ int main(int argc, char *argv[]) // consistent format, do this after // instantiating QApplication so // that GUI has correct l18n - + // Override programs executable basename as application name. a.setApplicationName ("WSJT-X"); a.setApplicationVersion (version ());