From bbd2273220e4f7cf103ecd3e13ec32e4d2e93dc7 Mon Sep 17 00:00:00 2001 From: Douglas Jacobsen Date: Tue, 18 Aug 2015 09:09:38 -0600 Subject: [PATCH] Adding filter support to the test core This commit adds support to the test core for filters. Additionally, it adds two filters to the test core that test the compute interval of filters. --- src/core_test/Makefile | 5 +++-- src/core_test/Registry.xml | 18 ++++++++++++++++++ src/core_test/build_options.mk | 1 + src/core_test/mpas_test_core.F | 11 ++++++++++- src/core_test/mpas_test_core_interface.F | 3 +++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/core_test/Makefile b/src/core_test/Makefile index 879b5e7479..bb15a0b2c4 100644 --- a/src/core_test/Makefile +++ b/src/core_test/Makefile @@ -19,6 +19,7 @@ gen_includes: $(CPP) $(CPPFLAGS) $(CPPINCLUDES) Registry.xml > Registry_processed.xml (if [ ! -d inc ]; then mkdir -p inc; fi) # To generate *.inc files (cd inc; $(REG_PATH)/$(REG_PARSE) < ../Registry_processed.xml ) + (cd inc; $(REG_PATH)/$(FILTER_PARSE) < ../Registry_processed.xml ) post_build: if [ ! -e $(ROOT_DIR)/default_inputs ]; then mkdir $(ROOT_DIR)/default_inputs; fi @@ -41,7 +42,7 @@ clean: $(RM) $@ $*.mod ifeq "$(GEN_F90)" "true" $(CPP) $(CPPFLAGS) $(CPPINCLUDES) $< > $*.f90 - $(FC) $(FFLAGS) -c $*.f90 $(FCINCLUDES) -I../framework -I../operators -I../external/esmf_time_f90 + $(FC) $(FFLAGS) -c $*.f90 $(FCINCLUDES) -I../framework -I../operators -I../filters -I../external/esmf_time_f90 else - $(FC) $(CPPFLAGS) $(FFLAGS) -c $*.F $(CPPINCLUDES) $(FCINCLUDES) -I../framework -I../operators -I../external/esmf_time_f90 + $(FC) $(CPPFLAGS) $(FFLAGS) -c $*.F $(CPPINCLUDES) $(FCINCLUDES) -I../framework -I../operators -I../filters -I../external/esmf_time_f90 endif diff --git a/src/core_test/Registry.xml b/src/core_test/Registry.xml index 16b7a849a5..bd9a93e75d 100644 --- a/src/core_test/Registry.xml +++ b/src/core_test/Registry.xml @@ -115,4 +115,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/core_test/build_options.mk b/src/core_test/build_options.mk index 0aeb9cdd95..7f506b8893 100644 --- a/src/core_test/build_options.mk +++ b/src/core_test/build_options.mk @@ -1,6 +1,7 @@ PWD=$(shell pwd) EXE_NAME=test_model NAMELIST_SUFFIX=test +USE_FILTERS=true override CPPFLAGS += -DCORE_TEST report_builds: diff --git a/src/core_test/mpas_test_core.F b/src/core_test/mpas_test_core.F index 71e1a80ca4..6621fd0856 100644 --- a/src/core_test/mpas_test_core.F +++ b/src/core_test/mpas_test_core.F @@ -9,6 +9,8 @@ module test_core use mpas_framework use mpas_timekeeping + use mpas_stream_manager + use mpas_filter_driver type (MPAS_Clock_type), pointer :: clock @@ -53,6 +55,8 @@ function test_core_init(domain, startTimeStamp) result(iErr)!{{{ startTime = mpas_get_clock_time(clock, MPAS_START_TIME, iErr) call mpas_get_time(startTime, dateTimeString=startTimeStamp) + call mpas_filter_driver_init(domain % core % filters, domain, iErr=iErr) + end function test_core_init!}}} @@ -85,12 +89,15 @@ function test_core_run(domain) result(iErr)!{{{ type (mpas_pool_type), pointer :: pool type (mpas_pool_iterator_type) :: itr - iErr = 0 call mpas_unit_test_fix_periodicity(iErr) call mpas_unit_test_triangle_signed_area_sphere(iErr) + call mpas_filter_driver_compute(domain % core % filters, domain, iErr = iErr) + + call mpas_stream_mgr_write(domain % streamManager, iErr = iErr) + end function test_core_run!}}} !*********************************************************************** @@ -118,6 +125,8 @@ function test_core_finalize(domain) result(iErr)!{{{ iErr = 0 + call mpas_filter_driver_finalize(domain % core % filters, domain, iErr=iErr) + call mpas_destroy_clock(clock, iErr) end function test_core_finalize!}}} diff --git a/src/core_test/mpas_test_core_interface.F b/src/core_test/mpas_test_core_interface.F index 98426f0d45..f754bfd090 100644 --- a/src/core_test/mpas_test_core_interface.F +++ b/src/core_test/mpas_test_core_interface.F @@ -45,6 +45,7 @@ subroutine test_setup_core(core)!{{{ core % setup_decomposed_dimensions => test_setup_decomposed_dimensions core % setup_block => test_setup_block core % setup_namelist => test_setup_namelists + core % setup_filter_list => test_setup_filters core % Conventions = 'MPAS' core % source = 'MPAS' @@ -272,5 +273,7 @@ end function test_setup_block!}}} #include "inc/namelist_defines.inc" +#include "inc/filter_function.inc" + end module test_core_interface