-
Notifications
You must be signed in to change notification settings - Fork 321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Post data-assimilation processing broken with multi-driver #389
Comments
@gold2718 does this need to be fixed for the cesm2 release? |
@billsacks, It is needed to support usage of DART with CLM. |
@gold2718 can you point me to a DART case for CESM2.0? Or let me know what it would look like? My current test case is here.. cime_config/testdefs/testmods_dirs/clm/pauseResume and it does the following...
The test I run is. SMS_N2_D.09_g16.I2000Clm50SpGs.cheyenne_intel.clm/pauseResume It looks like you are suggesting I add this setting? MULTI_DRIVER=TRUE Is that correct? |
I think that there is a case in /glade/p/work/raeder/Exp/No_sourcemods_test1 but it is an atmosphere test. You would have to ask someone else for a DART/CLM test case. To test this, there are three types of cases:
You can run these cases without any DART involvement. If you want to run data assimilation cycles, use scripts/data_assimilation/da_no_data_mod.sh:
You can also copy da_no_data_mod.sh and modify it Again, do NOT use any |
OK, I have a test case that correctly fails as expected as follows...
|
The proposed fix now works, and I have a test case that does a good job of exercising this...
|
There's another missing check that I needed to add as well. Here's the difference with that added in.
|
My experience with hash e739c2c the lnd_in:finidat is getting created without the instance string. I am not running DART in any capacity, The script that created the case is called /glade/p/work/thoar/cases/ctsm/clm5_f09_spinup80/CLM5_spinup_hybrid.original |
@timhoar it looks like the REFDATE is wrong in the script (2001-07-01 instead of 2001-01-01) that created the softlinks to the files, hence the files don't actually exist. I verified that there is code in place that searches for files with the instance name first, and then uses it without if not. So it should work if the REFDATE is correct. |
While that may be, I do not believe that is the problem. The refdate should be 2001-07-01, the links to the files should be correct - I will check into why the ultimate targets are nonexistent. However: |
I have no idea what is going on with that case ... I pared it back to 4 instances and added the missing The new, tiny case is: /glade/p/work/thoar/cases/ctsm/clm5_f09_freerun4 |
@timhoar yes exactly as it's coded now it will only add an instance number in, if it can find a file in the RUNDIR that matches the REFCASE,REFDATE, and instance number, otherwise it will default to the form without the instance number (even if that file doesn't currently exist). So those files have to be in place and correctly named for it to work. |
For what it's worth ... I don't like that strategy.
The multi-instance finidat names should always reference filenames with
the multi-instance naming convention.
I (quite understandably, in my opinion) thought the multi-instance support
was broken.
Since I don't have control over the finidat name under a hybrid start, I
have to use whatever is in the lnd_in* file.
If I _predict_ the name correctly, everything works fine ... If I don't, a
name gets inserted that is wrong - and leads me
to believe the multi-instance code is broken. If I predict it wrong, the
file won't exist and the error message is perfect.
Tim
Tim Hoar
Data Assimilation Research Section
National Center for Atmospheric Research
thoar@ucar.edu
303.497.1708
…On Fri, May 25, 2018 at 1:58 PM, Erik Kluzek ***@***.***> wrote:
@timhoar <https://github.com/timhoar> yes exactly as it's coded now it
will only add an instance number in, if it can find a file in the RUNDIR
that matches the REFCASE,REFDATE, and instance number, otherwise it will
default to the form without the instance number (even if that file doesn't
currently exist). So those files *have* to be in place and correctly
named for it to work.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#389 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AOccOhGseBGh9NleE8c6X803Dap0-dmFks5t2GJ3gaJpZM4UD7tF>
.
|
@timhoar it makes sense that this strategy would be awkward for you. The same strategy is used in other components (and I think all other components, but know for sure, cam, mosart, and rtm) The way around this would be to have another flag that triggers what form should be used (multi-instance or single instance form). But, that would require some extra infrastructure. And you'd probably want it across all components. That's not something we can do now, but it you'd like it for the future, you could open a request about it. And we could discuss adding it in. I just think that if we do we should coordinate it across all components. |
Fixed in clm5.0.dev013 |
While I have not tested this in CTSM, CAM has a similar issue. When using multiple instances without multi-driver,
num_inst_lnd == NINST_LND
and each instance has a unique instance number,inst_index
. However, when multi-driver is on,num_inst_lnd == 1
but each instance still has a uniqueinst_index
.This becomes a problem in line 686 of lnd_comp_mct.F90:
https://github.com/ESCOMP/ctsm/blob/e739c2c08ca84dcc71d5b9da58051ac4c07ccf59/src/cpl/lnd_comp_mct.F90#L686
which walks off the end of the
lnd_resume
array. I suggest making the following fix:The text was updated successfully, but these errors were encountered: