[ncl-talk] Saving calculated WRF variable to netcdf file
Dennis Shea
shea at ucar.edu
Sat Feb 29 08:04:37 MST 2020
The following are NOT appropriate for WRF data (curvilinear grid). Delete
these lines
thetae!1 = "lev"
thetae!2 = "lat"
thetae!3 = "lon"
=========================
[SNIP]
************************************************
;Get the lat lon and pressure level
;************************************************
lat = wrf_user_getvar(nc_file, "XLAT",-1)
lon = wrf_user_getvar(nc_file, "XLONG",-1)
lev = wrf_user_getvar(nc_file, "pressure",-1)
;***********************************************
; save to a netcdf file
;***********************************************
diro = "./"
filo = "Thetae_G3D_Thomp_ACM2.nc"
ptho = diro+filo
system("/bin/rm -f "+ptho)
ncdf = addfile(ptho,"c")
fAtt = True
fAtt at title = "Equivalent Potential Temperature"
fAtt at source_file = "WRF G3D_Thompson_ACM2"
fAtt at Conventions = "None"
fAtt at creation_date = systemfunc("date")
fileattdef(ncdf,fAtt) ; copy file attributes
filedimdef(ncdf,"time",-1,True) ; <== ???? is there a dimension named
'time' ?
ncdf->THETAE = thetae
ncdf->XLAT= lat
ncdf->XLONG = lon
ncdf->LEV = lev
On Sat, Feb 29, 2020 at 2:17 AM Lyndz via ncl-talk <ncl-talk at ucar.edu>
wrote:
> Dear NCL-Experts,
>
> *[Problem]*
> I am calculating equivalent potential temperature (thetae) from a wrfout
> file and save the variable to netcdf file.
>
> I am calculating theta using the wrf_eth function instead of the
> wrf_user_getvar.
> I cant figure out how to save the calculated thetae with the correct lat
> lon and pressure level.
> Although there is no error in the script, I cant process the output file
> (i.e., still non-cdf compliant).
>
> Any suggestions on how I can fix this in NCL?
>
> *[What I have so far]*
> My script is as follows:
>
>
> ,**************************************************************************************
> ;This file calculates the equivalent potential temperature from a wrfout
> file
>
> ;**************************************************************************************
>
> begin
> nc_file = addfile("../WRF-4.0.3/test/em_real/G3D_Thompson_ACM2_120s/
> wrfout_d01_2017-01-12_00_00_00.nc","r")
> T = nc_file->T
> P = nc_file->P
> PB = nc_file->PB
> qv = nc_file->QVAPOR
>
> T = T + 300. ; potential temperature in K.
> P = P + PB ; full pressure in Pa.
> tk = wrf_tk( P , T ) ; temperature in K.
> thetae = wrf_eth ( qv, tk, P )
>
> ;************************************************
> ;Get the lat lon and pressure level
> ;************************************************
> lat = wrf_user_getvar(nc_file, "XLAT",-1)
> lon = wrf_user_getvar(nc_file, "XLONG",-1)
> lev = wrf_user_getvar(nc_file, "pressure",-1)
>
> ;************************************************
> ;lev= bottom to top; lon = east to west; lat = south to north
> '************************************************
> thetae!1 = "lev"
> thetae!2 = "lat"
> thetae!3 = "lon"
>
> ;***********************************************
> ; save to a netcdf file
> ;***********************************************
> diro = "./"
> filo = "Thetae_G3D_Thomp_ACM2.nc"
> ptho = diro+filo
> system("/bin/rm -f "+ptho)
> ncdf = addfile(ptho,"c")
>
> fAtt = True
> fAtt at title = "Equivalent Potential Temperature"
> fAtt at source_file = "WRF G3D_Thompson_ACM2"
> fAtt at Conventions = "None"
> fAtt at creation_date = systemfunc("date")
> fileattdef(ncdf,fAtt) ; copy file attributes
> filedimdef(ncdf,"time",-1,True)
> ncdf->thetae = thetae
> ncdf->lat = lat
> ncdf->lon = lon
> ncdf->lev = lev
> end
>
> Sincerely,
> Lynds
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> 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/20200229/92cd4fc0/attachment.html>
More information about the ncl-talk
mailing list