urban incident atmospheric longwave radiation balance error

chenyihui

chen
New Member
Dear scientists,

I am currently using CMFD data to drive CLM5.0, with the compset I2000Clm50BgcCropGs and the surface dataset: surfdata_CMFD_hist_78pfts_CMIP6_simyr2000_c260325.nc.

However, after running `./case.submit`, I encountered the following error:

```
calling getglobalwrite with decomp_index= 1224688 and clmlevel= column
local column index = 1224688
global column index = 1291286
urban incident atmospheric longwave radiation balance error
1.475739525896764E+020
l = 462803
lwdown = 9.999999616903162E+035
vf_sr = 0.259126034198049
vf_sw = 0.205798329285669
canyon_hwr = 1.79999995231628
```

In my CMFD data, missing values are set to 1e36.

```
(base) [guodl@login01 TPQW]$ ncdump -h CMFD_TPQWL_200001.nc
netcdf CMFD_TPQWL_200001 {
dimensions:
time = UNLIMITED ; // (248 currently)
lon = 700 ;
lat = 400 ;
variables:
double time(time) ;
time:standard_name = "time" ;
time:long_name = "Time" ;
time:units = "hours since 1900-01-01 00:00:0.0" ;
time:calendar = "standard" ;
time:axis = "T" ;
float lon(lon) ;
lon:standard_name = "longitude" ;
lon:long_name = "Longitude" ;
lon:units = "degrees_east" ;
lon:axis = "X" ;
float lat(lat) ;
lat:standard_name = "latitude" ;
lat:long_name = "Latitude" ;
lat:units = "degrees_north" ;
lat:axis = "Y" ;
float lrad(time, lat, lon) ;
lrad:standard_name = "surface_downwelling_longwave_flux_in_air" ;
lrad:long_name = "Surface Downwelling Longwave Radiation" ;
lrad:units = "W m-2" ;
lrad:_FillValue = 1.e+36f ;
lrad:missing_value = 1.e+36f ;
float pres(time, lat, lon) ;
pres:standard_name = "surface_air_pressure" ;
pres:long_name = "Surface Air Pressure" ;
pres:units = "Pa" ;
pres:_FillValue = 1.e+36f ;
pres:missing_value = 1.e+36f ;
float shum(time, lat, lon) ;
shum:standard_name = "specific_humidity" ;
shum:long_name = "Near-Surface Specific Humidity" ;
shum:units = "kg kg-1" ;
shum:_FillValue = 1.e+36f ;
shum:missing_value = 1.e+36f ;
float temp(time, lat, lon) ;
temp:standard_name = "air_temperature" ;
temp:long_name = "Near-Surface Air Temperature" ;
temp:units = "K" ;
temp:_FillValue = 1.e+36f ;
temp:missing_value = 1.e+36f ;
float wind(time, lat, lon) ;
wind:standard_name = "wind_speed" ;
wind:long_name = "Near-Surface Wind Speed" ;
wind:units = "m s-1" ;
wind:_FillValue = 1.e+36f ;
wind:missing_value = 1.e+36f ;

// global attributes:
:CDI = "Climate Data Interface version 2.4.0 (Overview - CDI - Project Management Service)" ;
:Conventions = "CF-1.0" ;
:source = "Meteorological Data Fusion System (Version: 01.02.0280)" ;
:institution = "Institute of Tibetan Plateau Research, Chinese Academy of Sciences, Beijing, China; Tsinghua University, Beijing, China" ;
:title = "3-hourly surface downwelling longwave radiation from the China Meteorological Forcing Dataset" ;
```

However, in the radiation imbalance error, it seems that my 1e36 missing value is being treated as an actual value.

I find this very puzzling. What exactly is the problem, and how should I resolve it? Thank you for your help.
 

slevis

Moderator
Staff member
I did a simple search of the Forums for you using the string "longwave radiation balance" and found this:
If you read that whole thread, you may find that it likely answers your question.
 
Vote Upvote 0 Downvote

chenyihui

chen
New Member
Thank you, I have resolved the issue. The atmospheric forcing data for CLM cannot have missing or null values, nor can missing values be assigned an extremely large value like 10e36. Therefore, I filled the missing areas with mean values (which I believe is reasonable, as these areas do not affect my study)
 
Vote Upvote 0 Downvote

oleson

Keith Oleson
CSEG and Liaisons
Staff member
That is one way to do it, yes. Another way is to set the mask in the datm domain file you are using (or mesh file if you are using later development versions of the code) to "ones" for grid cells where you have valid data and "zeros" for grid cells where you don't have valid data.
 
Vote Upvote 0 Downvote

chenyihui

chen
New Member
That is one way to do it, yes. Another way is to set the mask in the datm domain file you are using (or mesh file if you are using later development versions of the code) to "ones" for grid cells where you have valid data and "zeros" for grid cells where you don't have valid data.
Thank you!
 
Vote Upvote 0 Downvote
Back
Top