F90 = ifort
IMSL_FLAGS = $(F90FLAGS) $(LINK_F90)

#/// The name of your final executable file
OBJ0 = Main

OBJ1 = ${OBJ0}

#/// dependencies
OBJ2 = Params
#.... add more dependencies
OBJ3 = GetIndex
OBJ4 = ChebValue
OBJ5 = ChebPoly
OBJ6 = StaticFOC
OBJ7 = Grid
OBJ8 = ExpectFOC
OBJ9 = ExpectFOC_Simul
OBJ10 = ExpectFOC_MCSimul
OBJ11 = MonIntegrate
OBJ12 = MCIntegrate
OBJ13 = EulerEquation
OBJ14 = AccCheck2
OBJ15 = DecRule
OBJ16 = PolicyInitial
OBJ17 = Regression
OBJ18 = Interpolate
OBJ19 = Policy
OBJ20 = WriteRowM
OBJ21 = WriteRowT
OBJ22 = Output
OBJ23 = ParamUpdate
OBJ25 = AccCheck1Sub
OBJ26 = AccCheck1
OBJ28 = AccCheck3
OBJ29 = OutCoeff
OBJ30 = WriteColM
OBJ31 = DecRule2

#------ Starting point

#first target
all: $(OBJ0)

$(OBJ0):  $(OBJ1).o $(OBJ2).o $(OBJ3).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ7).o $(OBJ8).o $(OBJ9).o $(OBJ10).o $(OBJ11).o $(OBJ12).o $(OBJ13).o $(OBJ14).o $(OBJ15).o $(OBJ16).o $(OBJ17).o $(OBJ18).o $(OBJ19).o $(OBJ20).o $(OBJ21).o $(OBJ22).o $(OBJ23).o $(OBJ25).o $(OBJ26).o $(OBJ28).o $(OBJ29).o $(OBJ30).o $(OBJ31).o
	@echo " "
	@echo " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
	@echo " "
	@echo "      LINKING to Create $@   ...................."
	@echo " "
	$(F90) -o $@  $(OBJ2).o $(OBJ3).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ7).o $(OBJ8).o $(OBJ9).o $(OBJ10).o $(OBJ11).o $(OBJ12).o $(OBJ13).o $(OBJ14).o $(OBJ15).o $(OBJ16).o $(OBJ17).o $(OBJ18).o $(OBJ19).o $(OBJ20).o $(OBJ21).o $(OBJ22).o $(OBJ23).o $(OBJ25).o $(OBJ26).o $(OBJ28).o $(OBJ29).o $(OBJ30).o $(OBJ31).o $(OBJ1).f90 $(IMSL_FLAGS)
	@echo " "
	@echo "  --- Executable $@ created  ---"
	@echo " "
	@echo " "
	@echo " "

#////////

