################################################################################ # # Makefile for Eta Coordinate Model - Dummy MPI Version # Tuccillo Dec 1999 # # Use: # make - build the executable # make clean - start with a clean slate # # The following macros will be of interest: # # TARGET - name of the executable # FC - name of Fortran compiler # CPP - name of CPP # CPPFLAGS - CPP flags # OPTS - compiler code optimizations # LIST - source listing # SMP - threading # TRAPS - runtime traps for floating point exceptions # PROFILE - source code profiling ( -pg ) # DEBUG - -g # INCLUDE - search location for include files # W3LIB - w3lib # MPI - dummy MPI library # SEARCH - library search location # ################################################################################# .SUFFIXES: .F .f .o # INC = ../include_mpi INC=./ #TO include ../configure/make.inc include ../configure/make.inc.single # # Define the name of the executable # TARGET = ../../exe/etafcst_mpi.x COMPILE.f = $(FC) -c $(FFLAGS) -I$(INC) PREPROC.F = $(CC) -P $(CFLAGS) #TO CPP = /lib/cpp -P CPP = cc CPPFLAGS = #TO OPTS= -O1 OPTS= SMP = TRAPS = PROFILE = DEBUG= # INCLUDE = -IMPI_dummy # INCLUDE = -I../../../libraries/dummyMPI INCLUDE = ./ W3LIB= ../../../libraries/w3lib # MPI = -lmpi MPI=../../../libraries/dummyMPI/libmpi.a SEARCH = -L../../../libraries/dummyMPI # # Assemble Options # # FFLAGS should be defined in make.inc # FFLAGS = $(OPTS) $(LIST) $(TRAPS) $(PROFILE) $(DEBUG) $(INCLUDE) FFLAGST = $(FFLAGS) $(SMP) LDFLAGS = $(SMP) $(PROFILE) $(FFLAGS) # LIBS = $(SEARCH) $(MPI) $(W3LIB) LIBS = $(MPI) $(W3LIB) # # Non-threaded object files # OBJS= BOCOV.o BOCOH.ssib.o BOCOHF.o CALMCVGT.ssib.o CHKOUT.ssib.o \ CLO89.o CONRAD.o CUCNVC.ssib.o DDAMP.o \ DIFCOF.o DIGFLT.o DIVHOA.o DSTRB.o E1E290.o E290.o \ E2SPEC.o E3V88.o EBU.ssib.o EXCH.o FILT25.o FST88.o \ GFDLRD.o GOSSIP.ssib.o GRADFS.o HCONST.o \ IDSTRB.o IEXCH.o ILOC2GLB.o INIT.ssib.o \ LOC2GLB.o LWR88.o MPPINIT.o MIXLEN.o O3CLIM.o O3INT.o \ OZON2D.o PDNEW.o PDTE.o PGCOR.o PRECPD.o PRODQ2.o \ RADFS.ssib.o RDTEMP.o READ_NHB.o READ_RESTRT.ssib.o READ_RESTRT2.o \ SFCDIF.ssib.o SFLX.o SGETMO.o SOLARD.o SPA88.o SURFCE.ssib.o SWR93.o \ TABLE.o TTBLEX.o VDIFH.ssib.o VDIFQ.o VDIFV.ssib.o READ_SST.ssib.o \ SOLARDD.ssib.o SGETMOR.ssib.o \ simpsib.ssib.o sfcbio.ssib.o sfcsice.ssib.o VDIFH2.ssib.o \ VTADV.o VTADVF.o ZENITH.o ZERO2.o ZERO3.o ZERO3_T.o TWR.o timef_bog.o \ SSTDCY.rv.o alb_data.ssib.o # # Threaded object files # OBJST= GSCOND.o HDIFF.o HZADV.o HZADV2.o RADTN.ssib.o TURBL.ssib.o # # Includes # INCLUDES= mpp.h parmeta # # Common Blocks # COMMS= ACMCLD.comm CTLBLK.comm MAPOT.comm PHYS.comm SEASO3.comm \ ACMCLH.comm BOCO.comm DYNAM.comm MAPOT1.comm PHYS1.comm \ SOIL.comm \ ACMPRE.comm CLDWTR.comm DYNAMD.comm MASKS.comm PHYS2.comm \ TABCOM.comm \ ACMRDL.comm CNVCLD.comm HCON.comm MSLP.comm PRFHLD.comm \ TEMPV.comm \ ACMRDS.comm CO2DTA.comm INDX.comm OPTIONS.comm PVRBLS.comm \ VRBLS.comm \ ACMSFC.comm CONTIN.comm LOOPS.comm OUTFIL.comm RNDDTA.comm \ Z0EFFT.comm \ ssibrad.ssib.com ssibsfc.ssib.com \ CALMCVGT.ssib.com COMSPOST.ssib.com \ COMSALB.ssib.com COMSCON.ssib.com \ COMSVEG.ssib.com COMSWHT.ssib.com DEPS= $(COMMS) $(INCLUDES) .SUFFIXES: .F .f .o .F.o: # echo "USING CPP STUFF" #TO $(PREPROC.F) $< > $*.f # mv $(<:.F=.i) $(<:.F=.f) echo "Compiling $(<:.F=.f)" #TO $(COMPILE.f) $(<:.F=.f) $(COMPILE.f) $*.F #TO rm $(<:.F=.f) $(TARGET): $(OBJS) $(OBJST) $(FC) $(LDFLAGS) -o $@ $(OBJS) $(OBJST) $(LIBS) # $(FC) $(LDFLAGS) $(LIBS) -o $@ $(OBJS) $(OBJST) # $(OBJS): $(DEPS) # $(COMPILE.f) $< # $(OBJST): $(DEPS) # $(FC) $(FFLAGST) -c $< clean: /bin/rm -f *.lst *.o exe: $(TARGET)