Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Issues setting up hybrid run

stevenDH

Member
Hey

I've been trying to put up a hybrid branch run using CESM2.1.2. and the BHIST compset starting from the restart files of the CMIP6 historical simulations,
however every time I try to run this simulation I get the following error:
-------------------------------------------------------------------------------------
ENDRUN:
0.000000000000000E+000 active_only = F
check_weights ERROR: at g = 14027 total PFT weight is
0.000000000000000E+000 active_only = F
check_weights ERROR: at g = 14028 total PFT weight is
0.000000000000000E+000 active_only = F
check_weights ERROR: at g = 14027 total col weight is
0.000000000000000E+000 active_only = F
check_weights ERROR: at g = 14028 total col weight is
0.000000000000000E+000 active_only = F
check_weights ERROR: at g = 14027 total lunit weight is
0.000000000000000E+000 active_only = F
check_weights ERROR: at g = 14028 total lunit weight is
0.000000000000000E+000 active_only = F

If you are seeing this message at the beginning of a run with
use_init_interp = .true. and init_interp_method = "use_finidat_areas",
and you are seeing weights less than 1, then a likely cause is:
For the above-mentioned grid cell(s):
The matching input grid cell had some non-zero-weight subgrid type
that is not present in memory in the new run.
---------------------------------------------------------------------------------------

Hence I assume there must be some difference in the fsurfdat that I am using with those used in the run I'm branching off from (CMIP6 historical), however I cannot find any info on these case settings (normally I can read this in the CaseDocs but on the website these are empty).

Do you think this assumption is correct ? And if so could you tell me which inputfile was used for fsurfdat during the CMIP6 historical simulations?
Thanks a lot for the help!
Cheers
Steven
 

erik

Erik Kluzek
CSEG and Liaisons
Staff member
You need to change the CLM_BUILDNML_OPTS to remove the setting for 'init_interp_method = "use_finidat_areas"'. This is a bug that someone else noticed that we will be adding documentation for.
 

stevenDH

Member
I tried to remove this setting, initially by just adding the following line in user_nl_clm:

init_interp_method= 'general'

However it seems that this setting is ignored as I get the same error, so I try to change this by using the CLM_BLDNML_OPTS using the following command which I found by looking into the clm5 documentation:

./xmlchange CLM_BLDNML_OPTS= -namelist "&clm_initinterp_inparm init_interp_method=general /" --append

However it seems that I am doing something wrong here since I get this message

usage: xmlchange [-h] [-d] [-v] [-s] [--caseroot CASEROOT] [--append]
[--subgroup SUBGROUP] [--id ID] [--val VAL] [--file FILE]
[--delimiter DELIMITER] [--dryrun] [--noecho] [-f]
[-loglevel LOGLEVEL]
[listofsettings]
xmlchange: error: unrecognized arguments: -namelist &clm_initinterp_inparm init_interp_method=general /

I have never used this option before so I am very unfamilliar with how I should change this, do you have any suggestions?

Thanks a lot for your help!
Cheers
Steven
 
I had a similar problem. After reading your post I changed in the file env_run.xml the option CLM_NAMELIST_OPTS to init_interp_method='general'. And it works
 

stevenDH

Member
I ended up solving it by changing the compset from BHIST to BHISTcmip6, not sure why this solved the issue, but anyhow I'm happy it did :)
 

1540275618

Yue Zhang
New Member
I had a similar problem. After reading your post I changed in the file env_run.xml the option CLM_NAMELIST_OPTS to init_interp_method='general'. And it works
Recently, I've also encountered this problem, I changed in the file env_run.xml the option CLM_NAMELIST_OPTS to init_interp_method='general'.
Modify the following : entry id="CLM_NAMELIST_OPTS" init_interp_method="general"
But I get a error. how I should change this, do you have any suggestions?

 

erik

Erik Kluzek
CSEG and Liaisons
Staff member
Recently, I've also encountered this problem, I changed in the file env_run.xml the option CLM_NAMELIST_OPTS to init_interp_method='general'.
Modify the following : entry id="CLM_NAMELIST_OPTS" init_interp_method="general"
But I get a error. how I should change this, do you have any suggestions?


