include ./make.inc

.f.o:
	$(FC)   $<  -o $@

.f90.o:
	$(FC)   $<  -o $@

.F90.o:
	$(FC)   $<  -o $@
#
#########################################################################
# Object files

AUX = table.o scan_input.o gitstamp.o

MPIDUM =   mpi_dummies.o

MODULES = mod_dmft_ldau.o     \
        mod_dmft_sosptflex.o  \
        mod_constants.o       \
        mod_tables.o          \
        mod_lattice.o         \
        mod_files.o           \
        mod_mpi.o             \
        mod_calcmode.o        \
        mod_angmom.o          \
        mod_symmetry.o        \
        mod_sites.o           \
        mod_energy.o          \
        mod_types.o           \
        mod_rmesh.o           \
        mod_kspace.o          \
        mod_cpa.o             \
        mod_str.o             \
        mod_strlag.o          \
        mod_scf.o             \
        mod_tauij.o           \
        mod_tbclu.o           \
        mod_tb.o              \
        mod_thermal.o         \
        mod_linresp.o         \
        mod_sig.o             \
        mod_radial_solver.o             

MOD_SPEC = mod_spec.o         \
        mod_spec_laypot.o     \
        mod_spec_commons.o

O_IMD = init_mod_mpi.o             \
        init_mod_calcmode.o        \
        init_mod_angmom.o          \
        init_mod_angmom_gen.o      \
        init_mod_symmetry.o        \
        init_mod_sites.o           \
        init_mod_files.o           \
        init_mod_lattice.o         \
        init_mod_energy.o          \
        init_mod_types.o           \
        init_mod_rmesh.o           \
        init_mod_kspace.o          \
        init_mod_cpa.o             \
        init_mod_types_fullpot.o   \
        init_mod_sites_rotmag.o    \
        init_mod_tbclu.o           \
        init_mod_tb.o              \
        init_mod_str.o             \
        init_mod_strlag.o          \
        init_mod_tauij_star.o      \
        init_mod_tauij_kmesh.o     \
        init_mod_tauij_loop.o      \
        init_mod_dmft_ldau.o       \
        init_mod_rmesh_fullpot.o  
#     = V....................  V....................  V..................
O_COL = initvar.o              getlrecreal.o          getsystem.o  \
	extend_txt_t.o         get_momentum.o  \
	check_input.o          errortrap.o            breakpoint_key.o \
	posfil.o               readstr.o              openfilt.o   \
	types_swap.o           copfil.o               wrhead.o     \
	wrdate.o               genrmesh.o             plot_pdb.o    \
	cmatstruct.o           rmatstruct.o           imatstruct.o    \
	lmatstruct.o    \
	dumpmat.o              dumptau.o    \
	rotate.o               getmrot.o              rotmat_rylm.o  \
	rotmat.o               rotategen.o            potio.o        \
        potfit.o               clupotrd.o             potfinnuc.o  \
	hffield.o              bextra.o     \
        mssinit.o              projtau.o              taugfconv.o \
	tau_drive.o            tauij_embedded.o         \
	tauij_equiv_pairs.o    tauij_symmetrize.o  \
	tau_tb.o               tauij_drive.o          tauij_std.o      \
        tauij_tb.o             tauij_host_invwri.o    readtau.o     \
        nlctauio.o     	       calcdos.o              calcdos_write.o  \
        calcnos.o              calcame.o              xmgr.o        \
        scf_broyden_w_weiss.o  scfbroypt2.o           bastrans.o    \
        epath.o                egrid8_ime.o  \
	kmeshs.o               kdirtab.o       	      derspl.o   \
        dvdrspline.o           ameop.o   \
        sumupint.o             amebi.o     \
        vmuftin.o              fppot.o     \
        wavfun_read.o          fpcoupl.o              xcplj0.o   \
        xcpljij.o              xcpltensor.o           xcpltenme.o \
        cluxcpltensor.o            \
        cluxcpljij.o           frelpole.o   \
        forcetensor.o          \
        fppickrules.o          fppickrules_local.o \
        mpi_own.o              clusit2.o   \
        clugetlimits.o         fp_pot_local.o         check_gfun.o \
        tbkloop.o              init_umat.o            init_mrot_frame.o\
        mrot_check_settings.o  \
        me_obs.o               calc_obs.o             calc_obs_me.o  \
        init_spiral.o           \
        optimize_basis_drive.o optimize_basis_2d.o    optimize_basis_3d.o   \
        basis_into_unit_cell.o        \
        wavfun_wgt_rad_flm_sra.o open_scratch_file.o

