single-point PTS mode error

Status
Not open for further replies.

wvsi3w

wvsi3w
Member
Hello,
I have read the links regarding PTS and single-point simulations (1.6.1. Single and Regional Grid Configurations — ctsm release-clm5.0 documentation) and it is said that PTS is the quickest method as you can create a case for it directly from create_newcase. However, when I followed the instruction below it fails:
Code:
cd scripts
> ./create_newcase -case testPTS_MODE -res f19_g17_gl4 -compset I1850Clm50BgcCropCru -pts_lat 40.0 -pts_lon -105
> cd testPTS_MODE

# We make sure the model will start up cold rather than using initial conditions
> ./xmlchange CLM_FORCE_COLDSTART=on,RUN_TYPE=startup

I used this lat and lon and it failed:
./create_newcase -case testPTS_MODE -res f09_g17 -compset IHistClm50BgcCrop -pts_lat 75.0 -pts_lon -90
I used this format and it failed also:
./create_newcase --case $CASES2_1_3/testPTS_MODE --compset IHistClm50BgcCrop --res f09_g17 --pts_lat 75.0 --pts_lon -90 --machine beluga --compiler intel --mpilib intelmpi

First of all that "--pts_lon -90" (or even with one dash line: -pts_lon -90) doesn't work because the dash line makes the 90 number blue (meaning that it becomes an option).
Secondly no matter how I do ./create_newcase the message is:
error: unrecognized arguments: --pts_lat 75.0 --pts_lon -90
even when I used positive values for lon (instead of -90 I used 90 and even 270) and again it failed with this error:
error: unrecognized arguments: --pts_lat 75.0 --pts_lon 90

Third issue:
I realized some people in the forum change the lat and lon in the ./xmlchange process after creating their case, so I did this:
Code:
./create_newcase --case $CASES2_1_3/testPTSmode --compset IHistClm50BgcCrop --res f09_g17 --machine beluga --compiler intel --mpilib intelmpi --walltime 02:00:00 --run-unsupported



./xmlchange STOP_N=5
./xmlchange STOP_OPTION=nyears
./xmlchange PTS_LON=75
./xmlchange PTS_LAT=-90
./xmlchange RUN_STARTDATE=1958-01-01

./xmlchange CLM_FORCE_COLDSTART=on,RUN_TYPE=startup

And, I am using my modified soil layer structure which has a 500m depth and I have put these in the user_nl_clm file:

soil_layerstruct= '23SL_3.5m_D500'
use_init_interp = .true.

BUT it doesn't build the case and fails.
(I also did it with --res f19_g17 and it failed)

the error message appears after ./case_build step which is related to the finidat not being set:
Code:
Building case in directory /lustre03/project/6001010/cesm2_1_3_OUT/testPTSmode
sharedlib_only is False
model_only is False
Setting resource.RLIMIT_STACK to -1 from (-1, -1)
Generating component namelists as part of build
Creating component namelists
   Calling /lustre03/project/6001010/my_cesm_sandbox/cime/src/components/data_comps/datm/cime_config/buildnml
File not found: domainfile = "/home/meisam/scratch/cime_INPUT_DATA/cesm2_1_3/inputdata/share/domains/domain.lnd.fv0.9x1.25_gx1v7.151020.nc", will attempt to download in check_input_data phase
   Calling /lustre03/project/6001010/my_cesm_sandbox/components/clm//cime_config/buildnml
