[ncl-talk] Temp advection, wrf_contour fails

Mary Haley haley at ucar.edu
Tue Apr 19 16:21:34 MDT 2016


Hi Ryan,

That makes sense why you can't upgrade.

As for the "inf", this is definitely an issue. To further determine where
the problem is, I suggest doing a printMinMax on the individual variables
in the calculation:

  printMinMax(dTdx,0)
  printMinMax(dTdy,0)

  etc.

You may want to do this on every variable that you are getting with
"wrf_user_getvar" to make sure those all look okay.

If it looks like center_finite_diff is the issue, then revisit the
documentation to make sure all the input parameters are being input
correctly:

http://www.ncl.ucar.edu/Document/Functions/Built-in/center_finite_diff.shtml

--Mary

On Tue, Apr 19, 2016 at 3:53 PM, Ryan Connelly <rconne01 at gmail.com> wrote:

> Hi Mary,
>
> I use NCL that's installed on a shared server where WRF is configured.  I
> don't suspect I have permissions to remove an old version.  I recently
> updated to 6.3.0 on my local machine, but then I have to copy the wrfout
> over, which is a bit time-consuming since I'm running a triple nest down to
> 1.333 km!  :O
>
> These extra commands that you suggested certainly give a clue that I'm not
> calculating things right:
>
> Variable: temp_adv
> Type: float
> Total Size: 396772 bytes
>             99193 values
> Number of Dimensions: 2
> Dimensions and sizes: [281] x [353]
> Coordinates:
> Number Of Attributes: 1
>   _FillValue : 9.96921e+36
> (0) min=-inf   max=inf
>
>
> 281x353 is my grid size, so that's good, but the infinities probably are
> not...
>
> Thanks,
> Ryan
>
> On Tue, Apr 19, 2016 at 10:38 AM, Mary Haley <haley at ucar.edu> wrote:
>
>> Hi Ryan,
>>
>> Is there a reason why you don't want to upgrade from V6.1.2? The version
>> you have is over 3 years old.
>>
>> I can't be sure of why your temp_adv variable is not plotting, without
>> actually being able to run the script.
>>
>> However, rather than printing the whole temp_adv array, what does the
>> following report:
>>
>> printVarSummary(temp_adv)
>> printMinMax(temp_adv,0)
>>
>> Sometimes this will give you a clue where the problem is, for example,
>> your min/max values are off scale, or the size of the array is not what you
>> were expecting.
>>
>> You can also try plotting temp_adv with a basic contour plot call:
>>
>>     plot = gsn_csm_contour(wks,temp_adv,False)
>>
>> just to make sure that the problem isn't with wrf_contour itself.
>>
>> --Mary
>>
>>
>> On Mon, Apr 18, 2016 at 12:49 PM, Ryan Connelly <rconne01 at gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> Running 6.1.2, so can't use advect_variable without upgrading.  So
>>> instead I have...
>>>
>>> ;do it = 12,30,3             ; TIME LOOP
>>>   do it = 12,13,1
>>>
>>>     print("Working on time: " + times(it) )
>>>     res at TimeLabel = times(it)   ; Set Valid time to use on plots
>>>
>>>
>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>> ; First get the variables we will need
>>>
>>>     tc = wrf_user_getvar(a,"tc",it)      ; 3D tc
>>>     td = wrf_user_getvar(a,"td",it)      ; 3D td
>>>     u  = wrf_user_getvar(a,"ua",it)      ; 3D U at mass points
>>>     v  = wrf_user_getvar(a,"va",it)      ; 3D V at mass points
>>>     p  = wrf_user_getvar(a, "pressure",it) ; pressure is our vertical
>>> coordinate
>>>     z  = wrf_user_getvar(a,"z",it)       ; Full model height in meters
>>>        z_dec = z/10.                     ; Height in decameters
>>>     lon = wrf_user_getvar(a,"lon",it)
>>>     lat = wrf_user_getvar(a,"lat",it)
>>>
>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>> ; Interpolate to isobaric planes
>>>
>>>       pressure = 850.
>>>
>>>       tc_plane = wrf_user_intrp3d(tc,p,"h",pressure,0.,False)
>>>       z_plane  = wrf_user_intrp3d(z_dec,p,"h",pressure,0.,False)
>>>       u_plane  = wrf_user_intrp3d( u,p,"h",pressure,0.,False)
>>>       v_plane  = wrf_user_intrp3d( v,p,"h",pressure,0.,False)
>>>
>>>
>>> ; Define variables needed to calculate temp advection
>>>
>>>       dTdx = center_finite_diff_n(tc_plane,lon,False,0,0)
>>>       dTdy = center_finite_diff_n(tc_plane,lat,False,0,0)
>>>
>>>       temp_adv = u_plane*dTdx + v_plane*dTdy
>>>
>>>       print(temp_adv)
>>>
>>>
>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>>
>>>     ; Plotting options for Tc
>>>       opts = res
>>>       print("Defined ops")
>>>       opts at cnFillOn = True
>>>       print("Turned fill on")
>>>       opts at cnLabelMasking = True
>>>       opts at cnInfoLabelOn = False
>>>       opts at cnLineLabelPerimOn = False
>>>       opts at ContourParameters = (/ -60., 60., 3./)
>>>       print("Accepted contour parameters")
>>>       ;opts at gsnSpreadColorEnd = -3  ; End third from the last color in
>>> color map
>>>       contour_tc = wrf_contour(a,wks,temp_adv,opts) ; <- Breaks right
>>> here
>>>       print("wrf_contour called")
>>>       delete(opts)
>>>       print("opts deleted")
>>>
>>>       print("Got past plotting options for Tc")
>>>
>>>
>>> ; MAKE PLOTS
>>>       ;plot =
>>> wrf_map_overlays(a,wks,(/contour_tc,contour_td,contour_z/),pltres,mpres)
>>>       plot = wrf_map_overlays(a,wks,(/contour_tc/),pltres,mpres)
>>>       ;plot = wrf_map_overlays(a,wks,(/contour_td,vector/),pltres,mpres)
>>>
>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>>
>>>   end do        ; END OF TIME LOOP
>>>
>>>
>>> When it prints out the full grid of temp_adv, or random indexes of the
>>> array, I get reasonable values and no reason to suspect the grid is
>>> undefined anywhere.  Yet as you can see from my print statements, the call
>>> to wrf_contour fails.  It does not throw an error; it just hangs up.  I
>>> checked with just tc_plane instead, and that completed fine, so it has to
>>> be an issue with the temp_adv grid I calculated.
>>>
>>> Thanks,
>>> Ryan
>>>
>>> --
>>> Ryan Connelly
>>> M.S. Student in Atmospheric Sciences, Stony Brook University
>>> B.S. in Meteorology with Minors in Mathematics and GIS, Valparaiso
>>> University
>>> rconne01 at gmail.com
>>> ryan.connelly at stonybrook.edu
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>
>
> --
> Ryan Connelly
> M.S. Student in Atmospheric Sciences, Stony Brook University
> B.S. in Meteorology with Minors in Mathematics and GIS, Valparaiso
> University
> rconne01 at gmail.com
> ryan.connelly at stonybrook.edu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20160419/6c992715/attachment.html 


More information about the ncl-talk mailing list