#################### # 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 on IBM Linux Yellowstone # ################################## # Assume that default ifort and mpif90 modules are loaded: #FC = ifort #MPIF90 = mpif90 #REAL8 = -r8 # Without debug flags: #OPT = -O3 #FFLAGS = $(OPT) -heap-arrays ## With debug flags: ##OPT = -O ##FFLAGS = $(OPT) -I$(INC_NETCDF) -heap-arrays -debug full -traceback -check bounds -check format -check output_conversion -check pointers -check uninit #LIB_ESMF = /glade/p/work/svasquez/install/esmf-5.3.0-g-netcdf4.2/lib #include $(LIB_ESMF)/esmf.mk #LIBS = -L$(LIB_ESMF) -Wl,-rpath=$(LIB_ESMF) -lesmf ############################ # HAO Linux 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 LIB_NETCDF = /home/tgcm/intel/netcdf-4.1.1/lib INC_NETCDF = /home/tgcm/intel/netcdf-4.1.1/include ## Without debug flags: OPT = -O3 FFLAGS = $(OPT) -I$(INC_NETCDF) -heap-arrays ## With debug flags: ##OPT = -O ##FFLAGS = $(OPT) -I$(INC_NETCDF) -heap-arrays -debug full -traceback -check bounds -check format -check output_conversion -check pointers -check uninit ##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 = -L /usr/lib64 -lcurl -L$(LIB_NETCDF) -lnetcdf #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 $(FC) $(FFLAGS) -c -o $@ $< %.o: %.F $(FC) $(FFLAGS) $(REAL8) -c -o $@ $< EXEC = driver_wx # # Objects including old code apex_subs.o (apex_subs.F) OBJS = shr_kind_mod.o params.o util.o geogrid.o namelist.o read_ncfile.o fields.o output.o ionosphere.o main.o # # Object to link with libapex.a (without apex_subs.o) #OBJS = shr_kind_mod.o params.o timing.o util.o geogrid.o maggrid.o namelist.o my_mpi.o read_ncfile.o fields.o apex.o my_esmf.o output.o addfld_mod.o solve.o mud.o mudcom.o mudmod.o muh2cr.o heelis.o edynamo.o main.o $(EXEC): $(OBJS) @ echo " ===================================================== " @ echo " = WACCM-X Standalone Physics Column Driver = " @ echo " = = " @ echo " ===================================================== " $(FC) -o $@ $(OBJS) $(LIBS) ##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) $< shr_kind_mod.o: shr_kind_mod.F90 $(FC) -c $(FFLAGS) $< params.o: params.F90 $(FC) -c $(FFLAGS) $< util.o: util.F90 $(FC) -c $(FFLAGS) $< geogrid.o: geogrid.F90 $(FC) -c $(FFLAGS) $< namelist.o: namelist.F90 $(FC) -c $(FFLAGS) $< fields.o: fields.F90 $(FC) -c $(FFLAGS) $< read_ncfile.o: read_ncfile.F90 $(FC) -c $(FFLAGS) $< output.o: output.F90 $(FC) -c $(FFLAGS) $< ionosphere.o: ionosphere.F90 $(FC) -c $(FFLAGS) $< main.o: main.F90 $(FC) -c $(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)