#     = V....................  V....................  V..................
O_LLO = lloydpt2.o             lloydpt1.o             

#     = V....................  V....................  V..................
O_UCA = scf_ucalc.o

#     = V....................  V....................  V..................
O_SYM = syminit.o              symsites.o             symlattice.o   \
        symplotuc.o            symrotlat.o            symbravais.o  \
        symrot.o               symtau.o                \
        symsumrtr.o \
        symcheck_std.o         symcheckij_std.o       symcheck_tb.o   

#     = V....................  V....................  V..................
O_COR = core.o                 fpnrcore.o     \
        core_dir_abm.o         fpnrcore_tau.o \
        coreerr.o              \
        core_hff.o             core_hff_split.o       core_rmesh.o

#     = V....................  V....................  V..................
O_CPA = cpamills.o             cpanesbet.o \
        cpabroyden.o           nlcpa.o                getdelm.o   \
        getdmat.o    

#     = V....................  V....................  V..................
O_ANG = gaunt_rylm.o           rgntsf_setup.o         gaunt_cylm.o     \
        wigner.o               cgc_rac.o              cgc1.o        \
        calccgc.o              calcsmq.o     \
	ikapmue.o              ikmlin.o               

#     = V....................  V....................  V..................
O_MAT = mathlib.o              ylag.o                 cylag.o     \
        pade.o                 grad_flm.o             beshan.o    \
        cjlz.o                 cdjlzdz.o               \
        cnlz.o                 cdnlzdz.o               \
        cradint.o              cradint_inw_r.o        \
        rradint.o              rradint_inw_r.o        \
        cintabr.o              cintabr1.o              \
        cinthff.o              rradint_hff.o          cradint_hff.o  \
        gauleg.o               calcdfdr.o  \
        rdiffer.o              cdiffer.o              \
        rinvgj.o  \
        cinvlu.o               cinvlapack.o           fplebedev.o \
        calc_chplm.o           calc_rhplm.o           

#     = V....................  V....................  V..................
O_SFN = sfncreate.o            sfnvoronoi.o           sfnshape.o      \
        sfnmtmesh.o            fp_sfn_local.o         sfnread.o       \
        sfnreaddim.o           sfncreateclu.o         sfn_surfint_init.o

#     = V....................  V....................  V..................
O_SSI = runssite.o             ssite.o                fpssite.o        \
        nrssite.o              fpnrssite.o            \
        ssite_rotate.o         ssite_symmetrize.o       \
        dirbs.o             \
        dirbs_soc.o            dirac_op.o             dirbs_norm.o \
        dirrk.o                dirbssig.o             dirbsbi.o \
        fpdirbs.o              fpdirborn.o            rwfbs.o   \
        rwfrk.o                fprwfbs.o              fprwfborn.o  \
        rwfbs_norm.o   
#     = V....................  V....................  V..................
O_THR = thermal_init.o         thermal_fluct_mesh_weight.o  \
        thermal_rmsdisp.o      thermal_debye1.o       \
        thermal_init_pot_theta.o \
        thermal_properties.o   thermal_init_ufmat.o 

STD   = $(O_IMD) $(O_SYM) $(O_COL) $(O_SSI) $(O_SFN) $(O_MAT) $(O_CPA)  \
        $(O_COR) $(O_ANG) $(O_THR) $(O_UCA)

#     = V....................  V....................  V..................
BZI =   setkkr.o               tau_std_kpoints.o      tau_std_kspiral.o \
	tau_std_kspsrel.o      tau_std_kweyl.o         \
	tau_std_ktetra.o       tetsubs.o  
# \
#	tau_std_kzoom.o        zoom_aux.o

#     = V....................  V....................  V..................
STR =   strinit.o              straa.o                strcc.o     \
	strset.o               strgbad.o              strconfra.o \
	strvecgen.o            strgaunt.o             strsmat.o \
	strtest.o        

