# $Id: makefile 18 2007-07-20 08:44:12Z yamasaki $
#
#MGS       = CYCLIC
MGS       = TRANSPOSE
CPPFLAGS0  = -D_POT_SMOOTHING_ -D$(MGS) \
 -DGGA_ATOMIC_WITH_NEW_GNCPP -DREMOVE_PC_FROM_FORCE -D_BLUGEL_SORT_ \
 -D_USE_LAPACK_  -D_LDOS_ -D_DETAIL_GGA_TIMING_ -D_HEAP_SORT_ \
 -DUSE_NONBLK_COMM -DDEBUG_ERRORS -D_MEMORY_CONSUMPTION_CHECK_ -DWO_OP_MOMENT
# -DCHARGE_AVERAGE_WITH_SUPERCELLOPERATIONS
#-DSAVE_FFT_TIMES
#-DBETAR_GAMMA_TUNE -DLMM_PREVIOUS
# -D_USE_LAPACK_ -D_POSITRON_ -D_LDOS_ -D_DETAIL_GGA_TIMING_ -D_HEAP_SORT_
# -D_RPL_BESSEL_ -D_RPL_ERF_ -D_RPL_SPSORT_ -D_LDOS_ \
# -D_USE_LAPACK_ \
# -DQITGFT_OLD  -DFQWEI_CHECK
#CPPFLAGS0  = -D_POT_SMOOTHING_ -D$(MGS) -DNO_LAPACK -D_PFFT_ -DGGA_ATOMIC_WITH_NEW_GNCPP
#CPPFLAGS0  = -D_POT_SMOOTHING_ -D$(MGS) -DNO_LAPACK -D_PFFT_  -DGGA_CHECK
#CPPFLAGS0  = -D_POT_SMOOTHING_ -D_DEBUG_NO_INVERSION_ -D$(MGS) -DNO_LAPACK

## SUN
#SUNFFT = -DWF_JRCATFFT
SUNFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DJRCATFFT_WS
#SUNFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DFFTE
SUNOBJECTFFT = jrcat_fft.o
#SUNOBJECTFFT = ifft.o jrcat_fft.o
## DEC
#DECFFT = -DWF_JRCATFFT
#DECOBJECTFFT = ifft.o jrcat_fft.o
DECFFT = -DDECFFT
DECOBJECTFFT =
# MKLFFT
MKLFFT = -DMKLFFT
MKLOBJECTFFT =  mkl_dfti.o mklfft.o
# FFTW3
FFTW3 = -DFFTW3
## SX
SXFFT = -DASLFFT
SXOBJECTFFT =
#SXFFT = -DWF_JRCATFFT
#SXOBJECTFFT = ifft.o jrcat_fft.o
## VPP
VPPFFT = -DWF_JRCATFFT
VPPOBJECTFFT = ifft.o jrcat_fft.o
## IBM SP2
SP2FFT = -DWF_JRCATFFT
SP2OBJECTFFT = ifft.o jrcat_fft.o
## HITACHI
#SRFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS 
#SRFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DSRFFT 
#SRFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DSRFFT -DSRFFT_WF_DIRECT
SRFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DSRFFT
#SRFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DSRFFT -DSRFFT_CD_DIRECT
#SRFFT = -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS -DSRFFT -DSRFFT_CD_INVERSE
SROBJECTFFT = jrcat_fft.o srfft.o
MPIFFT = mpifft.o
SRMPIOBJECTFFT = jrcat_fft.o srfft.o mpifft.o
##
GOEDECKER_FFT = -DGOEDECKER_FFT -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS
GOEDECKER_VPP_FFT = -DGOEDECKER_FFT -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS
GOEDECKER_OBJECTFFT = gfft.o jrcat_fft.o
## FFTE
FFTE = -DFFTE -DWF_JRCATFFT_WS -DCD_JRCATFFT_WS
FFTE_OBJECTFFT = ffte.o jrcat_fft.o
MPIOBJECTFFT = jrcat_fft.o mpifft.o

LOWER_MODULES = m_Const_Parameters.o   m_ErrorMessages.o m_Parallelization.o \
m_IterationNumbers.o

