When the observation file has no_obs=0 at a timestep, PDAF skips the assimilation step correctly. But it also ignores the da_interval value at that timestep, treating it as 0. This means CLM does not advance by the correct number of hours, and the next assimilation step starts from the wrong time.
Expected behavior
Even when no_obs=0, the da_interval should still be read and used to advance the CLM timestep.
Actual behavior
The da_interval is ignored. CLM does not advance. The next observation is then assimilated at the wrong model time, which means the assimilation window is wrong and the model state is updated at the wrong time.
Example
| Step |
no_obs |
da_interval |
Expected CLM time |
Actual CLM time |
| 1 |
n |
3 |
0 + 3 = 3 hr |
3 hr ✓ |
| 2 |
0 |
6 |
3 + 6 = 9 hr |
3 hr ✗ (da_interval ignored) |
| 3 |
n |
3 |
9 + 3 = 12 hr |
3 + 3 = 6 hr ✗ |
When the observation file has
no_obs=0at a timestep, PDAF skips the assimilation step correctly. But it also ignores theda_intervalvalue at that timestep, treating it as 0. This means CLM does not advance by the correct number of hours, and the next assimilation step starts from the wrong time.Expected behavior
Even when
no_obs=0, theda_intervalshould still be read and used to advance the CLM timestep.Actual behavior
The
da_intervalis ignored. CLM does not advance. The next observation is then assimilated at the wrong model time, which means the assimilation window is wrong and the model state is updated at the wrong time.Example