SHELL = /bin/sh inside_nems := $(wildcard ../../../conf/configure.nems) ifneq ($(strip $(inside_nems)),) include ../../../conf/configure.nems UTILINCS = -I../../share -I$(PHYS_INC) else exist_configure_nmmb := $(wildcard ../conf/configure.nmmb) ifneq ($(strip $(exist_configure_nmmb)),) include ../conf/configure.nmmb else $(error "../conf/configure.nmmb file is missing. Run ./configure") endif $(info ) $(info Build standalone NMMB physics ...) $(info ) endif LIBNMMBPHYS = libnmmbphys.a # # NMMB physics modules # MODULES_NMM_PHYS = module_KINDS.o \ module_CONSTANTS.o \ module_BL_GFSPBL.o \ module_BL_GFSPBLHUR.o \ module_BL_GFSPBLEDMFHUR.o \ module_BL_MYJPBL.o \ module_CU_BMJ.o \ module_CU_SAS.o \ module_CU_SASHUR.o \ module_CU_SCALE.o \ module_LS_LISS.o \ module_LS_NOAHLSM.o \ module_MP_ETANEW.o \ module_MP_FER_HIRES.o \ module_mp_thompson.o \ module_mp_radar.o \ module_MP_GFS.o \ module_MP_WSM6.o \ module_RA_GFDL.o \ module_RA_RRTM.o \ module_sf_exchcoef.o \ module_SF_JSFC.o \ module_SF_GFDL.o \ module_SF_URBAN.o MODULES_NMM_RRTM = grrad_nmmb.o \ radiation_astronomy_nmmb.o \ radiation_aerosols_nmmb.o \ radiation_gases_nmmb.o \ radiation_clouds_nmmb.o \ radiation_surface_nmmb.o \ rad_initialize_nmmb.o \ radlw_main_nmmb.o \ radsw_main_nmmb.o \ precpd_nmmb.o # # GFS physics modules # MODULES_GFS = machine.o \ physparam.o \ physcons.o \ funcphys.o MODULES_GFSF = iounitdef.o \ ozne_def.o \ mersenne_twister.o \ radlw_param.o \ radlw_datatb.o \ radsw_param.o \ radsw_datatb.o \ mfpbl.o \ moninedmf.o \ moninq.o \ mfdeepcnv.o \ mfshalcnv.o \ sascnvn.o \ shalcnv.o \ gscond.o ifneq ($(strip $(inside_nems)),) DEPEND_FILES = ${MODULES_NMM_PHYS:.o=.F90} \ ${MODULES_NMM_RRTM:.o=.f} MODULES = $(MODULES_NMM_PHYS) \ $(MODULES_NMM_RRTM) else DEPEND_FILES = ${MODULES_GFS:.o=.f} \ ${MODULES_GFSF:.o=.f} \ ${MODULES_NMM_PHYS:.o=.F90} \ ${MODULES_NMM_RRTM:.o=.f} MODULES = $(MODULES_GFS) \ $(MODULES_GFSF) \ $(MODULES_NMM_PHYS) \ $(MODULES_NMM_RRTM) endif all default: depend $(LIBNMMBPHYS) $(LIBNMMBPHYS): $(MODULES) $(AR) $(ARFLAGS) $@ $? $(MODULES_GFS): %.o: %.f $(FC) $(FFLAGS_GFS) $(UTILINCS) $(FPP) $(CPPFLAGS) $(R8) -c $*.f $(MODULES_GFSF): %.o: %.f $(FC) $(FFLAGS_GFSF) $(UTILINCS) $(FPP) $(CPPFLAGS) $(R8) -c $*.f $(MODULES_NMM_PHYS): %.o: %.f90 $(FC) $(FFLAGS_NMM) $(UTILINCS) -c $*.f90 $(MODULES_NMM_RRTM): %.o: %.f $(FC) $(FREE) $(FFLAGS_NMM) $(UTILINCS) $(FPP) $(CPPFLAGS) $(R8) -c $*.f .PHONY: clean clean: @echo "Cleaning nmmbphys ... " @echo $(RM) -f $(LIBRARY) $(LIBNMMBPHYS) *.f90 *.o *.mod *.lst *.i depend ifneq ($(strip $(inside_nems)),) MKDEPENDS = ../../../../exe/mkDepends.pl include ../../../conf/make.rules else MKDEPENDS = ../mkDepends.pl include ../conf/make.rules endif # do not include 'depend' file if the target contains string 'clean' ifneq (clean,$(findstring clean,$(MAKECMDGOALS))) -include depend endif