UPPER_MODULES = \
m_Control_Parameters.o   m_Files.o                m_Timing.o \
m_Crystal_Structure.o    m_FFT.o                  m_Ionic_System.o \
m_CS_SpaceGroup.o        m_CS_NonCollinear.o \
m_Orbital_QuantumNum.o  \
m_Kpoints.o              m_PseudoPotential.o      m_PlaneWaveBasisSet.o \
m_Realspace.o \
m_SpinOrbit_Potential.o  m_SpinOrbit_FromFile.o  \
m_ES_NonCollinear.o \
m_NonLocal_Potential.o   m_Electronic_Structure.o \
m_ES_nonlocal.o	 	 m_ES_ortho.o  m_ES_wf_extrpl.o m_ES_initialWF.o 	\
m_ES_occup.o \
m_ES_RSB.o \
m_FiniteElectricField.o \
m_ES_ExactExchange.o \
m_ES_WF_by_SDorCG.o      m_ES_WF_by_Davidson.o \
m_ES_WF_by_ModifiedDavidson.o m_ES_WF_by_RMM.o \
m_epc_potential.o        \
m_Positron_Wave_Functions.o \
m_Charge_Density.o       m_CD_mixing.o m_Dipole.o               m_Orbital_Population.o \
m_CD_Mag_Moment.o \
m_ES_WF_mixing.o \
m_Screening_FFT.o        m_Screening.o      m_External_Potential.o \
m_ES_LHXC.o              m_ES_Intgr_VlhxcQlm.o    m_ES_IO.o \
m_ES_WF_by_MatDiagon.o   m_ES_dos.o               m_Hubbard.o \
m_KineticEnergy_Density.o  \
m_KE_mixing.o \
m_Ldos.o                 m_XC_Potential.o         \
string.o m_db.o \
m_PAW_Tecplot.o m_PAW_ChargeDensity.o m_PAW_Hartree.o  \
m_PAW_XC_Potential.o \
m_SpinOrbit_RadInt.o \
m_OP_Moment.o \
m_ES_Mag_Constraint.o  \
m_Total_Energy.o \
m_Force.o                m_Stress.o               m_ES_WF_by_submat.o \
m_UnitCell.o \
m_constraints.o \
m_ELF.o \
m_BerryPhase.o           m_BP_Properties.o \
m_Representation.o       m_Raman.o            m_Phonon.o \
m_Wannier.o m_Wannier90.o m_Replica.o Renewal_of_ChgCtrlParam.o \
m_LinearResponse_Control.o  \
m_ValenceBand_Spectrum.o   m_CoreLevel_Spectrum.o  \
m_Excitation.o \
m_ES_occup_EPS.o         m_Epsilon_ek.o \
m_LinearResponse_Qpt.o  \
m_rttddft.o \
m_Potential_Mixing.o       m_ThomasFermiW_Potential.o   m_vdWDF.o

F_SUBROUTINES = Preparation.o \
InputData_Analysis.o           PseudoPotential_Construction.o

