SHELL=/bin/bash # # This makefile was produced by /usr/bin/fmgen at 01:06:19 PM on 03/18/95 # If it is invoked by the command line # make -f makefile # it will compile the fortran modules indicated by SRC into the object # modules indicated by OBJ and produce an executable named a.create. # # If it is invoked by the command line # make -f makefile a.create.prof # it will compile the fortran modules indicated by SRC into the object # modules indicated by OBJ and produce an executable which profiles # named a.create.prof. # # To remove all the objects but leave the executables use the command line # make -f makefile clean # # To remove everything but the source files use the command line # make -f makefile clobber # # To remove the source files created by /usr/bin/fmgen and this makefile # use the command line # make -f makefile void # # The parameters SRC and OBJ should not need to be changed. If, however, # you need to add a new module add the name of the source module to the # SRC parameter and add the name of the resulting object file to the OBJ # parameter. The new modules are not limited to fortran, but may be C, YACC, # LEX, or CAL. An explicit rule will need to be added for PASCAL modules. # SRC= modules.f addw.f calcr.f findra.f j4save.f phase.f srotmg.f xerctl.f \ amatrix.f calct.f h12.f readdropw.f wght.f xerprt.f \ asym.f center.f i1mach.f maxmag.f readit.f wnlit.f xerror.f \ bound2.f check.f input.f maxth.f rodist.f wnlsm.f xerrwv.f \ bound.f compute.f interad.f maxw.f separ.f wnnls.f xersav.f \ calcra.f fdump.f interp.f srotm.f xerabt.f xgetua.f OBJ= ${SRC:.f=.o} # Tunable parameters # # FC Name of the fortran compiling system to use # LDFLAGS Flags to the loader # LIBS List of libraries # CMD Name of the executable # PROFLIB Library needed for profiling # ISIZE = 4 RSIZE = 4 FC = ifort MKLROOT= /usrx/local/intel/mkl LDFLAGS = -Wl, $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_sequential.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl, -lpthread -lm LIBS= -L/nwprod/lib -lw3nco_d CMD = gfdl_rmenvir PROFLIB = -lprof # To perform the default compilation, use the first line # To compile with flowtracing turned on, use the second line # To compile giving profile additonal information, use the third line # WARNING: SIMULTANEOUSLY PROFILING AND FLOWTRACING IS NOT RECOMMENDED FFLAGS = -O2 -fpe0 -i4 -convert big_endian # Lines from here on down should not need to be changed. They are the # actual rules which make uses to build a.create. .f.o: $(FC) $(FFLAGS) -c $*.f all: $(CMD) $(CMD): $(OBJ) $(FC) -o $(@) $(OBJ) $(LIBS) $(LDFLAGS) # Make the profiled version of the command and call it a.create.prof # $(CMD).prof: $(OBJ) $(FC) $(LDFLAGS) -o $(@) $(OBJ) $(PROFLIB) $(LIBS) clean: -rm -f $(OBJ) *.mod copy_summ: cp summary.o.hold summary.o allclean: clean all clobber: clean -rm -f $(CMD) $(CMD).prof void: clobber -rm -f $(SRC) makefile