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

ERROR: ERROR in subgridWeightsMod.F90 at line 684

congcong

congcong
New Member
Dear all,
I am running CESM2.2 / CLM5 to reproduce a published experiment and am encountering a persistent initialization failure in subgridWeightsMod, where check_weights reports that the sum of PFT and column weights is less than 1, causing the model to abort.

This experiment uses a modified CLM source code provided by the paper’s authors, in which maxpft has been extended to 142 to support additional PFT types; however, the current run still uses standard 79-PFT surfdata (I am not sure whether this inconsistency is responsible for the issue), and the surfdata reading workflow itself has not been further modified. I have set init_interp_method='general' and tested a full cold start, but the issue persists.

A portion of the error log is shown below.


proc= 0 lnd ngseg = 2533 lnd nlseg = 53
proc= 0 gce ngseg = 1820 gce nlseg = 35
proc= 0 lun ngseg = 62099 lun nlseg = 1183
proc= 0 col ngseg = 62099 col nlseg = 1183
proc= 0 patch ngseg = 62099 patch nlseg = 1183
proc= 0 coh ngseg = 0 coh nlseg = 0
proc= 0 nclumps = 1
proc= 0 clump no = 1 clump id= 1
beg gridcell= 1 end gridcell= 405
total gridcells per clump= 405
proc= 0 clump no = 1 clump id= 1
beg landunit= 1 end landunit= 1183
total landunits per clump = 1183
proc= 0 clump no = 1 clump id= 1
beg column = 1 end column = 2301
total columns per clump = 2301
proc= 0 clump no = 1 clump id= 1
beg patch = 1 end patch = 7971
total patches per clump = 7971
proc= 0 clump no = 1 clump id= 1
beg cohort = 1 end cohort = 405
total cohorts per clump = 405
check_weights ERROR: at l = 534 total PFT weight is
0.737270164851805 active_only = F
check_weights ERROR: at l = 535 total PFT weight is
0.465939591713990 active_only = F
check_weights ERROR: at l = 536 total PFT weight is
0.660746940439778 active_only = F
check_weights ERROR: at l = 537 total PFT weight is
0.915967274615546 active_only = F
check_weights ERROR: at l = 538 total PFT weight is
0.951663068057386 active_only = F
check_weights ERROR: at l = 540 total PFT weight is
6.638168660549806E-003 active_only = F
check_weights ERROR: at l = 541 total PFT weight is
2.317671729075998E-002 active_only = F
check_weights ERROR: at l = 542 total PFT weight is
5.160091649370584E-002 active_only = F
check_weights ERROR: at l = 543 total PFT weight is
4.887409117084576E-002 active_only = F
check_weights ERROR: at g = 315 total col weight is
0.920959975209961 active_only = F
check_weights ERROR: at g = 316 total col weight is
0.866857720571002 active_only = F
check_weights ERROR: at g = 317 total col weight is
0.811715065336016 active_only = F
check_weights ERROR: at g = 318 total col weight is
0.804761411954915 active_only = F
check_weights ERROR: at g = 319 total col weight is
0.902050215632336 active_only = F
check_weights ERROR: at g = 320 total col weight is
0.802510454438410 active_only = F
check_weights ERROR: at g = 321 total col weight is
0.783533192443950 active_only = F
check_weights ERROR: at g = 322 total col weight is
0.918089501975404 active_only = F
check_weights ERROR: at g = 323 total col weight is
0.907410314777544 active_only = F
check_weights ERROR: at g = 324 total col weight is
0.834345823085001 active_only = F
check_weights ERROR: at g = 331 total col weight is
0.999924066747167 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.

ENDRUN:
ERROR: ERROR in subgridWeightsMod.F90 at line 684


While surface weights pass check_sums_equal_1 when read in surfrdMod, weight deficits appear after subgrid construction in initGridCells / add_landunit / add_column / add_patch, affecting both PFT and column levels simultaneously. I would greatly appreciate any insights from those who have experience using author-modified CLM code or reproducing similar experiments, particularly regarding potential pitfalls in subgrid weight initialization.

Do you have any suggestions for this error?
Any advice would be greatly appreciated. Thank you!
 

Attachments

  • lnd.log.125706.260116-233358.txt
    94.9 KB · Views: 0

slevis

Moderator
Staff member
You may have an easier time troubleshooting this with a true "cold start" simulation. You mentioned that you tried this, but you didn't share the corresponding error.

Cold start means that you set CLM_FORCE_COLDSTART to "on" in env_run.xml, which will set finidat = ' ' (i.e. blank). If you get the same error with a true cold start and you only changed the code, then you will need to debug the code changes.
 

congcong

congcong
New Member
You may have an easier time troubleshooting this with a true "cold start" simulation. You mentioned that you tried this, but you didn't share the corresponding error.

Cold start means that you set CLM_FORCE_COLDSTART to "on" in env_run.xml, which will set finidat = ' ' (i.e. blank). If you get the same error with a true cold start and you only changed the code, then you will need to debug the code changes.
Thank you very much for the clarification and suggestion.

I have already tried a true cold start by setting CLM_FORCE_COLDSTART = on in env_run.xml (with finidat left blank), exactly as you described. Unfortunately, the model still fails with the same check_weights error during initialization, and the log output is essentially unchanged.

I am not sure whether the issue could be related to an inconsistency between the PFT definitions in the input datasets: the surface dataset used in this run is based on the standard ~79-PFT configuration, while the landuse timeseries contains 142 PFTs. Do you think a mismatch between the PFT dimensions of surfdata and landuse_timeseries could cause this kind of weight-check failure?

In the meantime, I will continue to debug the code path related to subgrid weight initialization. Thanks again for your help.
 
Top