diff --git a/ATMOSPHERE/online/analysis_input_gen.py b/ATMOSPHERE/online/analysis_input_gen.py
index 7ad7100..3bb7522 100644
--- a/ATMOSPHERE/online/analysis_input_gen.py
+++ b/ATMOSPHERE/online/analysis_input_gen.py
@@ -53,7 +53,7 @@ def argument():
INPUTDIR=addsep(args.inputdir)
OUTDIR = addsep(args.outdir)
-TL = TimeList.fromfilenames(None, INPUTDIR, "*_an-fv12.00.nc", prefix="", dateformat="%Y%m%d")
+TL = TimeList.fromfilenames(None, INPUTDIR, "*_an-fv1[2-9].00.nc", prefix="", dateformat="%Y%m%d")
filename=TL.filelist[0]
ncIN=netCDF4.Dataset(filename)
diff --git a/ATMOSPHERE/online/analysis_input_gen_singleframe.py b/ATMOSPHERE/online/analysis_input_gen_singleframe.py
index 0bb36fd..e63c534 100644
--- a/ATMOSPHERE/online/analysis_input_gen_singleframe.py
+++ b/ATMOSPHERE/online/analysis_input_gen_singleframe.py
@@ -4,7 +4,7 @@ def argument():
parser = argparse.ArgumentParser(description = '''
Generates daily files for OASIM by reading ECMWF file provided by CMCC
Valid for analysis file having a single frame
- YYYYMMDD-ECMWF---AM0100-MEDATL-bYYYYMMDD_an00-fv12.00.nc analisi at 00 of the same day YYYYMMDD
+ YYYYMMDD-ECMWF---AM0100-MEDATL-bYYYYMMDD_an00-fv1[2-9].00.nc analisi at 00 of the same day YYYYMMDD
''',
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
@@ -48,7 +48,7 @@ def argument():
INPUTDIR=addsep(args.inputdir)
OUTDIR = addsep(args.outdir)
-TL = TimeList.fromfilenames(None, INPUTDIR, "*_an00-fv12.00.nc", prefix="", dateformat="%Y%m%d")
+TL = TimeList.fromfilenames(None, INPUTDIR, "*_an00-fv1[2-9].00.nc", prefix="", dateformat="%Y%m%d")
nframes_in_day = 1
deltaH = 6
diff --git a/BC/EFAS/river_generation.py b/BC/EFAS/river_generation.py
index e02fddf..fdd7c11 100644
--- a/BC/EFAS/river_generation.py
+++ b/BC/EFAS/river_generation.py
@@ -146,6 +146,11 @@ def main():
)
var_mask = RIVERS.get_variable_mask(variable)
+ if not np.any(var_mask):
+ # If var_mask is False for any river, print a message
+ print(f"Warning: {variable.name} empty, it is not defined for any river")
+
+
raw_var_concentration = RIVERS[variable.name][var_mask]
# Keep only the values related to the current variable
diff --git a/BC/EFAS/river_reader.py b/BC/EFAS/river_reader.py
index c810648..688c75d 100644
--- a/BC/EFAS/river_reader.py
+++ b/BC/EFAS/river_reader.py
@@ -59,8 +59,28 @@ def read_xml_vars(xml_dataset):
return tuple(bgc_vars)
+def read_defaults(xml_dataset):
+ """
+ Read the field "common_concentrations" of the rivers.xml file
+ """
+ default_node=xml_dataset.getElementsByTagName("default_concentrations")
+ defaults={}
+ for node in default_node[0].getElementsByTagName("var"):
+ try:
+ var_name = node.getAttribute("name")
+ value = float(node.getAttribute("value"))
+ defaults[var_name]=value
+ except Exception:
+ raise InvalidRiverXMLFile(
+ 'Error while reading the following var node:\n{}'.format(
+ node.toxml()
+ )
+ )
+ return defaults
+
xmldoc = minidom.parse("rivers.xml")
BGC_VARS = read_xml_vars(xmldoc)
+DEFAULTS = read_defaults(xmldoc)
class Rivers:
@@ -134,6 +154,15 @@ def __init__(self):
rivers[ind]['SAL'] = salinity
rivers[ind]['name'] = name
rivers[ind]['mouth'] = mn.getAttribute('name')
+ for varname in DEFAULTS:
+ if varname not in self.__bgc_var_dict:
+ raise ValueError('Unknown variable: {}'.format(varname))
+ rivers[ind][varname] = DEFAULTS[varname]
+
+ bgc_var = self.__bgc_var_dict[varname]
+ assert not self.__var_defined[bgc_var][ind]
+ self.__var_defined[bgc_var][ind] = True
+
for vn in concentrations_node.getElementsByTagName('var'):
varname = vn.getAttribute('name')
if varname not in self.__bgc_var_dict:
@@ -142,8 +171,8 @@ def __init__(self):
rivers[ind][varname] = vn.getAttribute('value')
- assert not self.__var_defined[bgc_var][ind]
- self.__var_defined[bgc_var][ind] = True
+ if not self.__var_defined[bgc_var][ind]:
+ self.__var_defined[bgc_var][ind] = True
visited_ids[ind] = True
diff --git a/BC/EFAS/rivers.xml b/BC/EFAS/rivers.xml
index e29c13b..e97fda8 100644
--- a/BC/EFAS/rivers.xml
+++ b/BC/EFAS/rivers.xml
@@ -128,6 +128,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -137,25 +165,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -171,25 +180,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -204,25 +194,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -246,25 +217,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -280,25 +232,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -313,25 +246,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -344,25 +258,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -378,25 +273,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -409,25 +285,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -440,25 +297,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -471,25 +309,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -501,26 +320,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+>
@@ -533,25 +333,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -564,25 +345,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -595,25 +357,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -626,25 +369,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -657,25 +381,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -688,25 +393,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -719,25 +405,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -750,25 +417,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -781,25 +429,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -815,25 +444,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -846,25 +456,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -877,25 +468,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -908,25 +480,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -939,25 +492,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -970,25 +504,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1001,25 +516,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1032,25 +528,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1063,25 +540,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1094,25 +552,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1125,25 +564,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1156,25 +576,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1187,25 +588,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1218,25 +600,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1249,25 +612,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1280,25 +624,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1311,25 +636,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1342,25 +648,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-