Index: Source/Python/Classes/ControlFile.py
===================================================================
--- Source/Python/Classes/ControlFile.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Classes/ControlFile.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -24,18 +24,10 @@
 #    Anne Philipp, Leopold Haimberger
 #
+#    SPDX-License-Identifier: CC-BY-4.0
+#
 #    This work is licensed under the Creative Commons Attribution 4.0
 #    International License. To view a copy of this license, visit
 #    http://creativecommons.org/licenses/by/4.0/ or send a letter to
 #    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
-#
-# @Class Methods:
-#    __init__
-#    _read_controlfile
-#    __str__
-#    assign_args_to_control
-#    assign_envs_to_control
-#    check_conditions
-#    check_install_conditions
-#    to_list
 #*******************************************************************************
 
Index: Source/Python/Classes/EcFlexpart.py
===================================================================
--- Source/Python/Classes/EcFlexpart.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Classes/EcFlexpart.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -42,4 +42,6 @@
 #    Anne Philipp, Leopold Haimberger
 #
+#    SPDX-License-Identifier: CC-BY-4.0
+#
 #    This work is licensed under the Creative Commons Attribution 4.0
 #    International License. To view a copy of this license, visit
@@ -415,13 +417,21 @@
         # -----------------------------------------------------------------------
         if wrf:
-            self.params['OG__ML'][0] += '/Z/VO'
-            if '/D' not in self.params['OG__ML'][0]:
-                self.params['OG__ML'][0] += '/D'
-
-            wrf_sfc = ['SP','SKT','SST','CI','STL1','STL2', 'STL3','STL4',
-                       'SWVL1','SWVL2','SWVL3','SWVL4']
-            for par in wrf_sfc:
-                if par not in self.params['OG__SL'][0]:
-                    self.params['OG__SL'][0] += '/' + par
+            # @WRF
+            # THIS IS NOT YET CORRECTLY IMPLEMENTED !!!
+            #
+            # UNDER CONSTRUCTION !!!
+            #
+
+            print('WRF VERSION IS UNDER CONSTRUCTION!') # dummy argument
+
+            #self.params['OG__ML'][0] += '/Z/VO'
+            #if '/D' not in self.params['OG__ML'][0]:
+            #    self.params['OG__ML'][0] += '/D'
+
+            #wrf_sfc = ['SP','SKT','SST','CI','STL1','STL2', 'STL3','STL4',
+            #           'SWVL1','SWVL2','SWVL3','SWVL4']
+            #for par in wrf_sfc:
+            #    if par not in self.params['OG__SL'][0]:
+            #        self.params['OG__SL'][0] += '/' + par
 
         return
@@ -1502,9 +1512,14 @@
         end_period = end_period + timedelta(hours=int(c.step[-1]))
 
-        if c.wrf:
-            table128 = init128(_config.PATH_GRIBTABLE)
-            wrfpars = to_param_id('sp/mslp/skt/2t/10u/10v/2d/z/lsm/sst/ci/sd/\
-                                   stl1/stl2/stl3/stl4/swvl1/swvl2/swvl3/swvl4',
-                                  table128)
+        # @WRF
+        # THIS IS NOT YET CORRECTLY IMPLEMENTED !!!
+        #
+        # UNDER CONSTRUCTION !!!
+        #
+        #if c.wrf:
+        #    table128 = init128(_config.PATH_GRIBTABLE)
+        #    wrfpars = to_param_id('sp/mslp/skt/2t/10u/10v/2d/z/lsm/sst/ci/sd/\
+        #                           stl1/stl2/stl3/stl4/swvl1/swvl2/swvl3/swvl4',
+        #                          table128)
 
         # these numbers are indices for the temporary files "fort.xx"
@@ -1585,9 +1600,14 @@
                     continue
 
-            if c.wrf:
-                if 'olddate' not in locals() or cdate != olddate:
-                    fwrf = open(os.path.join(c.outputdir,
-                                'WRF' + cdate + '.' + ctime + '.000.grb2'), 'w')
-                    olddate = cdate[:]
+            # @WRF
+            # THIS IS NOT YET CORRECTLY IMPLEMENTED !!!
+            #
+            # UNDER CONSTRUCTION !!!
+            #
+            #if c.wrf:
+            #    if 'olddate' not in locals() or cdate != olddate:
+            #        fwrf = open(os.path.join(c.outputdir,
+            #                    'WRF' + cdate + '.' + ctime + '.000.grb2'), 'w')
+            #        olddate = cdate[:]
 #============================================================================================
             # savedfields remembers which fields were already used.
@@ -1627,9 +1647,14 @@
                         codes_write(gid, fdict['22'])
                         scwc = None
-                elif c.wrf and paramId in [129, 138, 155] and \
-                      levtype == 'hybrid': # Z, VO, D
-                    # do not do anything right now
-                    # these are specific parameter for WRF
-                    pass
+                # @WRF
+                # THIS IS NOT YET CORRECTLY IMPLEMENTED !!!
+                #
+                # UNDER CONSTRUCTION !!!
+                #
+                #elif c.wrf and paramId in [129, 138, 155] and \
+                #      levtype == 'hybrid': # Z, VO, D
+                #    # do not do anything right now
+                #    # these are specific parameter for WRF
+                #    pass
                 else:
                     if paramId not in savedfields:
