############################################################################### L = S = ../src J = ../src/jl D = ../libs/libtfs R = ../libs/libtfs/rsb F77 = mpif77 CC = mpixlc P = -qintsize=4 -qrealsize=8 # -qautodbl=dbl4 G = ################################################################################ # # core nekton files ... # CORE = bdry.o coef.o conduct.o connect1.o connect2.o drive.o \ dssum.o edgec.o eigsolv.o gauss.o genxyz.o navier1.o \ navier2.o navier3.o navier4.o prepost.o speclib.o subs1.o subs2.o subuser.o \ map2.o turb.o mvmesh.o ic.o ssolv.o planx.o mat1.o mat2.o \ convert.o ginterface.o revert.o navier0.o byte.o \ ssygv.o dsygv.o hmholtz.o genbox.o \ uzawa_gmres.o hsmg.o convect.o particle.o \ gfdm_par.o gfdm_op.o gfdm_solve.o induct.o perturb.o \ isosurf_linux.o blas.o # # pff overlapping schwaz # OS = navier5.o navier6.o navier7.o navier8.o fast3d.o fasts.o calcz.o # # gather-scatter package # GS = bit_mask.o bss_malloc.o ivec.o error.o comm.o gs.o queue.o hmt_perf.o # # coarse grid solver XXT = xxt.o xxt_tools.o tools.o RSB = pythag.o tqli.o smbwr.o sparse_matrix.o stack.o adj_list.o # # crystal-router JO = jl_ CRYSTAL = $(JO)errmem.o $(JO)sort.o $(JO)crystal.o $(JO)tuple_list.o \ $(JO)transfer.o $(JO)fcrystal.o # gather-scatter (Lottes) GS2 = $(JO)gs.o # coarse grid solver (Lottes) XXT2 = $(JO)sparse_cholesky.o $(JO)xxt.o # point-finding FINDPTS = $(JO)poly.o $(JO)tensor.o $(JO)findpt.o $(JO)pfindpt.o $(JO)findpts.o # # # NOBJS = $(CORE) $(OS) $(GS) $(XXT) $(RSB) $(CRYSTAL) $(GS2) $(XXT2) mxm44f2.o comm_mpi.o L0 = $(G) -O0 L2 = $(G) -O2 L3 = $(G) -O3 -qtune=ppc970 -qmaxmem=-1 # -qarch=ppc970 L4 = $(G) -O3 -qtune=ppc970 -qmaxmem=-1 # -qarch=ppc970 HMT = -Dr8 -DMPISRC -DSINGLE_DIR # -DBLAS JL = -DMPI -DUNDERSCORE ### FL0i4 = $(L0) FL0 = $(L0) $(P) FL2 = $(L2) $(P) FL3 = $(L3) $(P) FL4 = $(L4) $(P) ### DRL0 = $(FL0) # -Mconcur -Mreentrant DFL0 = $(FL0) # -Mconcur DFL2 = $(FL2) # -Mconcur DFL3 = $(FL3) # -Mconcur DFL4 = $(FL4) # -Mconcur -Minfo=loop -Mneginfo=loop RFL0 = $(FL0) #-Mreentrant RFL2 = $(FL2) #-Mreentrant RFL3 = $(FL3) #-Mreentrant RFL4 = $(FL4) #-Mreentrant DRFL0 = $(FL0) # -Mconcur -Mreentrant DRFL2 = $(FL3) # -Mconcur -Mreentrant DRFL3 = $(FL3) # -Mconcur -Mreentrant DRFL4 = $(FL4) # -Mconcur -Mreentrant cFL0 = $(L0) $(HMT) cFL2 = $(L2) $(HMT) cFL3 = $(L3) $(HMT) cFL4 = $(L4) $(HMT) ### lFLAGS = # -lblas ################################################################################ all : nek5000 print nek5000: $(NOBJS) $(F77) -o nek5000 $G $(NOBJS) $(lFLAGS) print: size nek5000 echo "I am done" clean: rm *.o nek5000 ################################################################################ # fortran source files ################################################################################ drive.o :$S/drive.f; $(F77) -c $(FL2) $S/drive.f drive_aleks.o :$S/drive_aleks.f; $(F77) -c $(FL2) $S/drive_aleks.f ################################################################################ blas.o :$S/blas.f; $(F77) -c $(FL0i4) $S/blas.f dsygv.o :$S/dsygv.f; $(F77) -c $(FL0i4) $S/dsygv.f ssygv.o :$S/ssygv.f; $(F77) -c $(FL0i4) $S/ssygv.f dsygv2.o :$S/dsygv2.f; $(F77) -c $(FL0i4) $S/dsygv2.f ################################################################################ prepost.o :$S/prepost.f; $(F77) -c $(FL2) $S/prepost.f genbox.o :$S/genbox.f; $(F77) -c $(FL2) $S/genbox.f connect1.o :$S/connect1.f; $(F77) -c $(FL2) $S/connect1.f uzawa_gmres.o :$S/uzawa_gmres.f; $(F77) -c $(FL2) $S/uzawa_gmres.f hsmg.o :$S/hsmg.f; $(F77) -c $(FL2) $S/hsmg.f convect.o :$S/convect.f; $(F77) -c $(FL2) $S/convect.f particle.o :$S/particle.f; $(F77) -c $(FL2) $S/particle.f connect2.o :$S/connect2.f; $(F77) -c $(FL2) $S/connect2.f edgec.o :$S/edgec.f; $(F77) -c $(FL2) $S/edgec.f ginterface.o :$S/ginterface.f; $(F77) -c $(FL2) $S/ginterface.f genxyz.o :$S/genxyz.f; $(F77) -c $(FL2) $S/genxyz.f subs1.o :$S/subs1.f; $(F77) -c $(FL2) $S/subs1.f subs2.o :$S/subs2.f; $(F77) -c $(FL2) $S/subs2.f turb.o :$S/turb.f; $(F77) -c $(FL2) $S/turb.f map2.o :$S/map2.f; $(F77) -c $(FL2) $S/map2.f mvmesh.o :$S/mvmesh.f; $(F77) -c $(FL2) $S/mvmesh.f reverf.o :$S/reverf.f; $(F77) -c $(FL2) $S/reverf.f ################################################################################ bdry.o :$S/bdry.f; $(F77) -c $(FL2) $S/bdry.f commcube.o :$S/commcube.f; $(F77) -c $(FL2) $S/commcube.f comm_seq.o :$S/comm_seq.f; $(F77) -c $(FL2) $S/comm_seq.f comm_mpi.o :$S/comm_mpi.f; $(F77) -c $(FL2) $S/comm_mpi.f ic.o :$S/ic.f; $(F77) -c $(FL2) $S/ic.f induct.o :$S/induct.f; $(F77) -c $(FL2) $S/induct.f conduct.o :$S/conduct.f; $(F77) -c $(FL2) $S/conduct.f perturb.o :$S/perturb.f; $(F77) -c $(FL2) $S/perturb.f pertsupport.o :$S/pertsupport.f; $(F77) -c $(FL2) $S/pertsupport.f col2a.o :$S/col2a.s; $(F77) -c $(FL2) $S/col2a.s col3a.o :$S/col3a.s; $(F77) -c $(FL2) $S/col3a.s add2a.o :$S/add2a.s; $(F77) -c $(FL2) $S/add2a.s add3a.o :$S/add3a.s; $(F77) -c $(FL2) $S/add3a.s convert.o :$S/convert.f; $(F77) -c $(FL2) $S/convert.f navier0.o :$S/navier0.f; $(F77) -c $(FL2) $S/navier0.f navier2.o :$S/navier2.f; $(F77) -c $(FL2) $S/navier2.f navier3.o :$S/navier3.f; $(F77) -c $(FL2) $S/navier3.f navier4.o :$S/navier4.f; $(F77) -c $(FL2) $S/navier4.f navier4_div.o :$S/navier4_div.f; $(F77) -c $(FL2) $S/navier4_div.f navier5.o :$S/navier5.f; $(F77) -c $(FL2) $S/navier5.f navier6.o :$S/navier6.f; $(F77) -c $(FL2) $S/navier6.f navier7.o :$S/navier7.f; $(F77) -c $(FL2) $S/navier7.f navier8.o :$S/navier8.f; $(F77) -c $(FL2) $S/navier8.f speclib.o :$S/speclib.f; $(F77) -c $(FL2) $S/speclib.f calcz.o :$S/calcz.f; $(F77) -c $(FL2) $S/calcz.f fast3d.o :$S/fast3d.f; $(F77) -c $(FL2) $S/fast3d.f util_pc.o :$S/util_pc.f; $(F77) -c $(FL2) $S/util_pc.f qqt.o :$S/qqt.f; $(F77) -c $(FL2) $S/qqt.f hmholtz_pc.o :$S/hmholtz_pc.f; $(F77) -c $(FL2) $S/hmholtz_pc.f operator.o :$S/operator.f; $(F77) -c $(FL2) $S/operator.f setup_pc1.o :$S/setup_pc1.f; $(F77) -c $(FL2) $S/setup_pc1.f setup_pc2.o :$S/setup_pc2.f; $(F77) -c $(FL2) $S/setup_pc2.f ################################################################################ dssum.o :$S/dssum.f; $(F77) -c $(FL3) $S/dssum.f dssmr.o :$S/dssmr.f; $(F77) -c $(FL3) $S/dssmr.f dssm0.o :$S/dssm0.f; $(F77) -c $(FL3) $S/dssm0.f eigsolv.o :$S/eigsolv.f; $(F77) -c $(FL3) $S/eigsolv.f gfdm_par.o :$S/gfdm_par.f; $(F77) -c $(FL3) $S/gfdm_par.f gfdm_solve.o :$S/gfdm_solve.f; $(F77) -c $(FL3) $S/gfdm_solve.f gfdm_op.o :$S/gfdm_op.f; $(F77) -c $(FL3) $S/gfdm_op.f gauss.o :$S/gauss.f; $(F77) -c $(FL3) $S/gauss.f planx.o :$S/planx.f; $(F77) -c $(FL3) $S/planx.f ssolv.o :$S/ssolv.f; $(F77) -c $(FL3) $S/ssolv.f mperre.o :$S/mperre.f; $(F77) -c $(FL3) $S/mperre.f per2.o :$S/per2.f; $(F77) -c $(FL3) $S/per2.f ################################################################################ coef.o :$S/coef.f; $(F77) -c $(FL4) $S/coef.f mat1.o :$S/mat1.f; $(F77) -c $(FL4) $S/mat1.f mat2.o :$S/mat2.f; $(F77) -c $(FL4) $S/mat2.f mat2std.o :$S/mat2std.f; $(F77) -c $(FL4) $S/mat2std.f xxt_tools.o :$S/xxt_tools.f; $(F77) -c $(FL4) $S/xxt_tools.f ################################################################################ ################################################################################ #reentrant modules ################################################################################ mxm44f2.o :$S/mxm44f2.f; $(F77) -c $(RFL4) $S/mxm44f2.f hmholtza.o :$S/hmholtza.f; $(F77) -c $(RFL4) $S/hmholtza.f navier1a.o :$S/navier1a.f; $(F77) -c $(RFL4) $S/navier1a.f fastsa.o :$S/fastsa.f; $(F77) -c $(RFL4) $S/fastsa.f ################################################################################ ################################################################################ #dual mode modules ################################################################################ hmholtz.o :$S/hmholtz.f; $(F77) -c $(DFL4) $S/hmholtz.f navier1.o :$S/navier1.f; $(F77) -c $(DFL4) $S/navier1.f fasts.o :$S/fasts.f; $(F77) -c $(DFL4) $S/fasts.f fasts2.o :$S/fasts2.f; $(F77) -c $(RFL4) $S/fasts2.f subuser.o :$S/subuser.f; $(F77) -c $(FL2) $S/subuser.f ################################################################################ ################################################################################ # c source files ################################################################################ ################################################################################ isosurf_linux.o :$S/isosurf_linux.c; $(CC) -c $(cFL3) $S/isosurf_linux.c revert.o :$S/revert.c; $(CC) -c $(cFL3) $S/revert.c byte.o :$S/byte.c; $(CC) -c $(cFL3) $S/byte.c hmt_perf.o :$S/hmt_perf.c; $(CC) -c -I$D $(cFL3) -I$L/include $S/hmt_perf.c bit_mask.o :$D/bit_mask.c; $(CC) -c $(cFL3) $D/bit_mask.c bss_malloc.o :$D/bss_malloc.c; $(CC) -c $(cFL3) -I$L/include $D/bss_malloc.c error.o :$D/error.c; $(CC) -c $(cFL3) -I$L/include $D/error.c queue.o :$D/queue.c; $(CC) -c $(cFL3) $D/queue.c stack.o :$D/stack.c; $(CC) -c $(cFL3) $D/stack.c sparse_matrix.o :$R/sparse_matrix.c; $(CC) -c -I$D $(cFL3) -I$L/include $R/sparse_matrix.c tqli.o :$R/tqli.c; $(CC) -c -I$D $(cFL3) -I$L/include $R/tqli.c pythag.o :$R/pythag.c; $(CC) -c -I$D $(cFL3) -I$L/include $R/pythag.c adj_list.o :$R/adj_list.c; $(CC) -c -I$D $(cFL3) -I$L/include $R/adj_list.c smbwr.o :$R/smbwr.c; $(CC) -c -I$D $(cFL3) -I$L/include $R/smbwr.c ################################################################################ xxt.o :$D/xxt.c; $(CC) -c $(cFL4) -I$L/include $D/xxt.c tools.o :$D/tools.c; $(CC) -c $(cFL4) -I$L/include $D/tools.c ivec.o :$D/ivec.c; $(CC) -c $(cFL4) -I$L/include $D/ivec.c gs.o :$D/gs.c; $(CC) -c $(cFL4) -I$L/include $D/gs.c comm.o :$D/comm.c; $(CC) -c $(cFL4) -I$L/include $D/comm.c ################################################################################ mpi_hack.o :$S/mpi_hack.c; $(CC) -c -I$D -I$L/include $(cFL4) $S/mpi_hack.c $(JO)errmem.o :$J/errmem.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)sort.o :$J/sort.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)crystal.o :$J/crystal.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)tuple_list.o :$J/tuple_list.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)transfer.o :$J/transfer.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)fcrystal.o :$J/fcrystal.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)gs.o :$J/gs.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)sparse_cholesky.o :$J/sparse_cholesky.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)xxt.o :$J/xxt.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)poly.o :$J/poly.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)tensor.o :$J/tensor.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)findpt.o :$J/findpt.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)pfindpt.o :$J/pfindpt.c; $(CC) -c $(L4) $(JL) $< -o $@ $(JO)findpts.o :$J/findpts.c; $(CC) -c $(L4) $(JL) $< -o $@