Changeset 1836 in lmdz_wrf for trunk/tools/nc_var_tools.py


Ignore:
Timestamp:
Mar 21, 2018, 2:24:47 PM (7 years ago)
Author:
lfita
Message:

Finally working version of 'heavy' matrix pinterp (but not massive !)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/nc_var_tools.py

    r1835 r1836  
    1849718497                        newvarattr['units'] = varattrs[5]
    1849818498                    elif vn == 'WRFt':
    18499                         varin = temp[tlsc]
     18499                        varin = temp[tslc]
    1850018500                        isgeop = False
    1850118501                        varattrs = gen.variables_values('WRFt')
     
    1855018550                              ovarin2[it,:,yini+1:yend+1,:])
    1855118551                        for iz in range(dimz):
    18552                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    18553                               ocosa[tini:tend,yini:yend,:] -                         \
    18554                               varin02[tini:tend,iz,yini:yend,:]*                     \
     18552                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     18553                              ocosa[tini:tend,yini:yend,:] - varin02[:,iz,:,:]*      \
    1855518554                              osina[tini:tend,yini:yend,:]
    1855618555                        isgeop = False
     
    1860418603                              ovarin2[it,:,yini+1:yend+1,:])
    1860518604                        for iz in range(dimz):
    18606                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    18607                               osina[tini:tend,yini:yend,:] +                         \
    18608                               varin02[tini:tend,iz,yini:yend,:]*                     \
     18605                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     18606                              osina[tini:tend,yini:yend,:] + varin02[:,iz,:,:]*      \
    1860918607                              ocosa[tini:tend,yini:yend,:]
    1861018608                        isgeop = False
     
    1875818756                            varin0[it-tend,:,:,:]=0.5*(ovarin[it,:,yini:yend,0:dimx]+\
    1875918757                              ovarin[it,:,yini:yend,1:dimx+1])
    18760                             varin02[it,:,yini:yend,:] =                              \
    18761                               0.5*(ovarin2[it,:,yini:yend,:] +                       \
     18758                            varin02[it-tend,:,:,:] = 0.5*(ovarin2[it,:,yini:yend,:]+ \
    1876218759                              ovarin2[it,:,yini+1:yend+1,:])
    1876318760                        for iz in range(dimz):
    18764                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    18765                               ocosa[tini:tend,yini:yend,:] -                         \
    18766                               varin02[tini:tend,iz,yini:yend,:]*                     \
     18761                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     18762                              ocosa[tini:tend,yini:yend,:] - varin02[:,iz,:,:]*      \
    1876718763                              osina[tini:tend,yini:yend,:]
    1876818764                        isgeop = False
     
    1881618812                              ovarin2[it,:,yini+1:yend+1,:])
    1881718813                        for iz in range(dimz):
    18818                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    18819                               osina[tini:tend,yini:yend,:] +                         \
    18820                               varin02[tini:tend,iz,yini:yend,:]*                     \
     18814                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     18815                              osina[tini:tend,yini:yend,:] + varin02[:,iz,:,:]*      \
    1882118816                              ocosa[tini:tend,yini:yend,:]
    1882218817                        isgeop = False
     
    1897418969                              ovarin2[it,:,yini+1:yend+1,:])
    1897518970                        for iz in range(dimz):
    18976                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    18977                               ocosa[tini:tend,yini:yend,:] -                         \
    18978                               varin02[tini:tend,iz,yini:yend,:]*                     \
     18971                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     18972                              ocosa[tini:tend,yini:yend,:] - varin02[:,iz,:,:]*      \
    1897918973                              osina[tini:tend,yini:yend,:]
    1898018974                        isgeop = False
     
    1902819022                              ovarin2[it,:,yini+1:yend+1,:])
    1902919023                        for iz in range(dimz):
    19030                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    19031                               osina[tini:tend,yini:yend,:] +                         \
    19032                               varin02[tini:tend,iz,yini:yend,:]*                     \
     19024                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     19025                              osina[tini:tend,yini:yend,:] + varin02[:,iz,:,:]*      \
    1903319026                              ocosa[tini:tend,yini:yend,:]
    1903419027                        isgeop = False
     
    1918219175                              ovarin2[it,:,yini+1:yend+1,:])
    1918319176                        for iz in range(dimz):
    19184                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    19185                               ocosa[tini:tend,yini:yend,:] -                         \
    19186                               varin02[tini:tend,iz,yini:yend,:]*                     \
     19177                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     19178                              ocosa[tini:tend,yini:yend,:] - varin02[:,iz,:,:]*      \
    1918719179                              osina[tini:tend,yini:yend,:]
    1918819180                        isgeop = False
     
    1920319195                        # Not pro, but less memory problems!
    1920419196                        for it in range(tini,tend):
    19205                             varin[it,:,:,:] = 0.5*(ovarin[it,:,yini:yend,:] +        \
     19197                            varin[it-tini,:,:,:] = 0.5*(ovarin[it,:,yini:yend,:] +   \
    1920619198                              ovarin[it,:,yini+1:yend+1,:])
    1920719199                        isgeop = False
     
    1923619228                              ovarin2[it,:,yini+1:yend+1,:])
    1923719229                        for iz in range(dimz):
    19238                             varin[:,iz,:,:] = varin0[tini:tend,iz,yini:yend,:]*      \
    19239                               osina[tini:tend,yini:yend,:] +                         \
    19240                               varin02[tini:tend,iz,yini:yend,:]*                     \
     19230                            varin[:,iz,:,:] = varin0[:,iz,:,:]*                      \
     19231                              osina[tini:tend,yini:yend,:] + varin02[:,iz,:,:]*      \
    1924119232                              ocosa[tini:tend,yini:yend,:]
    1924219233                        isgeop = False
Note: See TracChangeset for help on using the changeset viewer.