Repository: esmvalgroup/esmvalcore
Issue: Frequency 1hrPt not supported by CMOR checker

When I try to process data from the CMIP6 E1hr table, the run fails with the following error message:
```
esmvalcore.cmor.check.CMORCheckError: There were errors in variable ...:
time: Frequency 1hrPt not supported by checker
```

Changed files:
tests/unit/cmor/test_cmor_check.py, esmvalcore/cmor/check.py

diff --git a/esmvalcore/cmor/check.py b/esmvalcore/cmor/check.py
index 7ac170198..635abdbc0 100644
--- a/esmvalcore/cmor/check.py
+++ b/esmvalcore/cmor/check.py
@@ -493,7 +493,10 @@ class CMORCheck():
 
         tol = 0.001
         intervals = {'dec': (3600, 3660), 'day': (1, 1)}
-        if self.frequency == 'mon':
+        freq = self.frequency
+        if freq.lower().endswith('pt'):
+            freq = freq[:-2]
+        if freq == 'mon':
             for i in range(len(coord.points) - 1):
                 first = coord.cell(i).point
                 second = coord.cell(i + 1).point
@@ -505,23 +508,23 @@ class CMORCheck():
                 if second_month != second.month or \\
                    second_year != second.year:
                     msg = '{}: Frequency {} does not match input data'
-                    self.report_error(msg, var_name, self.frequency)
+                    self.report_error(msg, var_name, freq)
                     break
-        elif self.frequency == 'yr':
+        elif freq == 'yr':
             for i in range(len(coord.points) - 1):
                 first = coord.cell(i).point
                 second = coord.cell(i + 1).point
                 second_month = first.month + 1
                 if first.year + 1 != second.year:
                     msg = '{}: Frequency {} does not match input data'
-                    self.report_error(msg, var_name, self.frequency)
+                    self.report_error(msg, var_name, freq)
                     break
         else:
-            if self.frequency in intervals:
-                interval = intervals[self.frequency]
+            if freq in intervals:
+                interval = intervals[freq]
                 target_interval = (interval[0] - tol, interval[1] + tol)
-            elif self.frequency.endswith('hr'):
-                frequency = self.frequency[:-2]
+            elif freq.endswith('hr'):
+                frequency = freq[:-2]
                 if frequency == 'sub':
                     frequency = 1.0 / 24
                     target_interval = (-tol, frequency + tol)
@@ -530,14 +533,14 @@ class CMORCheck():
                     target_interval = (frequency - tol, frequency + tol)
             else:
                 msg = '{}: Frequency {} not supported by checker'
-                self.report_error(msg, var_name, self.frequency)
+                self.report_error(msg, var_name, freq)
                 return
             for i in range(len(coord.points) - 1):
                 interval = coord.points[i + 1] - coord.points[i]
                 if (interval < target_interval[0]
                         or interval > target_interval[1]):
                     msg = '{}: Frequency {} does not match input data'
-                    self.report_error(msg, var_name, self.frequency)
+                    self.report_error(msg, var_name, freq)
                     break
 
     @staticmethod
diff --git a/tests/unit/cmor/test_cmor_check.py b/tests/unit/cmor/test_cmor_check.py
index 4139ab947..16d5f3790 100644
--- a/tests/unit/cmor/test_cmor_check.py
+++ b/tests/unit/cmor/test_cmor_check.py
@@ -510,6 +510,16 @@ class TestCMORCheck(unittest.TestCase):
         self.cube.add_dim_coord(time.copy(points), dims)
         self._check_cube(frequency='mon')
 
+    def test_check_pt_freq(self):
+        """Test checks succeeds for a good Pt frequency."""
+        self.var_info.frequency = 'dayPt'
+        self._check_cube()
+
+    def test_check_pt_lowercase_freq(self):
+        """Test checks succeeds for a good Pt frequency."""
+        self.var_info.frequency = 'daypt'
+        self._check_cube()
+
     def test_bad_frequency_day(self):
         """Fail at metadata if frequency (day) not matches data frequency."""
         self.cube = self.get_cube(self.var_info, frequency='mon')