WARNING: CLM is starting up from a cold state
ERROR: Command /lustre03/project/6001010/my_cesm_sandbox/components/clm/bld/build-namelist failed rc=255
out=CLM adding use_case 20thC_transient defaults for var 'clm_demand' with val 'flanduse_timeseries'
CLM adding use_case 20thC_transient defaults for var 'clm_start_type' with val 'arb_ic'
CLM adding use_case 20thC_transient defaults for var 'irrigate' with val '.true.'
CLM adding use_case 20thC_transient defaults for var 'model_year_align_ndep' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'model_year_align_popdens' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'model_year_align_urbantv' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'ndep_taxmode' with val 'extend'
CLM adding use_case 20thC_transient defaults for var 'sim_year' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'sim_year_range' with val '1850-2000'
CLM adding use_case 20thC_transient defaults for var 'stream_year_first_ndep' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'stream_year_first_popdens' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'stream_year_first_urbantv' with val '1850'
CLM adding use_case 20thC_transient defaults for var 'stream_year_last_ndep' with val '2015'
CLM adding use_case 20thC_transient defaults for var 'stream_year_last_popdens' with val '2016'
CLM adding use_case 20thC_transient defaults for var 'stream_year_last_urbantv' with val '2106'
CLM adding use_case 20thC_transient defaults for var 'use_case_desc' with val 'Simulate transient land-use, aerosol deposition, and Nitrogen deposition changes from 1850 to 2015'
err=ERROR : CLM build-namelist::CLMBuildNamelist::setup_logic_initial_conditions() : use_init_interp is set BUT finidat is NOT, need to set both

So, I read from the forum and github that this PTS mode is quick, and doesn't need much to run, but I am having this "err=ERROR : CLM build-namelist::CLMBuildNamelist::setup_logic_initial_conditions() : use_init_interp is set BUT finidat is NOT, need to set both", do you know why?

I just want to run it with PTS mode for a single point (lat=75 and lon=-90 (or 270 when we have 0to360 deg for longitudes)) and with the soil structure that I want ('23SL_3.5m_D500').

I don't know what is wrong with it, because as I understood from this link (1.6.2. Running a single point using global data - PTS_MODE — ctsm release-clm5.0 documentation) we don't need to assign anything else (like input data path,... as they are only for CLM_USRDAT_NAME method.)


P.S. these are the modules I am loading in my system (which always worked):
StdEnv/2018.3 perl/5.22.4 python/3.7.4 cmake/3.16.3 intelmpi/2018.3.222 hdf5-mpi/1.10.3 netcdf-mpi/4.4.1.1 netcdf-fortran-mpi/4.4.4
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Support for PTS_MODE in cime was dropped at some point so you are likely using a version of the model in which support was dropped. Your finidat error is likely due to the fact that use_init_interp is set to .true. in that compset/resolution by default. You should be able to fix that by setting user_init_interp = .false. in your user_nl_clm. Then build the model again.
 

wvsi3w

wvsi3w
Member
Support for PTS_MODE in cime was dropped at some point so you are likely using a version of the model in which support was dropped. Your finidat error is likely due to the fact that use_init_interp is set to .true. in that compset/resolution by default. You should be able to fix that by setting user_init_interp = .false. in your user_nl_clm. Then build the model again.
Thank you Keith for your helpful response.
It did build and successfully run after setting that option to ".false." but the problem is I was expecting single-point results and now I have regular global simulation results.

Is there any other option that I should have set before building the case?

I did these parts which are mentioned in the documentation and forum regarding the pts mode:

./xmlchange CLM_FORCE_COLDSTART=on,RUN_TYPE=startup
./xmlchange PTS_LAT=75
./xmlchange PTS_LON=-90

I just want to check if this PTS mode works with a single point quick run using my own soil layer structure.

P.S. Or maybe I should forget about testing my soil layer structure with pts mode and find another way (like CLM_USRDAT_NAME or PTCLMmkdata ?)?
 

wvsi3w

wvsi3w
Member
Are you missing setting PTS_MODE=TRUE?
Thanks for the heads up

I tried it with that also and it failed, I guess it is because of not setting the NTASK to 1
because this message appeared in the log file:
"
ERROR: (shr_dmodel_readgrid) ERROR: scmmode2 tasks
(shr_dmodel_readgrid) ERROR: scmmode must be run on one pe

"
 

wvsi3w

wvsi3w
Member
Thanks for the heads up

I tried it with that also and it failed, I guess it is because of not setting the NTASK to 1
because this message appeared in the log file:
"
ERROR: (shr_dmodel_readgrid) ERROR: scmmode2 tasks
(shr_dmodel_readgrid) ERROR: scmmode must be run on one pe

