Ignore:
Timestamp:
Aug 6, 2018 1:18:55 PM (6 years ago)
Author:
Giersch
Message:

Interpolation to particle position revised, indent revised, bugfix in calculation of the x/y indices for current particle position

File:
1 edited

Legend:

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

    r3065 r3189  
    2525! -----------------
    2626! $Id$
     27! Bugfix: Index of the array dzw has to be k+1 during the interpolation.
     28! Otherwise k=0 causes an abortion because dzw is allocated from 1 to nzt+1
     29!
     30! 3065 2018-06-12 07:03:02Z Giersch
    2731! dz values were replaced by dzw or dz(1) to allow for right vertical stretching
    2832!
     
    412416                            + ( gg-cc ) * u(k+1,j+1,i) + ( gg-dd ) *           &
    413417                            u(k+1,j+1,i+1) ) / ( 3.0_wp * gg ) - u_gtrans
    414                 u_int(n) = u_int_l + ( zv(n) - zu(k) ) / dzw(k) *               &
     418                u_int(n) = u_int_l + ( zv(n) - zu(k) ) / dzw(k+1) *               &
    415419                           ( u_int_u - u_int_l )
    416420             ENDIF
     
    506510                          + ( gg-cc ) * v(k+1,j+1,i) + ( gg-dd ) * v(k+1,j+1,i+1) &
    507511                          ) / ( 3.0_wp * gg ) - v_gtrans
    508                 v_int(n) = v_int_l + ( zv(n) - zu(k) ) / dzw(k) *               &
     512                v_int(n) = v_int_l + ( zv(n) - zu(k) ) / dzw(k+1) *               &
    509513                                  ( v_int_u - v_int_l )
    510514             ENDIF
     
    543547                            ( gg-dd ) * w(k+1,j+1,i+1) &
    544548                          ) / ( 3.0_wp * gg )
    545                 w_int(n) = w_int_l + ( zv(n) - zw(k) ) / dzw(k) *               &
     549                w_int(n) = w_int_l + ( zv(n) - zw(k) ) / dzw(k+1) *               &
    546550                           ( w_int_u - w_int_l )
    547551             ENDIF
     
    614618                               ( gg - dd ) * e(k+1,j+1,i+1) &
    615619                            ) / ( 3.0_wp * gg )
    616                    e_int(n) = e_int_l + ( zv(n) - zu(k) ) / dzw(k) *            &
     620                   e_int(n) = e_int_l + ( zv(n) - zu(k) ) / dzw(k+1) *            &
    617621                                     ( e_int_u - e_int_l )
    618622                ENDIF
     
    640644                                   ( gg - dd ) * de_dx(k+1,j+1,i+1) &
    641645                                  ) / ( 3.0_wp * gg )
    642                    de_dx_int(n) = de_dx_int_l + ( zv(n) - zu(k) ) / dzw(k) *    &
     646                   de_dx_int(n) = de_dx_int_l + ( zv(n) - zu(k) ) / dzw(k+1) *    &
    643647                                              ( de_dx_int_u - de_dx_int_l )
    644648                ENDIF
     
    658662                                   ( gg - dd ) * de_dy(k+1,j+1,i+1) &
    659663                                  ) / ( 3.0_wp * gg )
    660                       de_dy_int(n) = de_dy_int_l + ( zv(n) - zu(k) ) / dzw(k) * &
     664                      de_dy_int(n) = de_dy_int_l + ( zv(n) - zu(k) ) / dzw(k+1) * &
    661665                                                 ( de_dy_int_u - de_dy_int_l )
    662666                ENDIF
     
    681685                                      ( gg - dd ) * de_dz(k+1,j+1,i+1) &
    682686                                     ) / ( 3.0_wp * gg )
    683                       de_dz_int(n) = de_dz_int_l + ( zv(n) - zu(k) ) / dzw(k) * &
     687                      de_dz_int(n) = de_dz_int_l + ( zv(n) - zu(k) ) / dzw(k+1) * &
    684688                                                 ( de_dz_int_u - de_dz_int_l )
    685689                   ENDIF
     
    702706                                  ( gg - dd ) * diss(k+1,j+1,i+1) &
    703707                                 ) / ( 3.0_wp * gg )
    704                    diss_int(n) = diss_int_l + ( zv(n) - zu(k) ) / dzw(k) *      &
     708                   diss_int(n) = diss_int_l + ( zv(n) - zu(k) ) / dzw(k+1) *      &
    705709                                            ( diss_int_u - diss_int_l )
    706710                ENDIF
Note: See TracChangeset for help on using the changeset viewer.