############### Experiment ID's ############### Autosubmit 4 uses a SQLite database to automatically generate unique experiment ID’s. The ID’s of Autosubmit experiments start from ``a000`` and have at least four alpha-numerical characters, using digits from ``0`` to ``9`` and the ``26`` letters from the English alphabet, from ``a`` to ``z``. Internally, experiment ID’s are case insensitive, but for Autosubmit commands this may not always be true, i.e. ``autosubmit monitor a000`` works for the experiment ``a000``, but not ``autosubmit monitor A000``, even though internally both ``a000`` and ``A000`` would be stored the same way in the SQLite database. That is because experiment ID’s are treated as Base-36 strings, being first decoded into integers with Base-36 (where ``a`` and ``A`` are both equal to ``10``, ``b`` and ``B`` equal to ``11``, etc. — ``int('a', 36)`` in Python). Autosubmit provides functions that could be used by external code to produce a new experiment, or to simply calculate the next experiment ID, given the last available experiment ID. The code below shows an example of the latter: .. code-block:: python from autosubmit.experiment.experiment_common import next_experiment_id expid = next_experiment_id('a000’) print(expid) # prints 'a001’ expid = next_experiment_id('jedi’) print(expid) # prints 'jedj’ expid = next_experiment_id('zzzz’) print(expid) # prints '10000’ To generate the next experiment ID, the decoded integer value is incremented by ``1``, and then re-encoded as a Base-36 string. For example, ``a000`` is decoded as ``466560``, so the next ID is calculated as ``466560 + 1 = 466561``. Finally, ``466561`` is re-encoded as Base-36, resulting in ``a001``. After the default initial experiment ID ``a000``, the next generated experiment ID is ``a001``, and it keeps being increased automatically by Autosubmit from ``a001``, to ``a002``, ``a003``, …, ``azzz`` and then the next experiment ID ``b000``. And the process repeats every time users ask Autosubmit to create a new experiment. Users can create “test experiments” which experiment ID’s start at ``t001``, and “operational experiments” which experiment ID’s start at ``o001``. This is done via flags passed to the ``autosubmit expid`` in the command-line. There is no other way for users to modify the automatic generation of experiment ID’s in Autosubmit (other than manually editing the SQLite database). The total number of available unique experiment ID’s in Autosubmit with four characters is ``1213055`` experiment ID’s (the difference between ``a000`` and ``zzzz`` Base-36 decoded as integers). After the experiment ``zzzz``, the next experiment ID generated by Autosubmit would be ``10000``, followed by ``10001``, ``10002``, and so on successfully.