The instructions for mksurfdata_map and other tools can be found in the User's Guide:
I tried this out for your case. In short, for example:
compile mksurfdata_map following the instructions in:
clm/tools/mksurfdata_map/README
generate a namelist file at your desired resolution that you can modify:
./mksurfdata.pl -res 0.9x1.25 -debug
The resulting namelist file for year 2000 is, e.g.,
surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c201009.namelist
Note the "raw" glacier file in that namelist file, for cesm2.1.3 it is:
mksrf_fglacier = '/glade/p/cesm/cseg/inputdata/lnd/clm2/rawdata/mksrf_glacier_3x3min_simyr2000.c120926.nc'
Make a copy of that file and/or rename it. Modify PCT_GLACIER in that file. In my example, I set PCT_GLACIER to zero in the middle of Greenland.
Point to that file using mksrf_fglacier in the namelist above
Create a new surface dataset:
./mksurfdata_map < surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c201009.namelist
The resulting surface dataset is:
surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c201009.nc
Use that file in your user_nl_clm for your case:
fsurdat = 'path_to_dataset/surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2000_c201009.nc'
We are pretty sure you should also modify PCT_GLC_GIC and PCT_GLC_ICESHEET so that they sum to the same thing as PCT_GLACIER. I didn't in my case and it ran anyway, but it could have run incorrectly.