Project

General

Profile

How to calculate GEopotential Height at all pressure levels

Added by mubashar dogar almost 2 years ago

DEar CDO Users,

I would like to compute Geopotential height along pressure levels. I have the following GFDL-CM2.1 model netcdf output file. In this model netcdf output file, the Geopotential height at model pressure levels is not available. Kindly advise how can I calculate geopotential height using combination of other available model variables which are given in following "ncdump -h" information. Tank you

Regards,
Mubashar ******************************

netcdf atmos_month_199001-206312 {
dimensions:
    time = UNLIMITED ; // (888 currently)
    bnds = 2 ;
    lon = 144 ;
    lat = 90 ;
    phalf = 25 ;
    pfull = 24 ;
variables:
    double time(time) ;
        time:standard_name = "time" ;
        time:long_name = "time" ;
        time:bounds = "time_bnds" ;
        time:units = "days since 1990-01-01 00:00:00" ;
        time:calendar = "365_day" ;
        time:axis = "T" ;
    double time_bnds(time, bnds) ;
    double lon(lon) ;
        lon:standard_name = "longitude" ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_E" ;
        lon:axis = "X" ;
    double lat(lat) ;
        lat:standard_name = "latitude" ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_N" ;
        lat:axis = "Y" ;
    double phalf(phalf) ;
        phalf:standard_name = "air_pressure" ;
        phalf:long_name = "ref half pressure level" ;
        phalf:units = "mb" ;
        phalf:positive = "down" ;
        phalf:axis = "Z" ;
        phalf:cartesian_axis = "Z" ;
    double pfull(pfull) ;
        pfull:standard_name = "air_pressure" ;
        pfull:long_name = "ref full pressure level" ;
        pfull:units = "mb" ;
        pfull:positive = "down" ;
        pfull:axis = "Z" ;
        pfull:cartesian_axis = "Z" ;
    float drag_heat(time, lat, lon) ;
        drag_heat:long_name = "drag coeff for heat" ;
        drag_heat:units = "none" ;
        drag_heat:_FillValue = 1.e+20f ;
        drag_heat:missing_value = 1.e+20f ;
        drag_heat:cell_methods = "time: mean" ;
        drag_heat:time_avg_info = "average_T1,average_T2,average_DT" ;
    float drag_moist(time, lat, lon) ;
        drag_moist:long_name = "drag coeff for moisture" ;
        drag_moist:units = "none" ;
        drag_moist:_FillValue = 1.e+20f ;
        drag_moist:missing_value = 1.e+20f ;
        drag_moist:cell_methods = "time: mean" ;
        drag_moist:time_avg_info = "average_T1,average_T2,average_DT" ;
    float drag_mom(time, lat, lon) ;
        drag_mom:long_name = "drag coeff for momentum" ;
        drag_mom:units = "none" ;
        drag_mom:_FillValue = 1.e+20f ;
        drag_mom:missing_value = 1.e+20f ;
        drag_mom:cell_methods = "time: mean" ;
        drag_mom:time_avg_info = "average_T1,average_T2,average_DT" ;
    float evap(time, lat, lon) ;
        evap:long_name = "evaporation rate" ;
        evap:units = "kg/m2/s" ;
        evap:_FillValue = 1.e+20f ;
        evap:missing_value = 1.e+20f ;
        evap:cell_methods = "time: mean" ;
        evap:time_avg_info = "average_T1,average_T2,average_DT" ;
    float ice_mask(time, lat, lon) ;
        ice_mask:long_name = "fractional amount of sea ice" ;
        ice_mask:units = "none" ;
        ice_mask:_FillValue = 1.e+20f ;
        ice_mask:missing_value = 1.e+20f ;
        ice_mask:cell_methods = "time: mean" ;
        ice_mask:time_avg_info = "average_T1,average_T2,average_DT" ;
        ice_mask:interp_method = "conserve_order1" ;
    float land_mask(lat, lon) ;
        land_mask:long_name = "fractional amount of land" ;
        land_mask:units = "none" ;
        land_mask:_FillValue = 1.e+20f ;
        land_mask:missing_value = 1.e+20f ;
        land_mask:cell_methods = "time: point" ;
        land_mask:interp_method = "conserve_order1" ;
    float lwflx(time, lat, lon) ;
        lwflx:long_name = "net (down-up) longwave flux" ;
        lwflx:units = "w/m2" ;
        lwflx:_FillValue = 1.e+20f ;
        lwflx:missing_value = 1.e+20f ;
        lwflx:cell_methods = "time: mean" ;
        lwflx:time_avg_info = "average_T1,average_T2,average_DT" ;
    float rh_ref(time, lat, lon) ;
        rh_ref:long_name = "relative humidity at 2 m" ;
        rh_ref:units = "percent" ;
        rh_ref:_FillValue = 1.e+20f ;
        rh_ref:missing_value = 1.e+20f ;
        rh_ref:cell_methods = "time: mean" ;
        rh_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
    float shflx(time, lat, lon) ;
        shflx:long_name = "sensible heat flux" ;
        shflx:units = "w/m2" ;
        shflx:_FillValue = 1.e+20f ;
        shflx:missing_value = 1.e+20f ;
        shflx:cell_methods = "time: mean" ;
        shflx:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tau_x(time, lat, lon) ;
        tau_x:long_name = "zonal wind stress" ;
        tau_x:units = "pa" ;
        tau_x:_FillValue = 1.e+20f ;
        tau_x:missing_value = 1.e+20f ;
        tau_x:cell_methods = "time: mean" ;
        tau_x:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tau_y(time, lat, lon) ;
        tau_y:long_name = "meridional wind stress" ;
        tau_y:units = "pa" ;
        tau_y:_FillValue = 1.e+20f ;
        tau_y:missing_value = 1.e+20f ;
        tau_y:cell_methods = "time: mean" ;
        tau_y:time_avg_info = "average_T1,average_T2,average_DT" ;
    float t_ref(time, lat, lon) ;
        t_ref:long_name = "temperature at 2 m" ;
        t_ref:units = "deg_k" ;
        t_ref:_FillValue = 1.e+20f ;
        t_ref:missing_value = 1.e+20f ;
        t_ref:cell_methods = "time: mean" ;
        t_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
    float t_ref_min(time, lat, lon) ;
        t_ref_min:long_name = "temperature at 2 m" ;
        t_ref_min:units = "deg_k" ;
        t_ref_min:_FillValue = 1.e+20f ;
        t_ref_min:missing_value = 1.e+20f ;
        t_ref_min:cell_methods = "time: min" ;
        t_ref_min:time_avg_info = "average_T1,average_T2,average_DT" ;
    float t_ref_max(time, lat, lon) ;
        t_ref_max:long_name = "temperature at 2 m" ;
        t_ref_max:units = "deg_k" ;
        t_ref_max:_FillValue = 1.e+20f ;
        t_ref_max:missing_value = 1.e+20f ;
        t_ref_max:cell_methods = "time: max" ;
        t_ref_max:time_avg_info = "average_T1,average_T2,average_DT" ;
    float t_surf(time, lat, lon) ;
        t_surf:long_name = "surface temperature" ;
        t_surf:units = "deg_k" ;
        t_surf:_FillValue = 1.e+20f ;
        t_surf:missing_value = 1.e+20f ;
        t_surf:cell_methods = "time: mean" ;
        t_surf:time_avg_info = "average_T1,average_T2,average_DT" ;
    float u_ref(time, lat, lon) ;
        u_ref:long_name = "zonal wind component at 10 m" ;
        u_ref:units = "m/s" ;
        u_ref:_FillValue = 1.e+20f ;
        u_ref:missing_value = 1.e+20f ;
        u_ref:cell_methods = "time: mean" ;
        u_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
    float v_ref(time, lat, lon) ;
        v_ref:long_name = "meridional wind component at 10 m" ;
        v_ref:units = "m/s" ;
        v_ref:_FillValue = 1.e+20f ;
        v_ref:missing_value = 1.e+20f ;
        v_ref:cell_methods = "time: mean" ;
        v_ref:time_avg_info = "average_T1,average_T2,average_DT" ;
    float wind(time, lat, lon) ;
        wind:long_name = "wind speed for flux calculations" ;
        wind:units = "m/s" ;
        wind:_FillValue = 1.e+20f ;
        wind:missing_value = 1.e+20f ;
        wind:cell_methods = "time: mean" ;
        wind:time_avg_info = "average_T1,average_T2,average_DT" ;
    float bk(phalf) ;
        bk:long_name = "vertical coordinate sigma value" ;
        bk:units = "none" ;
        bk:_FillValue = 1.e+20f ;
        bk:missing_value = 1.e+20f ;
        bk:cell_methods = "time: point" ;
    float pk(phalf) ;
        pk:long_name = "pressure part of the hybrid coordinate" ;
        pk:units = "pascal" ;
        pk:_FillValue = 1.e+20f ;
        pk:missing_value = 1.e+20f ;
        pk:cell_methods = "time: point" ;
    float zsurf(lat, lon) ;
        zsurf:long_name = "surface height" ;
        zsurf:units = "m" ;
        zsurf:_FillValue = 1.e+20f ;
        zsurf:missing_value = 1.e+20f ;
        zsurf:cell_methods = "time: point" ;
    float cld_amt(time, pfull, lat, lon) ;
        cld_amt:long_name = "cloud fraction" ;
        cld_amt:units = "none" ;
        cld_amt:_FillValue = -1.e+10f ;
        cld_amt:missing_value = -1.e+10f ;
        cld_amt:cell_methods = "time: mean" ;
        cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
    float ice_wat(time, pfull, lat, lon) ;
        ice_wat:long_name = "cloud ice water specific humidity" ;
        ice_wat:units = "kg/kg" ;
        ice_wat:_FillValue = -1.e+10f ;
        ice_wat:missing_value = -1.e+10f ;
        ice_wat:cell_methods = "time: mean" ;
        ice_wat:time_avg_info = "average_T1,average_T2,average_DT" ;
    float liq_wat(time, pfull, lat, lon) ;
        liq_wat:long_name = "cloud liquid specific humidity" ;
        liq_wat:units = "kg/kg" ;
        liq_wat:_FillValue = -1.e+10f ;
        liq_wat:missing_value = -1.e+10f ;
        liq_wat:cell_methods = "time: mean" ;
        liq_wat:time_avg_info = "average_T1,average_T2,average_DT" ;
    float omega(time, pfull, lat, lon) ;
        omega:long_name = "omega" ;
        omega:units = "pa/sec" ;
        omega:_FillValue = -1.e+10f ;
        omega:missing_value = -1.e+10f ;
        omega:cell_methods = "time: mean" ;
        omega:time_avg_info = "average_T1,average_T2,average_DT" ;
    float ps(time, lat, lon) ;
        ps:long_name = "surface pressure" ;
        ps:units = "Pa" ;
        ps:_FillValue = -1.e+10f ;
        ps:missing_value = -1.e+10f ;
        ps:cell_methods = "time: mean" ;
        ps:time_avg_info = "average_T1,average_T2,average_DT" ;
    float sphum(time, pfull, lat, lon) ;
        sphum:long_name = "specific humidity" ;
        sphum:units = "kg/kg" ;
        sphum:_FillValue = -1.e+10f ;
        sphum:missing_value = -1.e+10f ;
        sphum:cell_methods = "time: mean" ;
        sphum:time_avg_info = "average_T1,average_T2,average_DT" ;
    float temp(time, pfull, lat, lon) ;
        temp:long_name = "temperature" ;
        temp:units = "deg_K" ;
        temp:_FillValue = -1.e+10f ;
        temp:missing_value = -1.e+10f ;
        temp:cell_methods = "time: mean" ;
        temp:time_avg_info = "average_T1,average_T2,average_DT" ;
    float ucomp(time, pfull, lat, lon) ;
        ucomp:long_name = "zonal wind" ;
        ucomp:units = "m/sec" ;
        ucomp:_FillValue = -1.e+10f ;
        ucomp:missing_value = -1.e+10f ;
        ucomp:cell_methods = "time: mean" ;
        ucomp:time_avg_info = "average_T1,average_T2,average_DT" ;
    float vcomp(time, pfull, lat, lon) ;
        vcomp:long_name = "meridional wind" ;
        vcomp:units = "m/sec" ;
        vcomp:_FillValue = -1.e+10f ;
        vcomp:missing_value = -1.e+10f ;
        vcomp:cell_methods = "time: mean" ;
        vcomp:time_avg_info = "average_T1,average_T2,average_DT" ;
    float prec_conv(time, lat, lon) ;
        prec_conv:long_name = "Precipitation rate from convection" ;
        prec_conv:units = "kg(h2o)/m2/s" ;
        prec_conv:_FillValue = 1.e+20f ;
        prec_conv:missing_value = 1.e+20f ;
        prec_conv:cell_methods = "time: mean" ;
        prec_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
        prec_conv:interp_method = "conserve_order1" ;
    float snow_conv(time, lat, lon) ;
        snow_conv:long_name = "Frozen precip rate from convection" ;
        snow_conv:units = "kg(h2o)/m2/s" ;
        snow_conv:_FillValue = 1.e+20f ;
        snow_conv:missing_value = 1.e+20f ;
        snow_conv:cell_methods = "time: mean" ;
        snow_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
        snow_conv:interp_method = "conserve_order1" ;
    float prec_ls(time, lat, lon) ;
        prec_ls:long_name = "Precipitation rate from strat cloud" ;
        prec_ls:units = "kg/m2/s" ;
        prec_ls:_FillValue = 1.e+20f ;
        prec_ls:missing_value = 1.e+20f ;
        prec_ls:cell_methods = "time: mean" ;
        prec_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
    float snow_ls(time, lat, lon) ;
        snow_ls:long_name = "Frozen precip rate from strat cloud" ;
        snow_ls:units = "kg/m2/s" ;
        snow_ls:_FillValue = 1.e+20f ;
        snow_ls:missing_value = 1.e+20f ;
        snow_ls:cell_methods = "time: mean" ;
        snow_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
    float IWP(time, lat, lon) ;
        IWP:long_name = "Ice water path" ;
        IWP:units = "kg/m2" ;
        IWP:_FillValue = 1.e+20f ;
        IWP:missing_value = 1.e+20f ;
        IWP:cell_methods = "time: mean" ;
        IWP:time_avg_info = "average_T1,average_T2,average_DT" ;
    float LWP(time, lat, lon) ;
        LWP:long_name = "Liquid water path" ;
        LWP:units = "kg/m2" ;
        LWP:_FillValue = 1.e+20f ;
        LWP:missing_value = 1.e+20f ;
        LWP:cell_methods = "time: mean" ;
        LWP:time_avg_info = "average_T1,average_T2,average_DT" ;
    float precip(time, lat, lon) ;
        precip:long_name = "Total precipitation rate" ;
        precip:units = "kg/m2/s" ;
        precip:_FillValue = 1.e+20f ;
        precip:missing_value = 1.e+20f ;
        precip:cell_methods = "time: mean" ;
        precip:time_avg_info = "average_T1,average_T2,average_DT" ;
        precip:interp_method = "conserve_order1" ;
    float qdt_conv(time, pfull, lat, lon) ;
        qdt_conv:long_name = "Spec humidity tendency from convection" ;
        qdt_conv:units = "kg/kg/s" ;
        qdt_conv:_FillValue = -999.f ;
        qdt_conv:missing_value = -999.f ;
        qdt_conv:cell_methods = "time: mean" ;
        qdt_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_conv(time, pfull, lat, lon) ;
        tdt_conv:long_name = "Temperature tendency from convection" ;
        tdt_conv:units = "deg_K/s" ;
        tdt_conv:_FillValue = -999.f ;
        tdt_conv:missing_value = -999.f ;
        tdt_conv:cell_methods = "time: mean" ;
        tdt_conv:time_avg_info = "average_T1,average_T2,average_DT" ;
    float qdt_ls(time, pfull, lat, lon) ;
        qdt_ls:long_name = "Spec humidity tendency from strat cloud" ;
        qdt_ls:units = "kg/kg/s" ;
        qdt_ls:_FillValue = -999.f ;
        qdt_ls:missing_value = -999.f ;
        qdt_ls:cell_methods = "time: mean" ;
        qdt_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
    float rh(time, pfull, lat, lon) ;
        rh:long_name = "relative humidity" ;
        rh:units = "percent" ;
        rh:_FillValue = -999.f ;
        rh:missing_value = -999.f ;
        rh:cell_methods = "time: mean" ;
        rh:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_ls(time, pfull, lat, lon) ;
        tdt_ls:long_name = "Temperature tendency from strat cloud" ;
        tdt_ls:units = "deg_K/s" ;
        tdt_ls:_FillValue = -999.f ;
        tdt_ls:missing_value = -999.f ;
        tdt_ls:cell_methods = "time: mean" ;
        tdt_ls:time_avg_info = "average_T1,average_T2,average_DT" ;
    float WVP(time, lat, lon) ;
        WVP:long_name = "Column integrated water vapor" ;
        WVP:units = "kg/m2" ;
        WVP:_FillValue = 1.e+20f ;
        WVP:missing_value = 1.e+20f ;
        WVP:cell_methods = "time: mean" ;
        WVP:time_avg_info = "average_T1,average_T2,average_DT" ;
    float mc(time, phalf, lat, lon) ;
        mc:long_name = "Cumulus Mass Flux from RAS" ;
        mc:units = "kg/m2/s" ;
        mc:_FillValue = -999.f ;
        mc:missing_value = -999.f ;
        mc:cell_methods = "time: mean" ;
        mc:time_avg_info = "average_T1,average_T2,average_DT" ;
    float alb_sfc(time, lat, lon) ;
        alb_sfc:long_name = "surface albedo" ;
        alb_sfc:units = "percent" ;
        alb_sfc:_FillValue = -999.f ;
        alb_sfc:missing_value = -999.f ;
        alb_sfc:cell_methods = "time: mean" ;
        alb_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
    float lwdn_sfc(time, lat, lon) ;
        lwdn_sfc:long_name = "LW flux down at surface" ;
        lwdn_sfc:units = "watts/m2" ;
        lwdn_sfc:_FillValue = -999.f ;
        lwdn_sfc:missing_value = -999.f ;
        lwdn_sfc:cell_methods = "time: mean" ;
        lwdn_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
    float lwup_sfc(time, lat, lon) ;
        lwup_sfc:long_name = "LW flux up at surface" ;
        lwup_sfc:units = "watts/m2" ;
        lwup_sfc:_FillValue = -999.f ;
        lwup_sfc:missing_value = -999.f ;
        lwup_sfc:cell_methods = "time: mean" ;
        lwup_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
    float netrad_toa(time, lat, lon) ;
        netrad_toa:long_name = "net radiation (lw + sw) at toa" ;
        netrad_toa:units = "watts/m2" ;
        netrad_toa:_FillValue = -999.f ;
        netrad_toa:missing_value = -999.f ;
        netrad_toa:cell_methods = "time: mean" ;
        netrad_toa:time_avg_info = "average_T1,average_T2,average_DT" ;
    float olr(time, lat, lon) ;
        olr:long_name = "outgoing longwave radiation" ;
        olr:units = "watts/m2" ;
        olr:_FillValue = -999.f ;
        olr:missing_value = -999.f ;
        olr:cell_methods = "time: mean" ;
        olr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float qo3(time, pfull, lat, lon) ;
        qo3:long_name = "ozone mixing ratio" ;
        qo3:units = "kg/kg" ;
        qo3:_FillValue = -999.f ;
        qo3:missing_value = -999.f ;
        qo3:cell_methods = "time: mean" ;
        qo3:time_avg_info = "average_T1,average_T2,average_DT" ;
    float qo3_col(time, lat, lon) ;
        qo3_col:long_name = "ozone column" ;
        qo3_col:units = "DU" ;
        qo3_col:_FillValue = -999.f ;
        qo3_col:missing_value = -999.f ;
        qo3_col:cell_methods = "time: mean" ;
        qo3_col:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_sfc(time, lat, lon) ;
        swdn_sfc:long_name = "SW flux down at surface" ;
        swdn_sfc:units = "watts/m2" ;
        swdn_sfc:_FillValue = -999.f ;
        swdn_sfc:missing_value = -999.f ;
        swdn_sfc:cell_methods = "time: mean" ;
        swdn_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_sfc(time, lat, lon) ;
        swup_sfc:long_name = "SW flux up at surface" ;
        swup_sfc:units = "watts/m2" ;
        swup_sfc:_FillValue = -999.f ;
        swup_sfc:missing_value = -999.f ;
        swup_sfc:cell_methods = "time: mean" ;
        swup_sfc:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_toa(time, lat, lon) ;
        swdn_toa:long_name = "SW flux down at TOA" ;
        swdn_toa:units = "watts/m2" ;
        swdn_toa:_FillValue = -999.f ;
        swdn_toa:missing_value = -999.f ;
        swdn_toa:cell_methods = "time: mean" ;
        swdn_toa:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_toa(time, lat, lon) ;
        swup_toa:long_name = "SW flux up at TOA" ;
        swup_toa:units = "watts/m2" ;
        swup_toa:_FillValue = -999.f ;
        swup_toa:missing_value = -999.f ;
        swup_toa:cell_methods = "time: mean" ;
        swup_toa:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_lw(time, pfull, lat, lon) ;
        tdt_lw:long_name = "temperature tendency for LW radiation" ;
        tdt_lw:units = "deg_K/sec" ;
        tdt_lw:_FillValue = -999.f ;
        tdt_lw:missing_value = -999.f ;
        tdt_lw:cell_methods = "time: mean" ;
        tdt_lw:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_sw(time, pfull, lat, lon) ;
        tdt_sw:long_name = "temperature tendency for SW radiation" ;
        tdt_sw:units = "deg_K/sec" ;
        tdt_sw:_FillValue = -999.f ;
        tdt_sw:missing_value = -999.f ;
        tdt_sw:cell_methods = "time: mean" ;
        tdt_sw:time_avg_info = "average_T1,average_T2,average_DT" ;
    float lwdn_sfc_clr(time, lat, lon) ;
        lwdn_sfc_clr:long_name = "clear skyLW flux down at surface" ;
        lwdn_sfc_clr:units = "watts/m2" ;
        lwdn_sfc_clr:_FillValue = -999.f ;
        lwdn_sfc_clr:missing_value = -999.f ;
        lwdn_sfc_clr:cell_methods = "time: mean" ;
        lwdn_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float lwup_sfc_clr(time, lat, lon) ;
        lwup_sfc_clr:long_name = "clear skyLW flux up at surface" ;
        lwup_sfc_clr:units = "watts/m2" ;
        lwup_sfc_clr:_FillValue = -999.f ;
        lwup_sfc_clr:missing_value = -999.f ;
        lwup_sfc_clr:cell_methods = "time: mean" ;
        lwup_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float netrad_toa_clr(time, lat, lon) ;
        netrad_toa_clr:long_name = "clear skynet radiation (lw + sw) at toa" ;
        netrad_toa_clr:units = "watts/m2" ;
        netrad_toa_clr:_FillValue = -999.f ;
        netrad_toa_clr:missing_value = -999.f ;
        netrad_toa_clr:cell_methods = "time: mean" ;
        netrad_toa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float olr_clr(time, lat, lon) ;
        olr_clr:long_name = "clear skyoutgoing longwave radiation" ;
        olr_clr:units = "watts/m2" ;
        olr_clr:_FillValue = -999.f ;
        olr_clr:missing_value = -999.f ;
        olr_clr:cell_methods = "time: mean" ;
        olr_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_sfc_clr(time, lat, lon) ;
        swdn_sfc_clr:long_name = "clear skySW flux down at surface" ;
        swdn_sfc_clr:units = "watts/m2" ;
        swdn_sfc_clr:_FillValue = -999.f ;
        swdn_sfc_clr:missing_value = -999.f ;
        swdn_sfc_clr:cell_methods = "time: mean" ;
        swdn_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_sfc_clr(time, lat, lon) ;
        swup_sfc_clr:long_name = "clear skySW flux up at surface" ;
        swup_sfc_clr:units = "watts/m2" ;
        swup_sfc_clr:_FillValue = -999.f ;
        swup_sfc_clr:missing_value = -999.f ;
        swup_sfc_clr:cell_methods = "time: mean" ;
        swup_sfc_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_toa_clr(time, lat, lon) ;
        swdn_toa_clr:long_name = "clear skySW flux down at TOA" ;
        swdn_toa_clr:units = "watts/m2" ;
        swdn_toa_clr:_FillValue = -999.f ;
        swdn_toa_clr:missing_value = -999.f ;
        swdn_toa_clr:cell_methods = "time: mean" ;
        swdn_toa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_toa_clr(time, lat, lon) ;
        swup_toa_clr:long_name = "clear skySW flux up at TOA" ;
        swup_toa_clr:units = "watts/m2" ;
        swup_toa_clr:_FillValue = -999.f ;
        swup_toa_clr:missing_value = -999.f ;
        swup_toa_clr:cell_methods = "time: mean" ;
        swup_toa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_lw_clr(time, pfull, lat, lon) ;
        tdt_lw_clr:long_name = "clear skytemperature tendency for LW radiation" ;
        tdt_lw_clr:units = "deg_K/sec" ;
        tdt_lw_clr:_FillValue = -999.f ;
        tdt_lw_clr:missing_value = -999.f ;
        tdt_lw_clr:cell_methods = "time: mean" ;
        tdt_lw_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_sw_clr(time, pfull, lat, lon) ;
        tdt_sw_clr:long_name = "clear skytemperature tendency for SW radiation" ;
        tdt_sw_clr:units = "deg_K/sec" ;
        tdt_sw_clr:_FillValue = -999.f ;
        tdt_sw_clr:missing_value = -999.f ;
        tdt_sw_clr:cell_methods = "time: mean" ;
        tdt_sw_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float netlw_lin_trop(time, lat, lon) ;
        netlw_lin_trop:long_name = "net LW flux at linear tropopause" ;
        netlw_lin_trop:units = "watts/m2" ;
        netlw_lin_trop:_FillValue = -999.f ;
        netlw_lin_trop:missing_value = -999.f ;
        netlw_lin_trop:cell_methods = "time: mean" ;
        netlw_lin_trop:time_avg_info = "average_T1,average_T2,average_DT" ;
    float netlw_200hPa(time, lat, lon) ;
        netlw_200hPa:long_name = "net LW flux at 200 hPa" ;
        netlw_200hPa:units = "watts/m2" ;
        netlw_200hPa:_FillValue = -999.f ;
        netlw_200hPa:missing_value = -999.f ;
        netlw_200hPa:cell_methods = "time: mean" ;
        netlw_200hPa:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_lin_trop(time, lat, lon) ;
        swdn_lin_trop:long_name = "SW flux down at linear tropopause" ;
        swdn_lin_trop:units = "watts/m2" ;
        swdn_lin_trop:_FillValue = -999.f ;
        swdn_lin_trop:missing_value = -999.f ;
        swdn_lin_trop:cell_methods = "time: mean" ;
        swdn_lin_trop:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_200hPa(time, lat, lon) ;
        swdn_200hPa:long_name = "SW flux down at 200 hPa" ;
        swdn_200hPa:units = "watts/m2" ;
        swdn_200hPa:_FillValue = -999.f ;
        swdn_200hPa:missing_value = -999.f ;
        swdn_200hPa:cell_methods = "time: mean" ;
        swdn_200hPa:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_200hPa(time, lat, lon) ;
        swup_200hPa:long_name = "SW flux up at 200 hPa" ;
        swup_200hPa:units = "watts/m2" ;
        swup_200hPa:_FillValue = -999.f ;
        swup_200hPa:missing_value = -999.f ;
        swup_200hPa:cell_methods = "time: mean" ;
        swup_200hPa:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_lin_trop(time, lat, lon) ;
        swup_lin_trop:long_name = "SW flux up at linear tropopause" ;
        swup_lin_trop:units = "watts/m2" ;
        swup_lin_trop:_FillValue = -999.f ;
        swup_lin_trop:missing_value = -999.f ;
        swup_lin_trop:cell_methods = "time: mean" ;
        swup_lin_trop:time_avg_info = "average_T1,average_T2,average_DT" ;
    float netlw_lin_trop_clr(time, lat, lon) ;
        netlw_lin_trop_clr:long_name = "clear skynet LW flux at linear tropopause" ;
        netlw_lin_trop_clr:units = "watts/m2" ;
        netlw_lin_trop_clr:_FillValue = -999.f ;
        netlw_lin_trop_clr:missing_value = -999.f ;
        netlw_lin_trop_clr:cell_methods = "time: mean" ;
        netlw_lin_trop_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float netlw_200hPa_clr(time, lat, lon) ;
        netlw_200hPa_clr:long_name = "clear skynet LW flux at 200 hPa" ;
        netlw_200hPa_clr:units = "watts/m2" ;
        netlw_200hPa_clr:_FillValue = -999.f ;
        netlw_200hPa_clr:missing_value = -999.f ;
        netlw_200hPa_clr:cell_methods = "time: mean" ;
        netlw_200hPa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_lin_trop_clr(time, lat, lon) ;
        swdn_lin_trop_clr:long_name = "clear skySW flux down at linear tropopause" ;
        swdn_lin_trop_clr:units = "watts/m2" ;
        swdn_lin_trop_clr:_FillValue = -999.f ;
        swdn_lin_trop_clr:missing_value = -999.f ;
        swdn_lin_trop_clr:cell_methods = "time: mean" ;
        swdn_lin_trop_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swdn_200hPa_clr(time, lat, lon) ;
        swdn_200hPa_clr:long_name = "clear skySW flux down at 200 hPa" ;
        swdn_200hPa_clr:units = "watts/m2" ;
        swdn_200hPa_clr:_FillValue = -999.f ;
        swdn_200hPa_clr:missing_value = -999.f ;
        swdn_200hPa_clr:cell_methods = "time: mean" ;
        swdn_200hPa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_lin_trop_clr(time, lat, lon) ;
        swup_lin_trop_clr:long_name = "clear skySW flux up at linear tropopause" ;
        swup_lin_trop_clr:units = "watts/m2" ;
        swup_lin_trop_clr:_FillValue = -999.f ;
        swup_lin_trop_clr:missing_value = -999.f ;
        swup_lin_trop_clr:cell_methods = "time: mean" ;
        swup_lin_trop_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float swup_200hPa_clr(time, lat, lon) ;
        swup_200hPa_clr:long_name = "clear skySW flux up at 200 hPa" ;
        swup_200hPa_clr:units = "watts/m2" ;
        swup_200hPa_clr:_FillValue = -999.f ;
        swup_200hPa_clr:missing_value = -999.f ;
        swup_200hPa_clr:cell_methods = "time: mean" ;
        swup_200hPa_clr:time_avg_info = "average_T1,average_T2,average_DT" ;
    float high_cld_amt(time, lat, lon) ;
        high_cld_amt:long_name = "high cloud amount" ;
        high_cld_amt:units = "percent" ;
        high_cld_amt:_FillValue = 1.e+20f ;
        high_cld_amt:missing_value = 1.e+20f ;
        high_cld_amt:cell_methods = "time: mean" ;
        high_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
    float low_cld_amt(time, lat, lon) ;
        low_cld_amt:long_name = "low cloud amount" ;
        low_cld_amt:units = "percent" ;
        low_cld_amt:_FillValue = 1.e+20f ;
        low_cld_amt:missing_value = 1.e+20f ;
        low_cld_amt:cell_methods = "time: mean" ;
        low_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
    float mid_cld_amt(time, lat, lon) ;
        mid_cld_amt:long_name = "mid cloud amount" ;
        mid_cld_amt:units = "percent" ;
        mid_cld_amt:_FillValue = 1.e+20f ;
        mid_cld_amt:missing_value = 1.e+20f ;
        mid_cld_amt:cell_methods = "time: mean" ;
        mid_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tot_cld_amt(time, lat, lon) ;
        tot_cld_amt:long_name = "total cloud amount" ;
        tot_cld_amt:units = "percent" ;
        tot_cld_amt:_FillValue = 1.e+20f ;
        tot_cld_amt:missing_value = 1.e+20f ;
        tot_cld_amt:cell_methods = "time: mean" ;
        tot_cld_amt:time_avg_info = "average_T1,average_T2,average_DT" ;
    float taubx(time, lat, lon) ;
        taubx:long_name = "x base flux for grav wave drag" ;
        taubx:units = "kg/m/s2" ;
        taubx:_FillValue = -999.f ;
        taubx:missing_value = -999.f ;
        taubx:cell_methods = "time: mean" ;
        taubx:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tauby(time, lat, lon) ;
        tauby:long_name = "y base flux for grav wave drag" ;
        tauby:units = "kg/m/s2" ;
        tauby:_FillValue = -999.f ;
        tauby:missing_value = -999.f ;
        tauby:cell_methods = "time: mean" ;
        tauby:time_avg_info = "average_T1,average_T2,average_DT" ;
    float udt_gwd(time, pfull, lat, lon) ;
        udt_gwd:long_name = "u wind tendency for gravity wave drag" ;
        udt_gwd:units = "m/s2" ;
        udt_gwd:_FillValue = -999.f ;
        udt_gwd:missing_value = -999.f ;
        udt_gwd:cell_methods = "time: mean" ;
        udt_gwd:time_avg_info = "average_T1,average_T2,average_DT" ;
    float vdt_gwd(time, pfull, lat, lon) ;
        vdt_gwd:long_name = "v wind tendency for gravity wave drag" ;
        vdt_gwd:units = "m/s2" ;
        vdt_gwd:_FillValue = -999.f ;
        vdt_gwd:missing_value = -999.f ;
        vdt_gwd:cell_methods = "time: mean" ;
        vdt_gwd:time_avg_info = "average_T1,average_T2,average_DT" ;
    float udt_rdamp(time, pfull, lat, lon) ;
        udt_rdamp:long_name = "u wind tendency for Rayleigh damping" ;
        udt_rdamp:units = "m/s2" ;
        udt_rdamp:_FillValue = -999.f ;
        udt_rdamp:missing_value = -999.f ;
        udt_rdamp:cell_methods = "time: mean" ;
        udt_rdamp:time_avg_info = "average_T1,average_T2,average_DT" ;
    float vdt_rdamp(time, pfull, lat, lon) ;
        vdt_rdamp:long_name = "v wind tendency for Rayleigh damping" ;
        vdt_rdamp:units = "m/s2" ;
        vdt_rdamp:_FillValue = -999.f ;
        vdt_rdamp:missing_value = -999.f ;
        vdt_rdamp:cell_methods = "time: mean" ;
        vdt_rdamp:time_avg_info = "average_T1,average_T2,average_DT" ;
    float qdt_vdif(time, pfull, lat, lon) ;
        qdt_vdif:long_name = "Spec humidity tendency from vert diff" ;
        qdt_vdif:units = "kg/kg/s" ;
        qdt_vdif:_FillValue = -999.f ;
        qdt_vdif:missing_value = -999.f ;
        qdt_vdif:cell_methods = "time: mean" ;
        qdt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
    float tdt_vdif(time, pfull, lat, lon) ;
        tdt_vdif:long_name = "Temperature tendency from vert diff" ;
        tdt_vdif:units = "deg_K/s" ;
        tdt_vdif:_FillValue = -999.f ;
        tdt_vdif:missing_value = -999.f ;
        tdt_vdif:cell_methods = "time: mean" ;
        tdt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
    float udt_vdif(time, pfull, lat, lon) ;
        udt_vdif:long_name = "Zonal wind tendency from vert diff" ;
        udt_vdif:units = "m/s2" ;
        udt_vdif:_FillValue = -999.f ;
        udt_vdif:missing_value = -999.f ;
        udt_vdif:cell_methods = "time: mean" ;
        udt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
    float vdt_vdif(time, pfull, lat, lon) ;
        vdt_vdif:long_name = "Meridional wind tendency from vert diff" ;
        vdt_vdif:units = "m/s2" ;
        vdt_vdif:_FillValue = -999.f ;
        vdt_vdif:missing_value = -999.f ;
        vdt_vdif:cell_methods = "time: mean" ;
        vdt_vdif:time_avg_info = "average_T1,average_T2,average_DT" ;
    double average_DT(time) ;
        average_DT:long_name = "Length of average period" ;
        average_DT:units = "days" ;
        average_DT:_FillValue = 1.e+20 ;
        average_DT:missing_value = 1.e+20 ;

// global attributes:
        :CDI = "Climate Data Interface version 2.0.5 (https://mpimet.mpg.de/cdi)" ;
        :Conventions = "CF-1.6" ;
        :filename = "atmos_month.nc" ;
        :title = "CM2.1p1" ;
        :grid_type = "regular" ;
        :grid_tile = "N/A" ;