#     = V....................  V....................  V..................
MEL =   me_drive.o             ame_init.o              \
	ame_nab.o              ame_grv.o               \
        ame_nab_sig.o          ame_alf_sig.o          \
	me_alf_alf.o           me_nab_nab.o           me_grv_grv.o   \
	me_alf_alf_nondip.o    me_OLD.o               \
	me_nab_nab_sra.o                   \
        me_spin_alf_alf.o      me_spin_nab_alf.o     \
        me_sot_alf.o           me_sigma.o             \
	sig_spin_checkme.o          

#     = V....................  V....................  V..................
TSK   = $(MEL) \
	relt1.o                nonrelt1.o             nucsscpl.o   \
	vbpesint.o             vbpes.o                vbpes_aux.o  \
        clxps.o                \
        xrayspec.o             xrayspecdyn.o            \
        xraywfexpansion.o      xrayclb.o              \
        chigamma.o             chivwn.o               chiorbpol.o    \
        aes.o                  nraes.o                nraps.o       \
        compton.o              comptonme0.o           comptonme1.o  \
        compton_core0.o        compton_core1.o   \
        me_ada_cor.o \
        mecoul.o               me_cheby.o  \
        me_plot.o              mecheck.o              mechngbas.o  \
        ametimrev.o            pshift.o               fscat.o      \
        socpar.o               density.o              clubonding.o \
        torque.o               wfplot.o               fpplotprs.o  \
        fpplot2dpr.o           sefin.o                wrdosrep.o   \
        eloop.o                kloopsij.o             splinel.o    \
        amecoul.o              wcorehole.o            wcorehole_2001.o
#     = V....................  V....................  V..................
POS   =	posaniprep.o           posanipot.o            posanilambda.o \
        posanirhoio.o          posani_gfactor.o       posaniread.o

#     = V....................  V....................  V..................
MAD   = scfmad_setup.o         scfmad_rgnt.o          scfmad_pot.o  \
        scfmad0d.o             scfmad0d_smat.o        scfmad0d_back.o  \
        scfmad2d.o             scfmad2d_smat.o        scfmad2d_ab.o  \
        scfmad3d.o             scfmad3d_smat.o        scfbimad.o  \
        scfbipotmad.o          scfmadnbr.o            scfcmnt.o \
        amey1m.o               scfbi2dstrmat.o  

#     = V....................  V....................  V..................
DNS   = chrdns_norm.o          chrdns_fp.o      \
        chrdns.o               curdns.o               orbcurdns.o 

#     = V....................  V....................  V..................
SCF   = scf_drive.o            scfscale_alat.o   \
        scfscale_alat_eos.o\
	scfnewpot.o            fpscfnewpot.o          scfinitpot.o    \
        fpasastart.o           scfbroyden.o           scfbroypt1.o    \
        scftcheby.o            viomix.o               rmserr.o    \
        scfbroyang.o           scfiterang.o           scfbiint.o    \
        scfbipot.o             scfoppot.o             scfrhocorhol.o    \
        scfseminit.o           scfchkcore.o           scfchknval.o      \
        fpvintra.o             fpecoub.o              fpepotinb.o \
        fpetot.o               fpvxclm.o              \
        fpvnfcor.o             sack_mad.o               \
        scfpoisson.o           getrnn.o                 \
        fpplotprs.o            fpplot2dpr.o             \
        force.o                fpefg.o      

#     = V....................  V....................  V..................
EXC   =	excvbh.o               excmjw.o               excvwn.o \
	excpbe.o               vcepbm.o               uxcor.o 

#     = V....................  V....................  V..................
DMFT_GREEN =  \
        dmft_green_mpi.o          \
        dmft_green_stop.o \
	dmft_green_la.o\
        dmft_green_sptf_disk_access.o \
        dmft_green_sptf_model_functions.o\
        dmft_green_sptf_mask.o \
        dmft_green_sptf_mpi.o \
        dmft_green_sptf_fft_interface.o \
        dmft_green_sptf_fourier.o \
        dmft_green_sptf_potentials.o \
        dmft_green_sptf_main.o \
        dmft_green_sptf_interface.o \
        dmft_green_config.o
#     = V....................  V....................  V..................
DMFT_SCF = \
        dmft_sptflex.o         dmft_spttma.o          dmft_drv.o \
        dmft_drv_sptflex.o     dmft_drv_spttma.o      \
        dmft_drv_sosptflex.o \
        dmft_vertex.o          dmft_lib_fft.o   \
        dmft_lib_sptflex.o     dmft_sosptflex.o \
        dmft_lib_sosptflex.o      \
        dmft_lib_spttma_splines.o   \
        dmft_tau_drive.o       dmft_u_matrix.o       \
        dmft_broyd_sig.o       ldau_drv.o             \
	dmft_drv_sosptflex_idm.o  \
        dmft_calcg0.o  
