This is quite heavy reading. Suggestion:

```C
int offset = 0;
if (0 == strcmp("*", stringlist_iget(args,0))) {
   realizations = bool_vector_alloc(ensemble_size, true);
   offset++;
} else {
    while (true) {
         if (offset == stringlist_get_size( args ))
            break;
         if (0 == strcmp("|" , stringlist_iget( args, offset ))
            break;
        offset++;
    } 
    realizations = alloc_iactive_vector_from_range(args, 0, offset));
} 
....
```
   
Maybe not much better??

My main gripe is the `if-else if -else` construction on lines 593, 595 and 597 which seem to address different questions:
```C
if (is_apple(object))
   // Do stuff with apple
else if (is_leapyear(time))
   // Do stuff with leap year
else
   // Not an apple - and not a leap year.
```