from compass.validate import compare_variables
from compass.ocean.tests.global_ocean.forward import ForwardTestCase, \
ForwardStep
[docs]class DailyOutputTest(ForwardTestCase):
"""
A test case to test the output for the TimeSeriesStatMonthly analysis
member in E3SM. In this test, the analysis member for daily output is used
instead for efficiency.
"""
[docs] def __init__(self, test_group, mesh, init, time_integrator):
"""
Create test case
Parameters
----------
test_group : compass.ocean.tests.global_ocean.GlobalOcean
The global ocean test group that this test case belongs to
mesh : compass.ocean.tests.global_ocean.mesh.Mesh
The test case that produces the mesh for this run
init : compass.ocean.tests.global_ocean.init.Init
The test case that produces the initial condition for this run
time_integrator : {'split_explicit', 'RK4'}
The time integrator to use for the forward run
"""
super().__init__(test_group=test_group, mesh=mesh, init=init,
time_integrator=time_integrator,
name='daily_output_test')
step = ForwardStep(test_case=self, mesh=mesh, init=init,
time_integrator=time_integrator, cores=4,
threads=1)
module = self.__module__
step.add_output_file(filename='output.nc')
step.add_output_file(
filename='analysis_members/'
'mpaso.hist.am.timeSeriesStatsDaily.0001-01-01.nc')
step.add_namelist_file(module, 'namelist.forward')
step.add_streams_file(module, 'streams.forward')
self.add_step(step)
# no run() method is needed
def validate(self):
"""
Test cases can override this method to perform validation of variables
and timers
"""
variables = [
'timeDaily_avg_activeTracers_temperature',
'timeDaily_avg_activeTracers_salinity',
'timeDaily_avg_layerThickness', 'timeDaily_avg_normalVelocity',
'timeDaily_avg_ssh']
compare_variables(
test_case=self, variables=variables,
filename1='forward/analysis_members/'
'mpaso.hist.am.timeSeriesStatsDaily.0001-01-01.nc')