$(OBJ2).o: $(OBJ2).f90 
	@echo " "
	@echo " "
	@echo " <1>     Creating $(OBJ2).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ2).f90
	@echo " "
	@echo "  ------------ $(OBJ2).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ3).o: $(OBJ3).f90 $(OBJ2).o 
	@echo " "
	@echo " "
	@echo " <2>     Creating $(OBJ3).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ3).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ3).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ4).o: $(OBJ4).f90 $(OBJ2).o
	@echo " "
	@echo " "
	@echo " <3>     Creating $(OBJ4).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ4).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ4).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ5).o: $(OBJ5).f90 $(OBJ2).o
	@echo " "
	@echo " "
	@echo " <4>     Creating $(OBJ5).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ5).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ5).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ6).o: $(OBJ6).f90 $(OBJ2).o
	@echo " "
	@echo " "
	@echo " <5>     Creating $(OBJ6).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ6).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ6).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ7).o: $(OBJ7).f90 $(OBJ2).o
	@echo " "
	@echo " "
	@echo " <6>     Creating $(OBJ7).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ7).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ7).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ8).o: $(OBJ8).f90 $(OBJ2).o $(OBJ4).o $(OBJ6).o
	@echo " "
	@echo " "
	@echo " <7>     Creating $(OBJ8).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ8).f90 $(OBJ2).o $(OBJ4).o $(OBJ6).o
	@echo " "
	@echo "  ------------ $(OBJ8).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ9).o: $(OBJ9).f90 $(OBJ2).o $(OBJ4).o $(OBJ6).o
	@echo " "
	@echo " "
	@echo " <8>     Creating $(OBJ9).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ9).f90 $(OBJ2).o $(OBJ4).o $(OBJ6).o
	@echo " "
	@echo "  ------------ $(OBJ9).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ10).o: $(OBJ10).f90 $(OBJ2).o $(OBJ4).o
	@echo " "
	@echo " "
	@echo " <9>     Creating $(OBJ10).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ10).f90 $(OBJ2).o $(OBJ4).o
	@echo " "
	@echo "  ------------ $(OBJ10).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ11).o: $(OBJ11).f90 $(OBJ2).o $(OBJ8).o  $(OBJ9).o
	@echo " "
	@echo " "
	@echo " <10>     Creating $(OBJ11).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ11).f90 $(OBJ2).o $(OBJ8).o $(OBJ9).o
	@echo " "
	@echo "  ------------ $(OBJ11).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ12).o: $(OBJ12).f90 $(OBJ2).o $(OBJ10).o
	@echo " "
	@echo " "
	@echo " <11>     Creating $(OBJ12).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ12).f90 $(OBJ2).o $(OBJ10).o
	@echo " "
	@echo "  ------------ $(OBJ12).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ13).o: $(OBJ13).f90 $(OBJ2).o $(OBJ5).o $(OBJ6).o $(OBJ11).o
	@echo " "
	@echo " "
	@echo " <12>     Creating $(OBJ13).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ13).f90 $(OBJ2).o $(OBJ5).o $(OBJ6).o $(OBJ11).o
	@echo " "
	@echo "  ------------ $(OBJ13).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ14).o: $(OBJ14).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ11).o $(OBJ12).o
	@echo " "
	@echo " "
	@echo " <13>     Creating $(OBJ14).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ14).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ11).o $(OBJ12).o
	@echo " "
	@echo "  ------------ $(OBJ14).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ15).o: $(OBJ15).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ6).o
	@echo " "
	@echo " "
	@echo " <14>     Creating $(OBJ15).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ15).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ6).o
	@echo " "
	@echo "  ------------ $(OBJ15).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ16).o: $(OBJ16).f90 $(OBJ2).o
	@echo " "
	@echo " "
	@echo " <15>     Creating $(OBJ16).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ16).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ16).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ17).o: $(OBJ17).f90 $(OBJ2).o $(OBJ3).o
	@echo " "
	@echo " "
	@echo " <16>     Creating $(OBJ17).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ17).f90 $(OBJ2).o $(OBJ3).o
	@echo " "
	@echo "  ------------ $(OBJ17).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ18).o: $(OBJ18).f90 $(OBJ2).o $(OBJ17).o
	@echo " "
	@echo " "
	@echo " <17>     Creating $(OBJ18).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ18).f90 $(OBJ2).o $(OBJ17).o
	@echo " "
	@echo "  ------------ $(OBJ18).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ19).o: $(OBJ19).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ13).o $(OBJ17).o $(OBJ18).o
	@echo " "
	@echo " "
	@echo " <18>     Creating $(OBJ19).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ19).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ13).o $(OBJ17).o $(OBJ18).o
	@echo " "
	@echo "  ------------ $(OBJ19).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ20).o: $(OBJ20).f90 $(OBJ2).o 
	@echo " "
	@echo " "
	@echo " <19>     Creating $(OBJ20).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ20).f90 $(OBJ2).o 
	@echo " "
	@echo "  ------------ $(OBJ20).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ21).o: $(OBJ21).f90 $(OBJ2).o 
	@echo " "
	@echo " "
	@echo " <20>     Creating $(OBJ21).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ21).f90 $(OBJ2).o 
	@echo " "
	@echo "  ------------ $(OBJ21).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ22).o: $(OBJ22).f90 $(OBJ2).o $(OBJ20).o $(OBJ21).o
	@echo " "
	@echo " "
	@echo " <21>     Creating $(OBJ22).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ22).f90 $(OBJ2).o $(OBJ20).o $(OBJ21).o
	@echo " "
	@echo "  ------------ $(OBJ22).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ23).o: $(OBJ23).f90 $(OBJ2).o 
	@echo " "
	@echo " "
	@echo " <22>     Creating $(OBJ23).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ23).f90 $(OBJ2).o
	@echo " "
	@echo "  ------------ $(OBJ23).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ25).o: $(OBJ25).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ11).o $(OBJ12).o
	@echo " "
	@echo " "
	@echo " <23>     Creating $(OBJ25).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ25).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ11).o $(OBJ12).o
	@echo " "
	@echo "  ------------ $(OBJ25).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ26).o: $(OBJ26).f90 $(OBJ2).o $(OBJ25).o
	@echo " "
	@echo " "
	@echo " <24>     Creating $(OBJ26).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ26).f90 $(OBJ2).o $(OBJ25).o
	@echo " "
	@echo "  ------------ $(OBJ26).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ28).o: $(OBJ28).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o 
	@echo " "
	@echo " "
	@echo " <25>     Creating $(OBJ28).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ28).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o 
	@echo " "
	@echo "  ------------ $(OBJ28).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ30).o: $(OBJ30).f90 $(OBJ2).o 
	@echo " "
	@echo " "
	@echo " <26>     Creating $(OBJ30).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ30).f90 $(OBJ2).o 
	@echo " "
	@echo "  ------------ $(OBJ30).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ29).o: $(OBJ29).f90 $(OBJ2).o $(OBJ20).o $(OBJ21).o $(OBJ30).o
	@echo " "
	@echo " "
	@echo " <27>     Creating $(OBJ29).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ29).f90 $(OBJ2).o $(OBJ20).o $(OBJ21).o $(OBJ30).o
	@echo " "
	@echo "  ------------ $(OBJ29).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ31).o: $(OBJ31).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ6).o
	@echo " "
	@echo " "
	@echo " <30>     Creating $(OBJ31).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ31).f90 $(OBJ2).o $(OBJ4).o $(OBJ5).o $(OBJ6).o
	@echo " "
	@echo "  ------------ $(OBJ31).o, created !!! ----------"
	@echo " "
	@echo " "