#     = V....................  V....................  V..................
DMFT = \
        dmft_init.o            dmft_ldaureadsig.o     dmft_matsub.o\
        gfunmat_drive.o        dmft_gfunmat.o         dmft_readselfene.o\
        dmft_readsig.o         dmft_flexreadsig.o     \
        dmft_spttmareadsig.o\
        dmft_3bsreadsig.o      dmft_edreadsig.o       \
        dmft_close_iotmp.o     dmft_lib_pade.o        \
        dmft_lib_spttma_kkt.o  dmft_lib_spttma_int.o \
        dmft_ldau_eref.o       dmft_ssite_rotate.o
#     = V....................  V....................  V..................
BND   = ekrel.o                blochsf.o              \
	tau_tb_1k.o

#     = V....................  V....................  V..................
FCLU  = tau_real_space.o       clug0mat.o             clutaumat.o \
        cinvrii3.o             clutauchk.o            clupotgen.o \
        clugaunt_rylm.o        

#     = V....................  V....................  V..................
CLU  =  clussites.o            init_mod_tauij_cluster.o 

#     = V....................  V....................  V..................
CHI  =  chidrive.o             chisusc.o              chicalc.o  \
        chiradint.o            chitktkchk.o           chitktksym.o  \
        chikloops.o            chitktkq2t.o           chitktktab.o  \
        chigamma.o             chivwn.o               chiorbpol.o  \
        chifmagind.o           chilandau.o            chilancalc.o   \
        chilanme.o             chilaname.o            chiintabr2.o  \
        chiintabr2in.o         chiintghff2.o          chiintabr3.o  \
        chiintgabr3.o          chiintabr3in.o         chiintabr4.o  \
        chiintgabr2.o          chiintghff3.o          chiinthff2.o  \
        chiinthff3.o           chiinthff4.o           chiinthvv2.o  \
        chiinthvv3.o           chiinthvv4.o           chixas.o  \
        chixascalc.o           chixasradint.o         me_ada_cor.o  \
        chixasinit.o           \
        sig.o                  sig0.o                 \
        sigme.o                sigmeaux.o             \
        sig0_fsea.o            sig0_surf.o            sig0_surf_nonpub.o \
        sig1_fsea.o            sig1_surf.o            sig1_surf_nonpub.o \
        sig0_optics.o \
        sig1_optics.o \
        sigsum.o               sigsum_optics.o        linresp_vertex.o  \
        sigmanipul.o           sigoff.o                \
        sig_drv_kmesh.o \
        signlc.o                          \
        signlc0.o              signlc1.o              signlckloops.o  \
        linresp_vertex_nlc.o   signlcme.o             signlcsum.o  \
        siglayer.o             sigkloops_nosym.o      \
        sigkloops.o            sigkloops_spsrel.o     \
        sigkloopsdrv_tb.o      sigkloops_tb.o         \
        sigkloopstrans_tb.o    \
        gil.o                  gil0.o                 gil1.o \
        gilme.o                gilsum.o                 \
        gilnlc.o               gilnlcme.o     \
        metorque.o             \
        negfdrive.o            negfkloop_stt.o \
        negf_tmat_SA.o         negfdrive_SA.o         negfkloops_tb_SA.o\
        negfkloopsdrv_tb_SA.o   \
        negf_tmat.o            negfkloopsdrv_tb.o     negfkloops_tb.o \
        excvwn.o               viomix.o               rmserr.o  \
        uxcor.o                scftcheby.o            ame_rsig.o  \
        csumsslt.o             \
        linresp_init.o      \
        linresp_phonons.o      linresp_pump.o     \
        linresp_kloops_q.o     linresp_kloop_dk.o    \
        linresp_eloop.o        linresp_perturb.o      linresp_density.o\
        linresp_phon_single.o  linresp_susc_stat.o    linresp_vxc.o \
        linresp_magnet.o       linresp_magnet_eloop.o  \
        linresp_magnet_perturb.o \
        linresp_magnet_density.o  \
        linresp_magnet_me_alf.o                        \
        linresp_magnet_me_nab.o \
        scfbroypt1.o           \
        fpvxclm.o              excvbh.o excmjw.o excpbe.o 
