mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-04 08:21:17 -05:00
Make wsprd Makefile work on Linux with gcc/gfortran.
This commit is contained in:
parent
871ff3892b
commit
9ff9dc5c42
@ -5,7 +5,7 @@ FC = gfortran
|
|||||||
CFLAGS= -I/usr/include -Wall -Wno-missing-braces -O3 -ffast-math
|
CFLAGS= -I/usr/include -Wall -Wno-missing-braces -O3 -ffast-math
|
||||||
LDFLAGS = -L/usr/lib
|
LDFLAGS = -L/usr/lib
|
||||||
FFLAGS = -O2 -Wall -Wno-conversion
|
FFLAGS = -O2 -Wall -Wno-conversion
|
||||||
LIBS = -lfftw3f -lm
|
LIBS = -lfftw3f -lm -lgfortran
|
||||||
|
|
||||||
# Default rules
|
# Default rules
|
||||||
%.o: %.c $(DEPS)
|
%.o: %.c $(DEPS)
|
||||||
@ -19,16 +19,12 @@ LIBS = -lfftw3f -lm
|
|||||||
%.o: %.F90
|
%.o: %.F90
|
||||||
${FC} ${FFLAGS} -c $<
|
${FC} ${FFLAGS} -c $<
|
||||||
|
|
||||||
all: wsprd wsprsim wsprd_exp
|
all: wsprd
|
||||||
|
|
||||||
DEPS = wsprsim_utils.h wsprd_utils.h fano.h jelinek.h nhash.h
|
DEPS = wsprsim_utils.h wsprd_utils.h fano.h jelinek.h nhash.h
|
||||||
OBJS1 = wsprd.o wsprsim_utils.o wsprd_utils.o tab.o fano.o jelinek.o nhash.o
|
OBJS1 = wsprd.o wsprsim_utils.o wsprd_utils.o tab.o fano.o jelinek.o nhash.o indexx.o osdwspr.o
|
||||||
wsprd: $(OBJS1)
|
wsprd: $(OBJS1)
|
||||||
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) $(LIBS)
|
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
OBJS2 = wsprsim.o wsprsim_utils.o wsprd_utils.o tab.o fano.o nhash.o
|
|
||||||
wsprsim: $(OBJS2)
|
|
||||||
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) $(LIBS)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm *.o wsprd wsprsim
|
rm *.o wsprd
|
||||||
|
91
lib/wsprd/indexx.f90
Normal file
91
lib/wsprd/indexx.f90
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
subroutine indexx(arr,n,indx)
|
||||||
|
|
||||||
|
parameter (M=7,NSTACK=50)
|
||||||
|
integer n,indx(n)
|
||||||
|
real arr(n)
|
||||||
|
integer i,indxt,ir,itemp,j,jstack,k,l,istack(NSTACK)
|
||||||
|
real a
|
||||||
|
|
||||||
|
do j=1,n
|
||||||
|
indx(j)=j
|
||||||
|
enddo
|
||||||
|
|
||||||
|
jstack=0
|
||||||
|
l=1
|
||||||
|
ir=n
|
||||||
|
1 if(ir-l.lt.M) then
|
||||||
|
do j=l+1,ir
|
||||||
|
indxt=indx(j)
|
||||||
|
a=arr(indxt)
|
||||||
|
do i=j-1,1,-1
|
||||||
|
if(arr(indx(i)).le.a) goto 2
|
||||||
|
indx(i+1)=indx(i)
|
||||||
|
enddo
|
||||||
|
i=0
|
||||||
|
2 indx(i+1)=indxt
|
||||||
|
enddo
|
||||||
|
if(jstack.eq.0) return
|
||||||
|
|
||||||
|
ir=istack(jstack)
|
||||||
|
l=istack(jstack-1)
|
||||||
|
jstack=jstack-2
|
||||||
|
|
||||||
|
else
|
||||||
|
k=(l+ir)/2
|
||||||
|
itemp=indx(k)
|
||||||
|
indx(k)=indx(l+1)
|
||||||
|
indx(l+1)=itemp
|
||||||
|
|
||||||
|
if(arr(indx(l+1)).gt.arr(indx(ir))) then
|
||||||
|
itemp=indx(l+1)
|
||||||
|
indx(l+1)=indx(ir)
|
||||||
|
indx(ir)=itemp
|
||||||
|
endif
|
||||||
|
|
||||||
|
if(arr(indx(l)).gt.arr(indx(ir))) then
|
||||||
|
itemp=indx(l)
|
||||||
|
indx(l)=indx(ir)
|
||||||
|
indx(ir)=itemp
|
||||||
|
endif
|
||||||
|
|
||||||
|
if(arr(indx(l+1)).gt.arr(indx(l))) then
|
||||||
|
itemp=indx(l+1)
|
||||||
|
indx(l+1)=indx(l)
|
||||||
|
indx(l)=itemp
|
||||||
|
endif
|
||||||
|
|
||||||
|
i=l+1
|
||||||
|
j=ir
|
||||||
|
indxt=indx(l)
|
||||||
|
a=arr(indxt)
|
||||||
|
3 continue
|
||||||
|
i=i+1
|
||||||
|
if(arr(indx(i)).lt.a) goto 3
|
||||||
|
|
||||||
|
4 continue
|
||||||
|
j=j-1
|
||||||
|
if(arr(indx(j)).gt.a) goto 4
|
||||||
|
if(j.lt.i) goto 5
|
||||||
|
itemp=indx(i)
|
||||||
|
indx(i)=indx(j)
|
||||||
|
indx(j)=itemp
|
||||||
|
goto 3
|
||||||
|
|
||||||
|
5 indx(l)=indx(j)
|
||||||
|
indx(j)=indxt
|
||||||
|
jstack=jstack+2
|
||||||
|
if(jstack.gt.NSTACK) stop 'NSTACK too small in indexx'
|
||||||
|
if(ir-i+1.ge.j-l)then
|
||||||
|
istack(jstack)=ir
|
||||||
|
istack(jstack-1)=i
|
||||||
|
ir=j-1
|
||||||
|
else
|
||||||
|
istack(jstack)=j-1
|
||||||
|
istack(jstack-1)=l
|
||||||
|
l=i
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
goto 1
|
||||||
|
|
||||||
|
end subroutine indexx
|
||||||
|
|
Loading…
Reference in New Issue
Block a user