[ncl-talk] Slow code

Michael Notaro mnotaro at wisc.edu
Tue Jan 12 07:35:28 MST 2016


Does anyone have a recommendation to speed up my code?

It's been running for a day now.  I put asterisks next to the real slow loop.

Basically, that part is converting a large array of hourly data into daily data.

Thanks, Michael



mns=(/"01","02","03","04","05","06","07","08","09","10","11","12"/)

ndays=(/31,28,31,30,31,30,31,31,30,31,30,31/)


data=new((/141,217,20,12,744/),float) ; hourly data

data at _FillValue=1e+35

data=1e+35


cnt=0

do iyr=0,19

  do im=0,11

    prefix=(1980+iyr)+""+mns(im)

    b=addfile("/volumes/data1/yafang/Downscaling/ACCESS1-0/historical/output/ACCESS_SRF."+(1980+iyr)+""+mns(im)+"0100.nc","r") ; read hourly SRF data

    iy=b->iy

    jx=b->jx

    xlat=b->xlat

    xlon=b->xlon

    snow=b->snv ; liquid equiv of snow on ground

    dims=dimsizes(snow)

    nt=dims(0)

    data(:,:,iyr,im,0:nt-1)=snow(iy|:,jx|:,time|:)

    delete(snow)

    delete(b)

    delete(dims)

    cnt=cnt+1

  end do

end do

data at _FillValue=1e+20


daily=new((/141,217,20,12,31/),float) ; daily data per month

daily at _FillValue=1e+35

daily=1e+35


cnt=0

do id=0,30

  daily(:,:,:,:,id)=dim_avg(data(:,:,:,:,cnt:cnt+23)) ; convert hourly to daily data     ***** THIS PART IS SLOW *****

  cnt=cnt+24

end do


delete(data)





Michael Notaro
Associate Director
Nelson Institute Center for Climatic Research
University of Wisconsin-Madison
Phone: (608) 261-1503
Email: mnotaro at wisc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20160112/fd03b728/attachment.html 


More information about the ncl-talk mailing list