Changeset 2300 in lmdz_wrf


Ignore:
Timestamp:
Jan 29, 2019, 10:50:37 PM (6 years ago)
Author:
lfita
Message:

Trying to underestand why is not working !?

Location:
trunk/tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/tools/module_scientific.f90

    r2299 r2300  
    62746274
    62756275    ! Local
    6276     INTEGER                                              :: ixA, iyA, ixB, iyB, iv
     6276    INTEGER                                              :: ixA, iyA, ixB, iyB, iv, ii
    62776277    INTEGER                                              :: NA, NB
    62786278    INTEGER, DIMENSION(dxyA)                             :: ptsA, ptsB
     
    63136313              inpointsA(ixA,iyA,iv) = ptsA(iv)
    63146314              inpointsB(ixB,iyB,iv) = ptsB(iv)
     6315              IF (Npoints(ixA,iyA,ixB,iyB) == 4) THEN
     6316                PRINT *,ixA, iyA,ixB,iyB,'________________'
     6317                DO ii = 1, Npoints(ixA,iyA,ixB,iyB)
     6318                  PRINT *,'Lluis ii:', ii, points(ixA,iyA,ixB,iyB,ii,:)
     6319                  PRINT *,'Lluis A:', inpointsA(ixA,iyA,iv), pointsA(ixA,iyA,ptsA(iv),:)
     6320                  PRINT *,'Lluis B:', inpointsB(ixB,iyB,iv), pointsB(ixB,iyB,ptsB(iv),:)
     6321                END DO
     6322              END IF
    63156323            END DO
    63166324          END DO
  • TabularUnified trunk/tools/nc_var_tools.py

    r2299 r2300  
    2830928309                elif (len(unma.shape) == 2):
    2831028310                    drng = unma.shape[0]*unma.shape[1]
    28311                     Nt,indices=fsci.module_scientific.multi_index_mat2di(d12=drng,   \
     28311                    Nt,indicest=fsci.module_scientific.multi_index_mat2di(d12=drng,  \
    2831228312                      mat=unmat, value=1, d1=unma.shape[1], d2=unma.shape[0])
     28313                    indices = indicest.transpose()
    2831328314                elif (len(unma.shape) == 3):
    2831428315                    drng = unma.shape[0]*unma.shape[1]*unma.shape[2]
    28315                     Nt,indices=fsci.module_scientific.multi_index_mat3di(d123=drng, \
     28316                    Nt,indicest=fsci.module_scientific.multi_index_mat3di(d123=drng, \
    2831628317                      mat=unmat, value=1, d1=unma.shape[2], d2=unma.shape[1],        \
    2831728318                      d3=unma.shape[0])
     28319                    indices = indicest.transpose()
    2831828320                elif (len(unma.shape) == 4):
    2831928321                    drng = unma.shape[0]*unma.shape[1]*unma.shape[2]*unma.shape[3]
    28320                     Nt,indices=fsci.module_scientific.multi_index_mat4di(d1234=drng, \
     28322                    Nt,indicest=fsci.module_scientific.multi_index_mat4di(d1234=drng,\
    2832128323                      mat=unmat, value=1, d1=unma.shape[3], d2=unma.shape[2],        \
    2832228324                      d3=unma.shape[1], d4=unma.shape[0])
     28325                    indices = indicest.transpose()
    2832328326                else:
    2832428327                  rS = str(len(unma.shape))
     
    2833128334                ainds = ainds - 1
    2833228335
    28333                 if Ngridsin[0,islc] > 0:
    28334                     gridsin[0,0:Nt,0,islc] = ainds[0,0:Nt]
    28335                     gridsin[1,0:Nt,0,islc] = ainds[1,0:Nt]
     28336                if Nt > 0:
     28337                    print 'Lluis:', islc, ':', Nt
     28338                    gridsin[0,0:Nt,0,islc] = ainds[0:Nt,0]
     28339                    gridsin[1,0:Nt,0,islc] = ainds[0:Nt,1]
    2833628340                    percens[0:Nt,0,islc] = 1.
    2833728341                    for iv in range(Nt):
    28338                         i = ainds[0,iv]
    28339                         j = ainds[1,iv]
     28342                        i = ainds[iv,0]
     28343                        j = ainds[iv,1]
    2834028344                        areas[j,i] = 1.
     28345                        if j == 94: print islc,'Lluis:', j,i,areas[j,i]
    2834128346
    2834228347            # Values for file
     
    2842228427            anewvar.setncattr('coordinates',' '.join(varfinaldims[::-1]))
    2842328428            anewvar[:] = areas[:]
     28429            if dn == 'HGT':
     28430                for i in range(areas.shape[1]):
     28431                    if areas[94,i] == 1.: print 'Lluis 2:', 94,i,areas[94,i]
    2842428432
    2842528433            aanewvar = onewnc.createVariable(dn+'area','f',tuple(Srgrid),             \
     
    2852528533    sliceinBt = sliceinB.transpose()
    2852628534
     28535    print 'Lluis shapes sliceNAt:', sliceNAt.shape, 'sliceinAt:', sliceinAt.shape
     28536    print 'Lluis shapes sliceNBt:', sliceNBt.shape, 'sliceinBt:', sliceinBt.shape
     28537
    2852728538    NpointsABt, pointsABt, inpA, inpB = fsci.module_scientific.coincident_gridsin2d( \
    2852828539      npointsa=sliceNAt, pointsa=sliceinAt, npointsb=sliceNBt, pointsb=sliceinBt,    \
     
    2853428545
    2853528546    # Remembering that it is python (C-like...)
    28536     inpointsA = inpointsA-1
    28537     inpointsB = inpointsB-1
     28547#    inpointsA = inpointsA
     28548#    inpointsB = inpointsB
     28549
     28550    jB = 0
     28551    iB = 3
     28552    jA = 10
     28553    iA = 2
     28554    print 'iA: _____ '
     28555    for iv in range(sliceNA[jA,iA]):
     28556        print iv, sliceinA[:,iv,jA,iA]
     28557    print 'iB: _____ '
     28558    for iv in range(sliceNB[jB,iB]):
     28559        print iv, sliceinB[:,iv,jB,iB]
     28560    for iv in range(sliceNA[jA,iA]):
     28561        for iv2 in range(sliceNB[jB,iB]):
     28562            if sliceinA[0,iv,jA,iA] == sliceinB[0,iv2,jB,iB] and sliceinA[1,iv,jA,iA] == sliceinB[1,iv2,jB,iB]:
     28563                print iv,':', sliceinA[:,iv,jA,iA], ';', iv2, ':', sliceinB[:,iv2,jB,iB]
     28564
     28565    print 'Lluis jB iB jA iA _______',jB,iB,jA,iA,':',NpointsAB[jB,iB,jA,iA]
     28566    print 'Lluis inpA shapes', inpointsA.shape, ':', inpointsA[:,jA,iA]
     28567    print 'Lluis inpB shapes', inpointsB.shape, ':', inpointsB[:,jB,iB]
     28568    for iv in range(NpointsAB[jB,iB,jA,iA]):
     28569        print iv, 'NA:', sliceNA[jA,iA], 'pA:', inpointsA[iv,jA,iA], 'c:', sliceinA[:,inpointsA[iv,jA,iA],jA,iA], \
     28570          'NB:', sliceNB[jB,iB], 'pB:', inpointsB[iv,jB,iB], 'c:', sliceinB[:,inpointsB[iv,jB,iB],jB,iB], '=',    \
     28571          pointsAB[:,iv,jB,iB,jA,iA]
     28572
     28573    quit()
    2853828574
    2853928575    maxNpointsAB = np.max(NpointsAB)
     
    2857928615                for iB in range(dxB):
    2858028616                    Nin = NpointsAB[jB,iB,jA,iA]
     28617                    print 'jB iB jA iA:', jB,iB,jA,iA, ':', Nin
    2858128618                    innewvar[:,0:Nin,jB,iB,jA,iA] = pointsAB[:,0:Nin,jB,iB,jA,iA]
    2858228619                    slicearea = 0.
     
    2859228629                        aB = osliceaB[iyB,ixB]
    2859328630                        # I do not understand why this is needed !!
    28594                         if aA != gen.mamat[1] and aB != gen.mamat[1]:
    28595                             anewvar[iv.jB,iB,jA,iA]= (aA*pA)*(aB*pB)
     28631                        if type(aA)!=type(gen.mamat[1]) and                          \
     28632                          type(aB)!=type(gen.mamat[1]):
     28633                            anewvar[iv,jB,iB,jA,iA]= (aA*pA)*(aB*pB)
    2859628634                            slicearea = slicearea + (aA*pA)*(aB*pB)
     28635                        else:
     28636                            print type(aA) != type(gen.mamat[1]), type(aB) != type(gen.mamat[1])
     28637                            print 'Lluis aA ________', iyA, ixA, 'shape osliceaA:', osliceaA.shape, ':', aA, gen.mamat[1]
     28638                            print osliceaA[iyA-2:iyA+3,ixA-2:ixA+3]
     28639                            print 'Lluis aB ________', iyB, ixB, 'shape osliceaB:', osliceaB.shape, ':', aB
     28640                            print osliceaB[iyB-2:iyB+3,ixB-2:ixB+3]
     28641                            #quit()
    2859728642                        aanewvar[jB,iB,jA,iA]= slicearea
    2859828643
     
    2870128746                            aB = osliceaB[iyB,ixB]
    2870228747                            # I do not understand why this is needed !!
    28703                             if aA != gen.mamat[1] and aB != gen.mamat[1]:
    28704                                 anewvar[iv,jB,iB,jA,iA]= (aA*pA)*(aB*pB)
     28748                            if type(aA)!=type(gen.mamat[1]) and                          \
     28749                              type(aB)!=type(gen.mamat[1]):
    2870528750                                slicearea = slicearea + (aA*pA)*(aB*pB)
    2870628751                            aanewvar[jB,iB,jA,iA]= slicearea
     
    2873128776    # Percentages as the areal fraction of each grid with respect slice size
    2873228777    sgp = sga/sa
     28778    i=3
     28779    j=10
     28780    k=2
     28781    print 'Lluis percentages ________', i, j,k
     28782    Npt = sN[i,j,k]
     28783    for iv in range(Npt):
     28784        print 'Lluis:', iv,'pt:', sin[:,iv,i,j,k], 'a:', sa[i,j,k], 'ga:', sga[iv,i,j,k]
     28785    quit()
    2873328786
    2873428787    ssh = sN.shape
     
    2884128894            newvar = onewvars[statn]
    2884228895            print 'Lluis stn:', statn, 'shape:', newvar.shape
    28843             newvar[:] = vout[ist]
     28896            rightvals = np.where(vout[6] == 0, gen.fillValueF, vout[ist])
     28897            newvar[:] = rightvals
    2884428898            onewnc.sync()
     28899            ist = ist + 1
    2884528900
    2884628901        quit()
Note: See TracChangeset for help on using the changeset viewer.