Ignore:
Timestamp:
Oct 2, 2015 8:28:59 AM (6 years ago)
Author:
gronemeier
Message:

Bugfix: Definition of topography grid levels

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/init_grid.f90

    r1662 r1675  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Bugfix: Definition of topography grid levels
    2323!
    2424! Former revisions:
     
    545545          blx = NINT( building_length_x / dx )
    546546          bly = NINT( building_length_y / dy )
    547           bh = 0
    548           DO  k = 0, nzt
    549              IF  ( building_height .GT. zw(k) ) THEN
    550                 bh = k+1
    551              ENDIF
    552           ENDDO
     547          bh  = MINLOC( ABS( zw - building_height ), 1 ) - 1
     548          IF ( ABS( zw(bh  ) - building_height ) == &
     549               ABS( zw(bh+1) - building_height )    )  bh = bh + 1
    553550
    554551          IF ( building_wall_left == 9999999.9_wp )  THEN
     
    610607          ENDIF
    611608
    612           ch = 0
    613           DO  k = 0, nzt
    614              IF  ( canyon_height .GT. zw(k) ) THEN
    615                 ch = k+1
    616              ENDIF
    617           ENDDO
     609          ch  = MINLOC( ABS( zw - canyon_height ), 1 ) - 1
     610          IF ( ABS( zw(ch  ) - canyon_height ) == &
     611               ABS( zw(ch+1) - canyon_height )    )  ch = ch + 1
     612
    618613          dp_level_ind_b = ch
    619614!
     
    689684          DO  i = 0, nx
    690685             DO  j = 0, ny
    691                 nzb_local(j,i) = 0
    692                 DO  k = 0, nzt
    693                     IF  ( topo_height(j,i) .GT. zw(k) ) THEN
    694                         nzb_local(j,i) = k+1
    695                     ENDIF
    696                 ENDDO
     686                nzb_local(j,i) = MINLOC( ABS( zw - topo_height(j,i) ), 1 ) - 1
     687                IF ( ABS( zw(nzb_local(j,i)  ) - topo_height(j,i) ) == &
     688                     ABS( zw(nzb_local(j,i)+1) - topo_height(j,i) )    )  &
     689                   nzb_local(j,i) = nzb_local(j,i) + 1
    697690             ENDDO
    698691          ENDDO
Note: See TracChangeset for help on using the changeset viewer.