EDmodel / ED2

Ecosystem Demography Model
79 stars 113 forks source link

Incorrect MMEAN_* variables when only IMOUTPUT and IOOUTPUT are produced #283

Open ashiklom opened 5 years ago

ashiklom commented 5 years ago

The specific combination of IOOUTPUT = 3, IMOUTPUT = 3, and no other outputs produces the wrong aggregation of monthly variables. For example, this combination gives me MMEAN_ATM_TEMP_PY values around 2 K, but either disabling the IOOUTPUT or enabling another sub-monthly output, (like ITOUTPUT or IQOUOUT), returns to the correct monthly mean value of ~288K.

My guess is that IOOUTPUT does something to the monthly aggregation index/counter/timestep/frequency that gets incorrectly passed on to the monthly averaging unless another fast output resets it to the correct value first.

@mrjohnston Tagging you because I think you were the one who added the IOOUTPUT feature (which, BTW, is super useful -- thanks!).

mrjohnston commented 5 years ago

@ashiklom Glad you're finding this functionality helpful! When did you last pull? Your issue may be related to this: https://github.com/EDmodel/ED2/pull/275

ashiklom commented 5 years ago

Thanks! These issues do look related, but I'm using the latest version of the ED2 which includes that fix.

mrjohnston commented 5 years ago

@ashiklom I haven't been able to reproduce your bug, I'm sorry. I just pulled this morning to make sure that I'm testing with everything up-to-date, but when I have IOOUTPUT=3 and IMOUTPUT=3 and no other outputs on, I'm getting sensical MMEAN_ATM_TEMP_PY values. Any more clues?

ashiklom commented 5 years ago

Thanks for testing it out! Very strange. I'll try to see if I can narrow down the issue.

I wonder if it has something to do with the with the exact timesteps in the obstime.time file. Or maybe with settings for for some of the other output configuration settings (UNITFAST, OUTFAST, etc.).

mrjohnston commented 5 years ago

I tested a bunch of .time files when I was originally developing this functionality, so that seems like a less likely culprit. But if you want to send your .time file my way, I'd be happy to try it!

Testing other output settings seems like a promising path. FWIW, I was running with:

UNITFAST = 0 UNITSTATE = 2 OUTFAST = 0, and OUTSTATE = 0.