Re: Convert ECMWF 60 levels Hybrid model levels to pressure levels

From: Jui-Lin Li (Jui-Lin.Li-122115 AT jpl.nasa.gov)
Date: Wed Mar 02 2005 - 11:49:09 MST

  • Next message: Rubash & Kilanowski: "cannot find -lhlu"

    Hi Dennis,

    The data I got from ECMWF is from cycle 28r1 and 28r3.

    The model vertical coordinate and A, B can be found at:

    http://www.ecmwf.int/products/data/technical/model_levels/model_def_60.html

    P(half)=A+B * P(surface)

    and

    P(interface) = ((p(up_half) + p(low_half) )/2

    Sorry to ask this again;

    Am I right to use vinth2p with EC's A (i.e.,hyam) and B(hybm), with top-to-bottom re-ordering, I only need to set p0mb = 1,
    rather than 1000mb, and psurf is the surface (hPa) to convert a EC variable "temp"
    from EC's hybrid coordinate to pressure level defined from lev_p as followed:

    Tp=vinth2p (temp, hyam, hybm, lev_p, psurf(0,:,:), intyp, p0mb, 1, False )

    Many thanks,

    Frank

     

    ----- Original Message -----
    From: Dennis Shea <shea@cgd.ucar.edu>
    Date: Wednesday, March 2, 2005 8:08 am
    Subject: Re: Convert ECMWF 60 levels Hybrid model levels to pressure levels

    > Hello,
    >
    > >I have ECMWF model level data set and would like to convert it to
    > pressure
    > level. I am trying to use vinth2p function. I know this function
    > is for CCSM
    > coordinate with p = AP+ BP(i,j)
    >
    > Are you talking about the ERA40 Reanalysis archive?
    >
    > There are several parts to this response:
    >
    > [1] ------------------------------------------------
    >
    > >
    > >May I ask can I use this function to convert ECMWF coordinate?
    > >Can I use vinth2p for this purpose?
    > >
    >
    > yes but note that this function was based upon the
    > vertical ordering used by the NCAR atmospheric model .. top-to-bottom.
    >
    > >What I am trying is to use function vinth2p with EC's A and B but
    > set p0mb = 1,
    > rather than 1000mb, and pp is the surface (hPa) to convert a EC
    > variable "temp"
    > from its hybrid coordinate to pressure level as followed:
    > >
    > > vinth2p (temp, hyam, hybm, lev_p, pp(0,:,:), intyp, p0mb, 1,
    > False )
    > >
    >
    > Tp = vinth2p (temp, hyam, hybm, lev_p, pp(0,:,:), intyp, p0mb, 1,
    > False )
    > for Tp at the initial time only ==>Tp(lev_p,lat,lon)
    >
    > Tp = vinth2p (temp, hyam, hybm, lev_p, pp, intyp, p0mb, 1, False )
    > for Tp at all times ==>Tp(time,lev_p,lat,lon)
    >
    > printVarSummary(Tp)
    >
    > So ... YES ... NCL can be (and has been) used to do this.
    >
    > ============
    > [2] I forwarded your question to NCAR's Data Support Section (DSS).
    > The response has been posted to ncl-talk.
    > ==============
    > [3] The dataset produced by DSS are in GRIB format. DSS does
    > this to minimize file size.
    >
    > NCL can read these directly. Let's say there are
    > a number of files in some directory; further,
    > they all begin with U*
    >
    > dirg = "./" ; directory where GRIB file reside
    > filg = systemfunc("cd "+dirg +"; ls U*) ; grib file names
    > nfil = dimsizes(filg) ; number of files
    >
    > do nf=0,nfil-1
    > f = addfile (dirg+fil(nf)+".grb", "r") ; extension
    > identifies the
    > ; file as a GRIB file
    > ;print(f) ; view file contents
    > z = f->Z_GDS4_ISBL
    >
    > :
    > end do
    > ================
    > [4] If you *need* to make netCDF files, I can send you an
    > NCL script that will convert GRIB to netCDF.
    >
    > ================
    > Good luck
    >
    >
    >
    >
    >
    >
    >

    _______________________________________________
    ncl-talk mailing list
    ncl-talk@ucar.edu
    http://mailman.ucar.edu/mailman/listinfo/ncl-talk



    This archive was generated by hypermail 2b29 : Wed Mar 02 2005 - 14:31:00 MST