Where do I find the documentation of different VARIANT-IDs for the CMIP6 dataset? A VARIANT-ID is of the format r<k>i<l>p<m>f<n>, where the characters r, i, p and f denote:

i-initialisation method

I checked the overview paper Eyring et al. (2016), but it doesn't mention anything about VARIANT-ID. I have also checked other documents provided at ESGF, but couldn't find any information.

Does anyone here knows where I can find detailed information about the VARIANT-ID for CMIP6 datasets?


1 Answer 1


The variant_labels are defined in the CMIP6 Data Reference Syntax (DRS) document and are made up of the realization_index, initialization_index, physics_index and forcing_index.

A link to this DRS document can for example be found in the CMIP6 Participation Guide for Modelers.

Edit: Following up Deditos' comment, I quote the respective section of the DRS document below:

For a given experiment, the realization_index, initialization_index, physics_index, and forcing_index are used to uniquely identify each simulation of an ensemble of runs contributed by a single model. These indices are defined as follows:

  • realization_index = an integer (≥1) distinguishing among members of an ensemble of simulations that differ only in their initial conditions (e.g., initialized from different points in a control run). Note that if two different simulations were started from the same initial conditions, the same realization number should be used for both simulations. For example if a historical run with “natural forcing” only and another historical run that includes anthropogenic forcing were both spawned at the same point in a control run, both should be assigned the same realization. Also, each so-called RCP (future scenario) simulation should normally be assigned the same realization integer as the historical run from which it was initiated. This will allow users to easily splice together the appropriate historical and future runs.
  • initialization_index = an integer (≥1), which should be assigned a value of 1 except to distinguish simulations performed under the same conditions but with different initialization procedures. In CMIP6 this index should invariably be assigned the value “1” except for some hindcast and forecast experiments called for by the DCPP activity. The initialization_index can be used either to distinguish between different algorithms used to impose initial conditions on a forecast or to distinguish between different observational datasets used to initialize a forecast.
  • physics_index = an integer (≥1) identifying the physics version used by the model. In the usual case of a single physics version of a model, this argument should normally be assigned the value 1, but it is essential that a consistent assignment of physics_index be used across all simulations performed by a particular model. Use of “physics_index” is reserved for closely-related model versions (e.g., as in a “perturbed physics” ensemble) or for the same model run with slightly different parameterizations (e.g., of cloud physics). Model versions that are substantially different from one another should be given a different source_id” (rather than simply assigning a different value of the physics_index).
  • forcing_index = an integer (≥1) used to distinguish runs conforming to the protocol of a single CMIP6 experiment, but with different variants of forcing applied. One can, for example, distinguish between two historical simulations, one forced with the CMIP6-recommended forcing data sets and another forced by a different dataset, which might yield information about how forcing uncertainty affects the simulation.

Each data provider can assign whatever positive integers they like for the realization_index, intialization_index, physics_index, and forcing index. For each source/experiment pair, however, consistency (in these indices) should be maintained across each parent/child pair whenever sensible (so that, for example, both the ScenarioMIP child and its “historical” parent simulation would be assigned the same set of index values for realization, initialization, and physics); the integer 1 should normally be chosen for each of these in the case of a single variant or for the primary variant (if there is one). This is only a suggestion, however; there should be no expectation on the part of users that every model will have a value of 1 assigned to any of the r, i, p, f indices, and even if a 1 is assigned it does not imply that it is the primary variant. Note also that a child spawned by a control run will not necessarily have the same “ripf” value as the control, since, for example, multiple realizations of an experiment will branch from the same control.

Note that none of the “ripf” indices can be omitted.

Example of a variant_label: if realization_index=2, initialization_index=1, physics_index=3, and forcing_index=233, then variant_label = “r2i1p3f233”.

  • 2
    $\begingroup$ Hi. This is bordering on a link-only answer, and CMIP has a bit of a history of link rot, so it would be useful to quote all of note 8 from the DRS Google doc here. $\endgroup$
    – Deditos
    Commented Jul 12, 2022 at 9:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.