Changeset 1817 in lmdz_wrf
- Timestamp:
- Mar 19, 2018, 7:04:49 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r1816 r1817 18418 18418 print ' ' + fname + ' interpolating at pressure levels _______' 18419 18419 print ' ', interplevs 18420 tsaid = False 18421 ysaid = False 18420 18422 for vn in varns: 18421 18423 print " '" + vn + "' ..." … … 18520 18522 dimtfrac = 5 18521 18523 varinterp = np.zeros(tuple([dimx,dimy,len(interplevs),dimtfrac]), dtype=np.float) 18522 print warnmsg 18523 print ' ' + fname + ': variable to interpolate:', varin.shape, \ 18524 'too big!!' 18525 print ' p-interpolation will be done by time-slices of 5 time-steps' 18526 print range(0,dimtfrac*int(dimt/dimtfrac),dimtfrac) 18524 if not tsaid: 18525 print warnmsg 18526 print ' ' + fname + ': variable to interpolate:', varin.shape, \ 18527 'too big!!' 18528 print ' p-interpolation will be done by time-slices of 5 time-steps' 18529 print range(0,dimtfrac*int(dimt/dimtfrac),dimtfrac) 18527 18530 else: 18528 18531 dimtfrac = dimt … … 18533 18536 if np.prod([tend-tini+1, dimz, dimx, dimy]) > 150*150*39: 18534 18537 dimyfrac = 50 18535 print warnmsg 18536 print ' ' + fname + ': variable to interpolate:', varin.shape, \ 18537 'too big!!' 18538 print ' p-interpolation will be done by yaxis-slices of 10 grid-points' 18539 print range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac) 18538 if not ysaid: 18539 print warnmsg 18540 print ' ' + fname + ': variable to interpolate:', varin.shape,\ 18541 'too big!!' 18542 print ' p-interpolation will be done by yaxis-slices of', \ 18543 dimyfrac,' 10 grid-points' 18544 print range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac) 18540 18545 for iyy in range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac): 18541 18546 yini = iyy … … 18557 18562 newvar[tini:tend,:,yini:yend,:] = varinterp.transpose() 18558 18563 if dimyfrac != dimy and yend != dimy-1: 18559 print ' finishing time-splitting:', yend, ', ', dimy 18564 if not ysaid: 18565 print ' finishing yaxis-splitting:', yend, ', ', dimy 18566 ysaid = True 18560 18567 varint = varin[tini:tend,:,yend:dimy,:].transpose() 18561 18568 prest = pres[tini:tend,:,yend:dimy,:].transpose() … … 18573 18580 ix=dimx, iy=Ndy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18574 18581 18575 newvar[t end:dimt,:,yend:dimy,:] = varinterpyl.transpose()18582 newvar[tini:tend,:,yend:dimy,:] = varinterpyl.transpose() 18576 18583 else: 18577 18584 varint = varin[tini:tend,:,:,:].transpose() … … 18591 18598 18592 18599 if dimtfrac != dimt and tend != dimt-1: 18593 print ' finishing time-splitting:', tend, ', ', dimt 18600 if not tsaid: 18601 print ' finishing time-splitting:', tend, ', ', dimt 18602 tsaid = True 18594 18603 tini = tend 18595 18604 tend = dimt 18596 18605 if np.prod([dimt-tend+1, dimz, dimx, dimy]) > 150*150*39: 18597 18606 dimyfrac = 50 18598 print warnmsg18599 print ' ' + fname + ': variable to interpolate:', varin.shape, \18600 'too big!!'18601 print ' p-interpolation will be done by yaxis-slices of 10 grid-points'18602 print range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac)18603 18607 for iyy in range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac): 18604 18608 yini = iyy … … 18620 18624 newvar[tini:tend,:,yini:yend,:] = varinterp.transpose() 18621 18625 if dimyfrac != dimy and yend != dimy-1: 18622 print ' finishing time-splitting:', yend, ', ', dimy18623 18626 varint = varin[tini:tend,:,yend:dimy,:].transpose() 18624 18627 prest = pres[tini:tend,:,yend:dimy,:].transpose() … … 18636 18639 ix=dimx, iy=Ndy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18637 18640 18638 newvar[t end:dimt,:,yend:dimy,:] = varinterpyl.transpose()18641 newvar[tini:tend,:,yend:dimy,:] = varinterpyl.transpose() 18639 18642 else: 18640 18643 varint = varin[tend:dimt,:,:,:].transpose()
Note: See TracChangeset
for help on using the changeset viewer.