blob: 68e66fb45415cef45422ba131188210e7f0ec053 [file] [log] [blame]
##===- Makefile --------------------------------------------*- Makefile -*-===##
#
# This makefile contains information for building the SPEC2006 wrf test.
#
##===----------------------------------------------------------------------===##
LEVEL = ../../../..
FP_TOLERANCE = 5e-2
FP_ABSTOLERANCE = 1.0e-2
TOPSources := \
wrf_num_bytes_between.c pack_utils.c module_driver_constants.F90 \
module_domain.F90 module_integrate.F90 module_timing.F90 \
module_configure.F90 module_tiles.F90 module_machine.F90 \
module_nesting.F90 module_wrf_error.F90 module_state_description.F90 \
module_sm.F90 module_io.F90 module_dm_stubs.F90 \
module_quilt_outbuf_ops.F90 module_io_quilt.F90 module_bc.F90 \
module_io_wrf.F90 module_date_time.F90 module_io_domain.F90 \
module_bc_time_utilities.F90 module_model_constants.F90 \
module_soil_pre.F90 module_bl_mrf.F90 module_sf_myjsfc.F90 \
module_bl_myjpbl.F90 module_bl_ysu.F90 module_cu_bmj.F90 \
module_mp_kessler.F90 module_mp_ncloud5.F90 module_ra_sw.F90 \
module_sf_sfclay.F90 module_cu_kf.F90 module_cu_kfeta.F90 \
module_mp_lin.F90 module_mp_wsm3.F90 module_mp_wsm5.F90 \
module_mp_wsm6.F90 module_surface_driver.F90 module_cu_gd.F90 \
module_sf_sfcdiags.F90 module_ra_gsfcsw.F90 module_sf_slab.F90 \
module_sf_noahlsm.F90 module_sf_ruclsm.F90 module_mp_ncloud3.F90 \
module_mp_etanew.F90 module_ra_rrtm.F90 module_ra_gfdleta.F90 \
module_physics_init.F90 module_physics_addtendc.F90 \
module_solvedebug_em.F90 module_bc_em.F90 module_advect_em.F90 \
module_diffusion_em.F90 module_small_step_em.F90 \
module_big_step_utilities_em.F90 module_em.F90 \
module_init_utilities.F90 module_optional_si_input.F90 \
ESMF_Alarm.F90 ESMF_Base.F90 ESMF_BaseTime.F90 ESMF_Calendar.F90 \
ESMF_Clock.F90 ESMF_Fraction.F90 ESMF_Mod.F90 ESMF_Time.F90 \
ESMF_TimeInterval.F90 Meat.F90 wrf_shutdown.F90 collect_on_comm.c \
mediation_integrate.F90 mediation_feedback_domain.F90 \
mediation_force_domain.F90 mediation_interp_domain.F90 \
mediation_wrfmain.F90 wrf_auxhist1in.F90 wrf_auxhist1out.F90 \
wrf_auxhist2in.F90 wrf_auxhist2out.F90 wrf_auxhist3in.F90 \
wrf_auxhist3out.F90 wrf_auxhist4in.F90 wrf_auxhist4out.F90 \
wrf_auxhist5in.F90 wrf_auxhist5out.F90 wrf_auxinput1in.F90 \
wrf_auxinput1out.F90 wrf_auxinput2in.F90 wrf_auxinput2out.F90 \
wrf_auxinput3in.F90 wrf_auxinput3out.F90 wrf_auxinput4in.F90 \
wrf_auxinput4out.F90 wrf_auxinput5in.F90 wrf_auxinput5out.F90 \
wrf_bdyin.F90 wrf_bdyout.F90 wrf_histin.F90 wrf_histout.F90 \
wrf_inputin.F90 wrf_inputout.F90 wrf_restartin.F90 wrf_restartout.F90 \
couple_or_uncouple_em.F90 interp_domain_em.F90 interp_fcn.F90 \
nest_init_utils.F90 set_timekeeping.F90 sint.F90 solve_interface.F90 \
start_domain.F90 module_pbl_driver.F90 module_radiation_driver.F90 \
module_cumulus_driver.F90 module_microphysics_driver.F90 \
solve_em.F90 start_em.F90 internal_header_util.F90 io_int.F90 \
init_modules_em.F90 init_modules.F90 wrf_io.f90 field_routines.f90 \
wrf.F90
NETCDFSources := \
$(addprefix $(SPEC_BENCH_DIR)/src/netcdf/, \
attr.c dim.c error.c fort-attio.c fort-control.c fort-dim.c \
fort-genatt.c fort-geninq.c fort-genvar.c fort-lib.c fort-misc.c \
fort-v2compat.c fort-var1io.c fort-varaio.c fort-vario.c \
fort-varmio.c fort-varsio.c libvers.c nc.c ncx.c posixio.c putget.c \
string.c v1hpg.c v2i.c var.c typeSizes.f90 netcdf.f90)
Source := \
$(notdir $(TOPSources)) \
$(addprefix netcdf_,$(notdir $(NETCDFSources)))
FPPFLAGS += -w -m literal.pm \
-DINTIO -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 \
-DNETCDF -DTRIEDNTRUE -DLIMIT_ARGS -DEM_CORE=1 -DNMM_CORE=0 \
-DNMM_MAX_DIM=1000 -DCOAMPS_CORE=0 -DEXP_CORE=0 -DF90_STANDALONE \
-DCONFIG_BUF_LEN=8192 -DMAX_DOMAINS_F=21 -DNO_NAMELIST_PRINT
CPPFLAGS += \
-I$(SPEC_BENCH_DIR)/src/netcdf \
-I$(SPEC_BENCH_DIR)/src/netcdf/include \
-I$(SPEC_BENCH_DIR)/src \
-I$(SPEC_BENCH_DIR)/src/include
include ../../Makefile.spec2006
include $(PROJ_SRC_ROOT)/Makefile.FORTRAN
STDOUT_FILENAME := rsl.out.0000
##===----------------------------------------------------------------------===##
# Copy the source files to the working directory. Some files may have the
# same names but are in different directories, so we add a prefix to
# the filenames to prevent overwriting files.
##===----------------------------------------------------------------------===##
$(notdir $(TOPSources)) : % : \
$(SPEC_BENCH_DIR)/src/%
cp $< $@
$(addprefix netcdf_,$(notdir $(NETCDFSources))) : netcdf_% : \
$(SPEC_BENCH_DIR)/src/netcdf/%
cp $< $@
##===----------------------------------------------------------------------===##
# Clean up all of the copied source files.
##===----------------------------------------------------------------------===##
clean::
$(RM) -f $(Source)