"
I think because I set the NTASKS to 1 this error is showing up:

"
File /cesm2_1_3_OUT/testPTS/LockedFiles/env_mach_pes.xml has been modified
found difference in NTASKS : case 1 locked 80
found difference in NTASKS_PER_INST : case 1 locked 80
ERROR: Invoke case.setup --reset
"

am I doing this right? or there are multiple files that I should change their NTASKS value from 80 to 1?

Thanks for your response @oleson
 

wvsi3w

wvsi3w
Member
You need to do this as stated:

Invoke case.setup --reset
I did but it failed again after submitting the job.

This is the cesm log file error message:

Code:
MCT::m_SparseMatrixPlus:: FATAL--length of vector y different from row count of sMat.Length of y =        1 Number of rows in sMat =    13824
000.MCT(MPEU)::die.: from MCT::m_SparseMatrixPlus::initDistributed_()
application called MPI_Abort(MPI_COMM_WORLD, 2) - process 0

I think as you mentioned this pts mode is not going to work (or maybe I am wrong).
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
As mentioned in the prior post you referenced:


I think you need to specify "stubs" for some of the components by using a long name version of the compset.
So, if your compset is I1850Clm50BgcCropCru the long name for that is:

1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV

So instead specify stub GLC and stub ROF:

1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV

when using create_newcase.
 

wvsi3w

wvsi3w
Member
As mentioned in the prior post you referenced:


I think you need to specify "stubs" for some of the components by using a long name version of the compset.
So, if your compset is I1850Clm50BgcCropCru the long name for that is:

1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_MOSART_CISM2%NOEVOLVE_SWAV

So instead specify stub GLC and stub ROF:

1850_DATM%CRUv7_CLM50%BGC-CROP_SICE_SOCN_SROF_SGLC_SWAV

when using create_newcase.
Thank you Keith for the clarification. I didn't realize that setting CLM_FORCE_COLDSTART=on would result in that error and might be due to a mismatch between the datasets and using a long name. Thanks for referring to that link I haven't read that part and probably missed it.

So the model did run with that change of compset in the create_newcase step.
I just tested it for a few years and it looks like it is doing fine.
The attached image is the TSOI_ICE for that point I simulated and it looks rational.
However, for my purpose of running single point simulations I think I should not use pts mode again (?) because I will use some other data as input and pts mode is not made for that (?)

Thanks again.
 

Attachments

  • tsoi ice pts mode run.png
    tsoi ice pts mode run.png
    242.9 KB · Views: 5

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I'm not sure what you mean by using other data as input. But I would think you could modify the case you setup accordingly.
On the other hand, in more recent versions of CTSM, you could use the tools in tools/site_and_regional.
 

wvsi3w

wvsi3w
Member
I'm not sure what you mean by using other data as input. But I would think you could modify the case you setup accordingly.
On the other hand, in more recent versions of CTSM, you could use the tools in tools/site_and_regional.
Thanks.
By that I mean this part "Since you can NOT restart with PTS_MODE, it’s usage is limited." and I was thinking maybe my simulation sometime in the future needs restart, so I guess I should stick to CLM_USRDAT_NAME.

Thanks again for that CTSM suggestion, but the issue with my research is that I have to stick with CESM 2.1.3 (CLM5) because I would soon need to run other components (like CAM,...)
 

xiaoxiaokuishu

Ru Xu
Member
Ok, got it.
Hi, Oleson

I also meet the same problem when I try to run a single-point case following your user guide (with CLM5),

./create_newcase -case testPTS_MODE -res f19_g17_gl4 -compset I1850Clm50BgcCropCru -pts_lat 40.0 -pts_lon -105

create_newcase: error: unrecognized arguments: -pts_lat 40.0 -pts_lon -105

It means that you are not supporting this PST_MODE, the CLM_USRDAT_NAME should be the better way?

Best
 

slevis

Moderator
Staff member
I would expect it to work with clm5 but, as you said, I also see the comment about no restarts. The comments in this thread between you and @oleson suggest to me that you should try one of the alternate options.
 
Status
Not open for further replies.
Back
Top