Repository: esmvalgroup/esmvalcore
Issue: Downloading fx files using Synda does not work

Stack trace:
```
2019-11-07 15:06:41,829 UTC [27285] ERROR   Program terminated abnormally, see stack trace below for more information
Traceback (most recent call last):
  File "/home/bandela/src/esmvalcore/esmvalcore/_main.py", line 228, in run
    conf = main(args)
  File "/home/bandela/src/esmvalcore/esmvalcore/_main.py", line 156, in main
    process_recipe(recipe_file=recipe, config_user=cfg)
  File "/home/bandela/src/esmvalcore/esmvalcore/_main.py", line 202, in process_recipe
    recipe = read_recipe_file(recipe_file, config_user)
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 72, in read_recipe_file
    recipe_file=filename)
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 884, in __init__
    self.tasks = self.initialize_tasks() if initialize_tasks else None
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 1231, in initialize_tasks
    task_name=task_name,
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 855, in _get_preprocessor_task
    name=task_name,
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 713, in _get_single_preprocessor_task
    config_user=config_user,
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 663, in _get_preprocessor_products
    config_user=config_user)
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 430, in _update_fx_settings
    fx_files = _get_correct_fx_file(variable, fx_var, config_user)
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 406, in _get_correct_fx_file
    fx_files = _get_input_files(fx_var, config_user)
  File "/home/bandela/src/esmvalcore/esmvalcore/_recipe.py", line 476, in _get_input_files
    input_files = synda_search(variable)
  File "/home/bandela/src/esmvalcore/esmvalcore/preprocessor/_download.py", line 34, in synda_search
    files = select_files(files, variable['start_year'], variable['end_year'])
  File "/home/bandela/src/esmvalcore/esmvalcore/_data_finder.py", line 90, in select_files
    start, end = get_start_end_year(filename)
  File "/home/bandela/src/esmvalcore/esmvalcore/_data_finder.py", line 78, in get_start_end_year
    'pattern'.format(name))
ValueError: Name cmip5.output1.IPSL.IPSL-CM5A-MR.historical.fx.ocean.fx.r0i0p0.v20120430.sftof_fx_IPSL-CM5A-MR_historical_r0i0p0 dates do not match a recognized pattern
```

It fails because there is no date in the name, as expected.

Changed files:
esmvalcore/preprocessor/_download.py

diff --git a/esmvalcore/preprocessor/_download.py b/esmvalcore/preprocessor/_download.py
index d1272f86e..93a11d0d6 100644
--- a/esmvalcore/preprocessor/_download.py
+++ b/esmvalcore/preprocessor/_download.py
@@ -30,20 +30,22 @@ def synda_search(variable):
     result = subprocess.check_output(cmd, shell=True, universal_newlines=True)
     logger.debug('Result:\\n%s', result.strip())
 
-    files = (l.split()[-1] for l in result.split('\\n') if l.startswith('new'))
-    files = select_files(files, variable['start_year'], variable['end_year'])
-
-    # filter partially overlapping files
-    intervals = {get_start_end_year(name): name for name in files}
-    files = []
-    for (start, end), filename in intervals.items():
-        for _start, _end in intervals:
-            if start == _start and end == _end:
-                continue
-            if start >= _start and end <= _end:
-                break
-        else:
-            files.append(filename)
+    files = [l.split()[-1] for l in result.split('\\n') if l.startswith('new')]
+    if variable.get('frequency', '') != 'fx':
+        files = select_files(files, variable['start_year'],
+                             variable['end_year'])
+
+        # filter partially overlapping files
+        intervals = {get_start_end_year(name): name for name in files}
+        files = []
+        for (start, end), filename in intervals.items():
+            for _start, _end in intervals:
+                if start == _start and end == _end:
+                    continue
+                if start >= _start and end <= _end:
+                    break
+            else:
+                files.append(filename)
 
     logger.debug("Selected files:\\n%s", '\\n'.join(files))