@@ -1640,16 +1665,20 @@
                     else:
                         print('duplicate ' + str(paramId) + ' not written')
-
-                try:
-                    if c.wrf:
-                        # model layer
-                        if levtype == 'hybrid' and \
-                           paramId in [129, 130, 131, 132, 133, 138, 155]:
-                            codes_write(gid, fwrf)
-                        # sfc layer
-                        elif paramId in wrfpars:
-                            codes_write(gid, fwrf)
-                except AttributeError:
-                    pass
+                # @WRF
+                # THIS IS NOT YET CORRECTLY IMPLEMENTED !!!
+                #
+                # UNDER CONSTRUCTION !!!
+                #
+                #try:
+                #    if c.wrf:
+                #        # model layer
+                #        if levtype == 'hybrid' and \
+                #           paramId in [129, 130, 131, 132, 133, 138, 155]:
+                #            codes_write(gid, fwrf)
+                #        # sfc layer
+                #        elif paramId in wrfpars:
+                #            codes_write(gid, fwrf)
+                #except AttributeError:
+                #    pass
 
                 codes_release(gid)
@@ -1721,6 +1750,12 @@
                                             'rb'), fout)
 # ============================================================================================
-        if c.wrf:
-            fwrf.close()
+
+        # @WRF
+        # THIS IS NOT YET CORRECTLY IMPLEMENTED !!!
+        #
+        # UNDER CONSTRUCTION !!!
+        #
+        #if c.wrf:
+        #    fwrf.close()
 
         codes_index_release(iid)
Index: Source/Python/Classes/GribUtil.py
===================================================================
--- Source/Python/Classes/GribUtil.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Classes/GribUtil.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -13,29 +13,13 @@
 #
 # @License:
-#    (C) Copyright 2014-2018.
-#
-#    This software is licensed under the terms of the Apache Licence Version 2.0
-#    which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
-#
-# @Class Description:
-#    The GRIB API provides all necessary tools to work directly with the
-#    grib files. Nevertheless, the GRIB API tools are very basic and are in
-#    direct connection with the grib files. This class provides some higher
-#    functions which apply a set of GRIB API tools together in the respective
-#    context. So, the class initially contains a list of grib files (their
-#    names) and the using program then applies the methods directly on the
-#    class objects without having to think about how the actual GRIB API
-#    tools have to be arranged.
-#
-# @Class Content:
-#    - __init__
-#    - get_keys
-#    - set_keys
-#    - copy_dummy_msg
-#    - index
-#
-# @Class Attributes:
-#    - filenames
-#
+#    (C) Copyright 2014-2019.
+#    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
+#
+#    This work is licensed under the Creative Commons Attribution 4.0
+#    International License. To view a copy of this license, visit
+#    http://creativecommons.org/licenses/by/4.0/ or send a letter to
+#    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
 #*******************************************************************************
 
@@ -53,4 +37,13 @@
     '''
     Class for GRIB utilities (new methods) based on GRIB API
+
+    The GRIB API provides all necessary tools to work directly with the
+    grib files. Nevertheless, the GRIB API tools are very basic and are in
+    direct connection with the grib files. This class provides some higher
+    functions which apply a set of GRIB API tools together in the respective
+    context. So, the class initially contains a list of grib files (their
+    names) and the using program then applies the methods directly on the
+    class objects without having to think about how the actual GRIB API
+    tools have to be arranged.
     '''
     # --------------------------------------------------------------------------
Index: Source/Python/Classes/MarsRetrieval.py
===================================================================
--- Source/Python/Classes/MarsRetrieval.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Classes/MarsRetrieval.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -22,4 +22,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/Classes/UioFiles.py
===================================================================
--- Source/Python/Classes/UioFiles.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Classes/UioFiles.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -25,4 +25,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/Mods/checks.py
===================================================================
--- Source/Python/Mods/checks.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Mods/checks.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -11,4 +11,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/Mods/disaggregation.py
===================================================================
--- Source/Python/Mods/disaggregation.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Mods/disaggregation.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -22,4 +22,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/Mods/get_mars_data.py
===================================================================
--- Source/Python/Mods/get_mars_data.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Mods/get_mars_data.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -28,4 +28,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/Mods/prepare_flexpart.py
===================================================================
--- Source/Python/Mods/prepare_flexpart.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Mods/prepare_flexpart.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -31,4 +31,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/Mods/tools.py
===================================================================
--- Source/Python/Mods/tools.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/Mods/tools.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -26,4 +26,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/_config.py
===================================================================
--- Source/Python/_config.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/_config.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -11,4 +11,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/install.py
===================================================================
--- Source/Python/install.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/install.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -21,4 +21,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
Index: Source/Python/submit.py
===================================================================
--- Source/Python/submit.py	(revision 8463d78e072ae26108ea1d2a66211aa8ac9f9e72)
+++ Source/Python/submit.py	(revision 44174de31acc10708895185f7beb7568204f0760)
@@ -25,4 +25,6 @@
 #    (C) Copyright 2014-2019.
 #    Anne Philipp, Leopold Haimberger
+#
+#    SPDX-License-Identifier: CC-BY-4.0
 #
 #    This work is licensed under the Creative Commons Attribution 4.0
