################################################################################ # # Makefile for PREMAQ in EPA IBM # # 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 # ARCH - architecture # CPPFLAGS - CPP flags # OPTS - compiler code optimizations # SMP - threading # TRAPS - runtime traps for floating point exceptions # DEBUG - -g # MEM - user data area and stack size # MAP - load map # W3LIB - w3lib # BALIB - /nwprod/w3lib90/bacio_4 # ESSL - ESSL library # MASS - MASS library # ################################################################################# # # Define the name of the executable # TARGET = aqm_premaq-rhoJ-PV_ACM.exe #... Location of library LIB_LOC= /nwprod/lib #... Location of complier CC = /usr/vac/bin/cc #... Location of complier & OPTIONS # for OpenMP compilation # FC = /usr/bin/mpxlf90 # OMPFLAG1 = -qsmp=nested_par,noopt # OMPFLAG2 = -qsmp=omp,noopt # LINK_FLAGS = -q64 -qsmp # for non OpenMP compilation FC = /usr/bin/xlf90 OMPFLAG1 = OMPFLAG2 = LINK_FLAGS = -q64 #... OPTIONS OPTS = -qfree -O3 -qstrict -q64 OPTS2 = -qfixed=132 -O3 -qstrict -q64 SMP = TRAPS = # TRAPS = -qinitauto=FF911299 -qflttrap=ov:zero:inv:en -qsigtrap DEBUG = # DEBUG = -qnodbg # DEBUG = -g -qcheck # DEBUG = -g -qcheck -qextchk MEM = MAP = -bmap:map -bloadmap:lm DEFS = -WF,-DBIT32,-DIBM INCLUDES = -Iedss_tools -Ismokelib W3LIB = -lw3_4 IOAPI = -laqm_ioapi NOTCDF = -laqm_notcdf # PARIO = -laqm_pario # STENEX = -laqm_sef90 # GEMLIB = -lgem_4 # IPLIB = -lip_4 # BALIB = -lbacio_4 # SPLIB = -lsp_4 # ESSL = -lessl_r # MASS = -lmass # # Assemble Options # CFLAGS = -q64 LOPTS = FFLAGS = $(OPTS) $(TRAPS) $(DEBUG) FFLAGS_FIXED = $(OPTS2) $(TRAPS) $(DEBUG) LDFLAGS = $(MEM) $(MAP) $(SMP) $(PROFILE) LIBS = -L${LIB_LOC} $(W3LIB) $(IOAPI) $(NOTCDF) # \ # $(PARIO) $(STENEX) $(GEMLIB) $(IPLIB) $(BALIB) $(SPLIB) $(ESSL) $(MASS) # LIBS = /work/ste/aqf/util/w3lib_4_64 \ # -L/work/wdx/tools/ioapi_3/AIX64 -lioapi \ # -L/work/wdx/64-bit/netcdf-3.5.1/lib -lnetcdf # -L/work/wdx/tools/ioapi_3/AIX64 -lnotcdf # # object files # MODULES = \ parms3_mod.o \ const_mod.o \ choutcom_mod_o3tracers.o \ const_mete_mod.o \ const_pbl_mod.o \ coord_mod.o \ date_pack_mod.o \ date_time_mod.o \ fdesc3_mod.o \ file_mod.o \ grib_mod.o \ gridinfo_mod.o \ groutcom_mod.o \ iodecl3_mod.o \ mcoutcom_mod.o \ mdoutcom_mod.o \ metinfo_mod.o \ metvars_mod_WRF.o \ premaqparm_mod_WRF.o \ table_mod.o \ vgrd_mod.o \ xvars_mod.o MODULES_E = \ modgrid.o \ modbeis3.o \ modbeis3v1.o \ modbeis3v11.o \ modbiog.o \ modcntrl.o \ moddayhr.o \ modelev.o \ modemfac.o \ modinfo.o \ modlists.o \ modmerge.o \ modmobil.o \ modreprt.o \ modsourc.o \ modspro.o \ modstcy.o \ modsurg.o \ modtmprl.o \ modxref.o \ modmbset.o \ modfileset.o \ mod_laypoint.o \ mod_smkmerge.o \ mod_mobile.o \ mod_mrggrid.o \ mod_temporal.o \ mod_rw.o OBJS = \ premaq_WRF.o \ alloc_ctm_o3tracers.o \ alloc_met_WRF.o \ alloc_x.o \ bcldprc_ak.o \ check_flags_WRF-tmp.o \ chembc_o3tracers.o \ chkgrib_WRF.o \ cio.o \ close_files.o \ collapx.o \ comheader.o \ crs2dot.o \ cshup.o \ cvmgp.o \ cvmgz.o \ dealloc_ctm_o3tracers.o \ dealloc_met_WRF.o \ dealloc_x.o \ deallogrib.o \ dynflds-pv.o \ emis_report.o \ emissions.o \ etadry.o \ fill_metarys_WRF.o \ fillsigma_WRF.o \ filltable_WRF.o \ gbytesys.o \ get_gridinfo.o \ get_sec1.o \ get_sec2.o \ getcentpoint.o \ getmet.o \ getpblht_hydro.o \ getpblht_hydro-acm.o \ getprs_WRF.o \ getsdt.o \ glccone.o \ graceful_stop.o \ gribdata.o \ gribget.o \ gribheader.o \ griblgg.o \ gribprint.o \ gridgeometry.o \ gridout.o \ hlconst.o \ init_met_WRF.o \ init_x.o \ layht_AQF.o \ locate.o \ met3dsup_AQF_hydro.o \ metcro_rhoJ.o \ metdot.o \ metgrid2ctm_AQF.o \ metvars2ctm_WRF-Lai_4-Fricv_flip.o \ null_x.o \ pblpkg.o \ pblsup-acm.o \ prep_emis.o \ pvorticity.o \ rdgrib.o \ rdgribspecs_WRF.o \ readchembc_gfs-top.o \ readlanda.o \ readnml_WRF.o \ refstate_AQF.o \ reset_flags_WRF.o \ setgriddefs_WRF.o \ setup_WRF.o \ sgup_bitmap.o \ sgup_nobitmap.o \ heap_sort_down.o \ statflds.o \ vertarys_AQF.o \ verthyd_hydro.o \ vertnhy.o \ wind.o \ wrgdesc.o \ xxx-solar-off.o # xxx-solar.o \ # xxx-AQF-RADTN.o \ # xxx-AQF-O3CLIM.o \ # xxx-AQF-OZON2D.o \ # xxx-AQF-RADFS.o \ # xxx-AQF-SOLARD.o \ # xxx-AQF-SWR93.o \ # xxx-AQF-ZENITH.o OBJS_EDSSLIB = \ checkmem.o \ chkint.o \ dscm3grd.o \ fltrneg.o \ getfline.o \ getm3epi.o \ hdrmiss3.o \ padzero.o \ polmesg.o \ unitfac.o \ chkreal.o \ dscm3lay.o \ getcfdsc.o \ getifdsc.o \ getnlist.o \ multunit.o \ parsline.o \ rd3mask.o \ unitmatch.o #EDSS_LIB # lambert.o \ # SMKLIB # asgnpsi.o \ # getisize.o \ # rdefxref.o \ # tmprinfo.o \ OBJS_FILESET = \ openset.o \ descset.o \ closeset.o \ readset.o \ chksetdesc.o \ chkfileset.o \ createset.o \ appendname.o \ cleanup.o \ promptset.o \ rdsetmask.o \ rdmapmask.o \ writeset.o \ rdsrghdr.o \ openphys.o \ flterr.o OBJS_SMKLIB = \ alocchrt.o \ alocctbl.o \ alocetbl.o \ alocgtbl.o \ alocmtbl.o \ alocstbl.o \ alocttbl.o \ applreac.o \ bldcsrc.o \ blkorcmt.o \ chkcpvar.o \ chkgrid.o \ chkptdef.o \ chksrcno.o \ convrtxy.o \ dscsprof.o \ efsetup.o \ fillchrt.o \ fillctbl.o \ filletbl.o \ fillgtbl.o \ fillmtbl.o \ fillstbl.o \ fillttbl.o \ fltrxref.o \ fmtcsrc.o \ genuslst.o \ getctgry.o \ getformt.o \ getidasz.o \ getiname.o \ getsinfo.o \ grd2cnty.o \ ingrid.o \ initem.o \ mbsccadj.o \ normtpro.o \ parscsrc.o \ pdsetup.o \ progdesc.o \ rdcodnam.o \ rdeproc.o \ rdgmat.o \ rdhdays.o \ rdinvchr.o \ rdinvmap.o \ rdinvpol.o \ rdlines.o \ rdmvinfo.o \ rdpelv.o \ rdrmat.o \ rdsccdsc.o \ rdsmat.o \ rdstcy.o \ rdtprof.o \ rdtref.o \ rdumat.o \ verchar.o \ wrdaymsg.o \ xreftbl.o \ OBJS_BEIS = \ beis311.o \ czangle311.o \ getpar311.o \ hrbeis313.o \ hrno312.o \ prebmet311.o \ rdbpro311.o \ pre_beis.o \ emis_end.o OBJS_LAYPOINT = \ laypoint.o \ openlayout.o \ preplm.o \ plmris.o \ postplm.o \ plsprd.o \ pre_point.o OBJS_SMKMERGE = \ smkmerge.o \ allocmrg.o \ bldmrgidx.o \ getmrgev.o \ initstcy.o \ mrgbio.o \ mrgelev.o \ mrgmult.o \ mrgonams.o \ mrgunits.o \ mrgvnams.o \ openmrgin.o \ openmrgout.o \ rdmrginv.o \ wmrgelev.o \ wmrgemis.o \ wrmrgrep.o \ pre_smkmerge.o OBJS_TEMPORAL = \ asgntpro.o \ genhemis.o \ mktmat.o \ opentmp.o \ opentmpin.o \ setdaylt.o \ temporal.o \ pre_temporal.o \ tmnamunt.o \ updtmat.o \ wrtsup.o \ setscctype.o \ ioapi_grd_size.o \ alocptbl.o \ fillptbl.o \ alocatbl.o \ fillatbl.o \ rdmappol.o \ OBJS_MOBILE = \ nlsqrm6.o \ pre_mobile.o \ mobile_emis_model.o OBJS_MRGGRID = \ pre_mrggrid.o \ mrggrid.o ######### all: @$(MAKE) $(MODULES) $(MODULES_E) @$(MAKE) $(TARGET) .SUFFIXES: .F .f .c $(TARGET): $(MODULES) $(MODULES_E) $(OBJS) $(OBJS_EDSSLIB) $(OBJS_FILESET) \ $(OBJS_SMKLIB) $(OBJS_BEIS) $(OBJS_LAYPOINT) $(OBJS_SMKMERGE) \ $(OBJS_TEMPORAL) $(OBJS_MOBILE) $(OBJS_MRGGRID) $(FC) $(LDFLAGS) $(LINK_FLAGS) -o $(TARGET) $(FFLAGS) $(LOPTS) \ $(MODULES) $(MODULES_E) $(OBJS) $(OBJS_EDSSLIB) $(OBJS_FILESET) \ $(OBJS_SMKLIB) $(OBJS_BEIS) $(OBJS_LAYPOINT) $(OBJS_SMKMERGE) \ $(OBJS_TEMPORAL) $(OBJS_MOBILE) $(OBJS_MRGGRID) $(LIBS) bcldprc_ak.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c bcldprc_ak.F chembc_o3tracers.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c chembc_o3tracers.F collapx.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c collapx.F crs2dot.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c crs2dot.F cshup.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c cshup.F etadry.o: $(FC) $(FFLAGS) $(OMPFLAG2) $(DEFS) $(INCLUDES) -c etadry.F getprs_WRF.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c getprs_WRF.F gridgeometry.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c gridgeometry.F met3dsup_AQF_hydro.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c met3dsup_AQF_hydro.F metcro_rhoJ.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c metcro_rhoJ.F metdot.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c metdot.F pblpkg.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c pblpkg.F pblsup-acm.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c pblsup-acm.F refstate_AQF.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c refstate_AQF.F verthyd_hydro.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c verthyd_hydro.F vertnhy.o: $(FC) $(FFLAGS) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c vertnhy.F beis311.o: $(FC) $(FFLAGS_FIXED) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c beis311.f bldmrgidx.o: $(FC) $(FFLAGS_FIXED) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c bldmrgidx.f czangle311.o: $(FC) $(FFLAGS_FIXED) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c czangle311.f hrbeis313.o: $(FC) $(FFLAGS_FIXED) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c hrbeis313.f hrno312.o: $(FC) $(FFLAGS_FIXED) $(OMPFLAG2) $(DEFS) $(INCLUDES) -c hrno312.f mktmat.o: $(FC) $(FFLAGS_FIXED) $(OMPFLAG1) $(DEFS) $(INCLUDES) -c mktmat.f .f.o: $(FC) $(FFLAGS_FIXED) $(DEFS) $(INCLUDES) -c $< readset.o: $(FC) $(FFLAGS_FIXED) $(DEFS) $(INCLUDES) -c $< writeset.o: $(FC) $(FFLAGS_FIXED) $(DEFS) $(INCLUDES) -c $< .F.o: $(FC) $(FFLAGS) $(DEFS) $(INCLUDES) -c $< .c.o: $(CC) $(CFLAGS) $(INCLUDES) -c $< clean: rm -f *.o *.mod *.lst