SHELL = /bin/sh # Listing of options that are usually independent of machine type. # When necessary, these are over-ridden by each architecture. #### Architecture specific settings #### # Settings for Linux x86_64, Intel compiler (ifort & icc), IBM POE (dmpar,optimize)# LDFLAGS = -Wl,-rpath,/usrx/local/NetCDF/3.6.3/lib -L$MPI_ROOT/lib -openmp COREDIR = /com/pmb/Simon.Hsiao/RFC/WCOSS/hwrf.v8.0.0/sorc/hwrf_gsi.fd INC_DIR = $(COREDIR)/include BYTE_ORDER = LITTLE_ENDIAN SFC = ifort SF90 = ifort -free SCC = icc INC_FLAGS = -module $(INC_DIR) -I $(INC_DIR) -I /usrx/local/NetCDF/3.6.3/include FFLAGS_i4r4 = -integer-size 32 -real-size 32 FFLAGS_i4r8 = -integer-size 32 -real-size 64 FFLAGS_i8r8 = -integer-size 64 -real-size 64 FFLAGS_DEFAULT = -msse2 -fp-model precise -assume byterecl -I$MPI_ROOT/include -convert big_endian FFLAGS_DEBUG = -O0 -g -traceback -check bounds -warn errors -fpstkchk -mp FFLAGS_OPT = -O3 FFLAGS = -O3 $(FFLAGS_DEFAULT) $(INC_FLAGS) $(LDFLAGS) -DLINUX # Library build flags FFLAGS_BACIO = -O3 $(FFLAGS_DEFAULT) ARFLAGS_BACIO = FFLAGS_BUFR = -O3 $(FFLAGS_DEFAULT) $(FFLAGS_i4r8) CFLAGS_BUFR = -O3 -DUNDERSCORE FFLAGS_CLOUD = -O3 $(FFLAGS_DEFAULT) FFLAGS_CRTM = -O2 $(FFLAGS_DEFAULT) LFLAGS_CRTM = FFLAGS_GFSIO = -O3 $(FFLAGS_DEFAULT) $(FFLAGS_i4r4) ARFLAGS_GFSIO = FFLAGS_SFCIO = -O3 $(FFLAGS_DEFAULT) $(FFLAGS_i4r4) FFLAGS_SIGIO = -O3 $(FFLAGS_DEFAULT) $(FFLAGS_i4r4) ARFLAGS_SIGIO = FFLAGS_SP = -O3 $(FFLAGS_DEFAULT) $(FFLAGS_i4r8) FFLAGS_W3 = -O3 $(FFLAGS_DEFAULT) #INC_FLAGS_W3 = -module ../sigio # CPP = cpp CPP_FLAGS = -C -P -D$(BYTE_ORDER) -D_REAL8_ -DWRF -DLINUX CPP_F90FLAGS = -traditional-cpp -lang-fortran DM_FC = mpfort DM_F90 = mpfort -free DM_CC = mpcc FC = $(DM_FC) F90 = $(DM_F90) CC = $(DM_CC) CFLAGS = -O0 -DLINUX -DUNDERSCORE CFLAGS2 = -DLINUX -Dfunder -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' MYLIBsys = -L$(LAPACK_PATH) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core NETCDF_PATH = ########################################################### # # Macros, these should be generic for all machines LN = ln -sf MAKE = make -i -r RM = /bin/rm -f CP = /bin/cp AR = ar MKDIR = /bin/mkdir -p WRF_INCLUDE = -I$(WRF_DIR)/frame WRF_LIB = $(WRF_DIR)/frame/module_internal_header_util.o \ $(WRF_DIR)/frame/pack_utils.o \ $(WRF_DIR)/frame/module_machine.o \ -L$(WRF_DIR)/external/io_int -lwrfio_int \ -L$(WRF_DIR)/external/fftpack/fftpack5 -lfftpack \ -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \ -L$(WRF_DIR)/external/RSL_LITE -lrsl_lite \ -L$(WRF_DIR)/external/io_grib1 -lio_grib1 \ -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \ -L$(WRF_DIR)/external/esmf_time_f90 -lesmf_time \ -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf WRF_LIB2 = -L$(WRF_DIR)/external/atm_pom -latm_pom NETCDFPATH = /usrx/local/NetCDF/3.6.3 NETCDFLIBS = -L/usrx/local/NetCDF/3.6.3/lib -lnetcdf $(NETCDF_PATH) WRF_DIR = /com/pmb/Simon.Hsiao/RFC/WCOSS/hwrf.v8.0.0/sorc/hwrf_gsi.fd/../hwrf_v3.4.0.fd SED_FTN = $(WRF_DIR)/tools/standard.exe .IGNORE: .SUFFIXES: .c .f .F .F90 .f90 .fpp .o # There is probably no reason to modify these rules .c.o: $(RM) $@ $(CC) $(CFLAGS2) -c $< .f.o: $(RM) $@ $*.mod $(FC) $(FFLAGS) -c $< .fpp.o: $(RM) $@ $*.mod $(CPP) $(CPP_FLAGS) $< > $*.f $(FC) $(FFLAGS) -c $*.f $(RM) $*.f .F.o: $(RM) $@ $*.mod $(CPP) $(CPP_FLAGS) $< > $*.f90 $(F90) $(FFLAGS) -c $*.f90 $(RM) $*.f90 .F90.o: $(RM) $@ $*.mod $(CPP) $(CPP_FLAGS) $< > $*.f90 $(F90) $(FFLAGS) -c $*.f90 $(RM) $*.f90 .f90.o: $(RM) $@ $*.mod $(F90) $(FFLAGS) -c $<