diff --git a/doc/esmvalcore/preprocessor.rst b/doc/esmvalcore/preprocessor.rst
index 34faaa246..7ee12d139 100644
--- a/doc/esmvalcore/preprocessor.rst
+++ b/doc/esmvalcore/preprocessor.rst
@@ -896,7 +896,7 @@ See also :func:`esmvalcore.preprocessor.anomalies`.
 
 This function aligns the time points of each component dataset so that the Iris
 cubes from different datasets can be subtracted. The operation makes the
-datasets time points common; it also resets the time
+datasets time points common and sets common calendars; it also resets the time
 bounds and auxiliary coordinates to reflect the artifically shifted time
 points. Current implementation for monthly and daily data; the ``frequency`` is
 set automatically from the variable CMOR table unless a custom ``frequency`` is
diff --git a/esmvalcore/cmor/_fixes/cmip6/mcm_ua_1_0.py b/esmvalcore/cmor/_fixes/cmip6/mcm_ua_1_0.py
new file mode 100644
index 000000000..7552a7a8a
--- /dev/null
+++ b/esmvalcore/cmor/_fixes/cmip6/mcm_ua_1_0.py
@@ -0,0 +1,60 @@
+"""Fixes for MCM-UA-1-0 model."""
+import iris
+
+from ..fix import Fix
+from ..shared import add_scalar_height_coord
+
+
+class AllVars(Fix):
+    """Fixes for all variables."""
+
+    def fix_metadata(self, cubes):
+        """Rename ``var_name`` of latitude and longitude.
+
+        Parameters
+        ----------
+        cubes : iris.cube.CubeList
+
+        Returns
+        -------
+        iris.cube.Cube
+
+        """
+        coords_to_change = {
+            'latitude': 'lat',
+            'longitude': 'lon',
+        }
+        for cube in cubes:
+            for (std_name, var_name) in coords_to_change.items():
+                try:
+                    coord = cube.coord(std_name)
+                except iris.exceptions.CoordinateNotFoundError:
+                    pass
+                else:
+                    coord.var_name = var_name
+            time_units = cube.attributes.get('parent_time_units')
+            if time_units is not None:
+                cube.attributes['parent_time_units'] = time_units.replace(
+                    ' (noleap)', '')
+        return cubes
+
+
+class Tas(Fix):
+    """Fixes for tas."""
+
+    def fix_metadata(self, cubes):
+        """
+        Add height (2m) coordinate.
+
+        Parameters
+        ----------
+        cubes : iris.cube.CubeList
+
+        Returns
+        -------
+        iris.cube.Cube
+
+        """
+        cube = self.get_cube_from_list(cubes)
+        add_scalar_height_coord(cube, 2.0)
+        return [cube]
diff --git a/esmvalcore/preprocessor/_time.py b/esmvalcore/preprocessor/_time.py
index 5b8eda710..dc7a058d9 100644
--- a/esmvalcore/preprocessor/_time.py
+++ b/esmvalcore/preprocessor/_time.py
@@ -7,6 +7,7 @@ import datetime
 import logging
 from warnings import filterwarnings
 
+import cf_units
 import dask.array as da
 import iris
 import iris.coord_categorisation
@@ -199,10 +200,8 @@ def daily_statistics(cube, operator='mean'):
     iris.cube.Cube
         Daily statistics cube
     """
-    if not cube.coords('day_of_year'):
-        iris.coord_categorisation.add_day_of_year(cube, 'time')
-    if not cube.coords('year'):
-        iris.coord_categorisation.add_year(cube, 'time')
+    iris.coord_categorisation.add_day_of_year(cube, 'time')
+    iris.coord_categorisation.add_year(cube, 'time')
 
     operator = get_iris_analysis_operation(operator)
     cube = cube.aggregated_by(['day_of_year', 'year'], operator)
@@ -482,11 +481,10 @@ def regrid_time(cube, frequency):
     """
     Align time axis for cubes so they can be subtracted.
 
-    Operations on time units, time points and auxiliary
+    Operations on time units, calendars, time points and auxiliary
     coordinates so that any cube from cubes can be subtracted from any
-    other cube from cubes. Currently this function supports
-    yearly (frequency=yr), monthly (frequency=mon),
-    daily (frequency=day), 6-hourly (frequency=6hr),
+    other cube from cubes. Currently this function supports monthly
+    (frequency=mon), daily (frequency=day), 6-hourly (frequency=6hr),
     3-hourly (frequency=3hr) and hourly (frequency=1hr) data time frequencies.
 
     Parameters