F_OTHERSUBS  = mdmain0.o   constraint_main.o  NEB.o meta_dynamics.o Preparation_for_mpi.o \
Preparation_for_ESM.o \
scf_routines.o \
UnitaryTransform_WF.o \
bottom_Subroutines.o              \
spline.o \
b_Crystal_Structure.o             b_Electronic_Structure.o \
b_Words.o                         b_PseudoPotential.o \
b_PseudoPotential_EXX.o \
b_Fermi.o                         b_Kpoints.o \
b_PlaneWaveBasisSet.o             b_Ionic_System.o \
b_XC_Potential.o                  b_PAW_XC_Potential.o \
b_XC_OmegaPBE.o  \
b_XC_metagga.o                    memsize.o \
b_Ldos_f77.o\
input_interface.o                 Initialization.o \
WriteDownData_onto_Files.o        Ewald_and_Structure_Factor.o \
Initial_Electronic_Structure.o \
Renewal_of_WaveFunctions.o \
Renewal_of_pWaveFunctions.o \
IterationNumbers_Setting.o        ChargeDensity_Construction.o \
ChargeDensity_Mixing.o            Renewal_of_Potential.o \
Renewal_of_Hubbard_Potential.o    Renewal_of_OccMat.o \
Renewal_of_pPotential.o           Renewal_of_Hubbard_Parameters.o \
Convergence_Check.o               Forces.o \
Move_Ions.o                       Initial_MD_Condition.o \
Stress.o                          Postprocessing.o \
Finalization_of_mpi.o             miscellaneous.o\
b_BerryPhase.o \
heap_sort.o                       real_spherical_harmonics.o \
Real_space_integ.o                crotylm.o \
screening_correction.o \
Initialization_Epsilon.o               Shift_Kpoint.o \
Reset_Kpoint.o                         Preparation_for_Calc_Epsilon.o \
Transition_moment_Epsilon.o            Calc_Epsilon.o \
Nonlinear_Optics_Epsilon.o             WriteDownData_onto_Files_Epsilon.o \
PseudoPotential_ek_Epsilon.o           Dealloc_Radr_and_Wos_Epsilon.o \
mpi_dummy.o                            WriteDownData_onto_Files_ek.o \
GaussLeg.o lib_int_deri_add.o  \
rttddft_main.o \
Potential_Construction.o        Potential_Mixing.o             ThomasFermiWeiz.o \
Epsilon_postscf.o	vc_nl.o    vdW.o


# for vc_nl
#NLOBJ = vc_nl.o

ifndef SX_DGEMM
OBJECTSF77 = \
b_PseudoPotential_f77.o \
b_Force_f77.o \
rmmsubs.o \
gncpp_xc_gga_rad.o  \
decfft_ent.o \
spg+tetra.o
else
OBJECTSF77 = \
b_PseudoPotential_f77.o \
b_Force_f77.o \
rmmsubs.o \
decfft_ent.o \
gncpp_xc_gga_rad.o  \
spg+tetra.o \
dgemm__.o 
endif

OBJ_INPUTPARSE = input_parse.o getclkreg.o

TARGET = phase

default:
	@$(MAKE) -f makefile `uname -s`

SunOS sun:
	@echo Making for the architecture `uname -s`
	@$(MAKE) -f makefile.`uname -s`\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

SunOS_fftw3 sun_fftw3:
	@echo Making for the architecture `uname -s`
	@$(MAKE) -f makefile.`uname -s`\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"

PrimePower Primepower:
	@echo Making for the architecture PrimePower
	@$(MAKE) -f makefile.PrimePower\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

OSF1 dec:
	@echo Making for the architecture `uname -s`
	@$(MAKE) -f makefile.`uname -s`\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(DECOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(DECFFT)"

AIX sp2 ibm:
	@echo Making for the architecture `uname -s`
	@$(MAKE) -f makefile.`uname -s`\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SP2OBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SP2FFT)"

IRIX64 sgi:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)"\
		OBJ_INPUTPARSE="" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

UNIX_System_V vpp:
	echo Making for the architecture vpp
	/usr/ccs/bin/make -f makefile.UNIX_System_V \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(VPPOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(VPPFFT)"

UNIX_System_V_gfft vpp_gfft:
	echo Making for the architecture vpp
	/usr/ccs/bin/make -f makefile.UNIX_System_V \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(GOEDECKER_OBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(GOEDECKER_VPP_FFT)"

SUPER-UX SX:
	@echo Making for the architecture SUPER-UX
	@$(MAKE) -f makefile.SUPER-UX \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SXOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SXFFT)"

SUPER-UX.mpi SX.mpi:
	@echo Making for the architecture SX with codes tuned by NEC \(MPI\)
	@$(MAKE) -f makefile.SUPER-UX.mpi \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SXOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SXFFT)" OBJLAPACK="$(OBJLAPACK)"

SUPER-UX.hyb SX.hyb:
	@echo Making for the architecture SX with codes tuned by NEC \(SMP\&MPI\)
	@$(MAKE) -f makefile.SUPER-UX.hyb \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SXOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SXFFT)" OBJLAPACK="$(OBJLAPACK)"

EarthSimulator.mpi ES.mpi:
	@echo Making for the architecture EarthSimulator \(MPI\)
	@$(MAKE) -f makefile.EarthSimulator.mpi \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SXOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SXFFT)" OBJLAPACK="$(OBJLAPACK)"

