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

ldomain in CESM1.1

Hi!

I have a problem with the land compenent in CESM1.1. I would appreciate if I could get some insight on how to deal with this.

I need to specify ldomain from an existing input nc file I have from an older case run with cesm1.0.3, which I did the following way:
./xmlchange -file env_run.xml -id LND_DOMAIN_FILE -val fracdata_0.9x1.25_lgm21ka.110315.nc

The model crashes, with the following message from lnd.log:
 Attempting to read ldomain from /glade/p/cesm/cseg/runs/ccsm4_0/b40.lgm21ka.1deg.003/SourceMods/src.clm//fracdata_0.9x1.25_lgm21ka.110315.nc
(GETFIL): attempting to find local file fracdata_0.9x1.25_lgm21ka.110315.nc
(GETFIL): using /glade/p/cesm/cseg/runs/ccsm4_0/b40.lgm21ka.1deg.003/SourceMods/src.clm//fracdata_0.9x1.25_lgm21ka.110315.nc

I think the problem is that cesm1.1 is expecting a different file format for this variable than cesm1.0.3 used to do.

My input file (fracdata_0.9x1.25_lgm21ka.110315.nc) looks like:
variables:
    int NUMLON(lsmlat) ;
        NUMLON:long_name = "number of grid cells at each latitude" ;
        NUMLON:units = "unitless" ;
    double LONGXY(lsmlat, lsmlon) ;
        LONGXY:long_name = "longitude" ;
        LONGXY:units = "degrees east" ;
    double LATIXY(lsmlat, lsmlon) ;
        LATIXY:long_name = "latitude" ;
        LATIXY:units = "degrees north" ;
    int LANDMASK(lsmlat, lsmlon) ;
        LANDMASK:long_name = "land/ocean mask" ;
        LANDMASK:units = "0=ocean and 1=land" ;
    double LANDFRAC(lsmlat, lsmlon) ;
        LANDFRAC:long_name = "land fraction" ;
        LANDFRAC:units = "unitless" ;

The default expected file should be something like:
ncdump -h /glade/p/cesm/cseg//inputdata/share/domains/domain.lnd.fv0.9x1.25_gx1v6.090309.nc
netcdf domain.lnd.fv0.9x1.25_gx1v6.090309 {
dimensions:
    n = 55296 ;
    ni = 288 ;
    nj = 192 ;
    nv = 4 ;
variables:
    double xc(nj, ni) ;
        xc:long_name = "longitude of grid cell center" ;
        xc:units = "degrees_east" ;
        xc:bounds = "xv" ;
    double yc(nj, ni) ;
        yc:long_name = "latitude of grid cell center" ;
        yc:units = "degrees_north" ;
        yc:bounds = "yv" ;
        yc:filter1 = " set_fv_pole_yc ON, yc = -+90 at j=1,j=nj" ;
    double xv(nj, ni, nv) ;
        xv:long_name = "longitude of grid cell verticies" ;
        xv:units = "degrees_east" ;
    double yv(nj, ni, nv) ;
        yv:long_name = "latitude of grid cell verticies" ;
        yv:units = "degrees_north" ;
    int mask(nj, ni) ;
        mask:long_name = "domain mask" ;
        mask:note = "unitless" ;
        mask:coordinates = "xc yc" ;
        mask:comment = "0 value indicates cell is not active" ;
    double area(nj, ni) ;
        area:long_name = "area of grid cell in radians squared" ;
        area:coordinates = "xc yc" ;
        area:units = "radian2" ;
    double frac(nj, ni) ;
        frac:long_name = "fraction of grid cell that is active" ;
        frac:coordinates = "xc yc" ;
        frac:note = "unitless" ;
        frac:filter1 = "error if frac> 1.0+eps or frac < 0.0-eps; eps = 0.1000000E-11" ;
        frac:filter2 = "limit frac to [fminval,fmaxval]; fminval= 0.1000000E-02 fmaxval=  1.000000" ;

Does anyone know if there a tool to convert the old format into the one used by CESM1.1?
In case this is the issue...otherwise any additional insight would be very welcome!

Thanks for any help!
 
Top