diff --git a/components/lfric-xios/build/testframework/xiostest.py b/components/lfric-xios/build/testframework/xiostest.py index fddbc1791..c298d257b 100644 --- a/components/lfric-xios/build/testframework/xiostest.py +++ b/components/lfric-xios/build/testframework/xiostest.py @@ -12,6 +12,7 @@ from testframework import MpiTest import xarray as xr +import matplotlib.pyplot as plt ############################################################################## @@ -81,10 +82,41 @@ def nc_data_match(self, in_file: Path, out_file: Path, varname: str): ds_in_comp = ds_in.sel(time=slice(comparison_window[0], comparison_window[1])) ds_out_comp = ds_out.sel(time=slice(comparison_window[0], comparison_window[1])) - result = [(ds_in_comp['time'] == ds_out_comp['time']).values.all(), - (ds_in_comp[varname] == ds_out_comp[varname]).values.all()] + if ds_in_comp['time'].size == 0: + return False + else: + result = [(ds_in_comp['time'] == ds_out_comp['time']).values.all(), + (ds_in_comp[varname] == ds_out_comp[varname]).values.all()] + return all(result) - return all(result) + def plot_output(self, in_file: Path, out_file: Path, varname: str): + """ + Visually compare input and output data. + """ + + def get_ts_data(file_path, field_id): + + ds = xr.open_dataset(file_path, engine='netcdf4', decode_timedelta=False) + ts = ds[field_id].mean(ds[field_id].dims[1::]) + time = ds[field_id].coords['time'] + + return ts, time + + input_ts, input_time = get_ts_data(in_file, varname) + output_ts, output_time = get_ts_data(out_file, varname) + + plt.rcParams["font.family"] = "serif" + _, ax = plt.subplots(figsize=([10.8, 4.8])) + ax.scatter(output_time, output_ts, c='C0', s=50) + ax.plot(output_time, output_ts, linestyle='--', lw=2, label="Model output data") + ax.scatter(input_time, input_ts, c='C3', marker='s', s=100, label="Input data") + + ax.set_xlabel("Date/Time") + ax.set_ylabel("Mean model data") + + plt.legend(frameon=False) + plt.savefig(f"{type(self).__name__}.png", bbox_inches="tight") + plt.close() def post_execution(self, return_code): """ diff --git a/components/lfric-xios/integration-test/lfric_xios_cyclic_temporal_test.f90 b/components/lfric-xios/integration-test/lfric_xios_cyclic_temporal_test.f90 new file mode 100644 index 000000000..608590ece --- /dev/null +++ b/components/lfric-xios/integration-test/lfric_xios_cyclic_temporal_test.f90 @@ -0,0 +1,92 @@ +!----------------------------------------------------------------------------- +! (C) Crown copyright 2026 Met Office. All rights reserved. +! The file LICENCE, distributed with this code, contains details of the terms +! under which the code may be used. +!----------------------------------------------------------------------------- + +! Tests the LFRic-XIOS temporal reading functionality +! +program lfric_xios_cyclic_temporal_test + + use constants_mod, only: i_timestep, r_second + use event_mod, only: event_action + use event_actor_mod, only: event_actor_type + use field_mod, only: field_type, field_proxy_type + use file_mod, only: FILE_MODE_READ, FILE_MODE_WRITE + use io_context_mod, only: callback_clock_arg + use lfric_xios_action_mod, only: advance + use lfric_xios_context_mod, only: lfric_xios_context_type + use lfric_xios_driver_mod, only: lfric_xios_initialise, lfric_xios_finalise + use lfric_xios_file_mod, only: lfric_xios_file_type, OPERATION_TIMESERIES + use linked_list_mod, only: linked_list_type + use log_mod, only: log_event, log_level_info + use test_db_mod, only: test_db_type + use xios, only: xios_date + + implicit none + + type(test_db_type) :: test_db + type(lfric_xios_context_type), target, allocatable :: io_context + + procedure(callback_clock_arg), pointer :: before_close + type(linked_list_type), pointer :: file_list + class(event_actor_type), pointer :: context_actor + procedure(event_action), pointer :: context_advance + type(field_type), pointer :: rfield + type(field_proxy_type) :: rproxy + type(xios_date) :: date + integer(i_timestep) :: file_freq + + call test_db%initialise() + call lfric_xios_initialise( "test", test_db%comm, .false. ) + + ! =============================== Start test ================================ + + allocate(io_context) + call io_context%initialise( "test_io_context", 1, 10 ) + + ! Fixed attribute of input data + file_freq = int(60.0_r_second / test_db%clock%get_seconds_per_step(), i_timestep) + + file_list => io_context%get_filelist() + call file_list%insert_item( lfric_xios_file_type( "lfric_xios_cyclic_input", & + xios_id="lfric_xios_cyclic_input", & + io_mode=FILE_MODE_READ, & + operation=OPERATION_TIMESERIES, & + freq=file_freq, & + cyclic=.true., & + fields_in_file=test_db%temporal_fields ) ) + call file_list%insert_item( lfric_xios_file_type( "lfric_xios_cyclic_output", & + xios_id="lfric_xios_cyclic_output", & + io_mode=FILE_MODE_WRITE, & + operation=OPERATION_TIMESERIES, & + freq=1, & + fields_in_file=test_db%temporal_fields ) ) + + before_close => null() + call io_context%initialise_xios_context( test_db%comm, & + test_db%chi, test_db%panel_id, & + test_db%clock, test_db%calendar, & + before_close ) + + + context_advance => advance + context_actor => io_context + call test_db%clock%add_event( context_advance, context_actor ) + call io_context%set_active(.true.) + + do while (test_db%clock%tick()) + call test_db%temporal_fields%get_field("temporal_field", rfield) + rproxy = rfield%get_proxy() + call log_event("Valid data for this TS:", log_level_info) + print*,rproxy%data(1) + end do + + deallocate(io_context) + + ! ============================== Finish test ================================= + + call lfric_xios_finalise() + call test_db%finalise() + +end program lfric_xios_cyclic_temporal_test diff --git a/components/lfric-xios/integration-test/lfric_xios_cyclic_temporal_test.py b/components/lfric-xios/integration-test/lfric_xios_cyclic_temporal_test.py new file mode 100755 index 000000000..e902c1d29 --- /dev/null +++ b/components/lfric-xios/integration-test/lfric_xios_cyclic_temporal_test.py @@ -0,0 +1,244 @@ +#!/usr/bin/env python3 +############################################################################## +# (C) Crown copyright 2026 Met Office. All rights reserved. +# The file LICENCE, distributed with this code, contains details of the terms +# under which the code may be used. +############################################################################## +""" +A set of tests which exercise the temporal reading functionality provided by +the LFRic-XIOS component. +""" +from testframework import TestEngine, TestFailed +from xiostest import LFRicXiosTest +from pathlib import Path +import sys + +############################################################################### +class LfricXiosFullCyclicTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality for a full set of cyclic data + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/cyclic_full.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_cyclic_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_cyclic_input.nc')) + self.gen_config( Path("resources/configs/cyclic_base.nml"), + Path("resources/configs/cyclic_full.nml"), {} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + if returncode != 0: + print(out) + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + f"stderr:\n" + + f"{err}") + + self.plot_output(Path('lfric_xios_cyclic_input.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field') + + if not self.nc_data_match(Path('lfric_xios_cyclic_input.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field'): + raise TestFailed("Output data does not match input data for same time values") + + return "Reading full set of cyclic data okay..." + + +class LfricXiosFutureCyclicTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality when data is in the future + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/cyclic_future.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_cyclic_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_cyclic_input.nc')) + self.gen_config( Path("resources/configs/cyclic_base.nml"), + Path("resources/configs/cyclic_future.nml"), + {"calendar_start":"'2024-01-01 14:55:00'"} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + expected_error_code = "ERROR: I/O context must start after data time " \ + "window when reading cyclic temporal data" + + self.plot_output(Path('lfric_xios_cyclic_input.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field') + + if returncode == 1: + errorcode = err.split("\n")[0].split("0:")[1] + if not errorcode == expected_error_code: + raise TestFailed("Incorrect error handling of cyclic future data") + else: + raise TestFailed("Unexpected non-failure of test executable") + + return "Expected error for future cyclic data reading..." + + +class LfricXiosPastCyclicTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality when data is in the future + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/cyclic_future.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_cyclic_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_cyclic_input.nc')) + self.gen_data(Path(test_data_dir, 'cyclic_past_kgo.cdl'), Path('cyclic_past_kgo.nc')) + self.gen_config( Path("resources/configs/cyclic_base.nml"), + Path("resources/configs/cyclic_future.nml"), + {"calendar_start":"'2025-01-01 14:55:00'"} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + if returncode != 0: + print(out) + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + f"stderr:\n" + + f"{err}") + if not self.nc_data_match(Path('cyclic_past_kgo.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field'): + raise TestFailed("Output data does not match expected values") + + return "Reading full set of cyclic data from the past okay..." + + +class LfricXiosCyclicHighFreqTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality when data is in the future + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/cyclic_future.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_cyclic_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_cyclic_input.nc')) + self.gen_data(Path(test_data_dir, 'cyclic_past_kgo.cdl'), Path('cyclic_past_kgo.nc')) + self.gen_config( Path("resources/configs/cyclic_base.nml"), + Path("resources/configs/cyclic_future.nml"), + {"dt":"10.0", + "timestep_end":"'150'"} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + self.plot_output(Path('lfric_xios_cyclic_input.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field') + + if returncode != 0: + print(out) + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + f"stderr:\n" + + f"{err}") + if not self.nc_data_match(Path('cyclic_past_kgo.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field'): + raise TestFailed("Output data does not match expected values") + + return "Reading full set of cyclic data from the past okay..." + + +class LfricXiosCyclicHighFreqTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality when data is in the future + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/cyclic_high_freq.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_cyclic_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_cyclic_input.nc')) + self.gen_data(Path(test_data_dir, 'cyclic_high_freq_kgo.cdl'), Path('cyclic_high_freq_kgo.nc')) + self.gen_config( Path("resources/configs/cyclic_base.nml"), + Path("resources/configs/cyclic_high_freq.nml"), + {"dt":"10.0", + "timestep_end":"'150'"} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + self.plot_output(Path('lfric_xios_cyclic_input.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field') + + if returncode != 0: + print(out) + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + f"stderr:\n" + + f"{err}") + if not self.nc_data_match(Path('cyclic_high_freq_kgo.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field'): + raise TestFailed("Output data does not match expected values") + + return "Reading full set of cyclic data from the past okay..." + + +class LfricXiosCyclicNonSyncTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality when model timesteps do not match data timesteps + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/cyclic_non_sync.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_cyclic_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_cyclic_input.nc')) + self.gen_data(Path(test_data_dir, 'non_sync_kgo.cdl'), Path('non_sync_kgo.nc')) + self.gen_config( Path("resources/configs/cyclic_base.nml"), + Path("resources/configs/cyclic_non_sync.nml"), + {"dt":"10.0", + "calendar_start":"'2024-01-01 15:03:20'", + "timestep_end":"'30'"} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + if returncode != 0: + print(out) + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + f"stderr:\n" + + f"{err}") + if not self.nc_data_match(Path('non_sync_kgo.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field'): + raise TestFailed("Output data does not match expected values") + + self.plot_output(Path('lfric_xios_cyclic_input.nc'), + Path('lfric_xios_cyclic_output.nc'), + 'temporal_field') + + return "Reading non-synchronised cyclic data okay..." + + + +############################################################################## +if __name__ == "__main__": + TestEngine.run(LfricXiosFullCyclicTest()) + TestEngine.run(LfricXiosFutureCyclicTest()) + TestEngine.run(LfricXiosPastCyclicTest()) + TestEngine.run(LfricXiosCyclicHighFreqTest()) + TestEngine.run(LfricXiosCyclicNonSyncTest()) \ No newline at end of file diff --git a/components/lfric-xios/integration-test/lfric_xios_temporal_test.py b/components/lfric-xios/integration-test/lfric_xios_temporal_test.py index 21bb48e1d..ba9ffcd49 100755 --- a/components/lfric-xios/integration-test/lfric_xios_temporal_test.py +++ b/components/lfric-xios/integration-test/lfric_xios_temporal_test.py @@ -37,15 +37,20 @@ def test(self, returncode: int, out: str, err: str): if returncode != 0: print(out) - raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + f"stderr:\n" + f"{err}") + + self.plot_output(Path('lfric_xios_temporal_input.nc'), + Path('lfric_xios_temporal_output.nc'), + 'temporal_field') + if not self.nc_data_match(Path('lfric_xios_temporal_input.nc'), Path('lfric_xios_temporal_output.nc'), 'temporal_field'): raise TestFailed("Output data does not match input data for same time values") - return "Reading full set of non-cylic data okay..." + return "Reading full set of non-cyclic data okay..." class LfricXiosNonCyclicHighFreqTest(LFRicXiosTest): # pylint: disable=too-few-public-methods @@ -70,7 +75,7 @@ def test(self, returncode: int, out: str, err: str): if returncode != 0: print(out) - raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + f"stderr:\n" + f"{err}") if not self.nc_data_match(Path('lfric_xios_temporal_input.nc'), @@ -78,7 +83,46 @@ def test(self, returncode: int, out: str, err: str): 'temporal_field'): raise TestFailed("Output data does not match input data for same time values") - return "Reading full set of non-cylic data at higher model frequency okay..." + return "Reading full set of non-cyclic data at higher model frequency okay..." + + +class LfricXiosNonCyclicNonSyncTest(LFRicXiosTest): # pylint: disable=too-few-public-methods + """ + Tests the LFRic-XIOS temporal reading functionality for a full set of + non-cyclic data at higher frequency than the input data + """ + + def __init__(self): + super().__init__(command=[sys.argv[1], "resources/configs/non_cyclic_non_sync.nml"], processes=1) + test_data_dir = Path(Path.cwd(), 'resources/data') + Path('lfric_xios_temporal_input.nc').unlink(missing_ok=True) + self.gen_data(Path(test_data_dir, 'temporal_data.cdl'), Path('lfric_xios_temporal_input.nc')) + self.gen_data(Path(test_data_dir, 'non_sync_kgo.cdl'), Path('non_sync_kgo.nc')) + self.gen_config( Path("resources/configs/non_cyclic_base.nml"), + Path("resources/configs/non_cyclic_non_sync.nml"), + {"dt":"10.0", + "calendar_start":"'2024-01-01 15:03:20'", + "timestep_end":"'30'"} ) + + def test(self, returncode: int, out: str, err: str): + """ + Test the output of the context test + """ + + if returncode != 0: + print(out) + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + f"stderr:\n" + + f"{err}") + self.plot_output(Path('lfric_xios_temporal_input.nc'), + Path('lfric_xios_temporal_output.nc'), + 'temporal_field') + if not self.nc_data_match(Path('non_sync_kgo.nc'), + Path('lfric_xios_temporal_output.nc'), + 'temporal_field'): + raise TestFailed("Output data does not match input data for same time values") + + return "Reading non-synchronised non-cyclic data at higher model frequency okay..." class LfricXiosPartialNonCyclicTest(LFRicXiosTest): # pylint: disable=too-few-public-methods @@ -102,7 +146,7 @@ def test(self, returncode: int, out: str, err: str): """ if returncode != 0: - raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + + raise TestFailed(f"Unexpected failure of test executable: {returncode}\n" + f"stderr:\n" + f"{err}") @@ -111,7 +155,7 @@ def test(self, returncode: int, out: str, err: str): 'temporal_field'): raise TestFailed("Output data does not match input data for same time values") - return "Reading partial set of non-cylic data okay..." + return "Reading partial set of non-cyclic data okay..." class LfricXiosNonCyclicFutureTest(LFRicXiosTest): # pylint: disable=too-few-public-methods @@ -186,6 +230,7 @@ def test(self, returncode: int, out: str, err: str): if __name__ == "__main__": TestEngine.run(LfricXiosFullNonCyclicTest()) TestEngine.run(LfricXiosNonCyclicHighFreqTest()) + TestEngine.run(LfricXiosNonCyclicNonSyncTest()) TestEngine.run(LfricXiosPartialNonCyclicTest()) TestEngine.run(LfricXiosNonCyclicFutureTest()) TestEngine.run(LfricXiosNonCyclicPastTest()) diff --git a/components/lfric-xios/integration-test/resources/configs/cyclic_base.nml b/components/lfric-xios/integration-test/resources/configs/cyclic_base.nml new file mode 100644 index 000000000..2321ff00e --- /dev/null +++ b/components/lfric-xios/integration-test/resources/configs/cyclic_base.nml @@ -0,0 +1,65 @@ +&base_mesh +f_lat_deg=45.0, +file_prefix='mesh_C24', +fplane=.false., +geometry='planar', +prepartitioned=.false., +prime_mesh_name='C24', +topology='fully_periodic', +/ + +&extrusion +planet_radius=6371229.0, +domain_height=1000.0, +method='uniform', +number_of_layers=10, +/ + +&finite_element +cellshape='quadrilateral', +element_order_h=0, +element_order_v=0, +rehabilitate=.true., +coord_order=1 +coord_system='native' +/ + +&io + use_xios_io = .true. + write_diag = .true. + diagnostic_frequency = 1 + subroutine_timers = .false. + timer_output_path = 'timer.txt' + subroutine_counters = .false. + counter_output_suffix = 'counter.txt' + checkpoint_read = .false. + checkpoint_write = .false. + file_convention = 'UGRID' +/ + +&logging + run_log_level='info' +/ + +&time + calendar = 'timestep' + timestep_start = '1' + timestep_end = '25' + calendar_type='gregorian' + calendar_start='2024-01-01 15:01:00' + calendar_origin='2024-01-01 15:00:00' +/ + +×tepping + dt=60.0 + spinup_period=0.0 +/ + +&partitioning + partitioner='cubedsphere', + panel_decomposition = 'auto', +/ + +&planet + scaling_factor=125.0, +/ diff --git a/components/lfric-xios/integration-test/resources/data/cyclic_high_freq_kgo.cdl b/components/lfric-xios/integration-test/resources/data/cyclic_high_freq_kgo.cdl new file mode 100644 index 000000000..8218e352c --- /dev/null +++ b/components/lfric-xios/integration-test/resources/data/cyclic_high_freq_kgo.cdl @@ -0,0 +1,2236 @@ +netcdf lfric_xios_cyclic_output { +dimensions: + axis_nbounds = 2 ; + Two = 2 ; + nMesh2d_node = 1 ; + nMesh2d_edge = UNLIMITED ; // (0 currently) + nMesh2d_face = 9 ; + nMesh2d_vertex = 4 ; + vert_axis_half_levels = 5 ; + time = UNLIMITED ; // (150 currently) +variables: + int Mesh2d ; + Mesh2d:cf_role = "mesh_topology" ; + Mesh2d:long_name = "Topology data of 2D unstructured mesh" ; + Mesh2d:topology_dimension = 2 ; + Mesh2d:node_coordinates = "Mesh2d_node_x Mesh2d_node_y" ; + Mesh2d:edge_coordinates = "Mesh2d_edge_x Mesh2d_edge_y" ; + Mesh2d:edge_node_connectivity = "Mesh2d_edge_nodes" ; + Mesh2d:face_edge_connectivity = "Mesh2d_face_edges" ; + Mesh2d:edge_face_connectivity = "Mesh2d_edge_face_links" ; + Mesh2d:face_face_connectivity = "Mesh2d_face_links" ; + Mesh2d:face_coordinates = "Mesh2d_face_x Mesh2d_face_y" ; + Mesh2d:face_node_connectivity = "Mesh2d_face_nodes" ; + Mesh2d:geometry = "planar" ; + float Mesh2d_node_x(nMesh2d_node) ; + Mesh2d_node_x:standard_name = "projection_x_coordinate" ; + Mesh2d_node_x:long_name = "x coordinate of projection" ; + Mesh2d_node_x:units = "m" ; + Mesh2d_node_x:scale_factor = 10000. ; + float Mesh2d_node_y(nMesh2d_node) ; + Mesh2d_node_y:standard_name = "projection_y_coordinate" ; + Mesh2d_node_y:long_name = "y coordinate of projection" ; + Mesh2d_node_y:units = "m" ; + Mesh2d_node_y:scale_factor = 10000. ; + float Mesh2d_edge_x(nMesh2d_edge) ; + Mesh2d_edge_x:standard_name = "projection_x_coordinate" ; + Mesh2d_edge_x:long_name = "x coordinate of projection" ; + Mesh2d_edge_x:units = "m" ; + Mesh2d_edge_x:scale_factor = 10000. ; + float Mesh2d_edge_y(nMesh2d_edge) ; + Mesh2d_edge_y:standard_name = "projection_y_coordinate" ; + Mesh2d_edge_y:long_name = "y coordinate of projection" ; + Mesh2d_edge_y:units = "m" ; + Mesh2d_edge_y:scale_factor = 10000. ; + int Mesh2d_edge_nodes(nMesh2d_edge, Two) ; + Mesh2d_edge_nodes:cf_role = "edge_node_connectivity" ; + Mesh2d_edge_nodes:long_name = "Maps every edge/link to two nodes that it connects." ; + Mesh2d_edge_nodes:start_index = 0 ; + float Mesh2d_face_x(nMesh2d_face) ; + Mesh2d_face_x:standard_name = "projection_x_coordinate" ; + Mesh2d_face_x:long_name = "x coordinate of projection" ; + Mesh2d_face_x:units = "m" ; + Mesh2d_face_x:scale_factor = 10000. ; + float Mesh2d_face_y(nMesh2d_face) ; + Mesh2d_face_y:standard_name = "projection_y_coordinate" ; + Mesh2d_face_y:long_name = "y coordinate of projection" ; + Mesh2d_face_y:units = "m" ; + Mesh2d_face_y:scale_factor = 10000. ; + int Mesh2d_face_nodes(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_nodes:cf_role = "face_node_connectivity" ; + Mesh2d_face_nodes:long_name = "Maps every face to its corner nodes." ; + Mesh2d_face_nodes:start_index = 0 ; + int Mesh2d_face_edges(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_edges:cf_role = "face_edge_connectivity" ; + Mesh2d_face_edges:long_name = "Maps every face to its edges." ; + Mesh2d_face_edges:start_index = 0 ; + Mesh2d_face_edges:_FillValue = 999999 ; + int Mesh2d_edge_face_links(nMesh2d_edge, Two) ; + Mesh2d_edge_face_links:cf_role = "edge_face_connectivity" ; + Mesh2d_edge_face_links:long_name = "neighbor faces for edges" ; + Mesh2d_edge_face_links:start_index = 0 ; + Mesh2d_edge_face_links:_FillValue = -999 ; + Mesh2d_edge_face_links:comment = "missing neighbor faces are indicated using _FillValue" ; + int Mesh2d_face_links(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_links:cf_role = "face_face_connectivity" ; + Mesh2d_face_links:long_name = "Indicates which other faces neighbor each face" ; + Mesh2d_face_links:start_index = 0 ; + Mesh2d_face_links:_FillValue = 999999 ; + Mesh2d_face_links:flag_values = -1 ; + Mesh2d_face_links:flag_meanings = "out_of_mesh" ; + float vert_axis_half_levels(vert_axis_half_levels) ; + vert_axis_half_levels:name = "vert_axis_half_levels" ; + double time(time) ; + time:axis = "T" ; + time:standard_name = "time" ; + time:long_name = "Time axis" ; + time:calendar = "gregorian" ; + time:units = "seconds since 2024-01-01 15:01:00" ; + time:time_origin = "2024-01-01 15:01:00" ; + time:bounds = "time_bounds" ; + time:coordinates = " forecast_reference_time forecast_period" ; + double time_bounds(time, axis_nbounds) ; + time_bounds:coordinates = " forecast_reference_time forecast_period" ; + double temporal_field(time, vert_axis_half_levels, nMesh2d_face) ; + temporal_field:mesh = "Mesh2d" ; + temporal_field:location = "face" ; + temporal_field:online_operation = "instant" ; + temporal_field:interval_operation = "10 s" ; + temporal_field:interval_write = "10 s" ; + temporal_field:cell_methods = "time: point" ; + temporal_field:coordinates = "Mesh2d_face_y Mesh2d_face_x forecast_reference_time forecast_period" ; + double forecast_reference_time ; + forecast_reference_time:units = "seconds since 2024-01-01 15:01:00" ; + forecast_reference_time:calendar = "gregorian" ; + forecast_reference_time:standard_name = "forecast_reference_time" ; + double forecast_period(time) ; + forecast_period:units = "seconds" ; + forecast_period:standard_name = "forecast_period" ; + forecast_period:coordinates = " forecast_reference_time forecast_period" ; + +// global attributes: + :name = "lfric_xios_cyclic_output" ; + :title = "Created by xios" ; + :timeStamp = "2025-May-14 13:57:49 GMT" ; + :uuid = "4e62144c-c681-48fc-8916-2f6a6486e62c" ; + :description = "LFRic file format v0.2.0" ; + :Conventions = "UGRID-1.0" ; +data: + + Mesh2d = -537909648 ; + + Mesh2d_node_x = 0 ; + + Mesh2d_node_y = 0 ; + + Mesh2d_face_x = 0.0001, 0.0002, 0.0001, 0.0003, 0.0001, 0.0003, 0.0002, + 0.0003, 0.0002 ; + + Mesh2d_face_y = 0.0001, 0.0001, 0.0001, 0.0002, 0.0002, 0.0002, 0.0003, + 0.0003, 0.0003 ; + + Mesh2d_face_nodes = + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 ; + + Mesh2d_face_edges = + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _ ; + + Mesh2d_face_links = + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _ ; + + vert_axis_half_levels = 0.5, 1.5, 2.5, 3.5, 4.5 ; + + time = 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, + 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, + 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, + 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, + 580, 590, 600, 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, 710, + 720, 730, 740, 750, 760, 770, 780, 790, 800, 810, 820, 830, 840, 850, + 860, 870, 880, 890, 900, 910, 920, 930, 940, 950, 960, 970, 980, 990, + 1000, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, 1110, + 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, 1210, 1220, 1230, + 1240, 1250, 1260, 1270, 1280, 1290, 1300, 1310, 1320, 1330, 1340, 1350, + 1360, 1370, 1380, 1390, 1400, 1410, 1420, 1430, 1440, 1450, 1460, 1470, + 1480, 1490, 1500 ; + + time_bounds = + 10, 10, + 20, 20, + 30, 30, + 40, 40, + 50, 50, + 60, 60, + 70, 70, + 80, 80, + 90, 90, + 100, 100, + 110, 110, + 120, 120, + 130, 130, + 140, 140, + 150, 150, + 160, 160, + 170, 170, + 180, 180, + 190, 190, + 200, 200, + 210, 210, + 220, 220, + 230, 230, + 240, 240, + 250, 250, + 260, 260, + 270, 270, + 280, 280, + 290, 290, + 300, 300, + 310, 310, + 320, 320, + 330, 330, + 340, 340, + 350, 350, + 360, 360, + 370, 370, + 380, 380, + 390, 390, + 400, 400, + 410, 410, + 420, 420, + 430, 430, + 440, 440, + 450, 450, + 460, 460, + 470, 470, + 480, 480, + 490, 490, + 500, 500, + 510, 510, + 520, 520, + 530, 530, + 540, 540, + 550, 550, + 560, 560, + 570, 570, + 580, 580, + 590, 590, + 600, 600, + 610, 610, + 620, 620, + 630, 630, + 640, 640, + 650, 650, + 660, 660, + 670, 670, + 680, 680, + 690, 690, + 700, 700, + 710, 710, + 720, 720, + 730, 730, + 740, 740, + 750, 750, + 760, 760, + 770, 770, + 780, 780, + 790, 790, + 800, 800, + 810, 810, + 820, 820, + 830, 830, + 840, 840, + 850, 850, + 860, 860, + 870, 870, + 880, 880, + 890, 890, + 900, 900, + 910, 910, + 920, 920, + 930, 930, + 940, 940, + 950, 950, + 960, 960, + 970, 970, + 980, 980, + 990, 990, + 1000, 1000, + 1010, 1010, + 1020, 1020, + 1030, 1030, + 1040, 1040, + 1050, 1050, + 1060, 1060, + 1070, 1070, + 1080, 1080, + 1090, 1090, + 1100, 1100, + 1110, 1110, + 1120, 1120, + 1130, 1130, + 1140, 1140, + 1150, 1150, + 1160, 1160, + 1170, 1170, + 1180, 1180, + 1190, 1190, + 1200, 1200, + 1210, 1210, + 1220, 1220, + 1230, 1230, + 1240, 1240, + 1250, 1250, + 1260, 1260, + 1270, 1270, + 1280, 1280, + 1290, 1290, + 1300, 1300, + 1310, 1310, + 1320, 1320, + 1330, 1330, + 1340, 1340, + 1350, 1350, + 1360, 1360, + 1370, 1370, + 1380, 1380, + 1390, 1390, + 1400, 1400, + 1410, 1410, + 1420, 1420, + 1430, 1430, + 1440, 1440, + 1450, 1450, + 1460, 1460, + 1470, 1470, + 1480, 1480, + 1490, 1490, + 1500, 1500 ; + + temporal_field = + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857 ; + + forecast_reference_time = 0 ; + + forecast_period = 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, + 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, + 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, + 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, + 560, 570, 580, 590, 600, 610, 620, 630, 640, 650, 660, 670, 680, 690, + 700, 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, 810, 820, 830, + 840, 850, 860, 870, 880, 890, 900, 910, 920, 930, 940, 950, 960, 970, + 980, 990, 1000, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, + 1100, 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, 1210, + 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, 1310, 1320, 1330, + 1340, 1350, 1360, 1370, 1380, 1390, 1400, 1410, 1420, 1430, 1440, 1450, + 1460, 1470, 1480, 1490, 1500 ; +} diff --git a/components/lfric-xios/integration-test/resources/data/cyclic_past_kgo.cdl b/components/lfric-xios/integration-test/resources/data/cyclic_past_kgo.cdl new file mode 100644 index 000000000..eaf8f1f0f --- /dev/null +++ b/components/lfric-xios/integration-test/resources/data/cyclic_past_kgo.cdl @@ -0,0 +1,535 @@ +netcdf lfric_xios_cyclic_output { +dimensions: + axis_nbounds = 2 ; + Two = 2 ; + nMesh2d_node = 1 ; + nMesh2d_edge = UNLIMITED ; // (0 currently) + nMesh2d_face = 9 ; + nMesh2d_vertex = 4 ; + vert_axis_half_levels = 5 ; + time = UNLIMITED ; // (25 currently) +variables: + int Mesh2d ; + Mesh2d:cf_role = "mesh_topology" ; + Mesh2d:long_name = "Topology data of 2D unstructured mesh" ; + Mesh2d:topology_dimension = 2 ; + Mesh2d:node_coordinates = "Mesh2d_node_x Mesh2d_node_y" ; + Mesh2d:edge_coordinates = "Mesh2d_edge_x Mesh2d_edge_y" ; + Mesh2d:edge_node_connectivity = "Mesh2d_edge_nodes" ; + Mesh2d:face_edge_connectivity = "Mesh2d_face_edges" ; + Mesh2d:edge_face_connectivity = "Mesh2d_edge_face_links" ; + Mesh2d:face_face_connectivity = "Mesh2d_face_links" ; + Mesh2d:face_coordinates = "Mesh2d_face_x Mesh2d_face_y" ; + Mesh2d:face_node_connectivity = "Mesh2d_face_nodes" ; + Mesh2d:geometry = "planar" ; + float Mesh2d_node_x(nMesh2d_node) ; + Mesh2d_node_x:standard_name = "projection_x_coordinate" ; + Mesh2d_node_x:long_name = "x coordinate of projection" ; + Mesh2d_node_x:units = "m" ; + Mesh2d_node_x:scale_factor = 10000. ; + float Mesh2d_node_y(nMesh2d_node) ; + Mesh2d_node_y:standard_name = "projection_y_coordinate" ; + Mesh2d_node_y:long_name = "y coordinate of projection" ; + Mesh2d_node_y:units = "m" ; + Mesh2d_node_y:scale_factor = 10000. ; + float Mesh2d_edge_x(nMesh2d_edge) ; + Mesh2d_edge_x:standard_name = "projection_x_coordinate" ; + Mesh2d_edge_x:long_name = "x coordinate of projection" ; + Mesh2d_edge_x:units = "m" ; + Mesh2d_edge_x:scale_factor = 10000. ; + float Mesh2d_edge_y(nMesh2d_edge) ; + Mesh2d_edge_y:standard_name = "projection_y_coordinate" ; + Mesh2d_edge_y:long_name = "y coordinate of projection" ; + Mesh2d_edge_y:units = "m" ; + Mesh2d_edge_y:scale_factor = 10000. ; + int Mesh2d_edge_nodes(nMesh2d_edge, Two) ; + Mesh2d_edge_nodes:cf_role = "edge_node_connectivity" ; + Mesh2d_edge_nodes:long_name = "Maps every edge/link to two nodes that it connects." ; + Mesh2d_edge_nodes:start_index = 0 ; + float Mesh2d_face_x(nMesh2d_face) ; + Mesh2d_face_x:standard_name = "projection_x_coordinate" ; + Mesh2d_face_x:long_name = "x coordinate of projection" ; + Mesh2d_face_x:units = "m" ; + Mesh2d_face_x:scale_factor = 10000. ; + float Mesh2d_face_y(nMesh2d_face) ; + Mesh2d_face_y:standard_name = "projection_y_coordinate" ; + Mesh2d_face_y:long_name = "y coordinate of projection" ; + Mesh2d_face_y:units = "m" ; + Mesh2d_face_y:scale_factor = 10000. ; + int Mesh2d_face_nodes(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_nodes:cf_role = "face_node_connectivity" ; + Mesh2d_face_nodes:long_name = "Maps every face to its corner nodes." ; + Mesh2d_face_nodes:start_index = 0 ; + int Mesh2d_face_edges(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_edges:cf_role = "face_edge_connectivity" ; + Mesh2d_face_edges:long_name = "Maps every face to its edges." ; + Mesh2d_face_edges:start_index = 0 ; + Mesh2d_face_edges:_FillValue = 999999 ; + int Mesh2d_edge_face_links(nMesh2d_edge, Two) ; + Mesh2d_edge_face_links:cf_role = "edge_face_connectivity" ; + Mesh2d_edge_face_links:long_name = "neighbor faces for edges" ; + Mesh2d_edge_face_links:start_index = 0 ; + Mesh2d_edge_face_links:_FillValue = -999 ; + Mesh2d_edge_face_links:comment = "missing neighbor faces are indicated using _FillValue" ; + int Mesh2d_face_links(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_links:cf_role = "face_face_connectivity" ; + Mesh2d_face_links:long_name = "Indicates which other faces neighbor each face" ; + Mesh2d_face_links:start_index = 0 ; + Mesh2d_face_links:_FillValue = 999999 ; + Mesh2d_face_links:flag_values = -1 ; + Mesh2d_face_links:flag_meanings = "out_of_mesh" ; + float vert_axis_half_levels(vert_axis_half_levels) ; + vert_axis_half_levels:name = "vert_axis_half_levels" ; + double time(time) ; + time:axis = "T" ; + time:standard_name = "time" ; + time:long_name = "Time axis" ; + time:calendar = "gregorian" ; + time:units = "seconds since 2025-01-01 14:55:00" ; + time:time_origin = "2025-01-01 14:55:00" ; + time:bounds = "time_bounds" ; + time:coordinates = " forecast_reference_time forecast_period" ; + double time_bounds(time, axis_nbounds) ; + time_bounds:coordinates = " forecast_reference_time forecast_period" ; + double temporal_field(time, vert_axis_half_levels, nMesh2d_face) ; + temporal_field:mesh = "Mesh2d" ; + temporal_field:location = "face" ; + temporal_field:online_operation = "instant" ; + temporal_field:interval_operation = "60 s" ; + temporal_field:interval_write = "60 s" ; + temporal_field:cell_methods = "time: point" ; + temporal_field:coordinates = "Mesh2d_face_y Mesh2d_face_x forecast_reference_time forecast_period" ; + double forecast_reference_time ; + forecast_reference_time:units = "seconds since 2025-01-01 14:55:00" ; + forecast_reference_time:calendar = "gregorian" ; + forecast_reference_time:standard_name = "forecast_reference_time" ; + double forecast_period(time) ; + forecast_period:units = "seconds" ; + forecast_period:standard_name = "forecast_period" ; + forecast_period:coordinates = " forecast_reference_time forecast_period" ; + +// global attributes: + :name = "lfric_xios_cyclic_output" ; + :title = "Created by xios" ; + :timeStamp = "2025-May-14 10:12:22 GMT" ; + :uuid = "3fd4444e-5d12-4daf-80d5-278c35e9d47b" ; + :description = "LFRic file format v0.2.0" ; + :Conventions = "UGRID-1.0" ; +data: + + Mesh2d = 1236878074 ; + + Mesh2d_node_x = 0 ; + + Mesh2d_node_y = 0 ; + + Mesh2d_face_x = 0.0001, 0.0002, 0.0001, 0.0003, 0.0001, 0.0003, 0.0002, + 0.0003, 0.0002 ; + + Mesh2d_face_y = 0.0001, 0.0001, 0.0001, 0.0002, 0.0002, 0.0002, 0.0003, + 0.0003, 0.0003 ; + + Mesh2d_face_nodes = + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 ; + + Mesh2d_face_edges = + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _ ; + + Mesh2d_face_links = + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _ ; + + vert_axis_half_levels = 0.5, 1.5, 2.5, 3.5, 4.5 ; + + time = 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, 780, 840, + 900, 960, 1020, 1080, 1140, 1200, 1260, 1320, 1380, 1440, 1500 ; + + time_bounds = + 60, 60, + 120, 120, + 180, 180, + 240, 240, + 300, 300, + 360, 360, + 420, 420, + 480, 480, + 540, 540, + 600, 600, + 660, 660, + 720, 720, + 780, 780, + 840, 840, + 900, 900, + 960, 960, + 1020, 1020, + 1080, 1080, + 1140, 1140, + 1200, 1200, + 1260, 1260, + 1320, 1320, + 1380, 1380, + 1440, 1440, + 1500, 1500 ; + + temporal_field = + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, 6.66666666666667, 6.66666666666667, 6.66666666666667, + 6.66666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, 0, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206, 40.6349206349206, 40.6349206349206, 40.6349206349206, + 40.6349206349206 ; + + forecast_reference_time = 0 ; + + forecast_period = 60, 120, 180, 240, 300, 360, 420, 480, 540, 600, 660, 720, + 780, 840, 900, 960, 1020, 1080, 1140, 1200, 1260, 1320, 1380, 1440, 1500 ; +} diff --git a/components/lfric-xios/integration-test/resources/data/non_sync_kgo.cdl b/components/lfric-xios/integration-test/resources/data/non_sync_kgo.cdl new file mode 100644 index 000000000..36960c266 --- /dev/null +++ b/components/lfric-xios/integration-test/resources/data/non_sync_kgo.cdl @@ -0,0 +1,599 @@ +netcdf lfric_xios_temporal_output { +dimensions: + axis_nbounds = 2 ; + Two = 2 ; + nMesh2d_node = 1 ; + nMesh2d_edge = UNLIMITED ; // (0 currently) + nMesh2d_face = 9 ; + nMesh2d_vertex = 4 ; + vert_axis_half_levels = 5 ; + time = UNLIMITED ; // (30 currently) +variables: + int Mesh2d ; + Mesh2d:cf_role = "mesh_topology" ; + Mesh2d:long_name = "Topology data of 2D unstructured mesh" ; + Mesh2d:topology_dimension = 2 ; + Mesh2d:node_coordinates = "Mesh2d_node_x Mesh2d_node_y" ; + Mesh2d:edge_coordinates = "Mesh2d_edge_x Mesh2d_edge_y" ; + Mesh2d:edge_node_connectivity = "Mesh2d_edge_nodes" ; + Mesh2d:face_edge_connectivity = "Mesh2d_face_edges" ; + Mesh2d:edge_face_connectivity = "Mesh2d_edge_face_links" ; + Mesh2d:face_face_connectivity = "Mesh2d_face_links" ; + Mesh2d:face_coordinates = "Mesh2d_face_x Mesh2d_face_y" ; + Mesh2d:face_node_connectivity = "Mesh2d_face_nodes" ; + Mesh2d:geometry = "planar" ; + float Mesh2d_node_x(nMesh2d_node) ; + Mesh2d_node_x:standard_name = "projection_x_coordinate" ; + Mesh2d_node_x:long_name = "x coordinate of projection" ; + Mesh2d_node_x:units = "m" ; + Mesh2d_node_x:scale_factor = 10000. ; + float Mesh2d_node_y(nMesh2d_node) ; + Mesh2d_node_y:standard_name = "projection_y_coordinate" ; + Mesh2d_node_y:long_name = "y coordinate of projection" ; + Mesh2d_node_y:units = "m" ; + Mesh2d_node_y:scale_factor = 10000. ; + float Mesh2d_edge_x(nMesh2d_edge) ; + Mesh2d_edge_x:standard_name = "projection_x_coordinate" ; + Mesh2d_edge_x:long_name = "x coordinate of projection" ; + Mesh2d_edge_x:units = "m" ; + Mesh2d_edge_x:scale_factor = 10000. ; + float Mesh2d_edge_y(nMesh2d_edge) ; + Mesh2d_edge_y:standard_name = "projection_y_coordinate" ; + Mesh2d_edge_y:long_name = "y coordinate of projection" ; + Mesh2d_edge_y:units = "m" ; + Mesh2d_edge_y:scale_factor = 10000. ; + int Mesh2d_edge_nodes(nMesh2d_edge, Two) ; + Mesh2d_edge_nodes:cf_role = "edge_node_connectivity" ; + Mesh2d_edge_nodes:long_name = "Maps every edge/link to two nodes that it connects." ; + Mesh2d_edge_nodes:start_index = 0 ; + float Mesh2d_face_x(nMesh2d_face) ; + Mesh2d_face_x:standard_name = "projection_x_coordinate" ; + Mesh2d_face_x:long_name = "x coordinate of projection" ; + Mesh2d_face_x:units = "m" ; + Mesh2d_face_x:scale_factor = 10000. ; + float Mesh2d_face_y(nMesh2d_face) ; + Mesh2d_face_y:standard_name = "projection_y_coordinate" ; + Mesh2d_face_y:long_name = "y coordinate of projection" ; + Mesh2d_face_y:units = "m" ; + Mesh2d_face_y:scale_factor = 10000. ; + int Mesh2d_face_nodes(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_nodes:cf_role = "face_node_connectivity" ; + Mesh2d_face_nodes:long_name = "Maps every face to its corner nodes." ; + Mesh2d_face_nodes:start_index = 0 ; + int Mesh2d_face_edges(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_edges:cf_role = "face_edge_connectivity" ; + Mesh2d_face_edges:long_name = "Maps every face to its edges." ; + Mesh2d_face_edges:start_index = 0 ; + Mesh2d_face_edges:_FillValue = -999 ; + int Mesh2d_edge_face_links(nMesh2d_edge, Two) ; + Mesh2d_edge_face_links:cf_role = "edge_face_connectivity" ; + Mesh2d_edge_face_links:long_name = "neighbor faces for edges" ; + Mesh2d_edge_face_links:start_index = 0 ; + Mesh2d_edge_face_links:_FillValue = -999 ; + Mesh2d_edge_face_links:comment = "missing neighbor faces are indicated using _FillValue" ; + int Mesh2d_face_links(nMesh2d_face, nMesh2d_vertex) ; + Mesh2d_face_links:cf_role = "face_face_connectivity" ; + Mesh2d_face_links:long_name = "Indicates which other faces neighbor each face" ; + Mesh2d_face_links:start_index = 0 ; + Mesh2d_face_links:_FillValue = -999 ; + Mesh2d_face_links:flag_values = -1 ; + Mesh2d_face_links:flag_meanings = "out_of_mesh" ; + float vert_axis_half_levels(vert_axis_half_levels) ; + vert_axis_half_levels:name = "vert_axis_half_levels" ; + double time(time) ; + time:axis = "T" ; + time:standard_name = "time" ; + time:long_name = "Time axis" ; + time:calendar = "gregorian" ; + time:units = "seconds since 2024-01-01 15:03:20" ; + time:time_origin = "2024-01-01 15:03:20" ; + time:bounds = "time_bounds" ; + time:coordinates = " forecast_reference_time forecast_period" ; + double time_bounds(time, axis_nbounds) ; + time_bounds:coordinates = " forecast_reference_time forecast_period" ; + double temporal_field(time, vert_axis_half_levels, nMesh2d_face) ; + temporal_field:mesh = "Mesh2d" ; + temporal_field:location = "face" ; + temporal_field:online_operation = "instant" ; + temporal_field:interval_operation = "10 s" ; + temporal_field:interval_write = "10 s" ; + temporal_field:cell_methods = "time: point" ; + temporal_field:coordinates = "Mesh2d_face_y Mesh2d_face_x forecast_reference_time forecast_period" ; + double forecast_reference_time ; + forecast_reference_time:units = "seconds since 2024-01-01 15:03:20" ; + forecast_reference_time:calendar = "gregorian" ; + forecast_reference_time:standard_name = "forecast_reference_time" ; + double forecast_period(time) ; + forecast_period:units = "seconds" ; + forecast_period:standard_name = "forecast_period" ; + forecast_period:coordinates = " forecast_reference_time forecast_period" ; + +// global attributes: + :name = "lfric_xios_temporal_output" ; + :title = "Created by xios" ; + :timeStamp = "2026-Feb-04 10:19:46 GMT" ; + :uuid = "d87404e7-0a57-421a-81c1-d12bd5d7c9a6" ; + :description = "LFRic file format v0.2.0" ; + :Conventions = "UGRID-1.0" ; +data: + + Mesh2d = 1661606095 ; + + Mesh2d_node_x = 0 ; + + Mesh2d_node_y = 0 ; + + Mesh2d_face_x = 0.0001, 0.0002, 0.0001, 0.0003, 0.0001, 0.0003, 0.0002, + 0.0003, 0.0002 ; + + Mesh2d_face_y = 0.0001, 0.0001, 0.0001, 0.0002, 0.0002, 0.0002, 0.0003, + 0.0003, 0.0003 ; + + Mesh2d_face_nodes = + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0 ; + + Mesh2d_face_edges = + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _ ; + + Mesh2d_face_links = + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _, + _, _, _, _ ; + + vert_axis_half_levels = 0.5, 1.5, 2.5, 3.5, 4.5 ; + + time = 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, + 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300 ; + + time_bounds = + 10, 10, + 20, 20, + 30, 30, + 40, 40, + 50, 50, + 60, 60, + 70, 70, + 80, 80, + 90, 90, + 100, 100, + 110, 110, + 120, 120, + 130, 130, + 140, 140, + 150, 150, + 160, 160, + 170, 170, + 180, 180, + 190, 190, + 200, 200, + 210, 210, + 220, 220, + 230, 230, + 240, 240, + 250, 250, + 260, 260, + 270, 270, + 280, 280, + 290, 290, + 300, 300 ; + + temporal_field = + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, 26.6666666666667, 26.6666666666667, 26.6666666666667, + 26.6666666666667, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333, + 5.33333333333333, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, 4.57142857142857, 4.57142857142857, 4.57142857142857, + 4.57142857142857, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, 36.5714285714286, 36.5714285714286, 36.5714285714286, + 36.5714285714286, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206, 4.06349206349206, 4.06349206349206, 4.06349206349206, + 4.06349206349206 ; + + forecast_reference_time = 0 ; + + forecast_period = 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, + 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, + 280, 290, 300 ; +} diff --git a/components/lfric-xios/source/lfric_xios_file_mod.f90 b/components/lfric-xios/source/lfric_xios_file_mod.f90 index cc1e9a820..a51a801c9 100644 --- a/components/lfric-xios/source/lfric_xios_file_mod.f90 +++ b/components/lfric-xios/source/lfric_xios_file_mod.f90 @@ -421,8 +421,8 @@ subroutine register_with_context(self) ! the temporal object initialiser which will tell XIOS which time entry ! to start reading from call xios_set_attr(self%handle, cyclic=self%cyclic) - call self%temporal%initialise( self%path, self%fields, self%frequency, & - self%cyclic, record_offset ) + call self%temporal%initialise( self%xios_id, self%path, self%fields, & + self%frequency, self%cyclic, record_offset ) call xios_set_attr(self%handle, record_offset=record_offset) end if @@ -495,6 +495,12 @@ subroutine recv_fields(self) call self%fields(i)%recv() end do + ! Shift the read index forward for temporal reading + if ( (self%io_mode == FILE_MODE_READ) .and. & + (self%operation == OPERATION_TIMESERIES) ) then + call self%temporal%shift_read_index(self%fields) + end if + ! If file should only be operated on once, close it, else set the time for ! the next operation if (self%operation == OPERATION_ONCE) then @@ -503,16 +509,16 @@ subroutine recv_fields(self) self%next_operation = self%next_operation + self%frequency end if - ! Advance the time axis if present - if ( (self%io_mode == FILE_MODE_READ) .and. & - (self%operation == OPERATION_TIMESERIES) ) then - if (.not. self%temporal%advance()) call self%file_close() - end if - self%context_init_read = .false. end if + ! Advance the time axis if present + if ( (self%io_mode == FILE_MODE_READ) .and. & + (self%operation == OPERATION_TIMESERIES) ) then + if (.not. self%temporal%advance(self%fields)) call self%file_close() + end if + end subroutine recv_fields !> @brief Writes all fields registered with a file diff --git a/components/lfric-xios/source/lfric_xios_temporal_mod.x90 b/components/lfric-xios/source/lfric_xios_temporal_mod.x90 index 7a37684d5..8d66ab6ce 100644 --- a/components/lfric-xios/source/lfric_xios_temporal_mod.x90 +++ b/components/lfric-xios/source/lfric_xios_temporal_mod.x90 @@ -36,7 +36,7 @@ module lfric_xios_temporal_mod xios_add_child, xios_get_start_date, & xios_get_timestep, xios_day, xios_month, & xios_year, operator(-), operator(+), & - operator(<), operator(<=) + operator(*), operator(<), operator(<=), operator(==) implicit none @@ -54,6 +54,8 @@ module lfric_xios_temporal_mod type(xios_date) :: next_model_update !> Array of fields used to hold intermediate data from time-varying inputs type(field_type), allocatable :: fields(:,:) + !> + type(lfric_xios_field_type), allocatable :: init_fields(:,:) !> Array of lfric_xios fields which hold pointers to the destination fields !! to be populated type(lfric_xios_field_type), allocatable :: field_dest(:) @@ -69,6 +71,8 @@ module lfric_xios_temporal_mod type(xios_duration) :: cycle_period !> How often the data is read by XIOS type(xios_duration) :: io_frequency + !> Do initial fields need to be read + logical(l_def) :: read_initial_fields = .false. contains @@ -77,8 +81,12 @@ module lfric_xios_temporal_mod !> Align time series data (time_data(:)) so that the current model date !> falls between the first two entries procedure, private :: align_time_axis + !> Set up initial read definition if required + procedure, private :: setup_initial_read_definition !> Progress the time axis procedure, public :: advance + procedure, public :: shift_read_index + !> Update model fields from temporal fields procedure, private :: update_model_data @@ -93,17 +101,19 @@ contains !> @brief Initialise a temporal_type object. !> + !> @param[in] file_id XIOS ID of the associated file !> @param[in] file_path Path to the file containing the time data !> @param[in,out] file_fields A list of fields within the file !> @param[in] io_frequency How often the file is read !> @param[in] cyclic Is the time axis cyclic or not !> @param[out] record_offset Time index for XIOS to start reading data from - subroutine initialise( self, file_path, file_fields, io_frequency, & + subroutine initialise( self, file_id, file_path, file_fields, io_frequency, & cyclic, record_offset ) implicit none class(temporal_type), target, intent(inout) :: self + character(*), intent(in) :: file_id character(*), intent(in) :: file_path type(lfric_xios_field_type), intent(inout) :: file_fields(:) type(xios_duration), intent(in) :: io_frequency @@ -120,10 +130,10 @@ contains self%io_frequency = io_frequency - if (cyclic) then - call log_event("Temporal control not yet implemented for cyclic time axes", LOG_LEVEL_ERROR) + self%is_cyclic = cyclic + if (self%is_cyclic) then + self%cycle_period = self%io_frequency * size(self%time_data) else - self%is_cyclic = .false. self%cycle_period = xios_duration(0) end if @@ -131,16 +141,21 @@ contains ! between the first two time entries call self%align_time_axis(context_start, record_offset) + ! Set window size to 2 if model timesteps not synchonised with time data + if (.not. context_start == self%time_data(1)) then + self%window_size = 2 + end if + ! The lfric_xios_field_type object is used to store the pointers to the model fields self%field_dest = file_fields self%next_model_update = context_start - ! #TODO - hard coded to 1 until cyclic temporal control implemented self%read_index = 1 ! Set up fields for reading and holding data n_fields = size(file_fields) + print*, n_fields, self%window_size allocate(self%fields(self%window_size,n_fields)) self%current_field_index = 1 do i = 1, n_fields @@ -154,10 +169,19 @@ contains call file_fields(i)%set_model_field(self%fields(self%read_index,i)) end do + if (.not. context_start == self%time_data(1)) then + ! Set up additional file definition for initialisation + call self%setup_initial_read_definition(file_id, file_path, record_offset, n_fields) + call self%shift_read_index(file_fields) + end if + end subroutine initialise !> Aligns the internal time data axis with the current model time !! + + + !> @param[in] context_start The date at which the current XIOS starts !> @param[inout] record_offset The index corresponding to the start of the !! aligned time axis @@ -174,6 +198,11 @@ contains if (self%is_cyclic) then ! Loop through to find the correct validity window do + if (context_start < self%time_data(1)) then + call log_event( "I/O context must start after data time window" // & + " when reading cyclic temporal data", & + log_level_error ) + end if if ( ( self%time_data(1) <= context_start ) .and. & ( context_start < self%time_data(1) + self%cycle_period ) ) then exit @@ -211,25 +240,92 @@ contains end subroutine align_time_axis + + subroutine setup_initial_read_definition(self, file_id, file_path, record_offset, n_fields) + + implicit none + + class(temporal_type), intent(inout), target :: self + character(len=*), intent(in) :: file_id + character(len=*), intent(in) :: file_path + integer(i_def), intent(inout) :: record_offset + integer(i_def), intent(in) :: n_fields + + integer(i_def) :: i, f + type(xios_duration) :: timestep_duration + type(xios_filegroup) :: file_definition + type(xios_file) :: initial_read_file + type(xios_fieldgroup) :: init_fieldgroup + character(str_def) :: init_fields_id + + class(field_parent_type), pointer :: init_field_ptr + + ! Set up separate file instance for initial read, in the case of time-varying + ! inputs that need multiple time entries present on initialisation + allocate(self%init_fields(self%window_size-1, n_fields)) + do f = 1, self%window_size-1 + call xios_get_timestep(timestep_duration) + + call xios_get_handle("file_definition", file_definition) + call xios_add_child( file_definition, initial_read_file, & + trim(file_id)//"_init" ) + + call xios_set_attr( initial_read_file, name=trim(adjustl(file_path)), & + output_freq=timestep_duration, & + mode="read", & + type="one_file", & + record_offset=record_offset, & + time_counter_name="time", & + enabled=.true. ) + + ! Move on record offset for next read + record_offset = record_offset + 1 + + ! Add fields to initial file definition + init_fields_id = trim(file_id)//"_init_fields" + call xios_add_child(initial_read_file, init_fieldgroup, trim(init_fields_id)) + do i = 1, n_fields + init_field_ptr => self%fields(f,i) + self%init_fields(f,i) = lfric_xios_field_type( init_field_ptr, & + fieldgroup_id=trim(init_fields_id) ) + call self%init_fields(f,i)%set_model_field(init_field_ptr) + call self%init_fields(f,i)%set_xios_name(trim(adjustl(self%field_dest(i)%get_xios_name()))) + call self%init_fields(f,i)%register() + end do + + call xios_set_attr(init_fieldgroup, operation="once", read_access=.true.) + end do + + self%read_initial_fields = .true. + + nullify(init_field_ptr) + + end subroutine setup_initial_read_definition + !> Ticks forward the time data if required by the context !! !> @return Returns true if the corresponding file should keep reading data - function advance(self) result(carryon) + function advance(self, file_fields) result(carryon) implicit none class(temporal_type), intent(inout) :: self + type(lfric_xios_field_type), intent(inout) :: file_fields(:) logical :: carryon type(xios_date) :: model_date - integer(i_def) :: next_field_index + integer(i_def) :: next_field_index, i ,f ! Get current date from XIOS calendar call xios_get_current_date(model_date) - if ( self%next_model_update <= model_date ) then + ! Perform initial field read + if (self%read_initial_fields) then + do i = 1, size(self%init_fields(f,:)) + call self%init_fields(1,i)%recv() + end do + self%read_initial_fields = .false. call self%update_model_data() - self%next_model_update = model_date + self%io_frequency end if if ( self%time_data(1) <= model_date .and. model_date < self%time_data(2) ) then @@ -248,8 +344,34 @@ contains end if end if + if ( self%next_model_update <= model_date ) then + call self%update_model_data() + self%next_model_update = self%time_data(2) + end if + end function advance + subroutine shift_read_index(self, file_fields) + + implicit none + + class(temporal_type), intent(inout) :: self + type(lfric_xios_field_type), intent(inout) :: file_fields(:) + + integer(i_def) :: i, next_read_index, n_fields + + next_read_index = self%read_index + 1 + if (next_read_index > self%window_size) next_read_index = 1 + self%read_index = next_read_index + + n_fields = size(file_fields) + do i = 1, n_fields + ! Set the file to read into the time axis field + call file_fields(i)%set_model_field(self%fields(self%read_index,i)) + end do + + end subroutine shift_read_index + !> Updates the model fields with the fields contained within the temporal !! control object subroutine update_model_data(self) @@ -258,17 +380,11 @@ contains class(temporal_type), intent(inout) :: self - type(xios_date) :: current_date - class(field_parent_type), pointer :: tmp_model_field => null() - type(field_type), pointer :: model_field => null() + class(field_parent_type), pointer :: tmp_model_field + type(field_type), pointer :: model_field integer(i_def) :: i, n_fields - call xios_get_current_date(current_date) - - ! If it's not yet time to update, exit - if (current_date < self%next_model_update) return - n_fields = size(self%fields, dim=2) do i = 1, n_fields @@ -281,6 +397,9 @@ contains call invoke(setval_X(model_field, self%fields(self%current_field_index, i))) end do + nullify(tmp_model_field) + nullify(model_field) + end subroutine update_model_data !-----------------------------------------------------------------------------