EarthSimulator.hyb ES.hyb:
	@echo Making for the architecture EarthSimulator \(SMP\&MPI\)
	@$(MAKE) -f makefile.EarthSimulator.hyb \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SXOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SXFFT)" OBJLAPACK="$(OBJLAPACK)"

Linux_intel intel INTEL ifc intel32:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

Linux_intel2 intel2 INTEL2 ifort intel32-2:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel2 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

Linux_intel2_jrcatfft intel2_jrcatfft:
	@echo Making for the architecture `uname -s`
	@$(MAKE) -f makefile.`uname -s`_intel2 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SP2OBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(SP2FFT)"


Linux_intel_gfft intel_gfft INTEL_gfft ifc_gfft intel32_gfft:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(GOEDECKER_OBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(GOEDECKER_FFT)"

Linux_intel2_gfft intel2_gfft INTEL2_gfft ifort_gfft intel32-2_gfft:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel2 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(GOEDECKER_OBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(GOEDECKER_FFT)"

Linux_intel_ffte intel_ffte INTEL_ffte ifc_ffte intel32_ffte:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(FFTE_OBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(FFTE)"

Linux_intel2_ffte intel2_ffte INTEL2_ffte ifort_ffte intel32-2_ffte:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel2 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(FFTE_OBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(FFTE)"

Linux_intel2_mkl intel2_mkl INTEL2_mkl ifort_mkl intel32-2_mkl:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel2 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(MPIOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(MKLFFT)" \
		MKLOBJECTFFT="$(MKLOBJECTFFT)"

Linux_intel2_fftw3 intel2_fftw3 INTEL2_fftw3 ifort_fftw3 intel32-2_fftw3:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_intel2 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"

paranavi_fftw3 paranavi:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.paranavi \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"


absoft ABSOFT:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_absoft \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

Linux lx LX efc EFC intel64:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_lx \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

FFC ffc:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_ffc \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

FFC_gfft ffc_gfft:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_ffc \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(GOEDECKER_OBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(GOEDECKER_FFT)"

HI-UX/MPP sr8000 SR8000 SR sr:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.HI-UX \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SROBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SRFFT)"

sr11000 SR11000 SR11K sr11k:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.sr11k \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SROBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SRFFT)"

sr11000_mpifft SR11000_mpifft SR11K_mpifft sr11k_mpifft:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.sr11k_mpifft \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SRMPIOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SRFFT)"

g95:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.g95 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

pgi:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.pgi \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

pgi_fftw3:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.pgi_fftw3 \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"

Linux_pathscale pathscale:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_pathscale \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(SUNFFT)"

Linux_pathscale_fftw3 pathscale_fftw3:
	@echo Making for the architecture `uname -s`
	$(MAKE) -f makefile.`uname -s`_pathscale \
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)" \
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)" \
		OBJECTSF77="$(OBJECTSF77)" \
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)" \
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"

FX1 fx1:
	@echo Making for the architecture FX1
	@$(MAKE) -f makefile.fx1\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"

MP10 mp10:
	@echo Making for the architecture MP10
	@$(MAKE) -f makefile.mp10\
		LOWER_MODULES="$(LOWER_MODULES)" UPPER_MODULES="$(UPPER_MODULES)"\
		F_SUBROUTINES="$(F_SUBROUTINES)" F_OTHERSUBS="$(F_OTHERSUBS)"\
		OBJECTSF77="$(OBJECTSF77) $(SUNOBJECTFFT) $(MPIFFT)"\
		OBJ_INPUTPARSE="$(OBJ_INPUTPARSE)" TARGET="$(TARGET)"\
		CPPFLAGS0="$(CPPFLAGS0) $(FFTW3)"

clean:
	\rm -f *.o *.mod *.a $(TARGET)
	make -f makefile.ek clean
	make -f makefile.eps clean
	\cd ScaLAPACK; make clean
	\cd LAPACK; make clean
	\cd BLAS; make clean

install:
	mv $(TARGET) ../bin/
# DO NOT DELETE