#       
#     = V....................  V....................  V..................
C_CHI = clu_chi_drive.o         \
        gil.o                  gilme.o                metorque.o      \
        gil0.o                 gil1.o                 gilsum.o \
        sigkloops.o            sigkloops_nosym.o      sigkloopsdrv_tb.o \
        sigkloops_tb.o         sigkloopstrans_tb.o     \
        linresp_vertex.o               
#          
SPEC =  spec_tilt.o            \
        spec_band.o           spec_derivatf.o  \
        spec_doublerad.o      spec_eigen.o  \
        spec_euler.o          spec_inputs.o  \
        spec_mat.o            \
        spec_rslabsub.o  \
        spec_rmbarpot.o       spec_rslab_1.o  \
        spec_sumat.o          spec_rslab.o  \
        spec_vbrun.o          spec_linalg_nrc.o  \
        spec_rmat.o           spec_transpho.o\
        spec_vbrun_subs.o     spec_ssite_drive.o  \
        spec_wavfun_zj_rh.o   spec_potfull_spkkr.o  \
        spec_tau_drive.o      spec_clpes.o\
        spec_init_transfo.o   spec_mecalc.o \
        spec_sumup_int.o      spec_tau_prepare.o spec_kfold.o

#########################################################################
# Combine all needed objects for a given executable

KKRSCF  = $(SYST) $(MODS) $(DMFT_GREEN) kkrscf.o scf.o zzscf.o  \
          $(SCF) $(STD) $(AUX) $(STR) $(BZI) \
          $(DMFT) $(DMFT_SCF) $(FCLU) $(EXC) $(MAD) $(DNS) \
          $(O_LLO) $(CLU)

KKRGEN  =  $(SYST)  $(MODS) kkrgen.o gen.o zzgen.o tutorial.o \
           $(STD) $(TSK) $(STR) $(BZI) $(BND) $(AUX) $(DMFT)  \
           $(FCLU) $(MAD) $(DNS) $(POS) $(CLU) $(EXC) \
           $(O_LLO)

KKRCHI  = $(SYST) $(MODS) kkrchi.o zzchi.o $(CHI) \
          $(STD) $(AUX) $(STR) $(BZI) $(DMFT) \
          $(MAD) $(MEL) $(O_LLO)  $(FCLU) $(CLU)


KKREOS  = $(MODS) kkreos.o scfscale_alat_eos.o mathlib.o

EMBGEN = $(SYST) $(MODS) clugen.o gen.o \
         zzclugen.o cludrive.o \
         $(MAD) $(DNS) $(POS) $(FCLU) $(CLU) $(STD) \
         $(TSK) $(BND) $(AUX) $(STR) $(BZI) $(DMFT) $(EXC) \
         $(O_LLO) $(C_CHI)	

EMBSCF = $(SYST) $(MODS) $(DMFT_GREEN) cluscf.o scf.o gen.o \
         chigamma.o chivwn.o chiorbpol.o cludrive.o  \
        zzcludrive.o zzgentask.o cluscfinitpot.o \
        $(CLU) $(SCF) $(STD) $(AUX) $(STR) $(BZI) $(DMFT) \
        $(DMFT_SCF) $(EXC)\
        $(MAD) $(O_LLO) $(DNS) $(POS) $(FCLU)
 
KKRSPEC=$(SYST)  $(MODS) $(MOD_SPEC)  kkrspec.o specmain.o zzspec.o \
        $(STD)  $(STR) $(BZI) $(BND) $(FCLU) $(CLU) $(EXC) \
        $(AUX) $(DMFT)  $(SCF) $(O_LLO) $(MAD) $(SPEC)

#########################################################################
# Module dependencies
.SUFFIXES:.f .F .f90 .F90

MODDEP = $(KKRCHI) $(KKRSCF) $(KKRGEN) \
         $(MPIDUM) $(KKRSPEC) $(EMBGEN) $(EMBSCF)

$(INMODULES):  $(MODULES) $(MOD_SPEC) 
$(MODDEP):     $(INMODULES)

MODS = $(INMODULES)  $(MODULES)

#########################################################################
# Dependencies and linking of executables

all:    gen    scf    chi    embgen    embscf    spec  

