#*********************************************************************** # Makefile for the ECCO off-line large scale optimization. # # started: Patrick Heimbach heimbach@mit.edu 19-Jun-2000 # # changed: # #*********************************************************************** # The optimization routines. SRC = optim_main.F \ optim_sub.F \ optim_numbmod.F \ optim_initmod.F \ optim_readdata.F \ optim_writedata.F \ optim_write_control.F \ xerbla.F \ simul.F EXEDIR = ./ # Location of cpp preprocessor # default is (Linux) CPP = cat $< | /lib/cpp -P -traditional # on SUNOS # CPP = cat $< | /usr/ccs/lib/cpp INCLUDEDIRS = -I. \ -I../../../verification/release3/build/ LIBDIRS = -L. \ -L../lsopt/ #LIBS = -llsopt_ecco \ # -lblas1 LIBS = -llsopt_ecco \ -mkl \ -lpthread \ -lmpi # OPTMODE is either equal to OFFLINE or ONLINE OPTMODE = OFFLINE EXECUTABLE = $(EXEDIR)optim.x # The cpp flags. CPPFLAGS = -DREAL_BYTE=4 \ -DMAX_INDEPEND=283933928 \ -D_RL='double precision' \ -D_RS='double precision' \ -D_d='D' \ -D$(OPTMODE) #split control # -DMAX_INDEPEND=256135110 \ # -DMAX_INDEPEND=293570968 \ # FORTRAN compiler and its flags. # default is (Linux) #FC = f77 # ifort compilers FC = ifort FFLAGS = -mcmodel=large -shared-intel -fp-model precise -132 -r8 -i4 -W0 -WB -CB -fpe0 -traceback -convert big_endian -assume byterecl #FFLAGS = -mp -132 -r8 -i4 -w95 -W0 -WB -CB -fpe0 -traceback -convert big_endian -assume byterecl # SGI o3k IRIX64 #FC = f77 #FFLAGS = -extend_source -bytereclen -mips4 -r8 -static # AER cluster #FC = /opt/mpich/bin/mpif77 #FFLAGS = -byteswapio -r8 -Mnodclchk -Mextend # File removal. RM = rm -f SMALLF = $(SRC:.F=.f) OBJECTS = $(SRC:.F=.o) .SUFFIXES: .o .f .F all: small_f $(EXECUTABLE) $(EXECUTABLE): $(OBJECTS) $(FC) -o $@ $(FFLAGS) $(OBJECTS) $(LIBDIRS) $(LIBS) small_f: $(SMALLF) depend: makedepend -o .f $(INCLUDEDIRS) $(SRC) # The normal chain of rules is ( .F - .f - .o ) .F.f: $(CPP) $(CPPFLAGS) $(INCLUDEDIRS) > $@ xerbla.f: xerbla.F $(CPP) $(INCLUDEDIRS) > $@ .f.o: $(FC) $(FFLAGS) -c $< # Cleaning options. clean: $(RM) $(EXEDIR)optim.x *.o *.f scratch: $(RM) OPWARMD OPWARMI $(EXEDIR)optim.x $(OBJ) # DO NOT DELETE