Skip to content

Commit b5ea1e5

Browse files
committed
Add function to get tracer setting
Add get_tracers() to Params class to summrize tracer modules and number of tracers used
1 parent 3b478bf commit b5ea1e5

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

schimpy/param.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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+
}
199208
class 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

Comments
 (0)