[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