Project

General

Profile

preparing ECHAM data for INT2LM

Added by Rolf Zentek about 2 years ago

Hey, I want to force my CCLM simulation with output from the ECHAM model
[ https://fesom.de/models/awi-cm/ ]

Has anyone experience concering the preprocessing [ECHAM output ---compatiblity--→ INT2LM input]

So far we have found that:

[T] 3D
cdo -sp2gp echam6.nc output.nc
transforms the spectral temperature to lat/lon grid

[U,V] 3D
cdo -dv2uv echam6.nc output.nc
transforms the spectral divergence/vorticity to u/v-winds on lat/lon grid

[QV,QC,QI] 3D
specific humidity, cloud water, cloud ice are already on lat/lon grid

[W_SNOW, FR_LAND,T_SKIN,T_SNOW,FIS,PS,FR_SEA_ICE] 2D
seem all to exist and are already on lat/lon grid

[W_SO_REL,T_SO] 3D
(multi layer) soil moisture content and soil temperature are difficult.
We havn´t found the temperature, but a soil moisture content (in meter).
Is is possible to run INT2LM with: lmulti_layer_lm=TRUE ; lmulti_layer_in=FALSE
(If yes, is this a good idea?)

Any other advice or suggestion that comes to mind?

Cheers
Rolf


Replies (1)

RE: preparing ECHAM data for INT2LM - Added by Burkhardt Rockel about 2 years ago

There is a very old version of a converter under https://redc.clm-community.eu/projects/int2lm/wiki/Pre-Processor_Programs

In the tape archive /hpss/doku/ik0555/DKRZ_LTA_555_ds00001/cordex/MPI-ESM-LR at DKRZ you find examples how the files should look like. Below is a “ncdump -h” listing as an example

T_SO is not needed for COSMO_CLM. INT2LM calculates an exponential profile using T_S or T_SKIN (or even T(ke) in the worst case, if the latter are not available).
W_SO_REL: I cannot remember if a conversion factor is needed. Anyway, you can also initialise with an artificial soil moisture by setting
in CONTRL
itype_w_so_rel = 0
and in LMGRID
czvw_so_lm= 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75,

Setting lmulti_layer_in=FALSE is probably not a good idea.

netcdf caf2090010100 {
dimensions:
    lat = 96 ;
    lon = 192 ;
    time = UNLIMITED ; // (1 currently)
    level = 47 ;
    soil1 = 5 ;
    nhyi = 48 ;
    nhym = 47 ;
    level1 = 48 ;
    bnds = 2 ;
variables:
    float FR_LAND(lat, lon) ;
        FR_LAND:long_name = "sea_land_mask" ;
        FR_LAND:units = "0,1" ;
        FR_LAND:code = 172 ;
        FR_LAND:grid_type = "gaussian" ;
    float FR_SEA_ICE(time, lat, lon) ;
        FR_SEA_ICE:long_name = "sea_ice_area_fraction" ;
        FR_SEA_ICE:units = "fraction" ;
        FR_SEA_ICE:code = 210 ;
        FR_SEA_ICE:grid_type = "gaussian" ;
        FR_SEA_ICE:_FillValue = -1.e+20f ;
    float PS(time, lat, lon) ;
        PS:long_name = "surface_air_pressure" ;
        PS:units = "Pa" ;
        PS:code = 134 ;
        PS:table = 128 ;
        PS:grid_type = "gaussian" ;
        PS:_FillValue = -1.e+20f ;
    float QC(time, level, lat, lon) ;
        QC:long_name = "mass_fraction_of_cloud_liquid_water_in_air" ;
        QC:units = "kg/kg" ;
        QC:code = 153 ;
        QC:table = 128 ;
        QC:grid_type = "gaussian" ;
        QC:_FillValue = -1.e+20f ;
    float QI(time, level, lat, lon) ;
        QI:long_name = "mass_fraction_of_cloud_ice_in_air" ;
        QI:units = "kg/kg" ;
        QI:code = 154 ;
        QI:table = 128 ;
        QI:grid_type = "gaussian" ;
        QI:_FillValue = -1.e+20f ;
    float QV(time, level, lat, lon) ;
        QV:long_name = "specific_humidity" ;
        QV:units = "kg/kg" ;
        QV:code = 133 ;
        QV:table = 128 ;
        QV:grid_type = "gaussian" ;
        QV:_FillValue = -1.e+20f ;
    float T(time, level, lat, lon) ;
        T:long_name = "air_temperature" ;
        T:units = "K" ;
        T:code = 130 ;
        T:table = 128 ;
        T:grid_type = "gaussian" ;
        T:_FillValue = -1.e+20f ;
    float T_S(time, lat, lon) ;
        T_S:long_name = "soil_surface_temperature" ;
        T_S:units = "K" ;
        T_S:code = 1 ;
        T_S:table = 128 ;
        T_S:grid_type = "gaussian" ;
        T_S:_FillValue = -1.e+20f ;
    float T_SO(time, soil1, lat, lon) ;
        T_SO:long_name = "soil_temperature" ;
        T_SO:units = "K" ;
        T_SO:code = 68 ;
        T_SO:table = 180 ;
        T_SO:grid_type = "gaussian" ;
        T_SO:_FillValue = -1.e+20f ;
    float U(time, level, lat, lon) ;
        U:long_name = "eastward_wind" ;
        U:units = "m/s" ;
        U:code = 131 ;
        U:table = 128 ;
        U:grid_type = "gaussian" ;
        U:_FillValue = -1.e+20f ;
    float V(time, level, lat, lon) ;
        V:long_name = "northward_wind" ;
        V:units = "m/s" ;
        V:code = 132 ;
        V:table = 128 ;
        V:grid_type = "gaussian" ;
        V:_FillValue = -1.e+20f ;
    float W_I(time, lat, lon) ;
        W_I:long_name = "canopy_water_amount" ;
        W_I:units = "kg/m2" ;
        W_I:code = 193 ;
        W_I:table = 128 ;
        W_I:grid_type = "gaussian" ;
        W_I:_FillValue = -1.e+20f ;
    float W_SNOW(time, lat, lon) ;
        W_SNOW:long_name = "lwe_thickness_of_surface_snow_amount" ;
        W_SNOW:units = "m" ;
        W_SNOW:code = 141 ;
        W_SNOW:table = 128 ;
        W_SNOW:grid_type = "gaussian" ;
        W_SNOW:_FillValue = -1.e+20f ;
    float W_SO_REL(time, soil1, lat, lon) ;
        W_SO_REL:long_name = "volume_fraction_of_soil_moisture scaled to max. field capacity" ;
        W_SO_REL:units = "m/m" ;
        W_SO_REL:code = 2 ;
        W_SO_REL:table = 255 ;
        W_SO_REL:grid_type = "gaussian" ;
        W_SO_REL:_FillValue = -1.e+20f ;
    float ak(nhyi) ;
        ak:long_name = "hybrid A coefficient at layer interfaces" ;
        ak:units = "Pa" ;
    float bk(nhyi) ;
        bk:long_name = "hybrid B coefficient at layer interfaces" ;
        bk:units = "1" ;
    double hyam(nhym) ;
        hyam:long_name = "hybrid A coefficient at layer midpoints" ;
        hyam:units = "Pa" ;
    double hybm(nhym) ;
        hybm:long_name = "hybrid B coefficient at layer midpoints" ;
        hybm:units = "1" ;
    float lat(lat) ;
        lat:axis = "Y" ;
        lat:long_name = "latitude" ;
        lat:standard_name = "latitude" ;
        lat:units = "degrees_north" ;
    float level(level) ;
        level:formula = "hyam hybm (mlev=hyam+hybm*aps)" ;
        level:formula_terms = "ap: hyam b: hybm ps: aps" ;
        level:long_name = "hybrid level at layer midpoints" ;
        level:positive = "down" ;
        level:standard_name = "hybrid_sigma_pressure" ;
        level:units = "level" ;
    float level1(level1) ;
    float lon(lon) ;
        lon:axis = "X" ;
        lon:long_name = "longitude" ;
        lon:standard_name = "longitude" ;
        lon:units = "degrees_east" ;
    float soil1(soil1) ;
        soil1:axis = "Z" ;
        soil1:long_name = "depth of soil layers" ;
        soil1:positive = "down" ;
        soil1:units = "m" ;
    float soil1_bnds(soil1, bnds) ;
    double time(time) ;
        time:units = "days since 2090-01-01 00:00:00" ;
        time:calendar = "proleptic_gregorian" ;
    float FIS(lat, lon) ;
        FIS:long_name = "surface geopotential" ;
        FIS:units = "m2/s2" ;
        FIS:code = 129 ;
        FIS:grid_type = "gaussian" ;
    (1-1/1)