#                            Hitachi
#FFLAGS  = -$(MODE) -model=F1 \
#	  -nosave -excnvf -precexp=0 -noprecexpio \
#          -opt=ss -nopredicate -w \
#          -pvfunc=2 \
#          -procnum=8 -omp \
#          -uinline=2:ext
#LDFLAGS = -$(MODE) -parallel
#FC      = f90
#MODE    = 64
#LIB     = 
#LIB     = -lpl
#                            Absoft compiler
# FFLAGS  =  -N51 -N15 -N3 -N26 -B100 -O -w -f -s
#LIB =   
#FC =   f77
#MODE   =
#LDFLAGS =
#                           Flags for Portland
# FFLAGS  =  -fast  -Mbyteswapio
# FFLAGS  =  -mp -Knoieee -Mconcur=dist:cyclic -Minline -Mvect -fast  -Mbyteswapio
#LDFLAGS = 
#FC      = pgf77
#MODE    = 
#LIB     = 
#                           Flags for Origin
# FFLAGS  = -mp -LNO -Ofast=ip27 -INLINE:=ON -IPA -OPT:roundoff=3:Olimit=0:fast_sqrt=ON:IEEE_arithmetic=3
#LDFLAGS = 
#FC      = f77
#MODE    = -64 
#LIB     = 
#                           Flags for Alpha
# FFLAGS  = -O4 -fast -convert big_endian
#LDFLAGS = 
#FC      = ifort
#MODE    = 
#LIB     = 
#FC     = g77
#FFLAGS = -O2
#FC = ifc
#FFLAGS = -fast -w -convert big_endian -tpp6 -xK -Vaxlib
#LDFLAGS = -fast -w  -convert big_endian -tpp6 -xK -Vaxlib
#FC = pgf77
#FFLAGS = -O3  -Bstatic -byteswapio -fastsse -Mipa=fast
#LDFLAGS = -O3  -Bstatic  -byteswapio -fastsse -Mipa=fast

#FFLAGS = -O3  -mp -byteswapio -fastsse  -mcmodel=medium -Mlarge_arrays
#LDFLAGS = -O3 -mp -byteswapio -fastsse  -mcmodel=medium -Mlarge_arrays
#FFLAGS = -O3  -fastsse   -byteswapio -tp k8-64   -mp -mcmodel=medium -Mlarge_arrays
#LDFLAGS = -O3 -fastsse   -byteswapio  -tp k8-64  -mp -mcmodel=medium -Mlarge_arrays 
#LDFLAGS = -O3 -tpp2 -ipo -IPF_fma -ftz -IPF_fltacc -openmp -Vaxlib -w -fpp
#FFLAGS  = -O3 -tpp2 -ipo -IPF_fma -ftz -IPF_fltacc -openmp -Vaxlib -w -fpp
#FC = efc

LDFLAGS = -O2    -IPF_fma -ftz -openmp_report2 -openmp  -lifport -w -convert big_endian  -fpp 
FFLAGS  = -O2    -IPF_fma -ftz -openmp_report2 -openmp   -w -convert big_endian  -fpp 
FC = ifort



BIN     = PMhalosM PMstartM PMsel PMmodels PMselectM PMselect PMpowerM
OBJS    = PMhalosM.o PMauxiliary.o PMstartM.o PMselectM.o PMpowerM.o\
           PMfields.o PM_to_ASCIIm.o PM_to_ASCII.o
HEADERS = PMparameters.h PMinitial.h PMlists.h 

#$(BIN) : $(OBJS)   
#	$(FC) $(LDFLAGS) $(OBJS) -o $(BIN) $(LIB)

#$(OBJS): $(HEADERS)

PMmain: PMmain.o PMauxiliary.o 
	$(FC) $(LDFLAGS) -o PMmain PMmain.o PMauxiliary.o $(LIB)

PMpower: PMpower.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMpower PMpower.o PMauxiliary.o $(LIB)

PMpowerM: PMpowerM.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o PMpowerM PMpowerM.o PMauxiliary.o $(LIB)

PMpowerM1: PMpowerM1.o PMparameters.h
	$(FC) $(LDFLAGS) -o PMpowerM1 PMpowerM1.o $(LIB)

PMmodels: PMmodels.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o PMmodels PMmodels.o $(LIB)

PMhalos: PMhalosM.o PMauxiliary.o PMparameters.h PMlists.h
	$(FC) $(LDFLAGS) -o  PMhalos PMhalosM.o PMauxiliary.o  $(LIB)

PMhalosM: PMhalosM.o PMauxiliary.o PMparameters.h PMlists.h
	$(FC) $(LDFLAGS) -o   PMhalosM PMhalosM.o PMauxiliary.o $(LIB)

PMhalosM2: PMhalosM2.o PMauxiliary.o PMparameters.h PMlists2.h
	$(FC) $(LDFLAGS) -o   PMhalosM2 PMhalosM2.o PMauxiliary.o $(LIB)

PMstartM: PMstartM.o PMparameters.h 
	$(FC) $(LDFLAGS) -o  PMstartM PMstartM.o  $(LIB)

PMstartM.o: PMstartM.f PMparameters.h

PMstartMp: PMstartMp.o PMinitialp.h 
	$(FC) $(LDFLAGS) -o  PMstartMp.exe PMstartMp.o  $(LIB)

PMstartMp.o: PMstartMp.f90 PMinitialp.h

PMstartCR: PMstartCR.o PMinitialp.h 
	$(FC) $(LDFLAGS) -o PMstartCR PMstartCR.o   $(LIB)

PMstartCRm2: PMstartCRm2.o
	$(FC) $(LDFLAGS) -o  PMstartCRm2 PMstartCRm2.o   $(LIB)

PMstartCRm2_n: PMstartCRm2_n.o PMparameters.h PMinitialCR2.h
	$(FC) $(LDFLAGS) -o  PMstartCRm2_n PMstartCRm2_n.o   $(LIB)

PMfields: PMfields.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMfields PMfields.o PMauxiliary.o  $(LIB)

PMgalaxy3: PMgalaxy3.o PMgalaxy.o
	$(FC) $(LDFLAGS) -o  PMgalaxy3 PMgalaxy3.o PMgalaxy.o  $(LIB)

PM_to_ASCIIm: PM_to_ASCIIm.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o   PM_to_ASCIIm PM_to_ASCIIm.o PMauxiliary.o  $(LIB)

PMselectM: PMselectM.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMselectM PMselectM.o PMauxiliary.o  $(LIB)

PMsel: PMsel.o PMauxiliary.o
	$(FC) $(LDFLAGS) -o  PMsel PMsel.o PMauxiliary.o  $(LIB)

PMauxiliary.o: PMparameters.h 

.f90.o: 
	$(FC) -c $(FFLAGS) $<

clean:
	rm -f $(BIN) $(OBJS) 
