Changeset 2268 in lmdz_wrf for trunk/tools


Ignore:
Timestamp:
Dec 26, 2018, 11:16:17 PM (6 years ago)
Author:
lfita
Message:

Getting there ...

Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/module_scientific.f90

    r2267 r2268  
    49414941    IMPLICIT NONE
    49424942
    4943     INTEGER, INTENT(in)                                  :: dxA, dyA, NAvertexAma, dxB, dyB,          &
     4943    INTEGER, INTENT(in)                                  :: dxA, dyA, NAvertexmax, dxB, dyB,          &
    49444944      NBvertexmax, dxyB
    49454945    REAL(r_k), DIMENSION(dxA,dyA), INTENT(in)            :: xCAvals, yCAvals
     
    49504950    INTEGER, DIMENSION(dxA,dyA), INTENT(out)             :: Ngridsin
    49514951    INTEGER, DIMENSION(dxA,dyA,dxyB,2), INTENT(out)      :: gridsin
    4952     REAL(r_k), DIMENSION(dxA,dyA,Ngridsin), INTENT(out)  :: percentages
     4952    REAL(r_k), DIMENSION(dxA,dyA,dxyB), INTENT(out)      :: percentages
    49534953
    49544954! Local
    49554955   INTEGER                                               :: iv, ix, iy
    49564956   INTEGER                                               :: Nvertex, NvertexAgrid, Ncoin, Nsort
     4957   INTEGER, ALLOCATABLE, DIMENSION(:,:)                  :: poinsin
    49574958   CHARACTER(len=20)                                     :: DS
    49584959   REAL(r_k)                                             :: areapoly, areagpoly, totarea, totpercent
    4959    REAL(r_k), ALLOCATABLE, DIMENSION(:,:)                :: vertexgrid, poinsin
     4960   REAL(r_k), ALLOCATABLE, DIMENSION(:,:)                :: vertexgrid
    49604961
    49614962!!!!!!! Variables
     
    49754976    fname = 'spacepercen'
    49764977
    4977     DO ix = 1, dimxA
    4978       DO iy = 1, dimyA
     4978    DO ix = 1, dxA
     4979      DO iy = 1, dyA
    49794980
    49804981      ! Getting grid vertices
     
    49904991      vertexgrid(:,2) = yBAvals(ix,iy,1:Nvertex)
    49914992 
    4992       CALL grid_within_polygon(Nvertex, vertexgrid, dxB, dyB, dxB*dyB, xBCvals, yBCvals, NBvertexmax, &
     4993      CALL grid_within_polygon(Nvertex, vertexgrid, dxB, dyB, dxB*dyB, xCBvals, yCBvals, NBvertexmax, &
    49934994        xBBvals, yBBvals, Ngridsin(ix,iy), gridsin(ix,iy,:,:))
    4994       IF (ALLOCATE(poinsin)) DEALLOCATE(poinsin)
     4995      IF (ALLOCATED(poinsin)) DEALLOCATE(poinsin)
    49954996      ALLOCATE(poinsin(Ngridsin(ix,iy),2))
    49964997
    49974998      DO iv=1, Ngridsin(ix,iy)
    4998         poinsin(i,1) = gridsin(ix,iy,iv,1)
    4999         poinsin(i,2) = gridsin(ix,iy,iv,2)
     4999        poinsin(iv,1) = gridsin(ix,iy,iv,1)
     5000        poinsin(iv,2) = gridsin(ix,iy,iv,2)
    50005001      END DO
    50015002
     
    50065007    END DO
    50075008
     5009  END SUBROUTINE spacepercen
     5010
    50085011END MODULE module_scientific
  • trunk/tools/nc_var_tools.py

    r2267 r2268  
    2734027340            ovarybnds = oncref.variables[refvarybndsn]
    2734127341
    27342             refvarx, dims = SliceVarDict(ovarx,slicedict)
    27343             refvarbndsx, dims = SliceVarDict(ovarxbnds,slicedict)
    27344             refvary, dims = SliceVarDict(ovary,slicedict)
    27345             refvarbndsy, dims = SliceVarDict(ovarybnds,slicedict)
    27346 
    27347             reflon, reflat =  gen.lonlat2D(refvarx, refvary)
     27342            srefvarx, dims = SliceVarDict(ovarx,slicedict)
     27343            srefvarbndsx, dims = SliceVarDict(ovarxbnds,slicedict)
     27344            srefvary, dims = SliceVarDict(ovary,slicedict)
     27345            srefvarbndsy, dims = SliceVarDict(ovarybnds,slicedict)
     27346
     27347            reflon, reflat =  gen.lonlat2D(ovarx[tuple(srefvarx)], ovary[tuple(srefvary)])
     27348            refvarbndsx = ovarxbnds[tuple(srefvarbndsx)]
     27349            refvarbndsy = ovarybnds[tuple(srefvarbndsy)]
     27350
    2734827351            refdx = reflon.shape[1]
    2734927352            refdy = reflon.shape[0]
    27350             refmaxvert = refvarxbnds.shape[2]
     27353            refmaxvert = refvarbndsx.shape[2]
    2735127354
    2735227355        else:
     
    2743927442            ovary = oncget.variables[getvaryn]
    2744027443
    27441             getvarx, dims = SliceVarDict(ovarx,slicedict)
    27442             getvarxbnds, dims = SliceVarDict(ovarxbnds,slicedict)
    27443             getvary, dims = SliceVarDict(ovary,slicedict)
    27444             getvarybnds, dims = SliceVarDict(ovarybnds,slicedict)
    27445 
    27446             getlon, getlat =  gen.lonlat2D(getvarx, getvary)
     27444            sgetvarx, dims = SliceVarDict(ovarx,slicedict)
     27445            sgetvarbndsx, dims = SliceVarDict(ovarxbnds,slicedict)
     27446            sgetvary, dims = SliceVarDict(ovary,slicedict)
     27447            sgetvarbndsy, dims = SliceVarDict(ovarybnds,slicedict)
     27448
     27449            getlon, getlat =  gen.lonlat2D(ovarx[tuple(sgetvarx)], ovary[tuple(sgetvary)])
     27450            getvarbndsx = ovarxbnds[tuple(sgetvarbndsx)]
     27451            getvarbndsy = ovarybnds[tuple(sgetvarbndsy)]
    2744727452            getdx = getlon.shape[1]
    2744827453            getdy = getlon.shape[0]
    27449             getmaxvert = getvarxbnds.shape[2]
     27454            getmaxvert = getvarbndsx.shape[2]
    2745027455
    2745127456        iif = iif + 1
     
    2745327458    reflont = reflon.transpose()
    2745427459    reflatt = reflat.transpose()
    27455     refvarxbndst = refvarxbnds.transpose()
    27456     refvarybndst = refvarybnds.transpose()
     27460    refvarxbndst = refvarbndsx.transpose()
     27461    refvarybndst = refvarbndsy.transpose()
    2745727462    getlont = getlon.transpose()
    2745827463    getlatt = getlat.transpose()
    27459     getvarxbndst = getvarxbnds.transpose()
    27460     getvarybndst = getvarybnds.transpose()
     27464    getvarxbndst = getvarbndsx.transpose()
     27465    getvarybndst = getvarbndsy.transpose()
    2746127466
    2746227467    Ngridsint, gridsint, percenst = fsci.module_scientific.spacepercen(dxa=refdx,    \
    27463       dya=refdy, xcavals=reflont, ycavals=reflatt, navertmax=refmaxvert,             \
    27464       xbAvals=refvarxbndst, ybAvals=refvarybndst,                                    \
    27465       dxb=getdx, dyb=getdy, xcbvals=getlont, ycbvals=getlatt, nbvertmax=getmaxvert,  \
    27466       xbbvals=getvarxbndst, ybbvals=getvarybndst, strict=strict)
     27468      dya=refdy, xcavals=reflont, ycavals=reflatt, navertexmax=refmaxvert,           \
     27469      xbavals=refvarxbndst, ybavals=refvarybndst,                                    \
     27470      dxb=getdx, dyb=getdy, dxyb=getdx*getdy, xcbvals=getlont, ycbvals=getlatt,      \
     27471      nbvertexmax=getmaxvert, xbbvals=getvarxbndst, ybbvals=getvarybndst,            \
     27472      strict=strict)
    2746727473
    2746827474    Ngridsin = Ngridint.transpose()
Note: See TracChangeset for help on using the changeset viewer.