#################### # IBM XLF compiler # #################### #FC = xlf90 #MPIF90 = mpxlf_r #OPT = -O3 #REAL8 = -qrealsize=8 ##DBGFLAGS = -qinitauto=7FF7FFFF -qflttrap=zero:inv:en -qsigtrap=xl__trcedump ##DBGFLAGS = -C -qzerosize -qinitauto=7FF7FFFF -qflttrap=zero:inv:en -qsigtrap=xl__trcedump #FFLAGS = $(OPT) -qstrict -qarch=auto -q64 -I$(INC_NETCDF) $(DBGFLAGS) #LIB_NETCDF = /contrib/netcdf/4.1.3_seq/lib #INC_NETCDF = /contrib/netcdf/4.1.3_seq/include ##LIB_APEX = ../apex_trunk/lib #LIB_ESMF = /contrib/esmf-5.2.0rp2-64-O-mpi-netcdf4.1.3/lib #include $(LIB_ESMF)/esmf.mk #LIBS = -lmass -L$(LIB_NETCDF) -lnetcdf -L$(LIB_ESMF) -lesmf #LDFLAGS += $(ESMF_F90LINKOPTS) $(ESMF_F90LINKPATHS) $(ESMF_F90LINKRPATHS) #LDFLAGS += $(ESMF_F90ESMFLINKLIBS) ################## # Intel Compiler # ################## NPROC = 4 FC = /opt/local/intel2011/composerxe-2011.0.084/bin/intel64/ifort MPIF90 = /opt/local/intel2011/impi/4.0.1.007/intel64/bin/mpif90 -fc=ifort REAL8 = -r8 OPT = -O3 FFLAGS = $(OPT) -I$(INC_NETCDF) ##OPT = -O ##FFLAGS += $(OPT) -debug full -tranceback -check bounds -check format -check output_conversion -check pointers -check uninit LIB_NETCDF = /home/tgcm/intel/netcdf-4.1.1/lib INC_NETCDF = /home/tgcm/intel/netcdf-4.1.1/include LIB_APEX = /home/foster/tgcm/edynamo/apex_trunk/lib LIB_ESMF = /home/tgcm/esmf/ESMF_5_2_0rp1_beta_snapshot_21/lib/libO/Linux.intel.64.intelmpi.hao include $(LIB_ESMF)/esmf.mk LIBS = -lcurl -L$(LIB_NETCDF) -lnetcdf -L$(LIB_ESMF) -lesmf -L$(LIB_APEX) -lapex #LIBS = -lcurl -L$(LIB_NETCDF) -lnetcdf -L$(LIB_ESMF) -lesmf LDFLAGS += $(ESMF_F90LINKOPTS) $(ESMF_F90LINKPATHS) $(ESMF_F90LINKRPATHS) LDFLAGS += $(ESMF_F90ESMFLINKLIBS) MACHINES = machines.ini ################ # GNU compiler # ################ #FCOMPILER=gnu95 #FC=gfortran #OPT=-g #FFLAGS=$(OPT) #Debugging flags (leave these commented out unless you know what you're doing): ##FFLAGS+=-Wall -Wextra -pedantic -fimplicit-none -fbounds-check ########################### # Portland Group compiler # ########################### #FCOMPILER=pg #FC=pgf90 #OPT=-O3 #FFLAGS=$(OPT) #Debugging flags (leave these commented out unless you know what you're doing): ##FFLAGS+= -C -Mchkfpstk -Mchkstk -Mpgicoff -traceback -Ktrap=fp -Minform=inform ##FFLAGS+= -fpic -Minform=inform -Mnosecond_underscore -fast ## -Ktrap=align,denorm,divz,fp,inexact,inv,ovf,unf ######################################################################## # You shouldn't need to touch anything below this line. ######################################################################## .SUFFIXES : .o .F90 .F %.o: %.F90 $(MPIF90) $(FFLAGS) -c -o $@ $< %.o: %.F $(MPIF90) $(FFLAGS) $(REAL8) -c -o $@ $< EXEC = edynamo #OBJS = shr_kind_mod.o params.o geogrid.o maggrid.o my_mpi.o read_tgcm.o apex_subs.o apex.o my_esmf.o edynamo.o main.o OBJS = shr_kind_mod.o params.o geogrid.o maggrid.o my_mpi.o read_tgcm.o apex.o my_esmf.o edynamo.o main.o $(EXEC): $(OBJS) $(MACHINES) @ echo " ===================================================== " @ echo " = Electro-Dynamo edynamo (MPI StandAlone) = " @ echo " = hao repository: file:///home/tgcm/svn/edynamo = " @ echo " ===================================================== " $(MPIF90) -o $@ $(OBJS) $(LIBS) $(LDFLAGS) my_esmf.o: my_esmf.F90 $(ESMF_F90COMPILER) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) \ $(ESMF_F90COMPILECPPFLAGS) $(CPPFLAGS) $(FFLAGS) $< my_mpi.o: my_mpi.F90 $(ESMF_F90COMPILER) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) \ $(ESMF_F90COMPILECPPFLAGS) $(CPPFLAGS) $(FFLAGS) $< edynamo.o: edynamo.F90 $(ESMF_F90COMPILER) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) \ $(ESMF_F90COMPILECPPFLAGS) $(CPPFLAGS) $(FFLAGS) $< $(MACHINES): export HN=$(HOST) $(MACHINES): export NP=$(NPROC) $(MACHINES): FORCE @echo "Making $(MACHINES)" @echo `hostname` > $(MACHINES) @awk 'BEGIN{ for (i=2; i <= ENVIRON["NP"]; i++) print ENVIRON["HN"] }' >> $(MACHINES) FORCE: clean: rm -f *.o *.mod $(EXEC) machines.ini