$(OBJ1).o: $(OBJ1).f90 $(OBJ2).o $(OBJ3).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ7).o $(OBJ8).o $(OBJ9).o $(OBJ10).o $(OBJ11).o $(OBJ12).o $(OBJ13).o $(OBJ14).o $(OBJ15).o $(OBJ16).o $(OBJ17).o $(OBJ18).o $(OBJ19).o $(OBJ20).o $(OBJ21).o $(OBJ22).o $(OBJ23).o $(OBJ25).o $(OBJ26).o $(OBJ28).o $(OBJ29).o $(OBJ30).o $(OBJ31).o
	@echo " "
	@echo " "
	@echo " <31>     Creating $(OBJ1).o,   ...................."
	@echo " "
	$(F90) -c $(OBJ1).f90 $(OBJ2).o $(OBJ3).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ7).o $(OBJ8).o $(OBJ9).o $(OBJ10).o $(OBJ11).o $(OBJ12).o $(OBJ13).o $(OBJ14).o $(OBJ15).o $(OBJ16).o $(OBJ17).o $(OBJ18).o $(OBJ19).o $(OBJ20).o $(OBJ21).o $(OBJ22).o $(OBJ23).o $(OBJ25).o $(OBJ26).o $(OBJ28).o $(OBJ29).o $(OBJ30).o $(OBJ31).o
	@echo " "
	@echo "  ------------ $(OBJ1).o, created !!! ----------"
	@echo " "
	@echo " "

#//// END OF dependencies

clean:
	@clear
	@echo " "
	@echo " "
	@echo "                    Cleaning UP!!!  ...."
	@echo " "
	@echo " " 
	\rm -f $(OBJ1.o)
#	\rm -f $(OBJ0)  $(OBJ1).o $(OBJ2).o $(OBJ3).o $(OBJ4).o $(OBJ5).o $(OBJ6).o $(OBJ7).o $(OBJ8).o $(OBJ9).o $(OBJ10).o $(OBJ11).o $(OBJ12).o $(OBJ13).o $(OBJ14).o $(OBJ15).o $(OBJ16).o $(OBJ17).o $(OBJ18).o $(OBJ19).o $(OBJ20).o $(OBJ21).o $(OBJ22).o $(OBJ23).o $(OBJ25).o $(OBJ26).o $(OBJ28).o $(OBJ29).o $(OBJ30).o $(OBJ31).o
	@echo " "
	@echo " "
	@echo "               ----       D O N E    ----"
	@echo " "
	@echo " "
	@echo " "
