Skip to content

Commit 5e91b2b

Browse files
sloosvelschlunma
andauthoredDec 2, 2020
Fix overwriting in generic level check (#886)
Co-authored-by: Manuel Schlund <32543114+schlunma@users.noreply.github.com>
1 parent c07e280 commit 5e91b2b

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed
 

‎esmvalcore/cmor/check.py

+16-13
Original file line numberDiff line numberDiff line change
@@ -385,51 +385,54 @@ def _check_dim_names(self):
385385
self._does_msg, coordinate.name, 'exist')
386386

387387
def _check_generic_level_dim_names(self, key, coordinate):
388+
standard_name = None
389+
out_name = None
390+
name = None
388391
if coordinate.generic_lev_coords:
389392
for coord in coordinate.generic_lev_coords.values():
390393
try:
391394
cube_coord = self._cube.coord(
392395
var_name=coord.out_name
393396
)
394-
coordinate.out_name = coord.out_name
397+
out_name = coord.out_name
395398
if cube_coord.standard_name == coord.standard_name:
396-
coordinate.standard_name = coord.standard_name
397-
coordinate.name = coord.name
399+
standard_name = coord.standard_name
400+
name = coord.name
398401
except iris.exceptions.CoordinateNotFoundError:
399402
try:
400403
cube_coord = self._cube.coord(
401404
var_name=coord.standard_name
402405
)
403-
coordinate.standard_name = coord.standard_name
404-
coordinate.name = coord.name
406+
standard_name = coord.standard_name
407+
name = coord.name
405408
except iris.exceptions.CoordinateNotFoundError:
406409
pass
407-
if coordinate.standard_name:
408-
if not coordinate.out_name:
410+
if standard_name:
411+
if not out_name:
409412
self.report_error(
410-
f'Coordinate {coordinate.name} '
413+
f'Generic level coordinate {key} '
411414
'has wrong var_name.',
412415
)
413-
level = coordinate.generic_lev_coords[coordinate.name]
416+
level = coordinate.generic_lev_coords[name]
414417
level.generic_level = True
415418
level.generic_lev_coords = self._cmor_var.coordinates[
416419
key].generic_lev_coords
417420
self._cmor_var.coordinates[key] = level
418421
self.report_debug_message(
419422
f'Generic level coordinate {key} '
420423
'will be checked against '
421-
f'{coordinate.name} coordinate information'
424+
f'{name} coordinate information'
422425
)
423426
else:
424-
if coordinate.out_name:
427+
if out_name:
425428
self.report_critical(
426-
f'Coordinate {coordinate.name} '
429+
f'Generic level coordinate {key} '
427430
'has wrong standard_name '
428431
'or is not set.',
429432
)
430433
else:
431434
self.report_critical(
432-
self._does_msg, coordinate.name, 'exist'
435+
self._does_msg, key, 'exist'
433436
)
434437

435438
def _check_coords(self):

0 commit comments

Comments
 (0)
Please sign in to comment.