Changeset 481 for trunk/SRC


Ignore:
Timestamp:
12/17/12 11:30:19 (12 years ago)
Author:
smasson
Message:

add more flexibility in imoms3 interpolation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SRC/Interpolation/compute_fromreg_imoms3_weigaddr.pro

    r372 r481  
    8484; alon is it regularly spaced? 
    8585  step = alon-shift(alon, 1) 
    86   step[0] = step[0] + 360. 
    87   IF total((step-step[0]) GE 1.e-6) NE 0 THEN noregx = 1 
     86  step = step[1:jpia-1L] 
     87  IF total(abs(step-step[0]) GE 1.e-6) NE 0 THEN noregx = 1 
    8888; we extend the longitude range of alon (-> easy interpolation even 
    8989; near minalon and maxalon) 
    90   toadd = 10*jpia/360+1 
    91   alon = [alon[jpia-toadd:jpia-1]-360., alon[*], alon[0:toadd-1]+360.] 
    92   jpia = jpia+2*toadd 
     90  IF max(step)*(jpia+1) GE 360 THEN BEGIN ; if we are really periodic 
     91    toadd = 10*jpia/360+1 
     92    alon = [alon[jpia-toadd:jpia-1]-360., alon[*], alon[0:toadd-1]+360.] 
     93    jpia = jpia+2*toadd 
     94  ENDIF ELSE toadd = 0L 
    9395; alat 
    9496  revy = alat[0] GT alat[1] 
     
    99101  step = alat-shift(alat, 1) 
    100102  step = step[1:jpja - 1L] 
    101   IF total((step-step[0]) GE 1.e-6) NE 0 THEN noregy = 1 
     103  IF total(abs(step-step[0]) GE 1.e-6) NE 0 THEN noregy = 1 
    102104; 
    103105  if keyword_set(nonorthernline) then BEGIN 
     
    174176      IF i MOD 10000 EQ 0 THEN print, i 
    175177      newlat = spl_incr(alat[ilat[i]-1L:ilat[i]+2L], [-1., 0., 1., 2.], olat[short[i]]) 
    176       IF newlat LE 0 THEN stop 
     178      IF newlat LT 0 THEN stop 
    177179      IF newlat GT 1 THEN stop 
    178180      wy0[i] = imoms3(newlat+1) 
     
    217219      IF i MOD 10000 EQ 0 THEN print, i 
    218220      newlon = spl_incr(alon[ilon[i]-1L:ilon[i]+2L], [-1., 0., 1., 2.], olon[short[i]]) 
    219       IF newlon LE 0 THEN stop 
    220       IF newlon GT 1 THEN stop 
     221      IF newlon LT 0 THEN stop 
     222      IF newlon GE 1 THEN stop 
    221223      wx0[i] = imoms3(newlon+1) 
    222224      wx1[i] = imoms3(newlon) 
     
    345347        IF i MOD 10000 EQ 0 THEN print, i 
    346348        newlon = spl_incr(alon[ilon[i]-1L:ilon[i]+2L], [-1., 0., 1., 2.], olon[short[i]]) 
    347         IF newlon LE 0 THEN stop 
    348         IF newlon GT 1 THEN stop 
     349        IF newlon LT 0 THEN stop 
     350        IF newlon GE 1 THEN stop 
    349351        wx0[i] = imoms3(newlon+1) 
    350352        wx1[i] = imoms3(newlon) 
     
    427429        IF i MOD 10000 EQ 0 THEN print, i 
    428430        newlon = spl_incr(alon[ilon[i]-1L:ilon[i]+2L], [-1., 0., 1., 2.], olon[short[i]]) 
    429         IF newlon LE 0 THEN stop 
    430         IF newlon GT 1 THEN stop 
     431        IF newlon LT 0 THEN stop 
     432        IF newlon GE 1 THEN stop 
    431433        wx0[i] = imoms3(newlon+1) 
    432434        wx1[i] = imoms3(newlon) 
     
    493495        IF i MOD 10000 EQ 0 THEN print, i 
    494496        newlon = spl_incr(alon[ilon[i]-1L:ilon[i]+2L], [-1., 0., 1., 2.], olon[short[i]]) 
    495         IF newlon LE 0 THEN stop 
    496         IF newlon GT 1 THEN stop 
     497        IF newlon LT 0 THEN stop 
     498        IF newlon GE 1 THEN stop 
    497499        wx0[i] = imoms3(newlon+1) 
    498500        wx1[i] = imoms3(newlon) 
Note: See TracChangeset for help on using the changeset viewer.