Changeset 2726 in lmdz_wrf


Ignore:
Timestamp:
Oct 17, 2019, 2:21:35 PM (6 years ago)
Author:
lfita
Message:

Adding missval

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/module_generic.f90

    r2725 r2726  
    12681268    ii = 0
    12691269    DO ir=1, d1r
    1270       DO iv=1, d1v
    1271         IF ( (refv(ir) /= missval) .AND. (vals(iv) == refv(ir)) )THEN
    1272           ii = ii + 1
    1273           indices(ii,:) = (/ ir, iv /)
    1274           samevalues(ii) = refv(ir)
    1275         END IF
    1276       END DO
     1270      IF (refv(ir) /= missval) THEN
     1271        DO iv=1, d1v
     1272          IF (vals(iv) == refv(ir)) THEN
     1273            ii = ii + 1
     1274            indices(ii,:) = (/ ir, iv /)
     1275            samevalues(ii) = refv(ir)
     1276          END IF
     1277        END DO
     1278      END IF
    12771279    END DO
    12781280
     
    12811283  END SUBROUTINE index_samevals1D_RK
    12821284
    1283   SUBROUTINE index_samevals2D_RK(d1r, d2r, refv, d1v, d2v, d12v, vals, ii, indices, samevalues)
     1285  SUBROUTINE index_samevals2D_RK(d1r, d2r, refv, d1v, d2v, d12v, vals, ii, indices, missval,          &
     1286    samevalues)
    12841287  ! Subroutine to search for the indices of the same values between 2 2D RK series of values allowing
    12851288  !   repetitions
     
    12881291
    12891292    INTEGER, INTENT(in)                                  :: d1r, d2r, d1v, d2v, d12v
     1293    REAL(r_k), INTENT(in)                                :: missval
    12901294    REAL(r_k), DIMENSION(d1r,d2r), INTENT(in)            :: refv
    12911295    REAL(r_k), DIMENSION(d1v,d2v), INTENT(in)            :: vals
     
    13041308! ii: quantity of same values found
    13051309! indices: output
     1310! missval: missing value
    13061311! samevalues: values where coincidence is found
    13071312
     
    13131318    DO ir1=1, d1r
    13141319      DO ir2=1, d2r
    1315         DO iv1=1, d1v
    1316           DO iv2=1, d2v
    1317             IF (vals(iv1,iv2) == refv(ir1,ir2)) THEN
    1318               ii = ii + 1
    1319               indices(ii,1,1) = ir1
    1320               indices(ii,1,2) = ir2
    1321               indices(ii,2,1) = iv1
    1322               indices(ii,2,2) = iv2
    1323               samevalues(ii) = refv(ir1,ir2)
    1324             END IF
     1320        IF (refv(ir1,ir2) /= missval) THEN
     1321          DO iv1=1, d1v
     1322            DO iv2=1, d2v
     1323              IF (vals(iv1,iv2) == refv(ir1,ir2)) THEN
     1324                ii = ii + 1
     1325                indices(ii,1,1) = ir1
     1326                indices(ii,1,2) = ir2
     1327                indices(ii,2,1) = iv1
     1328                indices(ii,2,2) = iv2
     1329                samevalues(ii) = refv(ir1,ir2)
     1330              END IF
     1331            END DO
    13251332          END DO
    1326         END DO
     1333        END IF
    13271334      END DO
    13281335    END DO
Note: See TracChangeset for help on using the changeset viewer.