allmpi: genmpi scfmpi chimpi embgenmpi embscfmpi specmpi

eos:	$(BIN)/kkreos
	@echo " "

$(BIN)/kkreos: $(KKREOS) 
	 $(LINK) $(LIB) $(KKREOS) -o $(BIN)/kkreos

gen:	$(BIN)/kkrgen$(VERSION)
	@echo " "

$(BIN)/kkrgen$(VERSION): $(KKRGEN) $(MPIDUM) 
	 $(LINK)   $(KKRGEN) $(MPIDUM)\
		$(LIB) -o $(BIN)/kkrgen$(VERSION) 

genmpi:	$(BIN)/kkrgen$(VERSION)$(MPI)
	@echo " "

$(BIN)/kkrgen$(VERSION)$(MPI): $(KKRGEN) 
	 $(LINK)   $(KKRGEN) \
		$(LIB) $(LIBMPI) -o $(BIN)/kkrgen$(VERSION)$(MPI) 

scf:	$(BIN)/kkrscf$(VERSION)
	@echo " "

$(BIN)/kkrscf$(VERSION): $(KKRSCF) $(MPIDUM)
	 $(LINK)         $(KKRSCF) $(MPIDUM) \
		$(LIB) -o $(BIN)/kkrscf$(VERSION)

scfmpi:	$(BIN)/kkrscf$(VERSION)$(MPI)
	@echo " "

$(BIN)/kkrscf$(VERSION)$(MPI): $(KKRSCF) 
	 $(LINK)               $(KKRSCF)  \
		$(LIB) $(LIBMPI) -o $(BIN)/kkrscf$(VERSION)$(MPI)

embgen:	 $(BIN)/embgen$(VERSION)
	@echo " "

$(BIN)/embgen$(VERSION): $(EMBGEN) $(MPIDUM) 
	 $(LINK)         $(EMBGEN) $(MPIDUM) \
		$(LIB) -o $(BIN)/embgen$(VERSION)

embgenmpi:	 $(BIN)/embgen$(VERSION)$(MPI)
	@echo " "

$(BIN)/embgen$(VERSION)$(MPI): $(EMBGEN) 
	 $(LINK)         $(EMBGEN)  \
		$(LIB) $(LIBMPI) -o $(BIN)/embgen$(VERSION)$(MPI)

embscf:	$(BIN)/embscf$(VERSION)
	@echo " "

$(BIN)/embscf$(VERSION):  $(EMBSCF) $(MPIDUM)
	 $(LINK)          $(EMBSCF) $(MPIDUM) \
		$(LIB) -o $(BIN)/embscf$(VERSION)

embscfmpi:	$(BIN)/embscf$(VERSION)$(MPI)
	@echo " "

$(BIN)/embscf$(VERSION)$(MPI): $(EMBSCF)
	 $(LINK)    $(EMBSCF) \
		$(LIB) $(LIBMPI) -o $(BIN)/embscf$(VERSION)$(MPI)

chi:	$(BIN)/kkrchi$(VERSION)
	@echo " "

$(BIN)/kkrchi$(VERSION): $(KKRCHI) $(MPIDUM)
	 $(LINK)         $(KKRCHI) $(MPIDUM)\
		$(LIB) -o $(BIN)/kkrchi$(VERSION)

chimpi:	$(BIN)/kkrchi$(VERSION)$(MPI)
	@echo " "

$(BIN)/kkrchi$(VERSION)$(MPI): $(KKRCHI) 
	 $(LINK) $(KKRCHI) \
		$(LIB) $(LIBMPI) -o $(BIN)/kkrchi$(VERSION)$(MPI)



spec:	$(BIN)/kkrspec$(VERSION)
	@echo " "

$(BIN)/kkrspec$(VERSION): $(KKRSPEC) $(MPIDUM)
	 $(LINK)  $(KKRSPEC) $(MPIDUM) \
		$(LIB) -o $(BIN)/kkrspec$(VERSION) 

specmpi:	$(BIN)/kkrspec$(VERSION)$(MPI)
	@echo " "

$(BIN)/kkrspec$(VERSION)$(MPI): $(KKRSPEC) 
	 $(LINK)  $(KKRSPEC) \
		$(LIB) $(LIBMPI) -o $(BIN)/kkrspec$(VERSION)$(MPI)

