Changeset 1178 in lmdz_wrf for trunk/tools


Ignore:
Timestamp:
Oct 11, 2016, 6:26:01 PM (9 years ago)
Author:
lfita
Message:

Testing and fixing `npp' wrong minimum values for mindifflonlat

Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/module_ForInterpolate.F90

    r1173 r1178  
    739739  REAL(r_k)                                              :: mindiffLl, dist
    740740  REAL(r_k), DIMENSION(idimx,idimy)                      :: difflonlat
    741   REAL(r_k), DIMENSION(2)                                :: extremelon, extremelat
     741  REAL(r_k), DIMENSION(2)                                :: extremelon, extremelat, ipos
    742742  INTEGER, DIMENSION(2)                                  :: iLl
    743743  CHARACTER(LEN=50)                                      :: fname
     
    797797            ix = INT(outLlw(1,iv,i,j))
    798798            iy = INT(outLlw(2,iv,i,j))
    799             dist = SQRT( (projlon(i,j)-inlonv(ix,iy))**2 + (projlat(i,j)-inlatv(ix,iy))**2 )
     799            dist = SQRT( (projlon(i,j)-inlonv(ix,iy))**2. + (projlat(i,j)-inlatv(ix,iy))**2. )
    800800            IF ( dist /= 0.) THEN
    801801              outLlw(3,iv,i,j) = 1./dist
     
    814814          difflonlat = SQRT((projlon(i,j)-inlonv)**2. + (projlat(i,j)-inlatv)**2.)
    815815          mindiffLl = MINVAL(difflonlat)
    816           outLlw(1:2,1,i,j) = index2DArrayR(difflonlat, idimx, idimy, mindiffLl)
     816          ipos = index2DArrayR(difflonlat, idimx, idimy, mindiffLl)
     817          outLlw(1:2,1,i,j) = ipos
    817818          outLlw(3,1,i,j) = 1.
     819          ix = outLlw(1,1,i,j)
     820          iy = outLlw(2,1,i,j)
     821          PRINT *,i,j,projlon(i,j),projlat(i,j),':',mindiffLl,'!',outLlw(1:2,1,i,j),'|',inlonv(ix,iy), &
     822            inlatv(ix,iy), '<>', MINVAL(inlonv), MINVAL(inlatv)
     823          IF (i > 1) THEN
     824            PRINT *,inlonv(1,1),inlatv(1,1),':',index2DArrayR(inlonv, idimx, idimy, MINVAL(inlonv))
     825            STOP
     826          END IF
    818827        END DO
    819828      END DO
     
    902911  REAL(r_k), DIMENSION(idimx,idimy), INTENT(in)          :: inlonv, inlatv
    903912  CHARACTER(LEN=50), INTENT(in)                          :: intkind
    904   REAL(r_k), DIMENSION(pdimx,pdimy,d3), INTENT(in)       :: var3Din
     913  REAL(r_k), DIMENSION(idimx,idimy,d3), INTENT(in)       :: var3Din
    905914  REAL(r_k), DIMENSION(pdimx,pdimy,d3), INTENT(out)      :: varout
    906915
  • trunk/tools/nc_var_tools.py

    r1177 r1178  
    1590015900            quit(-1)
    1590115901   
     15902    # Checking right lon, lat ranges
     15903    iminlon = np.min(ilonvals)
     15904    imaxlon = np.max(ilonvals)
     15905    rminlon = np.min(rlonvals)
     15906    rmaxlon = np.max(rlonvals)
     15907
     15908    if np.abs(imaxlon - rmaxlon) > 100.:
     15909        print warnmsg
     15910        print '  ' + fname + ': reshaping longitudes!'
     15911        print '    input maximum lon:', imaxlon   
     15912        print '    target maximum lon:', rmaxlon   
     15913        print '    shifting input longitudes...'
     15914        if rmaxlon > 180.:
     15915            ilonvals = np.where(ilonvals < 0., ilonvals + 360., ilonvals)
     15916        else:
     15917            ilonvals = np.where(ilonvals > 180., ilonvals - 360., ilonvals)
     15918
    1590215919    idx = ilonvals.shape[1]
    1590315920    idy = ilonvals.shape[0]
Note: See TracChangeset for help on using the changeset viewer.