Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions esmvalcore/cmor/_fixes/cmip6/fgoals_f3_l.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
"""Fixes for CMIP6 FGOALS-f3-L."""
"""Fixes for CMIP6 FGOALS-f3-L model."""
import cftime
import dask.array as da
import numpy as np

from ..fix import Fix


class AllVars(Fix):
"""Fixes for all vars."""

def fix_metadata(self, cubes):
"""Fix parent time units.

Expand Down Expand Up @@ -39,3 +39,25 @@ def fix_metadata(self, cubes):
time.bounds = time.units.date2num(
np.stack([starts, ends], -1))
return cubes


class Sftlf(Fix):
"""Fixes for sftlf."""
def fix_data(self, cube):
"""Fix data.

Unit is %, values are <= 1.

Parameters
----------
cube: iris.cube.Cube
Cube to fix

Returns
-------
iris.cube.Cube
Fixed cube. It can be a difference instance.
"""
if cube.units == "%" and da.max(cube.core_data()).compute() <= 1.:
cube.data = cube.core_data() * 100.
return cube