Do you get the error that Steven quotes above in the use of xmlchange?

If so the problem with the error above for xmlchange is there needs to be a careful use of quotes to get it to work with the shell. In general in UNIX you have to make sure things are quoted if they have whitespace in it. But, this case is even more tricky, because there are quotes that are needed in the namelist setting as well. So the quotes around the setting need to not interfere with those quotes. Also quotes in the shell are handled differently if they are single quotes (i.e. ') verses double quotes (ie. "). This case actually requires three level of quotes, because you need it for the shell interpretation of the setting of CLM_BLDNML_OPTS, then another level for the namelist option that is going to be used by the build-namelist tool, and then one more level for FORTRAN to interpret the actual namelist setting of init_interp_method. Each level needs a quote on each side of the relevant part, and it needs to be able to identify its partner. For one level we can use double quotes and another level we can use single quotes, but what about the third level? For that we'll have to use the backslash operator to tell the shell to ignore it in terms of matching quotes.

Now, does all that sound complicated? Yes it does! So by far the easiest way to change it in this case is to simply pull env_run.xml in your editor and make sure you have it correct there. Even then I had to use two levels of quotes and backslash the namelist entry. But, then I don't have to get it to work in the shell, then in build-namelist, and then in the FORTRAN.

And actually, using the "-namelist" option as part of CLM_BLDNML_OPTS is a problem because it's already being used in the content of CLM_NAMELIST_OPTS. And it's actually this problem with quotes that makes using CLM_NAMELIST_OPTS required over using CLM_BLDNML_OPTS.

So this is what my entry to CLM_NAMELIST_OPTS looks like that gets this to work...

XML:
<entry id="CLM_NAMELIST_OPTS" value="finidat_interp_dest='general'">
      <type>char</type>
 

1540275618

Yue Zhang
New Member
Do you get the error that Steven quotes above in the use of xmlchange?

If so the problem with the error above for xmlchange is there needs to be a careful use of quotes to get it to work with the shell. In general in UNIX you have to make sure things are quoted if they have whitespace in it. But, this case is even more tricky, because there are quotes that are needed in the namelist setting as well. So the quotes around the setting need to not interfere with those quotes. Also quotes in the shell are handled differently if they are single quotes (i.e. ') verses double quotes (ie. "). This case actually requires three level of quotes, because you need it for the shell interpretation of the setting of CLM_BLDNML_OPTS, then another level for the namelist option that is going to be used by the build-namelist tool, and then one more level for FORTRAN to interpret the actual namelist setting of init_interp_method. Each level needs a quote on each side of the relevant part, and it needs to be able to identify its partner. For one level we can use double quotes and another level we can use single quotes, but what about the third level? For that we'll have to use the backslash operator to tell the shell to ignore it in terms of matching quotes.

Now, does all that sound complicated? Yes it does! So by far the easiest way to change it in this case is to simply pull env_run.xml in your editor and make sure you have it correct there. Even then I had to use two levels of quotes and backslash the namelist entry. But, then I don't have to get it to work in the shell, then in build-namelist, and then in the FORTRAN.

And actually, using the "-namelist" option as part of CLM_BLDNML_OPTS is a problem because it's already being used in the content of CLM_NAMELIST_OPTS. And it's actually this problem with quotes that makes using CLM_NAMELIST_OPTS required over using CLM_BLDNML_OPTS.

So this is what my entry to CLM_NAMELIST_OPTS looks like that gets this to work...

XML:
<entry id="CLM_NAMELIST_OPTS" value="finidat_interp_dest='general'">
      <type>char</type>
Thanks a lot for the help!
I get it.
 

djk2120

Daniel Kennedy
New Member
I just ran into this issue using the B1850 compset.

This worked for me:
./xmlchange CLM_NAMELIST_OPTS="use_init_interp=.true. init_interp_method='general'"
 
Top