@@ -501,56 +499,45 @@ def regrid_time(cube, frequency):
     iris.cube.Cube
         cube with converted time axis and units.
     """
+    # fix calendars
+    cube.coord('time').units = cf_units.Unit(
+        cube.coord('time').units.origin,
+        calendar='gregorian',
+    )
+
     # standardize time points
     time_c = [cell.point for cell in cube.coord('time').cells()]
-    if frequency == 'yr':
-        time_cells = [
-            datetime.datetime(t.year, 7, 1, 0, 0, 0) for t in time_c
-        ]
-    elif frequency == 'mon':
-        time_cells = [
+    if frequency == 'mon':
+        cube.coord('time').cells = [
             datetime.datetime(t.year, t.month, 15, 0, 0, 0) for t in time_c
         ]
     elif frequency == 'day':
-        time_cells = [
+        cube.coord('time').cells = [
             datetime.datetime(t.year, t.month, t.day, 0, 0, 0) for t in time_c
         ]
     elif frequency == '1hr':
-        time_cells = [
+        cube.coord('time').cells = [
             datetime.datetime(t.year, t.month, t.day, t.hour, 0, 0)
             for t in time_c
         ]
     elif frequency == '3hr':
-        time_cells = [
+        cube.coord('time').cells = [
             datetime.datetime(t.year, t.month, t.day, t.hour - t.hour % 3, 0,
                               0) for t in time_c
         ]
     elif frequency == '6hr':
-        time_cells = [
+        cube.coord('time').cells = [
             datetime.datetime(t.year, t.month, t.day, t.hour - t.hour % 6, 0,
                               0) for t in time_c
         ]
 
     cube.coord('time').points = [
         cube.coord('time').units.date2num(cl)
-        for cl in time_cells]
+        for cl in cube.coord('time').cells
+    ]
 
     # uniformize bounds
     cube.coord('time').bounds = None
     cube.coord('time').guess_bounds()
 
-    # remove aux coords that will differ
-    reset_aux = ['day_of_month', 'day_of_year']
-    for auxcoord in cube.aux_coords:
-        if auxcoord.long_name in reset_aux:
-            cube.remove_coord(auxcoord)
-
-    # re-add the converted aux coords
-    iris.coord_categorisation.add_day_of_month(cube,
-                                               cube.coord('time'),
-                                               name='day_of_month')
-    iris.coord_categorisation.add_day_of_year(cube,
-                                              cube.coord('time'),
-                                              name='day_of_year')
-
     return cube

Dataset problem: MCM-UA-1-0 (CMIP6) datasets have wrong coordinate names
**Describe the dataset issue**

- ~~Data file has been changed by you in any way (if you answer yes the issue will be void and closed, we are not
supporting custom-made datasets that present problems, it is your resposability to fix those problems)~~
- Project (CMIP5/CMIP6/OBS/obs4mips/etc): CMIP6
- Full dataset decription (fill out as many as you know, please):
  - dataset: MCM-UA-1-0
  - experiment: piControl, 1pctCO2
  - mip: Amon
  - grid: gn
  - type:
  - version: v20190731
  - tier:
  - variable used: `tas`, `ta` (probably all)
  - data_specs_version: 01.00.28
- Problems encountered (please describe what the actual problems are: e.g. wrong standard name, issue with dimensions):
  - For variable `tas`: `height` coordinate is not correctly marked as coordinate, so `iris` does not assign it correctly as `scalar coordinate`
  - `var_name` of `latitude` is `latitude`, not `lat`
  - `var_name` of `longitude` is `longitude`, not `lon`
  - `parent_time_units` has invalid format (ends with `... (noleap)`)
- Pointer to existing copy of data on ESGF node (it would be very useful if you could provide a physical fullpath to the file(s) that are causing the problem, e.g. on CEDA Jasmin or DKRZ): DKRZ: `/mnt/lustre02/work/ik1017/CMIP6/data/CMIP6/CMIP/UA/MCM-UA-1-0/1pctCO2/r1i1p1f1/Amon/tas/gn/v20190731/tas_Amon_MCM-UA-1-0_1pctCO2_r1i1p1f1_gn_000101-010012.nc`
- Other notes and mentions: I will write a fix for it
diff --git a/tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py b/tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py
new file mode 100644
index 000000000..8723a8bba
--- /dev/null
+++ b/tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py
@@ -0,0 +1,91 @@
+"""Tests for the fixes of MCM-UA-1-0."""
+import iris
+import pytest
+from cf_units import Unit
+
+from esmvalcore.cmor._fixes.cmip6.mcm_ua_1_0 import AllVars, Tas
+from esmvalcore.cmor.fix import Fix
+
+
+@pytest.fixture
+def cubes():
+    correct_lat_coord = iris.coords.DimCoord([0.0], var_name='lat',
+                                             standard_name='latitude')
+    wrong_lat_coord = iris.coords.DimCoord([0.0], var_name='latitudeCoord',
+                                           standard_name='latitude')
+    correct_lon_coord = iris.coords.DimCoord([0.0], var_name='lon',
+                                             standard_name='longitude')
+    wrong_lon_coord = iris.coords.DimCoord([0.0], var_name='longitudeCoord',
+                                           standard_name='longitude')
+    correct_cube = iris.cube.Cube(
+        [[10.0]],
+        var_name='tas',
+        dim_coords_and_dims=[(correct_lat_coord, 0), (correct_lon_coord, 1)],
+    )
+    wrong_cube = iris.cube.Cube(
+        [[10.0]],
+        var_name='ta',
+        dim_coords_and_dims=[(wrong_lat_coord, 0), (wrong_lon_coord, 1)],
+        attributes={'parent_time_units': 'days since 0000-00-00 (noleap)'},
+    )
+    scalar_cube = iris.cube.Cube(0.0, var_name='ps')
+    return iris.cube.CubeList([correct_cube, wrong_cube, scalar_cube])
+
+
+def test_get_allvars_fix():
+    fix = Fix.get_fixes('CMIP6', 'MCM-UA-1-0', 'arbitrary_var_name')
+    assert fix == [AllVars()]
+
+
+def test_get_tas_fix():
+    fix = Fix.get_fixes('CMIP6', 'MCM-UA-1-0', 'tas')
+    assert fix == [AllVars(), Tas()]
+
+
+def test_allvars_fix_metadata(cubes):
+    fix = AllVars()
+    out_cubes = fix.fix_metadata(cubes)
+    assert cubes is out_cubes
+    for cube in out_cubes:
+        try:
+            lat_coord = cube.coord('latitude')
+        except iris.exceptions.CoordinateNotFoundError:
+            pass
+        else:
+            assert lat_coord.var_name == 'lat'
+            assert lat_coord.standard_name == 'latitude'
+        try:
+            lon_coord = cube.coord('longitude')
+        except iris.exceptions.CoordinateNotFoundError:
+            pass
+        else:
+            assert lon_coord.var_name == 'lon'
+            assert lon_coord.standard_name == 'longitude'
+        if 'parent_time_units' in cube.attributes:
+            assert cube.attributes['parent_time_units'] == (
+                'days since 0000-00-00')
+
+
+def test_tas_fix_metadata(cubes):
+    for cube in cubes:
+        with pytest.raises(iris.exceptions.CoordinateNotFoundError):
+            cube.coord('height')
+    height_coord = iris.coords.AuxCoord(2.0,
+                                        var_name='height',
+                                        standard_name='height',
+                                        long_name='height',
+                                        units=Unit('m'),
+                                        attributes={'positive': 'up'})
+    fix = Tas()
+
+    # Check fix
+    out_cubes = fix.fix_metadata(cubes)
+    assert out_cubes[0].var_name == 'tas'
+    coord = out_cubes[0].coord('height')
+    assert coord == height_coord
+
+    # Check that height coordinate is not added twice
+    out_cubes_2 = fix.fix_metadata(out_cubes)
+    assert out_cubes_2[0].var_name == 'tas'
+    coord = out_cubes_2[0].coord('height')
+    assert coord == height_coord
diff --git a/tests/integration/cmor/_fixes/test_shared.py b/tests/integration/cmor/_fixes/test_shared.py
index 6fad24675..efc3df999 100644
--- a/tests/integration/cmor/_fixes/test_shared.py
+++ b/tests/integration/cmor/_fixes/test_shared.py
@@ -42,6 +42,10 @@ def test_add_scalar_depth_coord(cube_in, depth):
     assert cube_out is cube_in
     coord = cube_in.coord('depth')
     assert coord == depth_coord
+    cube_out_2 = add_scalar_depth_coord(cube_out)
+    assert cube_out_2 is cube_out
+    coord = cube_in.coord('depth')
+    assert coord == depth_coord
 
 
 @pytest.mark.parametrize('cube_in,height', TEST_ADD_SCALAR_COORD)
@@ -64,6 +68,10 @@ def test_add_scalar_height_coord(cube_in, height):
     assert cube_out is cube_in
     coord = cube_in.coord('height')
     assert coord == height_coord
+    cube_out_2 = add_scalar_height_coord(cube_out)
+    assert cube_out_2 is cube_out
+    coord = cube_in.coord('height')
+    assert coord == height_coord
 
 
 @pytest.mark.parametrize('cube_in,typeland', TEST_ADD_SCALAR_COORD)
@@ -85,6 +93,10 @@ def test_add_scalar_typeland_coord(cube_in, typeland):
     assert cube_out is cube_in
     coord = cube_in.coord('area_type')
     assert coord == typeland_coord
+    cube_out_2 = add_scalar_typeland_coord(cube_out)
+    assert cube_out_2 is cube_out
+    coord = cube_in.coord('area_type')
+    assert coord == typeland_coord
 
 
 @pytest.mark.parametrize('cube_in,typesea', TEST_ADD_SCALAR_COORD)
@@ -106,6 +118,10 @@ def test_add_scalar_typesea_coord(cube_in, typesea):
     assert cube_out is cube_in
     coord = cube_in.coord('area_type')
     assert coord == typesea_coord
+    cube_out_2 = add_scalar_typesea_coord(cube_out)
+    assert cube_out_2 is cube_out
+    coord = cube_in.coord('area_type')
+    assert coord == typesea_coord
 
 
 DIM_COORD_NB = iris.coords.DimCoord([3.1415], standard_name='latitude')
diff --git a/tests/unit/preprocessor/_time/test_time.py b/tests/unit/preprocessor/_time/test_time.py
index 510eeb84d..f89f4c71b 100644
--- a/tests/unit/preprocessor/_time/test_time.py
+++ b/tests/unit/preprocessor/_time/test_time.py
@@ -36,13 +36,6 @@ def _create_sample_cube():
     return cube
 
 
-def add_auxiliary_coordinate(cubelist):
-    """Add AuxCoords to cubes in cubelist."""
-    for cube in cubelist:
-        iris.coord_categorisation.add_day_of_month(cube, cube.coord('time'))
-        iris.coord_categorisation.add_day_of_year(cube, cube.coord('time'))
-
-
 class TestExtractMonth(tests.Test):
     """Tests for extract_month."""
 
@@ -521,52 +514,6 @@ class TestDailyStatistics(tests.Test):
         assert_array_equal(result.data, expected)
 
 
-class TestRegridTimeYearly(tests.Test):
-    """Tests for regrid_time with monthly frequency."""
-    def setUp(self):
-        """Prepare tests."""
-        self.cube_1 = _create_sample_cube()
-        self.cube_2 = _create_sample_cube()
-        self.cube_2.data = self.cube_2.data * 2.
-        self.cube_2.remove_coord('time')
-        self.cube_1.remove_coord('time')
-        self.cube_1.add_dim_coord(
-            iris.coords.DimCoord(
-                np.arange(11., 8770., 365.),
-                standard_name='time',
-                units=Unit(
-                    'days since 1950-01-01 00:00:00', calendar='gregorian'),
-            ),
-            0,
-        )
-        self.cube_2.add_dim_coord(
-            iris.coords.DimCoord(
-                np.arange(91., 8851., 365.),
-                standard_name='time',
-                units=Unit(
-                    'days since 1950-01-01 00:00:00', calendar='gregorian'),
-            ),
-            0,
-        )
-        add_auxiliary_coordinate([self.cube_1, self.cube_2])
-
-    def test_regrid_time_year(self):
-        """Test changes to cubes."""
-        # test yearly
-        newcube_1 = regrid_time(self.cube_1, frequency='yr')
-        newcube_2 = regrid_time(self.cube_2, frequency='yr')
-        # no changes to core data
-        assert_array_equal(newcube_1.data, self.cube_1.data)
-        assert_array_equal(newcube_2.data, self.cube_2.data)
-        # no changes to number of coords and aux_coords
-        assert len(newcube_1.coords()) == len(self.cube_1.coords())
-        assert len(newcube_1.aux_coords) == len(self.cube_1.aux_coords)
-        # test difference; also diff is zero
-        expected = self.cube_1.data
-        diff_cube = newcube_2 - newcube_1
-        assert_array_equal(diff_cube.data, expected)
-
-
 class TestRegridTimeMonthly(tests.Test):
     """Tests for regrid_time with monthly frequency."""
 
@@ -581,11 +528,10 @@ class TestRegridTimeMonthly(tests.Test):
                 np.arange(14., 719., 30.),
                 standard_name='time',
                 units=Unit(
-                    'days since 1950-01-01 00:00:00', calendar='gregorian'),
+                    'days since 1950-01-01 00:00:00', calendar='360_day'),
             ),
             0,
         )
-        add_auxiliary_coordinate([self.cube_1, self.cube_2])
 
     def test_regrid_time_mon(self):
         """Test changes to cubes."""
@@ -619,7 +565,7 @@ class TestRegridTimeDaily(tests.Test):
                 np.arange(14. * 24. + 6., 38. * 24. + 6., 24.),
                 standard_name='time',
                 units=Unit(
-                    'hours since 1950-01-01 00:00:00', calendar='gregorian'),
+                    'hours since 1950-01-01 00:00:00', calendar='360_day'),
             ),
             0,
         )
@@ -628,11 +574,10 @@ class TestRegridTimeDaily(tests.Test):
                 np.arange(14. * 24. + 3., 38. * 24. + 3., 24.),
                 standard_name='time',
                 units=Unit(
-                    'hours since 1950-01-01 00:00:00', calendar='gregorian'),
+                    'hours since 1950-01-01 00:00:00', calendar='360_day'),
             ),
             0,
         )
-        add_auxiliary_coordinate([self.cube_1, self.cube_2])
 
     def test_regrid_time_day(self):
         """Test changes to cubes."""
@@ -679,7 +624,6 @@ class TestRegridTime6Hourly(tests.Test):
             ),
             0,
         )
-        add_auxiliary_coordinate([self.cube_1, self.cube_2])
 
     def test_regrid_time_6hour(self):
         """Test changes to cubes."""
@@ -713,7 +657,7 @@ class TestRegridTime3Hourly(tests.Test):
                 np.arange(17. * 180. + 40., 41. * 180. + 40., 180.),
                 standard_name='time',
                 units=Unit(
-                    'minutes since 1950-01-01 00:00:00', calendar='gregorian'),
+                    'minutes since 1950-01-01 00:00:00', calendar='360_day'),
             ),
             0,
         )
@@ -722,11 +666,10 @@ class TestRegridTime3Hourly(tests.Test):
                 np.arange(17. * 180. + 150., 41. * 180. + 150., 180.),
                 standard_name='time',
                 units=Unit(
-                    'minutes since 1950-01-01 00:00:00', calendar='gregorian'),
+                    'minutes since 1950-01-01 00:00:00', calendar='360_day'),
             ),
             0,
         )
-        add_auxiliary_coordinate([self.cube_1, self.cube_2])
 
     def test_regrid_time_3hour(self):
         """Test changes to cubes."""
@@ -773,7 +716,6 @@ class TestRegridTime1Hourly(tests.Test):
             ),
             0,
         )
-        add_auxiliary_coordinate([self.cube_1, self.cube_2])
 
     def test_regrid_time_hour(self):
         """Test changes to cubes."""

environment.yml
pip install -e .[develop]
parse_log_pytest
environment.yml
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio pytest
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.13
antlr4-python3-runtime @ file:///home/conda/feedstock_root/build_artifacts/antlr-python-runtime_1636143373368/work
astroid==2.15.8
attrs==24.2.0
Babel==2.14.0
build==0.10.0
Cartopy @ file:///home/conda/feedstock_root/build_artifacts/cartopy_1642060950241/work
certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1725278078093/work/certifi
cf-units @ file:///home/conda/feedstock_root/build_artifacts/cf-units_1640986232540/work
cftime @ file:///home/conda/feedstock_root/build_artifacts/cftime_1663606412550/work
charset-normalizer==3.4.1
click==8.1.8
click-plugins==1.1.1
cligj==0.7.2
cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1674202310934/work
colorama==0.4.6
coverage==7.2.7
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
Cython @ file:///home/conda/feedstock_root/build_artifacts/cython_1659101942790/work
dask @ file:///home/conda/feedstock_root/build_artifacts/dask-core_1644602974678/work
dill==0.3.7
docutils==0.17.1
dodgy==0.2.1
easytest==0.1.5
ESMPy==8.2.0
-e git+https://github.com/ESMValGroup/ESMValCore.git@aadc62ca3fdcce4dbc4de9643c9aa59e48fb6385#egg=ESMValCore
exceptiongroup==1.2.2
execnet==2.0.2
fiona==1.9.6
flake8==5.0.4
flake8-polyfill==1.0.2
fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1666389892786/work
fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1674184942191/work
gitdb==4.0.12
GitPython==3.1.44
idna==3.10
imagesize==1.4.1
importlib-metadata==4.2.0
iniconfig==2.0.0
isodate==0.6.1
isort==5.11.5
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1715127149914/work
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1657953088445/work
lazy-object-proxy==1.9.0
llvmlite==0.39.1
locket @ file:///home/conda/feedstock_root/build_artifacts/locket_1650660393415/work
lxml==5.3.1
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1648737551960/work
matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1661439848456/work
mccabe==0.7.0
mock==5.2.0
mpi4py @ file:///home/conda/feedstock_root/build_artifacts/mpi4py_1660326262210/work
munkres==1.1.4
nc-time-axis==1.4.1
netCDF4 @ file:///home/conda/feedstock_root/build_artifacts/netcdf4_1661987221388/work
networkx==2.6.3
nose==1.3.7
numba==0.56.4
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1649806299270/work
olefile @ file:///home/conda/feedstock_root/build_artifacts/olefile_1701735466804/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1696202382185/work
partd @ file:///home/conda/feedstock_root/build_artifacts/partd_1695667515973/work
pathspec==0.11.2
pep8-naming==0.10.0
Pillow @ file:///tmp/build/80754af9/pillow_1625655818400/work
platformdirs==4.0.0
pluggy==1.2.0
prospector==1.10.3
prov==2.0.1
psutil==7.0.0
py==1.11.0
pycodestyle==2.9.1
pydocstyle==6.3.0
pydot==2.0.0
pyflakes==2.5.0
Pygments==2.17.2
pylint==2.17.7
pylint-celery==0.3
pylint-django==2.5.3
pylint-flask==0.6
pylint-plugin-utils==0.7
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1724616129934/work
pyproj @ file:///home/conda/feedstock_root/build_artifacts/pyproj_1636547699801/work
pyproject_hooks==1.2.0
pyroma==4.2
pyshp @ file:///home/conda/feedstock_root/build_artifacts/pyshp_1659002966020/work
pytest==7.4.4
pytest-asyncio==0.21.2
pytest-cov==4.1.0
pytest-env==1.0.1
pytest-flake8==1.1.3
pytest-html==3.2.0
pytest-metadata==3.0.0
pytest-mock==3.11.1
pytest-xdist==3.5.0
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1709299778482/work
pytz==2025.2
PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1648757092905/work
rdflib==6.3.2
requests==2.31.0
requirements-detector==1.2.2
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy_1637806658031/work
scitools-iris @ file:///home/conda/feedstock_root/build_artifacts/iris_1637936208876/work
semver==3.0.4
setoptconf-tmp==0.3.1
Shapely @ file:///home/conda/feedstock_root/build_artifacts/shapely_1637399855493/work
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
smmap==5.0.2
snowballstemmer==2.2.0
Sphinx==4.3.2
sphinx-rtd-theme==1.3.0
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==2.0.0
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.5
stratify @ file:///home/conda/feedstock_root/build_artifacts/python-stratify_1620938361732/work
toml==0.10.2
tomli==2.0.1
tomlkit==0.12.5
toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1706112571092/work
trove-classifiers==2025.3.19.19
typed-ast==1.5.5
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1688315532570/work
unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1649111917568/work
urllib3==2.0.7
vmprof==0.4.18.1
wrapt==1.16.0
xxhash @ file:///home/conda/feedstock_root/build_artifacts/python-xxhash_1649442453935/work
yamale==4.0.4
yamllint==1.32.0
yapf==0.43.0
zipp==3.15.0

name: ESMValCore
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - antlr-python-runtime=4.7.2=py37h89c1867_1003
  - atk-1.0=2.38.0=h04ea711_2
  - binutils_impl_linux-64=2.43=h4bf12b8_4
  - binutils_linux-64=2.43=h4852527_4
  - brotli=1.1.0=hb9d3cd8_2
  - brotli-bin=1.1.0=hb9d3cd8_2
  - bzip2=1.0.8=h4bc722e_7
  - c-ares=1.34.4=hb9d3cd8_0
  - ca-certificates=2025.1.31=hbcca054_0
  - cairo=1.18.0=h3faef2a_0
  - cartopy=0.20.2=py37h9a08e6e_0
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cf-units=3.0.1=py37hb1e94ed_2
  - cftime=1.6.2=py37hc105733_0
  - cloudpickle=2.2.1=pyhd8ed1ab_0
  - curl=8.8.0=he654da7_1
  - cycler=0.11.0=pyhd8ed1ab_0
  - cython=0.29.32=py37hd23a5d3_0
  - dask-core=2022.2.0=pyhd8ed1ab_0
  - esmf=8.2.0=mpi_mpich_h5a1934d_102
  - esmpy=8.2.0=mpi_mpich_py37h7352969_101
  - expat=2.6.4=h5888daf_0
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=h77eed37_3
  - fontconfig=2.14.2=h14ed4e7_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - fonttools=4.38.0=py37h540881e_0
  - freetype=2.12.1=h267a509_2
  - fribidi=1.0.10=h36c2ea0_0
  - fsspec=2023.1.0=pyhd8ed1ab_0
  - gcc_impl_linux-64=14.2.0=hdb7739f_2
  - gcc_linux-64=14.2.0=h5910c8f_8
  - gdk-pixbuf=2.42.10=h5eee18b_1
  - geos=3.10.1=h9c3ff4c_1
  - glib=2.80.2=hf974151_0
  - glib-tools=2.80.2=hb6ce0ca_0
  - graphite2=1.3.13=h59595ed_1003
  - graphviz=9.0.0=h78e8752_1
  - gtk2=2.24.33=h280cfa0_4
  - gts=0.7.6=h977cf35_4
  - harfbuzz=8.5.0=hfac3d4d_0
  - hdf4=4.2.15=h9772cbc_5
  - hdf5=1.12.2=mpi_mpich_h5d83325_1
  - icu=73.2=h59595ed_0
  - iris=3.1.0=pyhd8ed1ab_3
  - jinja2=3.1.4=pyhd8ed1ab_0
  - jpeg=9e=h0b41bf4_3
  - kernel-headers_linux-64=3.10.0=he073ed8_18
  - keyutils=1.6.1=h166bdaf_0
  - kiwisolver=1.4.4=py37h7cecad7_0
  - krb5=1.21.3=h659f571_0
  - lcms2=2.14=h6ed2654_0
  - ld_impl_linux-64=2.43=h712a8e2_4
  - lerc=4.0.0=h27087fc_0
  - libaec=1.1.3=h59595ed_0
  - libblas=3.9.0=20_linux64_openblas
  - libbrotlicommon=1.1.0=hb9d3cd8_2
  - libbrotlidec=1.1.0=hb9d3cd8_2
  - libbrotlienc=1.1.0=hb9d3cd8_2
  - libcblas=3.9.0=20_linux64_openblas
  - libcurl=8.8.0=hca28451_1
  - libdeflate=1.14=h166bdaf_0
  - libedit=3.1.20250104=pl5321h7949ede_0
  - libev=4.33=hd590300_2
  - libexpat=2.6.4=h5888daf_0
  - libffi=3.4.6=h2dba641_0
  - libgcc=14.2.0=h767d61c_2
  - libgcc-devel_linux-64=14.2.0=h9c4974d_102
  - libgcc-ng=14.2.0=h69a702a_2
  - libgd=2.3.3=h695aa2c_1
  - libgfortran=14.2.0=h69a702a_2
  - libgfortran-ng=14.2.0=h69a702a_2
  - libgfortran5=14.2.0=hf1ad2bd_2
  - libglib=2.80.2=hf974151_0
  - libgomp=14.2.0=h767d61c_2
  - libiconv=1.18=h4ce23a2_1
  - liblapack=3.9.0=20_linux64_openblas
  - liblzma=5.6.4=hb9d3cd8_0
  - liblzma-devel=5.6.4=hb9d3cd8_0
  - libnetcdf=4.8.1=mpi_mpich_hcd871d9_6
  - libnghttp2=1.58.0=h47da74e_1
  - libnsl=2.0.1=hd590300_0
  - libopenblas=0.3.25=pthreads_h413a1c8_0
  - libpng=1.6.43=h2797004_0
  - librsvg=2.58.0=hadf69e7_1
  - libsanitizer=14.2.0=hed042b8_2
  - libsqlite=3.46.0=hde9e2c9_0
  - libssh2=1.11.0=h0841786_0
  - libstdcxx=14.2.0=h8f9b012_2
  - libstdcxx-ng=14.2.0=h4852527_2
  - libtiff=4.4.0=h82bc61c_5
  - libudunits2=2.2.28=h40f5838_3
  - libunwind=1.7.2=he02047a_0
  - libuuid=2.38.1=h0b41bf4_0
  - libwebp-base=1.5.0=h851e524_0
  - libxcb=1.15=h0b41bf4_0
  - libxml2=2.12.7=hc051c1a_1
  - libzip=1.10.1=h2629f0a_3
  - libzlib=1.2.13=h4ab18f5_6
  - locket=1.0.0=pyhd8ed1ab_0
  - markupsafe=2.1.1=py37h540881e_1
  - matplotlib-base=3.5.3=py37hf395dca_2
  - mpi=1.0=mpich
  - mpi4py=3.1.3=py37h52370cb_2
  - mpich=4.0.3=h846660c_100
  - munkres=1.1.4=pyh9f0ad1d_0
  - ncurses=6.5=h2d0b736_3
  - netcdf-fortran=4.6.0=mpi_mpich_h1e13492_2
  - netcdf4=1.6.0=nompi_py37h7187172_102
  - numpy=1.21.6=py37h976b520_0
  - olefile=0.47=pyhd8ed1ab_0
  - openjpeg=2.5.0=h7d73246_1
  - openssl=3.4.1=h7b32b05_0
  - packaging=23.2=pyhd8ed1ab_0
  - pango=1.54.0=h84a9a3c_0
  - partd=1.4.1=pyhd8ed1ab_0
  - pcre2=10.43=hcad00b1_0
  - pillow=8.3.1=py37h2c7a002_0
  - pip=24.0=pyhd8ed1ab_0
  - pixman=0.44.2=h29eaf8c_0
  - proj=8.2.0=h277dcde_0
  - pthread-stubs=0.4=hb9d3cd8_1002
  - pyparsing=3.1.4=pyhd8ed1ab_0
  - pyproj=3.2.1=py37hb589d83_5
  - pyshp=2.3.1=pyhd8ed1ab_0
  - python=3.7.12=hf930737_100_cpython
  - python-dateutil=2.9.0=pyhd8ed1ab_0
  - python-stratify=0.1.1=py37h6f94858_1004
  - python-xxhash=3.0.0=py37h540881e_1
  - python_abi=3.7=4_cp37m
  - pyyaml=6.0=py37h540881e_4
  - readline=8.2=h8c095d6_2
  - scipy=1.7.3=py37hf2a6cf1_0
  - setuptools=69.0.3=pyhd8ed1ab_0
  - shapely=1.8.0=py37h9b0f7a3_4
  - six=1.16.0=pyh6c4a22f_0
  - sqlite=3.46.0=h6d4b2fc_0
  - sysroot_linux-64=2.17=h0157908_18
  - tk=8.6.13=noxft_h4845f30_101
  - toolz=0.12.1=pyhd8ed1ab_0
  - typing-extensions=4.7.1=hd8ed1ab_0
  - typing_extensions=4.7.1=pyha770c72_0
  - tzdata=2025b=h78e105d_0
  - udunits2=2.2.28=h40f5838_3
  - unicodedata2=14.0.0=py37h540881e_1
  - wheel=0.42.0=pyhd8ed1ab_0
  - xorg-kbproto=1.0.7=hb9d3cd8_1003
  - xorg-libice=1.1.2=hb9d3cd8_0
  - xorg-libsm=1.2.6=he73a12e_0
  - xorg-libx11=1.8.9=h8ee46fc_0
  - xorg-libxau=1.0.12=hb9d3cd8_0
  - xorg-libxdmcp=1.1.5=hb9d3cd8_0
  - xorg-libxext=1.3.4=h0b41bf4_2
  - xorg-libxrender=0.9.11=hd590300_0
  - xorg-renderproto=0.11.1=hb9d3cd8_1003
  - xorg-xextproto=7.3.0=hb9d3cd8_1004
  - xorg-xproto=7.0.31=hb9d3cd8_1008
  - xxhash=0.8.0=h7f98852_3
  - xz=5.6.4=hbcc6ac9_0
  - xz-gpl-tools=5.6.4=hbcc6ac9_0
  - xz-tools=5.6.4=hb9d3cd8_0
  - yaml=0.2.5=h7f98852_2
  - zlib=1.2.13=h4ab18f5_6
  - zstd=1.5.6=ha6fb4c9_0
  - pip:
      - alabaster==0.7.13
      - astroid==2.15.8
      - attrs==24.2.0
      - babel==2.14.0
      - build==0.10.0
      - charset-normalizer==3.4.1
      - click==8.1.8
      - click-plugins==1.1.1
      - cligj==0.7.2
      - colorama==0.4.6
      - coverage==7.2.7
      - dill==0.3.7
      - docutils==0.17.1
      - dodgy==0.2.1
      - easytest==0.1.5
      - exceptiongroup==1.2.2
      - execnet==2.0.2
      - fiona==1.9.6
      - flake8==5.0.4
      - flake8-polyfill==1.0.2
      - gitdb==4.0.12
      - gitpython==3.1.44
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==4.2.0
      - iniconfig==2.0.0
      - isodate==0.6.1
      - isort==5.11.5
      - lazy-object-proxy==1.9.0
      - llvmlite==0.39.1
      - lxml==5.3.1
      - mccabe==0.7.0
      - mock==5.2.0
      - nc-time-axis==1.4.1
      - networkx==2.6.3
      - nose==1.3.7
      - numba==0.56.4
      - pathspec==0.11.2
      - pep8-naming==0.10.0
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - prospector==1.10.3
      - prov==2.0.1
      - psutil==7.0.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pydocstyle==6.3.0
      - pydot==2.0.0
      - pyflakes==2.5.0
      - pygments==2.17.2
      - pylint==2.17.7
      - pylint-celery==0.3
      - pylint-django==2.5.3
      - pylint-flask==0.6
      - pylint-plugin-utils==0.7
      - pyproject-hooks==1.2.0
      - pyroma==4.2
      - pytest==7.4.4
      - pytest-asyncio==0.21.2
      - pytest-cov==4.1.0
      - pytest-env==1.0.1
      - pytest-flake8==1.1.3
      - pytest-html==3.2.0
      - pytest-metadata==3.0.0
      - pytest-mock==3.11.1
      - pytest-xdist==3.5.0
      - pytz==2025.2
      - rdflib==6.3.2
      - requests==2.31.0
      - requirements-detector==1.2.2
      - semver==3.0.4
      - setoptconf-tmp==0.3.1
      - smmap==5.0.2
      - snowballstemmer==2.2.0
      - sphinx==4.3.2
      - sphinx-rtd-theme==1.3.0
      - sphinxcontrib-applehelp==1.0.2
      - sphinxcontrib-devhelp==1.0.2
      - sphinxcontrib-htmlhelp==2.0.0
      - sphinxcontrib-jquery==4.1
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==1.0.3
      - sphinxcontrib-serializinghtml==1.1.5
      - toml==0.10.2
      - tomli==2.0.1
      - tomlkit==0.12.5
      - trove-classifiers==2025.3.19.19
      - typed-ast==1.5.5
      - urllib3==2.0.7
      - vmprof==0.4.18.1
      - wrapt==1.16.0
      - yamale==4.0.4
      - yamllint==1.32.0
      - yapf==0.43.0
      - zipp==3.15.0
prefix: /opt/conda/envs/ESMValCore

tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py::flake-8::FLAKE8 tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py::test_get_allvars_fix tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py::test_get_tas_fix tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py::test_allvars_fix_metadata tests/integration/cmor/_fixes/cmip6/test_mcm_ua_1_0.py::test_tas_fix_metadata tests/integration/cmor/_fixes/test_shared.py::flake-8::FLAKE8 tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_depth_coord[cube_in0-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_depth_coord[cube_in1--5.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_depth_coord[cube_in2-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_depth_coord[cube_in3-100.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_height_coord[cube_in0-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_height_coord[cube_in1--5.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_height_coord[cube_in2-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_height_coord[cube_in3-100.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typeland_coord[cube_in0-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typeland_coord[cube_in1--5.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typeland_coord[cube_in2-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typeland_coord[cube_in3-100.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typesea_coord[cube_in0-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typesea_coord[cube_in1--5.0] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typesea_coord[cube_in2-None] tests/integration/cmor/_fixes/test_shared.py::test_add_scalar_typesea_coord[cube_in3-100.0] tests/integration/cmor/_fixes/test_shared.py::test_round_coordinate[cubes_in0-None-out0] tests/integration/cmor/_fixes/test_shared.py::test_round_coordinate[cubes_in1-None-out1] tests/integration/cmor/_fixes/test_shared.py::test_round_coordinate[cubes_in2-3-out2] tests/integration/cmor/_fixes/test_shared.py::test_round_coordinate[cubes_in3-3-out3] tests/integration/cmor/_fixes/test_shared.py::test_round_coordinate[cubes_in4-3-out4] tests/unit/preprocessor/_time/test_time.py::flake-8::FLAKE8 tests/unit/preprocessor/_time/test_time.py::TestExtractMonth::test_bad_month_raises tests/unit/preprocessor/_time/test_time.py::TestExtractMonth::test_get_january tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_limit tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_no_slice tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_no_time tests/unit/preprocessor/_time/test_time.py::TestTimeSlice::test_extract_time_one_time tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_djf tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_djf_caps tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_jja tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_mam tests/unit/preprocessor/_time/test_time.py::TestExtractSeason::test_get_son tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_day tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_monthly tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_period_not_supported tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_season_climatology tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_max tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_mean tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_mean_365_day tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_mean_uneven tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_median tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_min tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_sum tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_sum_365_day tests/unit/preprocessor/_time/test_time.py::TestClimatology::test_time_sum_uneven tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_max tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_mean tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_median tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_min tests/unit/preprocessor/_time/test_time.py::TestSeasonalStatistics::test_season_sum tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_max tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_mean tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_median tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_min tests/unit/preprocessor/_time/test_time.py::TestMonthlyStatistics::test_sum tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_max tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_mean tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_median tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_min tests/unit/preprocessor/_time/test_time.py::TestDailyStatistics::test_sum tests/unit/preprocessor/_time/test_time.py::TestRegridTimeMonthly::test_regrid_time_mon tests/unit/preprocessor/_time/test_time.py::TestRegridTimeDaily::test_regrid_time_day tests/unit/preprocessor/_time/test_time.py::TestRegridTime6Hourly::test_regrid_time_6hour tests/unit/preprocessor/_time/test_time.py::TestRegridTime3Hourly::test_regrid_time_3hour tests/unit/preprocessor/_time/test_time.py::TestRegridTime1Hourly::test_regrid_time_hour tests/unit/preprocessor/_time/test_time.py::test_annual_average[True] tests/unit/preprocessor/_time/test_time.py::test_annual_average[False] tests/unit/preprocessor/_time/test_time.py::test_annual_sum[True] tests/unit/preprocessor/_time/test_time.py::test_annual_sum[False] tests/unit/preprocessor/_time/test_time.py::test_decadal_average[True] tests/unit/preprocessor/_time/test_time.py::test_decadal_average[False] tests/unit/preprocessor/_time/test_time.py::test_decadal_sum[True] tests/unit/preprocessor/_time/test_time.py::test_decadal_sum[False] tests/unit/preprocessor/_time/test_time.py::test_anomalies[full] tests/unit/preprocessor/_time/test_time.py::test_anomalies[day] tests/unit/preprocessor/_time/test_time.py::test_anomalies[month] tests/unit/preprocessor/_time/test_time.py::test_anomalies[season]
esmvalcore/cmor/_fixes/cmip6/mcm_ua_1_0.py doc/esmvalcore/preprocessor.rst esmvalcore/preprocessor/_time.py
esmvalcore/cmor/_fixes/cmip6/mcm_ua_1_0.py doc/esmvalcore/preprocessor.rst esmvalcore/preprocessor/_time.py