# SCCS IDENTIFICATION: $HeadURL$ # SCCS IDENTIFICATION: @(#)$Id$ #define CHKFILE #$(shell if [ -e $(1) ]; then echo TRUE; fi;) #endef #ifeq ($(call CHKFILE,$(ESPC_SYSTEM_TOPDIR)/config/esmfmkfile),TRUE) # TOPDIR = $(ESPC_SYSTEM_TOPDIR) #else # TOPDIR := $(shell cd ../ 1>/dev/null 2>&1 && pwd) #endif ##Alex OCNDIR := $(shell cd ../ 1>/dev/null 2>&1 && pwd) OCNDIR := $(shell cd ../../ 1>/dev/null 2>&1 && pwd) include $(OCNDIR)/config/esmfmkfile include $(ESMFMKFILE) OBJDIR = $(OCNDIR)/obj/esmf FCSDIR = $(OCNDIR)/src MODDIR = $(OCNDIR)/obj/src #ifeq ($(call CHKFILE,$(TOPDIR)/src/share/obj),TRUE) # MODDIR2 = $(TOPDIR)/src/share/obj #else # MODDIR2 = #endif MODDIR += $(OCNDIR)/share/obj MODDIR += $(OCNDIR)/obj/service ifdef USE_OCN LIB = $(OCNDIR)/lib/ocn_esmf.a else LIB = $(OCNDIR)/lib/hycom_esmf.a endif INCFLAG = $(addprefix -I,$(FCSDIR)) $(INCLDIR) MODFLAG = $(addprefix -I,$(OBJDIR)) $(addprefix -I,$(MODDIR)) .SUFFIXES : .F90 .f .F MAKEFILE = Makefile.NUOPC include $(OCNDIR)/config/CONFIG_NUOPC machine=$(shell hostname) NOFMA= ifeq ($(findstring conrad,$(machine)),conrad) NOFMA= -no-fma endif ifeq ($(findstring gordon,$(machine)),gordon) NOFMA= -no-fma endif #ifdef USE_COUPLE OBJS = \ export_from_hycom_tiled.o hycom_couple.o ReadHycomLatLon.o HYCOM_OceanComp.o ## HYCOM_Field.o HYCOM_OceanComp.o HYCOM_OceanOnlyComp.o hycom_couple.o #else #OBJS = \ # HYCOM_OceanComp.o #endif OBJS := $(addprefix $(OBJDIR)/,$(OBJS)) TARGET: build_dirs $(OBJS) modmv %.o $(OBJDIR)/%.o : %.f $(FCMPI) -c $(FFLAGS_mis) $(NOFMA) $(MODFLAG) $(INCFLAG) $< -o $@ $(AR) $(LIB) $@ %.o $(OBJDIR)/%.o : %.F $(FCMPI) -c $(FFLAGS) $(NOFMA) $(CPPFLAGS) $(CPLFLAG) $(MODFLAG) $(INCFLAG) $< -o $@ $(AR) $(LIB) $@ #%.o $(OBJDIR)/%.o : %.F90 # $(FCMPI) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $(FFLAGS_esmf) $(CPPFLAGS) $(CPLFLAG) $(MODFLAG) $(INCFLAG) $< -o $@ # $(AR) $(LIB) $@ %.o $(OBJDIR)/%.o : %.F90 $(ESMF_F90COMPILER) -c $(ESMF_F90COMPILEOPTS) $(ESMF_F90COMPILEPATHS) $(ESMF_F90COMPILEFREECPP) $(ESMF_F90COMPILECPPFLAGS) $(CPPFLAGS) $(CPLFLAG) $(MODFLAG) $(INCFLAG) $< -o $@ $(AR) $(LIB) $@ modmv: mods=`ls *.mod 2>/dev/null`; \ if [ "$${mods}" != "" ]; then mv $${mods} $(OBJDIR)/.; fi info: -@echo "CPLFLAG: $(CPLFLAG) " -@echo "OBJDIR: $(OBJDIR) " -@echo "OBJS: $(OBJS) " build_dirs: -@if [ ! -d $(OBJDIR) ]; then mkdir -p $(OBJDIR); fi # ----------------------------------------------------------------------------- # ----------------------------------------------------------------------------- .PHONY: clean clean: info rm -f $(OBJDIR)/*.o $(OBJDIR)/*.mod rm -f $(LIB)