1- # (C) British Crown Copyright 2023-2025 , Met Office.
1+ # (C) British Crown Copyright 2023-2026 , Met Office.
22# Please see LICENSE.md for license details.
33"""The :mod:`cmip6_plus_models` module contains the code required to
44handle model parameters information for CMIP6Plus models.
@@ -21,11 +21,13 @@ def get_json_file(self) -> str:
2121 Returns
2222 -------
2323 str
24- Json file name for the model with current ID
24+ JSON file name for the model with current ID
2525 """
2626 return '{}.json' .format (self .value )
2727
2828 HadGEM3_GC31_LL = 'HadGEM3-GC31-LL'
29+ HadGEM3_GC31_MM = 'HadGEM3-GC31-MM'
30+ UKESM1_0_LL = 'UKESM1-0-LL'
2931
3032
3133class HadGEM3_GC31_LL_Params (BaseModelParameters ):
@@ -68,6 +70,90 @@ def um_version(self) -> str:
6870 return '10.7'
6971
7072
73+ class HadGEM3_GC31_MM_Params (BaseModelParameters ):
74+ """
75+ Class to store the parameters for the HadGEM3_GC31_MM model.
76+ """
77+
78+ def __init__ (self ) -> None :
79+ super (HadGEM3_GC31_MM_Params , self ).__init__ (Cmip6PlusModelId .HadGEM3_GC31_MM )
80+
81+ @property
82+ def model_version (self ) -> str :
83+ """Returns the model version of the HadGEM3_GC31_MM model.
84+
85+ Returns
86+ -------
87+ str
88+ Model version of HadGEM3_GC31_MM
89+ """
90+ return '3.1'
91+
92+ @property
93+ def data_request_version (self ) -> str :
94+ """Returns the data request version of the HadGEM3_GC31_MM model.
95+
96+ Returns
97+ -------
98+ str
99+ Data request version of HadGEM3_GC31_MM
100+ """
101+ return '01.00.10'
102+
103+ @property
104+ def um_version (self ) -> str :
105+ """Returns the UM version of the HadGEM3_GC31_MM model.
106+
107+ Returns
108+ -------
109+ str
110+ UM version of HadGEM3_GC31_MM
111+ """
112+ return '10.7'
113+
114+
115+ class UKESM1_0_LL_Params (BaseModelParameters ):
116+ """
117+ Class to store the parameters for the UKESM1_0_LL model.
118+ """
119+
120+ def __init__ (self ) -> None :
121+ super (UKESM1_0_LL_Params , self ).__init__ (Cmip6PlusModelId .UKESM1_0_LL )
122+
123+ @property
124+ def model_version (self ) -> str :
125+ """Returns the model version of the UKESM1_0_LL model.
126+
127+ Returns
128+ -------
129+ str
130+ Model version of UKESM1_0_LL
131+ """
132+ return '1.0'
133+
134+ @property
135+ def data_request_version (self ) -> str :
136+ """Returns the data request version of the UKESM1_0_LL model.
137+
138+ Returns
139+ -------
140+ str
141+ Data request version of UKESM1_0_LL
142+ """
143+ return '01.00.17'
144+
145+ @property
146+ def um_version (self ) -> str :
147+ """Returns the UM version of the UKESM1_0_LL model.
148+
149+ Returns
150+ -------
151+ str
152+ UM version of UKESM1_0_LL
153+ """
154+ return '10.8'
155+
156+
71157class Cmip6PlusModelsStore (BaseModelStore ):
72158 """Singleton class to store for each model the corresponding parameters.
73159 The parameters are defined in json files. The default parameters are
@@ -79,6 +165,8 @@ class Cmip6PlusModelsStore(BaseModelStore):
79165 def __init__ (self ) -> None :
80166 model_instances : List [BaseModelParameters ] = [
81167 HadGEM3_GC31_LL_Params (),
168+ HadGEM3_GC31_MM_Params (),
169+ UKESM1_0_LL_Params (),
82170 ]
83171 super (Cmip6PlusModelsStore , self ).__init__ (model_instances )
84172 self .logger = logging .getLogger (self .__class__ .__name__ )
0 commit comments