[ncl-talk] unstagger a C grid (as WRF data)

Alan Brammer abrammer at albany.edu
Thu Sep 25 12:54:03 MDT 2014


Paolina,

I think you're doing more than you need to. Take another look at the
function page (linked below).  The second argument should be a string
either "X", "Y", or "Z".   Your variables already have this info
attached to the variables   "stagger :     Y".

https://www.ncl.ucar.edu/Document/Functions/WRF_arw/wrf_user_unstagger.shtml

Therefore I think you can skip straight from the read in line to the
unstagger line and change the unstagger commands to as below:

  u = *wrf_user_unstagger*(U,U at stagger)


Good luck,

Alan Brammer



On Thu, Sep 25, 2014 at 12:12 PM, Paolina Bongioannini Cerlini <
paolina.cerlini at unipg.it> wrote:

> Hi NCL people,
>
> I have this simple script where I am trying to calculate a divergence
> but I have a staggered C grid. Trying to unstagger the grid ,
> I cannot define correctly the staggered dimensions, as you may see in the
> error:
>
>
> -------------------------------------------------------------------------------------------------------------------
> ;*************************************************
> ; wind_1.ncl
> ;*************************************************
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
> ;*************************************************
> begin
> ;*************************************************
> ; open file and read in data: data are on Arakawa C grid
> ;*************************************************
>   f    =   addfile("rce-bret-2005.net000000.nc","r")
>   U    = f->U(0,0,:,:)
>   V    = f->V(0,0,:,:)
>
>   printVarSummary(U)
>   printVarSummary(V)
>
>   U!0="y"
>   U!1="x_stag"
>   xstag=ispan(1,195,1)
>   U at x_stag=xstag
>   x_stag=U at x_stag
>   V!0="y_stag"
>   V!1="x"
>   V at y_stag=ispan(1,195,1)
>   y_stag=V at y_stag
>
>   u = wrf_user_unstagger(U,x_stag)
>   v = wrf_user_unstagger(V,y_stag)
>   printVarSummary(u)
>   printVarSummary(v)
>
> ;*************************************************
> ; calculate divergence: Use Wrap to include meta data
> ;*************************************************
>   div = uv2dvG_Wrap(u,v)       ; u,v ==> divergence
>
> ;*************************************************
> ; calculate divergent wind components
> ;*************************************************
>   ud    = new ( dimsizes(u), typeof(u), u at _FillValue )
>   vd    = new ( dimsizes(v), typeof(v), v at _FillValue )
>
>   dv2uvg(div,ud,vd) ; div  ==> divergent  wind components
>
>   copy_VarCoords(u, ud )
>   copy_VarCoords(u, vd )
>   ud at long_name  = "Zonal Divergent Wind"
>   ud at units      = u at units
>   vd at long_name  = "Meridional Divergent Wind"
>   vd at units      = v at units
> ;*************************************************
> ; plot results
> ;*************************************************
>   wks  = gsn_open_wks("ps","wind")            ; open a workstation
>
>   res                 = True
>   res at vcRefMagnitudeF = 3.                    ; make vectors larger
>   res at vcRefLengthF    = 0.050                 ; reference vector length
>   res at vcGlyphStyle    = "CurlyVector"         ; turn on curly vectors
>   res at vcMinDistanceF  = 0.012                 ; thin the vectors
>
>   res at gsnLeftString   = "Divergent Wind"
>                                               ; plot 1st time step
>   plot= gsn_csm_vector_map_ce(wks,ud(0,:,:),vd(0,:,:),res)
>
> end
>
> --------------------------------------------------------------------------------------
> I get this error:
> Variable: U
> Type: float
> Total Size: 151320 bytes
>             37830 values
> Number of Dimensions: 2
> Dimensions and sizes:   [y | 194] x [x_stag | 195]
> Coordinates:
>             x_stag: [-3000..579000]
> Number Of Attributes: 5
>   Time :        3600
>   standard_name :       x_wind
>   long_name :   U-velocity
>   units :       m s-1
>   stagger :     X
>
> Variable: V
> Type: float
> Total Size: 151320 bytes
>             37830 values
> Number of Dimensions: 2
> Dimensions and sizes:   [y_stag | 195] x [x | 194]
> Coordinates:
>             y_stag: [-3000..579000]
> Number Of Attributes: 5
>   Time :        3600
>   standard_name :       y_wind
>   long_name :   V-velocity
>   units :       m s-1
>   stagger :     Y
> warning:Argument 1 of the current function or procedure was coerced to the
> appropriate type and thus will not change if the function or procedure
> modifies its value
> fatal:Conditional statements (if and do while) require SCALAR logical
> values, see all and any functions
> fatal:["Execute.c":8567]:Execute: Error occurred at or near line 536 in
> file $NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl
>
> fatal:["Execute.c":8567]:Execute: Error occurred at or near line 29 in
> file wind_1.ncl
>
>
> -------------------------------------------------------------------------------------------------------------
> Thank you.
>
> paolina
> --
> --
> Dr. Paolina Bongioannini Cerlini Ph.D.
> University of Perugia
> Dip.to Ingegneria
> CIRIAF -room 8
> Via G. Duranti, 67
> 06125 - Perugia
>
> Tel.+39 075 585 3576
> Fax +39 075 585 3697
> e-mail: paolina.cerlini at unipg.it
>         paolina.cerlini at fisica.unipg.it
> cell.:+39 3405761980
> --
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20140925/6bf74483/attachment.html 


More information about the ncl-talk mailing list