Re: vertical interpolation

From: Dennis Shea <shea_at_nyahnyahspammersnyahnyah>
Date: Tue, 29 Sep 2009 16:01:11 -0600

The contributed.ncl "int2p_Wrap" has an interface error.
In addition, it failed to account for the fact the
rightmost dimension would not be a coordinate variable
if the input array is multidimensional.

A replacement file will be sent offline.

Lei Meng wrote:
> Hi,
> I am trying to interpolate OH at pressure levels to a different set
> of pressure levels (from another netCDF file). I used the following
> command line
> oh_out =
> int2p_Wrap(Pin(time|:,lat|:,lon|:,level|:),OH(time|:,lat|:,lon|:,level|:),Pout(time|:,lat|:,lon|:,lev|:),
> linlog)
> An error message " Number of dimensions in parameter (2) of
> (int2p_Wrap) is (4), (1) dimensions were expected". In fact, this
> command line is very similar to example 5
> http://www.ncl.ucar.edu/Document/Functions/Contributed/int2p_Wrap.shtml.
> Any idea on what's wrong with the code? The whole code is copied
> below. Thanks,
> Lei
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~
> ;*************************************************
> ; regrid_1.ncl
> ; this program does vertical interpolation
>
> ;
> ;************************************************
> 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/csm/shea_util.ncl"
> ;************************************************
> begin
> ;************************************************
> ; read in netCDF file
> ;************************************************
> oh1 = addfile("newOH_hinterp.nc","r"); newOH_hinterp is output of
> horizontal interpolation
> oh2 = addfile("oh_2004.nc <http://oh_2004.nc>","r")
>
>
> ; read in OH and other parameters
> OH = oh1->OH ; select variable to ave
> time=oh1->TIME
> lat=oh1->lat
> lon=oh1->lon
> A = oh1->A ; get a coefficiants
> B = oh1->B ; get b coefficiants
> level=oh1->LEVEL
> PSURF = oh1->PSURF ; get pressure
> LEVELP1 =oh1->LEVELP1
>
> ; read in pressure field from oh2
> PS=oh2->PS
> hyam=oh2->hyam
> hybm=oh2->hybm
> P0=oh2->P0
> lev=oh2->lev
>
> OH!3 = "lon"
> OH!2 = "lat"
> OH!1 = "level"
> OH!0 = "time"
> OH&lat=lat
> OH&lon=lon
> OH&level=level
> OH&time=time
>
> P_edge = new((/12,61,64,128/),float)
> Pin = new((/12,60,64,128/),float) ; P at middle point
>
>
> P_edge!3 = "lon"
> P_edge!2 = "lat"
> P_edge!1 = "levelp"
> P_edge!0 = "time"
> P_edge&lat=lat
> P_edge&lon=lon
> P_edge&levelp=LEVELP1
> P_edge&time=time
>
> Pin!3 = "lon"
> Pin!2 = "lat"
> Pin!1 = "level"
> Pin!0 = "time"
> Pin&lat=lat
> Pin&lon=lon
> Pin&level=level
> Pin&time=time
>
>
> do m=0,11
> do l=0,60
> P_edge(m,l,:,:) = A(l) + B(l)*PSURF(m,:,:)
> end do
> end do
> do l=0,59
> Pin(:,l,:,:) = (P_edge(:,l,:,:)+P_edge(:,l+1,:,:))/2.0 ; P at middle
> point
> end do
>
> Pout = new((/12,28,64,128/),float)
> Pout!3 = "lon"
> Pout!2 = "lat"
> Pout!1 = "lev"
> Pout!0 = "time"
> Pout&lat=lat
> Pout&lon=lon
> Pout&lev=lev
> Pout&time=time
> do m=0,11
> do i=0,27
> Pout(m,i,:,:)=hyam(27-i)*P0+hybm(27-i)*PS(m,:,:)
> end do
> end do
>
> oh_out = new((/12,28,64,128/),float)
> linlog = 1
>
> ;do m=0,11
> ; do k=0, 63
> ; do j=0,127
> ; oh_out(m,:,k,j)
> =int2p_Wrap(Pin(m,:,k,j),OH(m,:,k,j),Pout(m,:,k,j),linlog)
> ; end do
> ; end do
> ;end do
>
> oh_out =
> int2p_Wrap(Pin(time|:,lat|:,lon|:,level|:),OH(time|:,lat|:,lon|:,level|:),Pout(time|:,lat|:,lon|:,lev|:),
> linlog)
>
> filo = "newOH_hint_vint.nc"
> system ("rm "+filo) ; remove any pre-existing file
> fo = addfile(filo , "c") ; open output file
> fo_at_title = "OH"
> fo->OH = oh_out; write OH to a file
> fo->PSURF =PSURF;
> fo->A =A
> fo->B =B
> end
>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Sep 29 2009 - 16:01:11 MDT

This archive was generated by hypermail 2.2.0 : Thu Oct 01 2009 - 13:55:31 MDT