SHELL=/bin/sh ############################################################################ # # Makefile for glmp_granalysis_2p5 # Use: # make - build the executable # make clean - start with a clean slate # # Module loaded before building the executable: # modulefiles/glmp/v1.1.0 # # History: # 05/19/2015 Ghirardelli - modified for NCO standards # ############################################################################ # # This makefile is invoked by the command line: # make -f makefile # it will compile the fortran modules indicated by SRCS into the object # modules indicated by OBJS and produce an executable named a.out. # # If it is invoked by the command line # make -f makefile a.out.prof # it will compile the fortran modules indicated by SRCS into the object # modules indicated by OBJS and produce an executable which profiles # named a.out.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 SRCS and OBJS should not need to be changed. If, however, # you need to add a new module add the name of the source module to the # SRCS parameter and add the name of the resulting object file to the OBJS # 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. # SRCS= augmt1.f augmt2.f augmt3.f augmto.f avglap.f bcd5.f blend.f blend2.f bogus.f bogusg.f caksno.f cateq.f cconsn.f cigfrq.f cigft.f cightc.f cigmbo.f cigobc.f ckmaxt.f ckmint.f ckpop.f ckqpf.f cktdp.f ckwndg.f clapse.f clip.f clos2.f clos2g.f closlw.f closo.f concpr.f conekd.f conspr.f const.f convpr.f corbc5.f cutit.f cvlmpm.f cvlmpr.f ddrad.f ddrad2.f dens.f densrm.f densrq.f difwh.f dirfuv.f dirspd.f enhanc.f enhwnd.f erest.f eslp5.f esp5.f fgskya.f fitwth.f fltag5.f fltagm.f fstgs5.f gfetch.f gfetch4.f glffst.f gradck.f granalysis.f gthres.f hsmth.f int155.f intrpx.f irlmp.f irlmtw.f irobs.f irobtw.f itrp.f itrpsl.f itrpsx.f keylst.f lapse.f lapsua.f lgtvsp.f listlw.f lmllij.f lmstr4.f log2pt.f newxy.f orsmth.f orsmtw.f orvwsm.f osmth1.f osmth.f pix1.f pix.f pixsm1.f platyp.f points.f post88.f post.f postcg.f postva.f postpm.f prntxx.f qpf6p6.f rd45cn.f rdeqng.f rdnei.f rdprs.f rdstqs.f rdstqt.f rdstr1.f rdstr7.f rdv155.f rdvrhl.f regres.f restrw.f restwh.f rough.f roughg.f rvsnam.f sample.f sclcig.f sclq06.f sclq12.f sclsky.f sclsno.f sclvis.f setcig.f setfg.f setgpt.f setlnd.f setpln.f setpnt.f setvmi.f setvis.f skyamp.f skyamt.f skycig.f skylmp.f skymbo.f skyobc.f skyobp.f smothg.f sortbg.f spotrm.f spotwt.f stsnoz.f szgrdm.f szgrid.f terdif.f trnwnd.f u155ck.f u155.f u405a.f vari.f varig.f varil.f varilg.f variw.f variwg.f visfrq.f vismbo.f vismi.f windg.f wndcor.f wthol1.f wthol2.f wthol3.f xycom1.f OBJS= augmt1.o augmt2.o augmt3.o augmto.o avglap.o bcd5.o blend.o blend2.o bogus.o bogusg.o caksno.o cateq.o cconsn.o cigfrq.o cigft.o cightc.o cigmbo.o cigobc.o ckmaxt.o ckmint.o ckpop.o ckqpf.o cktdp.o ckwndg.o clapse.o clip.o clos2.o clos2g.o closlw.o closo.o concpr.o conekd.o conspr.o const.o convpr.o corbc5.o cutit.o cvlmpm.o cvlmpr.o ddrad.o ddrad2.o dens.o densrm.o densrq.o difwh.o dirfuv.o dirspd.o enhanc.o enhwnd.o erest.o eslp5.o esp5.o fgskya.o fitwth.o fltag5.o fltagm.o fstgs5.o gfetch.o gfetch4.o glffst.o gradck.o granalysis.o gthres.o hsmth.o int155.o intrpx.o irlmp.o irlmtw.o irobs.o irobtw.o itrp.o itrpsl.o itrpsx.o keylst.o lapse.o lapsua.o lgtvsp.o listlw.o lmllij.o lmstr4.o log2pt.o newxy.o orsmth.o orsmtw.o orvwsm.o osmth1.o osmth.o pix1.o pix.o pixsm1.o platyp.o points.o post88.o post.o postcg.o postva.o postpm.o prntxx.o qpf6p6.o rd45cn.o rdeqng.o rdnei.o rdprs.o rdstqs.o rdstqt.o rdstr1.o rdstr7.o rdv155.o rdvrhl.o regres.o restrw.o restwh.o rough.o roughg.o rvsnam.o sample.o sclcig.o sclq06.o sclq12.o sclsky.o sclsno.o sclvis.o setcig.o setfg.o setgpt.o setlnd.o setpln.o setpnt.o setvmi.o setvis.o skyamp.o skyamt.o skycig.o skylmp.o skymbo.o skyobc.o skyobp.o smothg.o sortbg.o spotrm.o spotwt.o stsnoz.o szgrdm.o szgrid.o terdif.o trnwnd.o u155ck.o u155.o u405a.o vari.o varig.o varil.o varilg.o variw.o variwg.o visfrq.o vismbo.o vismi.o windg.o wndcor.o wthol1.o wthol2.o wthol3.o xycom1.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 # BINDIR = ../../exec FC = ${COMP} # Use Intel FORTRAN Compiler, ifort LDFLAGS = -qopenmp #LDFLAGS = -qopenmp -Bstatic LIBS = ${LMP_LIB4} ${MDL_LIB4} ${W3NCO_LIB4} CMD = glmp_granalysis_2p5 PROFLIB = # 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 = -O3 -nofree -i4 -real-size 32 -fpscomp logicals -fp-model strict -assume byterecl -qopenmp -traceback DEBUG = -DDEBUG -g -traceback -check all #FFLAGS = -O3 -nofree -xHost -i4 -real-size 32 -fpscomp logicals -fp-model strict -assume byterecl -qopenmp # Lines from here on down should not need to be changed. They are the # actual rules which make uses to build a.out. # all: $(CMD) $(CMD): $(OBJS) $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(LIBS) #$(OBJS): $(SRCS) # $(FC) $(FFLAGS) -c $< # Make the profiled version of the command and call it a.out.prof # $(CMD).prof: $(OBJS) $(FC) $(LDFLAGS) -o $(@) $(OBJS) $(PROFLIB) $(LIBS) clean: -rm -f $(OBJS) clobber: clean -rm -f $(CMD) $(CMD).prof void: clobber -rm -f $(SRCS) makefile debug: FFLAGS += $(DEBUG) debug: all install: -mv $(CMD) ${BINDIR}/ test: $(CMD) < input.txt > output.txt diff output.txt valid_output.txt