@@ -195,7 +195,16 @@ def _timedelta_from_offset_str(freq: str) -> pd.Timedelta:
195195 return pd .to_timedelta (freq )
196196
197197
198-
198+ ##reserved SCHISM parameter names for tracer modules
199+ ## THOSE NAMES ARE ONLY FOR SCHISM TRACER MODULES THAT NEEDS
200+ ## TO BE SPECIFIED IN PARAM.NML
201+ RESERVED_TRACER_PARAM_NAMES = {
202+ "ntracer_gen" :"GEN" ,
203+ "ntracer_age" :"AGE" ,
204+ "sed_class" :"SED" ,
205+ "eco_class" :"ECO" ,
206+ "ntrs_icm" :"ICM"
207+ }
199208class Params (object ):
200209
201210 def __init__ (self , fname , default = None ):
@@ -226,9 +235,30 @@ def __init__(self, fname, default=None):
226235
227236 self .default = self .process_default (default )
228237
238+ def get_tracers (self ):
239+ """Get tracers types and number of tracers defined in param.nml
240+
241+ Returns
242+ -------
243+ tracers : a dict
244+ dictionary whose keys are tracer names defined in param.nml,
245+ and values are number of tracers for that tracer type.
246+
247+ """
248+
249+ tracers = {}
250+ for key in self ._namelist ["CORE" ].keys ():
251+ if key in RESERVED_TRACER_PARAM_NAMES .keys ():
252+ tracer_name = RESERVED_TRACER_PARAM_NAMES [key ]
253+ ntracer = self ._namelist ["CORE" ][key ]["value" ]
254+ tracers [tracer_name ] = ntracer
255+ return tracers
229256 # ------------------------------------------------------------------
230257 # Programmatic helper: set by SCHISM name or alias
231258 # ------------------------------------------------------------------
259+
260+
261+
232262 def set_by_name_or_alias (self , name : str , value : Any ) -> None :
233263 """
234264 Set a parameter value using either:
0 commit comments