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

Depths do not sum up to zero when surface does

Status
Not open for further replies.

MrIgnition

Member
I successfully changed the default soil texture (clay and sand )data in the surface data file but it returns an error which I am yet to understand its meaning. "found depth points that do NOT sum to zero when surface doesERROR in SoilStateInitTimeConstMod.F90 at line 270"

Looking at the codes in SoilStateInitTimeConstMod.F90, I see that a check was performed truly but I am still wondering how that error could have occurred because all the soil levels were regridded with the same domain file before overwriting the data in the surface file.

Please help!
 

erik

Erik Kluzek
CSEG and Liaisons
Staff member
This means for a particular gridcell point sand+clay at the surface level is identically zero, but for one of the other soil layers sand+clay does NOT equal zero. The expectation is that if sand+clay is zero at the surface it will also be so for each of the other soil layers. This is not surprising if you changed the clay and sand data in the surface dataset, and did it by regridding from another dataset. You just need to add this additional constraint to your regridding process. After you regrid go through points were the surface layer have sand+clay==0 and then also make sure the rest of the soil layers for that gridcell do as well.
 

MrIgnition

Member
This means for a particular gridcell point sand+clay at the surface level is identically zero, but for one of the other soil layers sand+clay does NOT equal zero. The expectation is that if sand+clay is zero at the surface it will also be so for each of the other soil layers. This is not surprising if you changed the clay and sand data in the surface dataset, and did it by regridding from another dataset. You just need to add this additional constraint to your regridding process. After you regrid go through points were the surface layer have sand+clay==0 and then also make sure the rest of the soil layers for that gridcell do as well.
Thank you once again Erik. To achieve this goal, I thought that:
since sand or clay fractions were not negative, the only way sand+clay could be = 0 would be for sand to be 0 and clay to be also 0 at each grid point. So instead of writing FOR LOOPS laced with IF statements; the mask variable in the domain file (LND_DOMAIN_FILE) could be used to divide both clay and soil fractions at each level via cdo div infile mask outfile. This is expected to retain both clay and sand fractions at each level and mask out gridcells with no "usable" value. This obviously is faster as I have over 9 million grid cells.

Now I have a new error:

# of NaNs = 14
Which are NaNs = F F F F T T T T T F T F F F F F F F F F F F F F F F F F F F F
F F F T T T T T T F F F F F T T F F F F F F F F F F F F F F F F F F F F F F
Sl_tref
Sl_qref
Sl_t
Sl_fv
Sl_ram1
Sl_u10
Fall_taux
Fall_tauy
Fall_lat
Fall_sen
Fall_lwup
Fall_evap
Flrl_rofgwl
Flrl_rofsub
gridcell index = 1
ENDRUN:
ERROR:
lnd_export ERROR: One or more of the output from CLM to the coupler are NaN

I like to know:
  1. Does this error come before the previous one? This will help me certify my method of using the mask variable in LND_DOMAIN_FILE as useful and correct.
  2. How do I solve this new error? I had initially thought may be because missing values were not define in my dataset and i then used cdo setmissval infile outfile. But the error still occurs.
 
Status
Not open for further replies.
Top