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

finidat_interp_dest***.nc

Xueli Huo

Member
Hi,

I am running clm5.0 model with 60 ensemble members. The RUN_TYPE is set to be hybrid. After ./case.submit in CASEROOT directory, I found some files generated in the RUNDIR.
Among them, there is a kind of files called finidat_interp_dest***.nc. My question is that how does this kind of files are generated ? Is there any option in any file located in CASEROOT directory to control the generation of them ?

Thank You
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
This is generated by the CLM5 code. It is the result of interpolating the restart/initial file you are using to the grid you are running on. The model then uses that file, finidat_interp_dest***.nc to initialize the model.
It is controlled by the lnd_in namelist item use_init_interp.
 

Xueli Huo

Member
Hi Keith,

Thanks so much for answering me.

Still have two questions about the interpolation.

Here is the mapping info from the
lnd_0005.log.1362270.chadmin1.ib0.cheyenne.ucar.edu.200323-145500 file.

**** Mapping clm initial data from input clm5.0.06_f09_assim_inf_rundecade_LAI_e60.clm2_0005.r.2000-12-15-00000.nc to output finidat_interp_dest_0005.nc ****
input gridcells = 21013 output gridcells = 21013
input landuntis = 50796 output landunits = 50796
input columns = 141862 output columns = 141862
input pfts = 199823 output pfts = 199823


The RUN_TYPE is set to be hybrid. I thought all variables in finida_interp_dest_0005.nc file should have the same values as that in restart file clm5.0.06_f09_assim_inf_rundecade_LAI_e60.clm2_0005.r.2000-12-15-00000.nc, because the restart file has the same gridcells, landunits, columns, and pfts as the model. But when I compared all the variables stored in the two files, I found four variables have a relative amount of different values. They are
cols1d_ityp
cols1d_topoglc
pfts1d_itypcol
pfts1d_topoglc
.
So the first question is why they are different even with the same dimension (grids,landunits,cols,pfts) ?

Here are additional info I cut from the same lnd.log* file. I found the four above variables are "Skipped" when mapping from restart file to create finidat file.

Glacier elevation classes same in input and output?: T
ipft_not_vegetated = 0
icol_vegetated_or_bare_soil = 1
ilun_vegetated_or_bare_soil = 1
ilun_crop = 2
ilun_landice_multiple_elevation_classes = 4
create_glacier_mec_landunits = true
finding minimum distance for pfts
setting up interpolators for multi-level variables
reading in initial dataset
Skipping : cols1d_ityp
Skipping : pfts1d_itypcol
Skipping : cols1d_topoglc
Skipping : pfts1d_topoglc

Copying : FSD24_PERIOD => FSD24_PERIOD
Interpolating: FSD240_VALUE => FSD240_VALUE

The second questions are what does the skipping mean ? Does that mean the skipped variables will have values from other "initial" files or Where does the values of the skipped variables in finidat* file come from if they are not "inherited" from the restart file ?

Does the copying and interpolating have difference when the info of gridcells,landunits,columns, pfts of restart file is the same as model ?
**** Mapping clm initial data from input clm5.0.06_f09_assim_inf_rundecade_LAI_e60.clm2_0005.r.2000-12-15-00000.nc to output finidat_interp_dest_0005.nc ****
input gridcells = 21013 output gridcells = 21013
input landuntis = 50796 output landunits = 50796
input columns = 141862 output columns = 141862
input pfts = 199823 output pfts = 199823


Thanks. A lot of questions here.

Sincerely,

Xueli
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I don't think the interpolation should be necessary if the gridcells, landunits,columns,pfts of the restart file are the same as in the model. Unless data assimilation does something different from the regular operation of the model.
I see you have this in your user_nl_clm:
use_init_interp = .true.
init_interp_fill_missing_with_natveg = .true.

The use_init_interp in particular is what is telling the model to interpolate. Does the model run if you remove these two lines?
 

Xueli Huo

Member
Hi Keith,

data assimilation begins until the end of regular clm model run. It will have no effect on files used to initialize the model run.

I removed those two lines in the user_nl_clm files, and the model does run. I checked the lnd_log* files, and the initial conditions are read from the restart files.
Thanks for your suggestion and that work for my case.


I am wondering if I set RUN_TYPE=branch with those two lines still in user_nl_clm files, Will the finidat_interp_dest* files still be generated and initial conditions still be read from the finidat_interp_dest* files other than restart files ?

Sincerely,

Xueli
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I *think* you will get a warning that interpolation will not be done in a branch run, and the model should run regardless (without interpolation). But you could try it.
Your other questions are valid, I'm just not sure at the moment what the answers are. I wouldn't think those four variables should be different in the two files.
 

Xueli Huo

Member
Thanks.

Here is the RUNDIR where you can find the restart files
clm5.0.06_f09_assim_inf_rundecade_LAI_e60.clm2_00*.r.2000-12-15-00000.nc and the interpolated files finidat_interp_dest_00*.nc. Each kind have 60 files corresponding to 60 ensemble members. You can ncdiff between the two matched files, and see the difference in those four variables.

cols1d_ityp
cols1d_topoglc
pfts1d_itypcol
pfts1d_topoglc

Sincerely,

Xueli
 

Xueli Huo

Member
"I am wondering if I set RUN_TYPE=branch with those two lines still in user_nl_clm files, Will the finidat_interp_dest* files still be generated and initial conditions still be read from the finidat_interp_dest* files other than restart files ?"

You're right, Keith. When RUN_TYPE=branch and the two interpolation options are set to be true in user_nl_clm files, interpolation will not be done before the model run. There are not neither finidat_interp_dest* files or rpointer.* files generated, which is different from the case when RUN_TYPE=hybrid. In hybrid run, both finidat_interp_dest* and rpointer*files will be generated.

Unfortunately, the model will not run with the error

"Can only set use_init_interp if finidat is set"

Because in branch run, there is no finidat option in lnd_in* files while in hybrid run there is the finidat option in lnd_in* files.

So it seems to me that the right way to use branch run is that setting the interpolation options in lnd_in* files to be false or removed, and manually adding/copying the rpointer* files in which the restart files are recorded under the RUNDIR if the RUNDIR is already different from the previous rundir. The rpointer* files will not generated automatically at the initial time in branch run case unless rpointer* files are copied from the previous run into the RUNDIR.

Maybe it's better to mention this in the env_run.xml file to make the branch run operation more clear. When I read the env_run.xml about branch run, it's a little bit confused.

Sincerely,

Xueli
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Right, that's not the way to do a branch run. Don't set use_init_interp in your user_nl_clm. I just though you wanted to know what would happen if you did that.
You don't necessarily need to add/copy the rpointer files into your RUNDIR. You can set RUN_REFCASE, RUN_REFDIR, RUN_REFDATE, RUN_REFTOD, and set GET_REFCASE to TRUE in env_run.xml and the model should get/use the appropriate rpointer files and restart files for you.
 

Xueli Huo

Member
Hi Keith,

Thanks.

Yes, you're right. The reason why the rpointer* files are not automatically copied to my RUNDIR is I set GET_REFCASE=FALSE.

When I set GET_REFCASE=TRUE and set RUN_REFDIR, after ./case.submit, the rpointer* files in the RUN_REFDIR are copied into my RUNDIR. Except for the rpointer* files, other files such as *.h* history files, *.r.*, *.rh* restart files in REF_RUNDIR are also staged into my RUNDIR. So I think if I only want those rpointer* files, I have to create a new folder and put all rpointer* files into it, and set RUN_REFDIR to the folder directory. That's what I should be cautious.

Sincerely,

Xueli
 
Top