clean:		
	 @find . -name "*.o"   -exec rm -f {} \;
	 @find . -name "*.mod" -exec rm -f {} \;
	 @rm -f kkrscf.f kkrgen.f kkrchi.f cluscf.f clugen.f cluchi.f kkrspec.f

reset:
	@rm -f kkrscf.f kkrgen.f kkrchi.f kkrspec.f \;
	@rm -f cluscf.f clugen.f cluchi.f 


#########################################################################
# ------------------------ no optimization !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

potio.o:         potio.f          ; $(FC) $(OP0)  potio.f     
extend_txt_t.o:  extend_txt_t.f   ; $(FC) $(OP0)  extend_txt_t.f     
density.o:       density.f        ; $(FC) $(OP0)  density.f    
potfit.o:        potfit.f         ; $(FC) $(OP0)  potfit.f    
#				                  		    
chrdns.o:        chrdns.f         ; $(FC) $(OP0)  chrdns.f     
kkrscf.o:        kkrscf.f         ; $(FC) $(OP0)  kkrscf.f     
kkrgen.o:        kkrgen.f         ; $(FC) $(OP0)  kkrgen.f     
kkrchi.o:        kkrchi.f         ; $(FC) $(OP0)  kkrchi.f     
cluscf.o:        cluscf.f         ; $(FC) $(OP0)  cluscf.f     
clugen.o:        clugen.f         ; $(FC) $(OP0)  clugen.f     
cluchi.o:        cluchi.f         ; $(FC) $(OP0)  cluchi.f     
kkrspec.o:       kkrspec.f        ; $(FC) $(OP0)  kkrspec.f     

#########################################################################
# dmft dependencies
dmft_drv_sosptflex_idm.o: dmft_green_sptf_interface.o
dmft_green_la.o: dmft_green_stop.o
dmft_green_sptf_fourier.o: dmft_green_sptf_disk_access.o \
	dmft_green_sptf_fft_interface.o \
	dmft_green_sptf_model_functions.o \
	dmft_green_sptf_mpi.o dmft_green_stop.o
dmft_green_sptf_interface.o: dmft_green_la.o dmft_green_mpi.o \
	dmft_green_sptf_main.o dmft_green_stop.o
dmft_green_sptf_main.o: dmft_green_sptf_disk_access.o \
	dmft_green_sptf_fourier.o dmft_green_sptf_mask.o \
	dmft_green_sptf_model_functions.o dmft_green_sptf_mpi.o \
	dmft_green_sptf_potentials.o dmft_green_stop.o
dmft_green_sptf_mask.o: dmft_green_sptf_model_functions.o
dmft_green_sptf_model_functions.o: dmft_green_stop.o
dmft_green_sptf_mpi.o: dmft_green_mpi.o \
	dmft_green_sptf_model_functions.o \
	dmft_green_stop.o
dmft_green_sptf_potentials.o: dmft_green_la.o
dmft_green_stop.o: dmft_green_mpi.o
#########################################################################
# Preprocesing: creating main program files

kkrscf.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/KKRSCF/" > kkrscf.f

kkrgen.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/KKRGEN/" > kkrgen.f

kkrchi.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/KKRCHI/" > kkrchi.f



cluscf.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/CLUSCF/" > cluscf.f

clugen.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/CLUGEN/" > clugen.f

cluchi.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/CLUCHI/" > cluchi.f

kkrspec.f:	kkrmain.f 
	cat kkrmain.f | sed -e "1,500s/KBZI=1/KBZI=1/" | sed -e "1,500s/KKRXXX/KKRSPEC/" > kkrspec.f

#########################################################################
#
# This construct should filter out object file ceated from .f90 files
# combines then all .f and .f90 files
# and create proper dependency for git wraper

F90_OBJ=$(DMFT_GREEN)
LIST_FO=$(filter-out $(F90_OBJ),$(KKRSCF) $(MPIDUM) $(KKREOS) $(KKRGEN) \
   $(EMBGEN) $(EMBSCF) $(KKRCHI) $(KKRSPEC) )
LIST_F=$(subst .o,.f,$(LIST_FO))

LIST_F90=$(subst .o,.f90, $(F90_OBJ) )

gitstamp.o: $(filter-out gitstamp.f,$(LIST_F) $(LIST_F90))
	./gitstamp.sh '$(FFLAGS)'
	$(FC) gitstamp.f -o gitstamp.o
#########################################################################


