[ncl-talk] WRAPIT and _FillValue

jbuzan jbuzan at purdue.edu
Mon Sep 15 18:43:03 MDT 2014


Thanks Dennis,

I’ll try to get this to work! 

-Jonathan


On Sep 15, 2014, at 8:29 PM, Dennis Shea <shea at ucar.edu> wrote:

> [1]  Tk has _FillValue=1d36 ... you do not need 'where', just
> 
>       tk at _FillValue = -999.0d0    ; change _FillValue [all 1d39 => -999.0]
> 
>       Under the hood, the above basically does
> 
>        Tk = where(ismissing(Tk),-999.d,Tk)
> 
> [2]
> I'd do the whole thing in fortran ... (here f77) ... maybe som
> 
>        tc = new( (/ntim,nlat,mlon/), typeof(tk), valuec)
> 
> NCLFORTSTART
>       subroutine spitoutx(ntim,nlat,mlon,valuek,tk,valuec,tc)
>       implicit none
> C                                                  ! INPUT
>       integer ntim,nlat,mlon
>       double precision tk(mlon,nlat,ntim), valuek, valuec
> C                                                  ! OUTPUT
>       double precision tc(mlon,nlat,ntim)
> C                                                  ! LOCAL
>       integer  nt, nl, ml
> 
>       do nt=0,ntim-1
>          do nl=0,nlat-1
>             do ml=0,mlon-1
> 
>                  tc(ml,nl,ny) = valuec
>                  if (tk.ne.valuek) then
>                      call spitout(tk(ml,nl,nt), tc(ml,nl,nt), )                 
>                  end if
> 
>             end do
>          end do
>      end do
> 
> On Mon, Sep 15, 2014 at 12:54 PM, jbuzan <jbuzan at purdue.edu> wrote:
> Hi ncl-talk,
> 
> I am working a lot with WRAPIT, and the datasets that I am using have a lot of _FillValues.  I am jumping through hoops and it is really slowing my through put down.
> The Fortran Code is designed for single grid cells, so I am using ncl loops and an IF THEN statement.
> 
> for example:
> value = 1d36
> delete(Tk at _FillValue)
> Tk = where(Tk.eq.1d36,-999.d,Tk)
>>       do k = 0, dimsizes(timet)-1
>          if (Tk(k,i,j).eq.-999.d) then
>             Tc(k,i,j) = value
>          else
>             SPITITOUT::spitout(Tk(k,i,j), Tc(k,i,j))
>          end if
>       end do
>> Tc at _FillValue = value
> 
> 
> Is there a better way to deal with _FillValues?
> 
> Thanks,
> 
> -Jonathan
> _______________________________________________
> 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/20140915/830d34cb/attachment.html 


More information about the ncl-talk mailing list