Changeset 824


Ignore:
Timestamp:
Feb 17, 2012 9:09:57 AM (10 years ago)
Author:
raasch
Message:

preliminary checkin of new curvature/solution effects on droplet growth

Location:
palm/trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/mrun

    r823 r824  
    247247     # 16/02/12 - BjornM - bugfix: replaced $localhost by $host in the ENVPAR
    248248     #                     file, which is generated for the namelist file check
     249     # 17/02/12 - Siggi  - -z included in description of options (mrun ?)
     250
     251
    249252 
    250253    # VARIABLENVEREINBARUNGEN + DEFAULTWERTE
     
    597600    printf "\n        -Y    run coupled model, \"#1 #2\" with"
    598601    printf "\n              #1 atmosphere and #2 ocean processors    \"#/2 #/2\" depending on -X"
     602    printf "\n        -z    no parameter file check                  ---"
    599603    printf "\n "
    600604    printf "\n      Possible values of positional parameter <modus>:"
  • palm/trunk/SOURCE/advec_particles.f90

    r800 r824  
    44! Current revisions:
    55! ------------------
    6 !
     6! droplet growth by condensation may include curvature and solution effects.
     7! initialisation of temporary particle array for resorting removed.
     8! particle attributes speed_x|y|z_sgs renamed rvar1|2|3.
    79!
    810! Former revisions:
     
    137139    IMPLICIT NONE
    138140
    139     INTEGER ::  agp, deleted_particles, deleted_tails, i, ie, ii, inc, is, j,  &
    140                 jj, js, k, kk, kw, m, n, nc, nd, nn, num_gp, pse, psi,         &
     141    INTEGER ::  agp, deleted_particles, deleted_tails, i, ie, ii, inc,         &
     142                internal_timestep_count, is, j,  &
     143                jj, js, jtry, k, kk, kw, m, n, nc, nd, nn, num_gp, pse, psi,   &
    141144                tlength, trlp_count, trlp_count_sum, trlp_count_recv,          &
    142145                trlp_count_recv_sum, trlpt_count, trlpt_count_recv,            &
     
    150153    INTEGER ::  gp_outside_of_building(1:8)
    151154
     155    INTEGER, PARAMETER ::  maxtry = 40   ! for Rosenbrock method
     156
    152157    LOGICAL ::  dt_3d_reached, dt_3d_reached_l, prt_position
    153158
    154     REAL    ::  aa, arg, bb, cc, dd, delta_r, delta_v, dens_ratio, de_dt,      &
    155                 de_dt_min, de_dx_int, de_dx_int_l, de_dx_int_u, de_dy_int,     &
    156                 de_dy_int_l, de_dy_int_u, de_dz_int, de_dz_int_l, de_dz_int_u, &
    157                 diss_int, diss_int_l, diss_int_u, distance, dt_gap,            &
    158                 dt_particle, dt_particle_m, d_radius, d_sum, e_a, e_int,       &
    159                 e_int_l, e_int_u, e_mean_int, e_s, exp_arg, exp_term, fs_int,  &
    160                 gg, integral, lagr_timescale, lw_max, mean_r, new_r, p_int,    &
    161                 pt_int, pt_int_l, pt_int_u, q_int, q_int_l, q_int_u, ql_int,   &
    162                 ql_int_l, ql_int_u, random_gauss, sl_r3, sl_r4, t_int, u_int,  &
    163                 u_int_l, u_int_u,vv_int, v_int, v_int_l, v_int_u, w_int,       &
    164                 w_int_l, w_int_u, x, y
     159    REAL    ::  aa, afactor, arg, bb, cc, dd, ddenom, delta_r, delta_v, &
     160                dens_ratio, de_dt, de_dt_min, de_dx_int, de_dx_int_l, &
     161                de_dx_int_u, de_dy_int, de_dy_int_l, de_dy_int_u, de_dz_int, &
     162                de_dz_int_l, de_dz_int_u, diss_int, diss_int_l, diss_int_u, &
     163                distance, drdt, drdt_ini, drdt_m, dt_ros, dt_ros_last, &
     164                dt_ros_next, dt_ros_sum, dt_ros_sum_ini, d2rdt2, d2rdtdr, &
     165                dt_gap, dt_particle, dt_particle_m, d_sum, e_a, e_int, &
     166                e_int_l, e_int_u, e_mean_int, e_s, err_ros, errmax, exp_arg, &
     167                exp_term, fs_int, gg, g1, g2, g3, g4, integral, &
     168                lagr_timescale, lw_max, mean_r, new_r, p_int, pt_int, &
     169                pt_int_l, pt_int_u, q_int, q_int_l, q_int_u, ql_int, ql_int_l, &
     170                ql_int_u, random_gauss, r_ros, r_ros_ini, sigma, sl_r3, sl_r4, &
     171                t_int, u_int, u_int_l, u_int_u,vv_int, v_int, v_int_l, &
     172                v_int_u, w_int, w_int_l, w_int_u, x, y
     173!
     174!-- Parameters for Rosenbrock method
     175    REAL, PARAMETER ::  a21 = 2.0, a31 = 48.0/25.0, a32 = 6.0/25.0,        &
     176                        a2x = 1.0, a3x = 3.0/5.0, b1 = 19.0/9.0, b2 = 0.5, &
     177                        b3 = 25.0/108.0, b4 = 125.0/108.0, c21 = -8.0,     &
     178                        c31 = 372.0/25.0, c32 = 12.0/5.0,                  &
     179                        c41 = -112.0/125.0, c42 = -54.0/125.0,             &
     180                        c43 = -2.0/5.0, c1x = 0.5, c2x= -3.0/2.0,          &
     181                        c3x = 121.0/50.0, c4x = 29.0/250.0,                &
     182                        errcon = 0.1296, e1 = 17.0/54.0, e2 = 7.0/36.0,    &
     183                        e3 = 0.0, e4 = 125.0/108.0, gam = 0.5, grow = 1.5, &
     184                        pgrow = -0.25, pshrnk = -1.0/3.0, shrnk = 0.5
    165185
    166186    REAL, DIMENSION(1:30) ::  de_dxi, de_dyi, de_dzi, dissi, d_gp_pl, ei
     
    337357!
    338358!--       Change in radius by condensation/evaporation
    339 !--       ATTENTION: this is only an approximation for large radii
    340           arg = particles(n)%radius**2 + 2.0 * dt_3d *                     &
    341                         ( e_a / e_s - 1.0 ) /                              &
    342                         ( ( l_d_rv / t_int - 1.0 ) * l_v * rho_l / t_int / &
    343                           thermal_conductivity_l +                         &
    344                           rho_l * r_v * t_int / diff_coeff_l / e_s )
    345           IF ( arg < 1.0E-14 )  THEN
    346              new_r = 1.0E-7
     359          IF ( curvature_solution_effects .AND. particles(n)%radius < 1.0E-6 ) &
     360          THEN
     361!
     362!--          Curvature and solutions effects are included in growth equation.
     363!--          Change in Radius is calculated with 4th-order Rosenbrock method
     364!--          for stiff o.d.e's with monitoring local truncation error to adjust
     365!--          stepsize (see Numerical recipes in FORTRAN, 2nd edition, p. 731).
     366!--          For larger radii the simple analytic method (see ELSE) gives
     367!--          almost the same results.
     368!
     369!--          Surface tension after (Straka, 2009)
     370             sigma = 0.0761 - 0.00155 * ( t_int - 273.15 )
     371
     372             r_ros = particles(n)%radius
     373             dt_ros_sum  = 0.0      ! internal integrated time (s)
     374             internal_timestep_count = 0
     375
     376             ddenom  = 1.0 / ( rho_l * r_v * t_int / ( e_s * diff_coeff_l ) +  &
     377                               ( l_v / ( r_v * t_int ) - 1.0 ) *               &
     378                               rho_l * l_v / ( thermal_conductivity_l * t_int )&
     379                             )
     380             
     381             afactor = 2.0 * sigma / ( rho_l * r_v * t_int )
     382
     383             IF ( particles(n)%rvar3 == -9999999.9 )  THEN
     384!
     385!--             First particle timestep. Derivative has to be calculated.
     386                drdt_m  = ddenom / r_ros * ( e_a / e_s - 1.0 -    &
     387                                             afactor / r_ros +    &
     388                                             bfactor / r_ros**3 )
     389             ELSE
     390!
     391!--             Take value from last PALM timestep
     392                drdt_m = particles(n)%rvar3
     393             ENDIF
     394!
     395!--          Take internal timestep values from the end of last PALM timestep
     396             dt_ros_last = particles(n)%rvar1
     397             dt_ros_next = particles(n)%rvar2
     398!
     399!--          Internal timestep must not be larger than PALM timestep
     400             dt_ros = MIN( dt_ros_next, dt_3d )
     401!
     402!--          Integrate growth equation in time unless PALM timestep is reached
     403             DO WHILE ( dt_ros_sum < dt_3d )
     404
     405                internal_timestep_count = internal_timestep_count + 1
     406
     407!
     408!--             Derivative at starting value
     409                drdt = ddenom / r_ros * ( e_a / e_s - 1.0 - afactor / r_ros + &
     410                                          bfactor / r_ros**3 )
     411                drdt_ini       = drdt
     412                dt_ros_sum_ini = dt_ros_sum
     413                r_ros_ini      = r_ros
     414
     415!
     416!--             Calculate time derivative of dr/dt
     417                d2rdt2 = ( drdt - drdt_m ) / dt_ros_last
     418
     419!
     420!--             Calculate radial derivative of dr/dt
     421                d2rdtdr = ddenom * ( ( 1.0 - e_a/e_s ) / r_ros**2 + &
     422                                     2.0 * afactor / r_ros**3 -     &
     423                                     4.0 * bfactor / r_ros**5 )
     424!
     425!--             Adjust stepsize unless required accuracy is reached
     426                DO  jtry = 1, maxtry+1
     427
     428                   IF ( jtry == maxtry+1 )  THEN
     429                      message_string = 'maxtry > 40 in Rosenbrock method'
     430                      CALL message( 'advec_particles', 'PA0347', 2, 2, 0, 6, 0 )
     431                   ENDIF
     432
     433                   aa    = 1.0 / ( gam * dt_ros ) - d2rdtdr
     434                   g1    = ( drdt_ini + dt_ros * c1x * d2rdt2 ) / aa
     435                   r_ros = r_ros_ini + a21 * g1
     436                   drdt  = ddenom / r_ros * ( e_a / e_s - 1.0 - &
     437                                              afactor / r_ros + &
     438                                              bfactor / r_ros**3 )
     439
     440                   g2    = ( drdt + dt_ros * c2x * d2rdt2 + c21 * g1 / dt_ros )&
     441                           / aa
     442                   r_ros = r_ros_ini + a31 * g1 + a32 * g2
     443                   drdt  = ddenom / r_ros * ( e_a / e_s - 1.0 - &
     444                                              afactor / r_ros + &
     445                                              bfactor / r_ros**3 )
     446
     447                   g3    = ( drdt + dt_ros * c3x * d2rdt2 + &
     448                             ( c31 * g1 + c32 * g2 ) / dt_ros ) / aa
     449                   g4    = ( drdt + dt_ros * c4x * d2rdt2 + &
     450                             ( c41 * g1 + c42 * g2 + c43 * g3 ) / dt_ros ) / aa
     451                   r_ros = r_ros_ini + b1 * g1 + b2 * g2 + b3 * g3 + b4 * g4
     452
     453                   dt_ros_sum = dt_ros_sum_ini + dt_ros
     454
     455                   IF ( dt_ros_sum == dt_ros_sum_ini )  THEN
     456                      message_string = 'zero stepsize in Rosenbrock method'
     457                      CALL message( 'advec_particles', 'PA0348', 2, 2, 0, 6, 0 )
     458                   ENDIF
     459!
     460!--                Calculate error
     461                   err_ros = e1*g1 + e2*g2 + e3*g3 + e4*g4
     462                   errmax  = 0.0
     463                   errmax  = MAX( errmax, ABS( err_ros / r_ros_ini ) ) / eps_ros
     464!
     465!--                Leave loop if accuracy is sufficient, otherwise try again
     466!--                with a reduced stepsize
     467                   IF ( errmax <= 1.0 )  THEN
     468                      EXIT
     469                   ELSE
     470                      dt_ros = SIGN(                                           &
     471                                    MAX( ABS( 0.9 * dt_ros * errmax**pshrnk ), &
     472                                         shrnk * ABS( dt_ros ) ),              &
     473                                    dt_ros                                     &
     474                                   )
     475                   ENDIF
     476
     477                ENDDO  ! loop for stepsize adjustment
     478
     479!
     480!--             Calculate next internal timestep
     481                IF ( errmax > errcon )  THEN
     482                   dt_ros_next = 0.9 * dt_ros * errmax**pgrow
     483                ELSE
     484                   dt_ros_next = grow * dt_ros
     485                ENDIF
     486
     487!
     488!--             Estimated timestep is reduced if the PALM time step is exceeded
     489                dt_ros_last = dt_ros
     490                IF ( ( dt_ros_next + dt_ros_sum ) >= dt_3d )  THEN
     491                   dt_ros = dt_3d - dt_ros_sum
     492                ELSE
     493                   dt_ros = dt_ros_next
     494                ENDIF
     495
     496                drdt_m = drdt
     497
     498             ENDDO
     499!
     500!--          Store derivative and internal timestep values for next PALM step
     501             particles(n)%rvar1 = dt_ros_last
     502             particles(n)%rvar2 = dt_ros_next
     503             particles(n)%rvar3 = drdt_m
     504
     505             new_r = r_ros
     506!
     507!--          Radius should not fall below 1E-8 because Rosenbrock method may
     508!--          lead to errors otherwise
     509             new_r = MAX( new_r, 1.0E-8 )
     510
    347511          ELSE
    348              new_r = SQRT( arg )
     512!
     513!--          Approximation for large radii, where curvature and solution
     514!--          effects can be neglected
     515             arg = particles(n)%radius**2 + 2.0 * dt_3d *                     &
     516                           ( e_a / e_s - 1.0 ) /                              &
     517                           ( ( l_d_rv / t_int - 1.0 ) * l_v * rho_l / t_int / &
     518                             thermal_conductivity_l +                         &
     519                             rho_l * r_v * t_int / diff_coeff_l / e_s )
     520             IF ( arg < 1.0E-14 )  THEN
     521                new_r = 1.0E-7
     522             ELSE
     523                new_r = SQRT( arg )
     524             ENDIF
     525
    349526          ENDIF
    350527
    351528          delta_r = new_r - particles(n)%radius
    352 
    353 ! NOTE: this is the correct formula (indipendent of radius).
    354 !       nevertheless, it give wrong results for large timesteps
    355 !          d_radius =  1.0 / particles(n)%radius
    356 !          delta_r = d_radius * ( e_a / e_s - 1.0 - 3.3E-7 / t_int * d_radius + &
    357 !                                 b_cond * d_radius**3 ) /                      &
    358 !                    ( ( l_d_rv / t_int - 1.0 ) * l_v * rho_l / t_int /         &
    359 !                      thermal_conductivity_l +                                 &
    360 !                      rho_l * r_v * t_int / diff_coeff_l / e_s ) * dt_3d
    361 
    362 !          new_r = particles(n)%radius + delta_r
    363 !          IF ( new_r < 1.0E-7 )  new_r = 1.0E-7
    364529
    365530!
     
    389554             WRITE( message_string, * ) '#1 k=',k,' j=',j,' i=',i,   &
    390555                          ' e_s=',e_s, ' e_a=',e_a,' t_int=',t_int,  &
    391                           ' &d_radius=',d_radius,' delta_r=',delta_r,&
     556                          ' &delta_r=',delta_r,                      &
    392557                          ' particle_radius=',particles(n)%radius
    393558             CALL message( 'advec_particles', 'PA0144', 2, 2, -1, 6, 1 )
     
    19652130!--             [-5.0*sigma, 5.0*sigma] in order to prevent the SGS velocities
    19662131!--             from becoming unrealistically large.
    1967                 particles(n)%speed_x_sgs = SQRT( 2.0 * sgs_wfu_part * e_int ) *&
    1968                                            ( random_gauss( iran_part, 5.0 )    &
     2132                particles(n)%rvar1 = SQRT( 2.0 * sgs_wfu_part * e_int ) *   &
     2133                                           ( random_gauss( iran_part, 5.0 ) &
    19692134                                             - 1.0 )
    1970                 particles(n)%speed_y_sgs = SQRT( 2.0 * sgs_wfv_part * e_int ) *&
    1971                                            ( random_gauss( iran_part, 5.0 )    &
     2135                particles(n)%rvar2 = SQRT( 2.0 * sgs_wfv_part * e_int ) *   &
     2136                                           ( random_gauss( iran_part, 5.0 ) &
    19722137                                             - 1.0 )
    1973                 particles(n)%speed_z_sgs = SQRT( 2.0 * sgs_wfw_part * e_int ) *&
    1974                                            ( random_gauss( iran_part, 5.0 )    &
     2138                particles(n)%rvar3 = SQRT( 2.0 * sgs_wfw_part * e_int ) *   &
     2139                                           ( random_gauss( iran_part, 5.0 ) &
    19752140                                             - 1.0 )
    19762141
     
    20032168                ENDIF
    20042169
    2005                 particles(n)%speed_x_sgs = particles(n)%speed_x_sgs -          &
    2006                        fs_int * c_0 * diss_int * particles(n)%speed_x_sgs *    &
     2170                particles(n)%rvar1 = particles(n)%rvar1 -                      &
     2171                       fs_int * c_0 * diss_int * particles(n)%rvar1 *          &
    20072172                       dt_particle / ( 4.0 * sgs_wfu_part * e_int ) +          &
    20082173                       ( 2.0 * sgs_wfu_part * de_dt *                          &
    2009                                particles(n)%speed_x_sgs /                      &
     2174                               particles(n)%rvar1 /                            &
    20102175                         ( 2.0 * sgs_wfu_part * e_int ) + de_dx_int            &
    20112176                       ) * dt_particle / 2.0                        +          &
     
    20142179                       SQRT( dt_particle )
    20152180
    2016                 particles(n)%speed_y_sgs = particles(n)%speed_y_sgs -          &
    2017                        fs_int * c_0 * diss_int * particles(n)%speed_y_sgs *    &
     2181                particles(n)%rvar2 = particles(n)%rvar2 -                      &
     2182                       fs_int * c_0 * diss_int * particles(n)%rvar2 *          &
    20182183                       dt_particle / ( 4.0 * sgs_wfv_part * e_int ) +          &
    20192184                       ( 2.0 * sgs_wfv_part * de_dt *                          &
    2020                                particles(n)%speed_y_sgs /                      &
     2185                               particles(n)%rvar2 /                            &
    20212186                         ( 2.0 * sgs_wfv_part * e_int ) + de_dy_int            &
    20222187                       ) * dt_particle / 2.0                        +          &
     
    20252190                       SQRT( dt_particle )
    20262191
    2027                 particles(n)%speed_z_sgs = particles(n)%speed_z_sgs -          &
    2028                        fs_int * c_0 * diss_int * particles(n)%speed_z_sgs *    &
     2192                particles(n)%rvar3 = particles(n)%rvar3 -          &
     2193                       fs_int * c_0 * diss_int * particles(n)%rvar3 *    &
    20292194                       dt_particle / ( 4.0 * sgs_wfw_part * e_int ) +          &
    20302195                       ( 2.0 * sgs_wfw_part * de_dt *                          &
    2031                                particles(n)%speed_z_sgs /                      &
     2196                               particles(n)%rvar3 /                      &
    20322197                         ( 2.0 * sgs_wfw_part * e_int ) + de_dz_int            &
    20332198                       ) * dt_particle / 2.0                        +          &
     
    20382203             ENDIF
    20392204
    2040              u_int = u_int + particles(n)%speed_x_sgs
    2041              v_int = v_int + particles(n)%speed_y_sgs
    2042              w_int = w_int + particles(n)%speed_z_sgs
     2205             u_int = u_int + particles(n)%rvar1
     2206             v_int = v_int + particles(n)%rvar2
     2207             w_int = w_int + particles(n)%rvar3
    20432208
    20442209!
     
    33783543                particles(n)%speed_z = -particles(n)%speed_z
    33793544                IF ( use_sgs_for_particles  .AND. &
    3380                      particles(n)%speed_z_sgs > 0.0 )  THEN
    3381                    particles(n)%speed_z_sgs = -particles(n)%speed_z_sgs
     3545                     particles(n)%rvar3 > 0.0 )  THEN
     3546                   particles(n)%rvar3 = -particles(n)%rvar3
    33823547                ENDIF
    33833548                IF ( use_particle_tails  .AND.  nn /= 0 )  THEN
     
    34033568                particles(n)%speed_z = -particles(n)%speed_z
    34043569                IF ( use_sgs_for_particles  .AND. &
    3405                      particles(n)%speed_z_sgs < 0.0 )  THEN
    3406                    particles(n)%speed_z_sgs = -particles(n)%speed_z_sgs
     3570                     particles(n)%rvar3 < 0.0 )  THEN
     3571                   particles(n)%rvar3 = -particles(n)%rvar3
    34073572                ENDIF
    34083573                IF ( use_particle_tails  .AND.  nn /= 0 )  THEN
     
    41874352
    41884353          particles_temp => part_1
    4189           part_1 = particle_type( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
    4190                                   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
    4191                                   0.0, 0, 0, 0, 0 )
     4354!          part_1 = particle_type( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
     4355!                                  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
     4356!                                  0.0, 0, 0, 0, 0 )
    41924357
    41934358       CASE ( 1 )
    41944359
    41954360          particles_temp => part_2
    4196           part_2 = particle_type( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
    4197                                   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
    4198                                   0.0, 0, 0, 0, 0 )
     4361!          part_2 = particle_type( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
     4362!                                  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
     4363!                                  0.0, 0, 0, 0, 0 )
    41994364
    42004365    END SELECT
  • palm/trunk/SOURCE/check_parameters.f90

    r810 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! check for curvature_solution_effects
    77!
    88! Former revisions:
     
    165165
    166166    USE arrays_3d
     167    USE cloud_parameters
    167168    USE constants
    168169    USE control_parameters
     
    660661    ENDIF
    661662
     663    IF ( use_sgs_for_particles  .AND.  curvature_solution_effects )  THEN
     664       message_string = 'use_sgs_for_particles = .TRUE. not allowed with ' // &
     665                        'curvature_solution_effects = .TRUE.'
     666       CALL message( 'check_parameters', 'PA0349', 1, 2, 0, 6, 0 )
     667    ENDIF
     668
    662669!
    663670!-- Timestep schemes:
  • palm/trunk/SOURCE/data_output_ptseries.f90

    r623 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! mean particle radius added as output quantity.
     7! particle attributes speed_x|y|z_sgs renamed rvar1|2|3.
    78!
    89! Former revisions:
     
    8788       pts_value_l(0,7)  = pts_value_l(0,7) + particles(n)%speed_y     ! mean v
    8889       pts_value_l(0,8)  = pts_value_l(0,8) + particles(n)%speed_z     ! mean w
    89        pts_value_l(0,9)  = pts_value_l(0,9) + &
    90                                             particles(n)%speed_x_sgs ! mean sgsu
    91        pts_value_l(0,10) = pts_value_l(0,10) + &
    92                                             particles(n)%speed_y_sgs ! mean sgsv
    93        pts_value_l(0,11) = pts_value_l(0,11) + &
    94                                             particles(n)%speed_z_sgs ! mean sgsw
     90       pts_value_l(0,9)  = pts_value_l(0,9) + particles(n)%rvar1     ! mean sgsu
     91       pts_value_l(0,10) = pts_value_l(0,10) + particles(n)%rvar2    ! mean sgsv
     92       pts_value_l(0,11) = pts_value_l(0,11) + particles(n)%rvar3    ! mean sgsw
    9593       IF ( particles(n)%speed_z > 0.0 )  THEN
    9694          pts_value_l(0,12) = pts_value_l(0,12) + 1.0  ! # of upward moving prts
     
    10199                                            particles(n)%speed_z ! mean w down
    102100       ENDIF
    103        pts_value_l(0,15) = number_of_particles
     101       pts_value_l(0,15) = pts_value_l(0,15) + particles(n)%radius
    104102       pts_value_l(0,16) = number_of_particles
     103       pts_value_l(0,17) = number_of_particles
    105104
    106105!
     
    120119          pts_value_l(j,7)  = pts_value_l(j,7)  + particles(n)%speed_y
    121120          pts_value_l(j,8)  = pts_value_l(j,8)  + particles(n)%speed_z
    122           pts_value_l(j,9)  = pts_value_l(j,9)  + particles(n)%speed_x_sgs
    123           pts_value_l(j,10) = pts_value_l(j,10) + particles(n)%speed_y_sgs
    124           pts_value_l(j,11) = pts_value_l(j,11) + particles(n)%speed_z_sgs
     121          pts_value_l(j,9)  = pts_value_l(j,9)  + particles(n)%rvar1
     122          pts_value_l(j,10) = pts_value_l(j,10) + particles(n)%rvar2
     123          pts_value_l(j,11) = pts_value_l(j,11) + particles(n)%rvar3
    125124          IF ( particles(n)%speed_z > 0.0 )  THEN
    126125             pts_value_l(j,12) = pts_value_l(j,12) + 1.0
     
    129128             pts_value_l(j,14) = pts_value_l(j,14) + particles(n)%speed_z
    130129          ENDIF
    131           pts_value_l(j,15) = pts_value_l(j,15) + 1.0
     130          pts_value_l(j,15) = pts_value_l(j,15) + particles(n)%radius
    132131          pts_value_l(j,16) = pts_value_l(j,16) + 1.0
     132          pts_value_l(j,17) = pts_value_l(j,17) + 1.0
    133133
    134134       ENDIF
     
    142142
    143143    IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    144     CALL MPI_ALLREDUCE( pts_value_l(0,1), pts_value(0,1), 14*inum, MPI_REAL, &
     144    CALL MPI_ALLREDUCE( pts_value_l(0,1), pts_value(0,1), 15*inum, MPI_REAL, &
    145145                        MPI_SUM, comm2d, ierr )
    146146    IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    147     CALL MPI_ALLREDUCE( pts_value_l(0,15), pts_value(0,15), inum, MPI_REAL, &
     147    CALL MPI_ALLREDUCE( pts_value_l(0,16), pts_value(0,16), inum, MPI_REAL, &
    148148                        MPI_MAX, comm2d, ierr )
    149149    IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    150     CALL MPI_ALLREDUCE( pts_value_l(0,16), pts_value(0,16), inum, MPI_REAL, &
     150    CALL MPI_ALLREDUCE( pts_value_l(0,17), pts_value(0,17), inum, MPI_REAL, &
    151151                        MPI_MIN, comm2d, ierr )
    152152#else
    153     pts_value(:,1:16) = pts_value_l(:,1:16)
     153    pts_value(:,1:17) = pts_value_l(:,1:17)
    154154#endif
    155155
     
    167167       IF ( pts_value(j,1) > 0.0 )  THEN
    168168
    169           pts_value(j,2:14) = pts_value(j,2:14) / pts_value(j,1)
     169          pts_value(j,2:15) = pts_value(j,2:15) / pts_value(j,1)
    170170          IF ( pts_value(j,12) > 0.0  .AND.  pts_value(j,12) < 1.0 )  THEN
    171171             pts_value(j,13) = pts_value(j,13) / pts_value(j,12)
     
    186186    DO  n = 1, number_of_particles
    187187
    188        pts_value_l(0,17) = pts_value_l(0,17) + ( particles(n)%x - &
     188       pts_value_l(0,18) = pts_value_l(0,18) + ( particles(n)%x - &
    189189                           particles(n)%origin_x - pts_value(0,2) )**2 ! x*2
    190        pts_value_l(0,18) = pts_value_l(0,18) + ( particles(n)%y - &
     190       pts_value_l(0,19) = pts_value_l(0,19) + ( particles(n)%y - &
    191191                           particles(n)%origin_y - pts_value(0,3) )**2 ! y*2
    192        pts_value_l(0,19) = pts_value_l(0,19) + ( particles(n)%z - &
     192       pts_value_l(0,20) = pts_value_l(0,20) + ( particles(n)%z - &
    193193                           particles(n)%origin_z - pts_value(0,4) )**2 ! z*2
    194        pts_value_l(0,20) = pts_value_l(0,20) + ( particles(n)%speed_x - &
     194       pts_value_l(0,21) = pts_value_l(0,21) + ( particles(n)%speed_x - &
    195195                                               pts_value(0,6) )**2     ! u*2
    196        pts_value_l(0,21) = pts_value_l(0,21) + ( particles(n)%speed_y - &
     196       pts_value_l(0,22) = pts_value_l(0,22) + ( particles(n)%speed_y - &
    197197                                               pts_value(0,7) )**2     ! v*2
    198        pts_value_l(0,22) = pts_value_l(0,22) + ( particles(n)%speed_z - &
     198       pts_value_l(0,23) = pts_value_l(0,23) + ( particles(n)%speed_z - &
    199199                                               pts_value(0,8) )**2     ! w*2
    200        pts_value_l(0,23) = pts_value_l(0,23) + ( particles(n)%speed_x_sgs - &
     200       pts_value_l(0,24) = pts_value_l(0,24) + ( particles(n)%rvar1 - &
    201201                                               pts_value(0,9) )**2     ! u"2
    202        pts_value_l(0,24) = pts_value_l(0,24) + ( particles(n)%speed_y_sgs - &
     202       pts_value_l(0,25) = pts_value_l(0,25) + ( particles(n)%rvar2 - &
    203203                                               pts_value(0,10) )**2    ! v"2
    204        pts_value_l(0,25) = pts_value_l(0,25) + ( particles(n)%speed_z_sgs - &
     204       pts_value_l(0,26) = pts_value_l(0,26) + ( particles(n)%rvar3 - &
    205205                                               pts_value(0,11) )**2    ! w"2
    206206!
     
    209209          j = particles(n)%group
    210210
    211           pts_value_l(j,17) = pts_value_l(j,17) + ( particles(n)%x - &
     211          pts_value_l(j,18) = pts_value_l(j,18) + ( particles(n)%x - &
    212212                              particles(n)%origin_x - pts_value(j,2) )**2
    213           pts_value_l(j,18) = pts_value_l(j,18) + ( particles(n)%y - &
     213          pts_value_l(j,19) = pts_value_l(j,19) + ( particles(n)%y - &
    214214                              particles(n)%origin_y - pts_value(j,3) )**2
    215           pts_value_l(j,19) = pts_value_l(j,19) + ( particles(n)%z - &
     215          pts_value_l(j,20) = pts_value_l(j,20) + ( particles(n)%z - &
    216216                              particles(n)%origin_z - pts_value(j,4) )**2
    217           pts_value_l(j,20) = pts_value_l(j,20) + ( particles(n)%speed_x - &
     217          pts_value_l(j,21) = pts_value_l(j,21) + ( particles(n)%speed_x - &
    218218                                                  pts_value(j,6) )**2
    219           pts_value_l(j,21) = pts_value_l(j,21) + ( particles(n)%speed_y - &
     219          pts_value_l(j,22) = pts_value_l(j,22) + ( particles(n)%speed_y - &
    220220                                                  pts_value(j,7) )**2
    221           pts_value_l(j,22) = pts_value_l(j,22) + ( particles(n)%speed_z - &
     221          pts_value_l(j,23) = pts_value_l(j,23) + ( particles(n)%speed_z - &
    222222                                                  pts_value(j,8) )**2
    223           pts_value_l(j,23) = pts_value_l(j,23) + ( particles(n)%speed_x_sgs - &
     223          pts_value_l(j,24) = pts_value_l(j,24) + ( particles(n)%rvar1 -  &
    224224                                                  pts_value(j,9) )**2
    225           pts_value_l(j,24) = pts_value_l(j,24) + ( particles(n)%speed_y_sgs - &
     225          pts_value_l(j,25) = pts_value_l(j,25) + ( particles(n)%rvar2 -  &
    226226                                                  pts_value(j,10) )**2
    227           pts_value_l(j,25) = pts_value_l(j,25) + ( particles(n)%speed_z_sgs - &
     227          pts_value_l(j,26) = pts_value_l(j,26) + ( particles(n)%rvar3 -  &
    228228                                                  pts_value(j,11) )**2
    229229       ENDIF
     
    231231    ENDDO
    232232
    233     pts_value_l(0,26) = ( number_of_particles - pts_value(0,1) / numprocs )**2
     233    pts_value_l(0,27) = ( number_of_particles - pts_value(0,1) / numprocs )**2
    234234                                                 ! variance of particle numbers
    235235    IF ( number_of_particle_groups > 1 )  THEN
    236236       DO  j = 1, number_of_particle_groups
    237           pts_value_l(j,26) = ( pts_value_l(j,1) - &
     237          pts_value_l(j,27) = ( pts_value_l(j,1) - &
    238238                                pts_value(j,1) / numprocs )**2
    239239       ENDDO
     
    246246
    247247    IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    248     CALL MPI_ALLREDUCE( pts_value_l(0,17), pts_value(0,17), inum*10, MPI_REAL, &
     248    CALL MPI_ALLREDUCE( pts_value_l(0,18), pts_value(0,18), inum*10, MPI_REAL, &
    249249                        MPI_SUM, comm2d, ierr )
    250250#else
    251     pts_value(:,17:26) = pts_value_l(:,17:26)
     251    pts_value(:,18:27) = pts_value_l(:,18:27)
    252252#endif
    253253
     
    264264
    265265       IF ( pts_value(j,1) > 0.0 )  THEN
    266           pts_value(j,17:25) = pts_value(j,17:25) / pts_value(j,1)
    267        ENDIF
    268        pts_value(j,26) = pts_value(j,26) / numprocs
     266          pts_value(j,18:26) = pts_value(j,18:26) / pts_value(j,1)
     267       ENDIF
     268       pts_value(j,27) = pts_value(j,27) / numprocs
    269269
    270270    ENDDO
  • palm/trunk/SOURCE/header.f90

    r768 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! Output of cloud physics parameters/quantities complemented and restructured
    77!
    88! Former revisions:
     
    338338       ELSE
    339339          WRITE ( io, 130 )
    340           WRITE ( io, 131 )
    341           IF ( radiation )      WRITE ( io, 132 )
    342           IF ( precipitation )  WRITE ( io, 133 )
    343340       ENDIF
    344341    ENDIF
     
    14701467
    14711468!
     1469!-- Cloud physcis parameters / quantities / numerical methods
     1470    WRITE ( io, 430 )
     1471    IF ( humidity .AND. .NOT. cloud_physics .AND. .NOT. cloud_droplets)  THEN
     1472       WRITE ( io, 431 )
     1473    ELSEIF ( humidity  .AND.  cloud_physics )  THEN
     1474       WRITE ( io, 432 )
     1475       IF ( radiation )      WRITE ( io, 132 )
     1476       IF ( precipitation )  WRITE ( io, 133 )
     1477    ELSEIF ( humidity  .AND.  cloud_droplets )  THEN
     1478       WRITE ( io, 433 )
     1479       IF ( curvature_solution_effects )  WRITE ( io, 434 )
     1480    ENDIF
     1481
     1482!
    14721483!-- LES / turbulence parameters
    14731484    WRITE ( io, 450 )
     
    15211532       IF ( particles_per_point > 1 )  WRITE ( io, 489 )  particles_per_point
    15221533       WRITE ( io, 495 )  total_number_of_particles
    1523        IF ( maximum_number_of_tailpoints /= 0 )  THEN
     1534       IF ( use_particle_tails  .AND.  maximum_number_of_tailpoints /= 0 )  THEN
    15241535          WRITE ( io, 483 )  maximum_number_of_tailpoints
    15251536          IF ( minimum_tailpoint_distance /= 0 )  THEN
     
    16471658129 FORMAT (' --> Additional prognostic equation for the specific humidity')
    16481659130 FORMAT (' --> Additional prognostic equation for the total water content')
    1649 131 FORMAT (' --> Parameterization of condensation processes via (0%-or100%)')
    1650 132 FORMAT (' --> Parameterization of long-wave radiation processes via'/ &
     1660132 FORMAT ('     Parameterization of long-wave radiation processes via'/ &
    16511661            '     effective emissivity scheme')
    1652 133 FORMAT (' --> Precipitation parameterization via Kessler-Scheme')
     1662133 FORMAT ('     Precipitation parameterization via Kessler-Scheme')
    16531663134 FORMAT (' --> Additional prognostic equation for a passive scalar')
    16541664135 FORMAT (' --> Solve perturbation pressure via multigrid method (', &
     
    19341944427 FORMAT (/'    Initial wind profiles (u,v) are interpolated from given'// &
    19351945                  ' profiles')
     1946430 FORMAT (//' Cloud physics quantities / methods:'/ &
     1947              ' ----------------------------------'/)
     1948431 FORMAT ('    Humidity is treated as purely passive scalar (no condensati', &
     1949                 'on)')
     1950432 FORMAT ('    Bulk scheme with liquid water potential temperature and'/ &
     1951            '    total water content is used.'/ &
     1952            '    Condensation is parameterized via 0% - or 100% scheme.')
     1953433 FORMAT ('    Cloud droplets treated explicitly using the Lagrangian part', &
     1954                 'icle model')
     1955434 FORMAT ('    Curvature and solution effecs are considered for growth of', &
     1956                 ' droplets < 1.0E-6 m')
    19361957450 FORMAT (//' LES / Turbulence quantities:'/ &
    19371958              ' ---------------------------'/)
    1938 451 FORMAT ('   Diffusion coefficients are constant:'/ &
    1939             '   Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
    1940 452 FORMAT ('   Mixing length is limited to the Prandtl mixing lenth.')
    1941 453 FORMAT ('   Mixing length is limited to ',F4.2,' * z')
    1942 454 FORMAT ('   TKE is not allowed to fall below ',E9.2,' (m/s)**2')
    1943 455 FORMAT ('   initial TKE is prescribed as ',E9.2,' (m/s)**2')
     1959451 FORMAT ('    Diffusion coefficients are constant:'/ &
     1960            '    Km = ',F6.2,' m**2/s   Kh = ',F6.2,' m**2/s   Pr = ',F5.2)
     1961452 FORMAT ('    Mixing length is limited to the Prandtl mixing lenth.')
     1962453 FORMAT ('    Mixing length is limited to ',F4.2,' * z')
     1963454 FORMAT ('    TKE is not allowed to fall below ',E9.2,' (m/s)**2')
     1964455 FORMAT ('    initial TKE is prescribed as ',E9.2,' (m/s)**2')
    19441965470 FORMAT (//' Actions during the simulation:'/ &
    19451966              ' -----------------------------'/)
  • palm/trunk/SOURCE/init_cloud_physics.f90

    r484 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! calculation of b_cond replaced by calculation of bfactor
    77!
    88! Former revisions:
     
    3434    USE arrays_3d
    3535    USE cloud_parameters
     36    USE constants
    3637    USE control_parameters
    3738    USE grid_variables
     
    4647
    4748!
    48 !-- Compute frequently used parameters
     49!-- Calculate frequently used parameters
    4950    l_d_cp = l_v / cp
    5051    l_d_r  = l_v / r_d
    5152    l_d_rv = l_v / r_v
    52 
    5353!
    54 !-- Constant b in equation for droplet growth by condensation / evaporation.
    55 !-- Factor 1E-3 is needed because formula is in cgs units
    56     mass_of_solute = 1.0E-17            ! in kg
    57     molecular_weight_of_solute = 58.5   ! NaCl
    58     b_cond = 4.3 * 2.0 * mass_of_solute / molecular_weight_of_solute * 1.0E-6
    59 
     54!-- Calculate factor used in equation for droplet growth by condensation
     55    bfactor = 3.0 * vanthoff * mass_of_solute * molecular_weight_of_water &
     56              / ( 4.0 * pi * rho_l * molecular_weight_of_solute )
    6057!
    6158!-- Calculate:
  • palm/trunk/SOURCE/init_particles.f90

    r792 r824  
    44! Current revisions:
    55! -----------------
    6 ! array particles implemented as pointer
     6! particle attributes speed_x|y|z_sgs renamed rvar1|2|3.
     7! array particles implemented as pointer.
    78!
    89! Former revisions:
     
    6364
    6465    USE arrays_3d
     66    USE cloud_parameters
    6567    USE control_parameters
    6668    USE dvrp_variables
     
    316318                            particles(n)%dvrp_psize    = dvrp_psize
    317319                            particles(n)%e_m           = 0.0
     320                            IF ( curvature_solution_effects )  THEN
     321!
     322!--                            Initial values (internal timesteps, derivative)
     323!--                            for Rosenbrock method
     324                               particles(n)%rvar1      = 1.0E-12
     325                               particles(n)%rvar2      = 1.0E-3
     326                               particles(n)%rvar3      = -9999999.9
     327                            ELSE
     328!
     329!--                            Initial values for SGS velocities
     330                               particles(n)%rvar1      = 0.0
     331                               particles(n)%rvar2      = 0.0
     332                               particles(n)%rvar3      = 0.0
     333                            ENDIF
    318334                            particles(n)%speed_x       = 0.0
    319                             particles(n)%speed_x_sgs   = 0.0
    320335                            particles(n)%speed_y       = 0.0
    321                             particles(n)%speed_y_sgs   = 0.0
    322336                            particles(n)%speed_z       = 0.0
    323                             particles(n)%speed_z_sgs   = 0.0
    324337                            particles(n)%origin_x      = pos_x
    325338                            particles(n)%origin_y      = pos_y
  • palm/trunk/SOURCE/modules.f90

    r810 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! +bfactor, curvature_solution_effects, eps_ros, molecular_weight_of_water,
     7! vanthoff, -b_cond in cloud_parameters,
     8! dopts_num increased to 27, particle attributes speed_x|y|z_sgs renamed
     9! rvar1|2|3
    710!
    811! Former revisions:
     
    332335    REAL, DIMENSION(:,:,:,:), ALLOCATABLE ::  rif_wall
    333336
    334     REAL, DIMENSION(:,:,:), ALLOCATABLE :: var_x, var_y, var_z, gamma_x,        &
     337    REAL, DIMENSION(:,:,:), ALLOCATABLE :: var_x, var_y, var_z, gamma_x,       &
    335338                                           gamma_y, gamma_z
    336339
     
    369372!------------------------------------------------------------------------------!
    370373
    371     REAL  ::  b_cond, cp = 1005.0, diff_coeff_l = 0.23E-4,                     &
    372               effective_coll_efficiency, l_d_cp, l_d_r, l_d_rv, l_v = 2.5E+06, &
    373               mass_of_solute, molecular_weight_of_solute,                      &
     374    LOGICAL ::  curvature_solution_effects = .FALSE.
     375
     376    REAL  ::  bfactor, cp = 1005.0, diff_coeff_l = 0.23E-4,                    &
     377              effective_coll_efficiency,                                       &
     378              eps_ros = 1.0E-4,             &  ! accuracy of Rosenbrock method
     379              l_d_cp, l_d_r, l_d_rv, l_v = 2.5E+06,                            &
     380              mass_of_solute = 1.0E-17,              & ! soluted NaCl in kg
     381              molecular_weight_of_solute = 0.05844,  & ! mol. mass NaCl (kg/mol)
     382              molecular_weight_of_water = 0.01801528,& ! mol. mass H2O (kg/mol)
    374383              prec_time_const = 0.001, ql_crit = 0.0005, rho_l = 1.0E3,        &
    375               r_d = 287.0, r_v = 461.51, thermal_conductivity_l = 2.43E-2
     384              r_d = 287.0, r_v = 461.51, thermal_conductivity_l = 2.43E-2,     &
     385              vanthoff = 2.0                        ! van't Hoff factor (NaCl)
    376386
    377387    REAL, DIMENSION(:), ALLOCATABLE   ::  pt_d_t, t_d_pt
     
    10371047#endif
    10381048
    1039     INTEGER, PARAMETER ::  dopr_norm_num = 7, dopts_num = 26, dots_max = 100
     1049    INTEGER, PARAMETER ::  dopr_norm_num = 7, dopts_num = 27, dots_max = 100
    10401050
    10411051    INTEGER ::  dots_num = 23
     
    10521062          (/ 'tnpt   ', 'x_     ', 'y_     ', 'z_     ', 'z_abs  ', 'u      ', &
    10531063             'v      ', 'w      ', 'u"     ', 'v"     ', 'w"     ', 'npt_up ', &
    1054              'w_up   ', 'w_down ', 'npt_max', 'npt_min', 'x*2    ', 'y*2    ', &
    1055              'z*2    ', 'u*2    ', 'v*2    ', 'w*2    ', 'u"2    ', 'v"2    ', &
    1056              'w"2    ', 'npt*2  ' /)
     1064             'w_up   ', 'w_down ', 'radius ', 'npt_max', 'npt_min', 'x*2    ', &
     1065             'y*2    ', 'z*2    ', 'u*2    ', 'v*2    ', 'w*2    ', 'u"2    ', &
     1066             'v"2    ', 'w"2    ', 'npt*2  ' /)
    10571067
    10581068    CHARACTER (LEN=7), DIMENSION(dopts_num) :: dopts_unit = &
    10591069          (/ 'number ', 'm      ', 'm      ', 'm      ', 'm      ', 'm/s    ', &
    10601070             'm/s    ', 'm/s    ', 'm/s    ', 'm/s    ', 'm/s    ', 'number ', &
    1061              'm/s    ', 'm/s    ', 'number ', 'number ', 'm2    ', 'm2     ', &
    1062              'm2     ', 'm2/s2  ', 'm2/s2  ', 'm2/s2  ', 'm2/s2  ', 'm2/s2  ', &
    1063              'm2/s2  ', 'number2' /)
     1071             'm/s    ', 'm/s    ', 'm      ', 'number ', 'number ', 'm2     ', &
     1072             'm2     ', 'm2     ', 'm2/s2  ', 'm2/s2  ', 'm2/s2  ', 'm2/s2  ', &
     1073             'm2/s2  ', 'm2/s2  ', 'number2' /)
    10641074
    10651075    CHARACTER (LEN=7), DIMENSION(dots_max) :: dots_label = &
     
    12301240       SEQUENCE
    12311241       REAL    ::  age, age_m, dt_sum, dvrp_psize, e_m, origin_x, origin_y, &
    1232                    origin_z, radius, speed_x, speed_x_sgs, speed_y,        &
    1233                    speed_y_sgs, speed_z, speed_z_sgs, weight_factor, x, y, z
     1242                   origin_z, radius, rvar1, rvar2, rvar3, speed_x, speed_y, &
     1243                   speed_z, weight_factor, x, y, z
    12341244       INTEGER ::  color, group, tailpoints, tail_id
    12351245    END TYPE particle_type
  • palm/trunk/SOURCE/parin.f90

    r810 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! +curvature_solution_effects in inipar
    77!
    88! Former revisions:
     
    122122    USE arrays_3d
    123123    USE averaging
     124    USE cloud_parameters
    124125    USE control_parameters
    125126    USE dvrp_variables
     
    145146             canyon_wall_south, cfl_factor, cloud_droplets, cloud_physics, &
    146147             collective_wait, conserve_volume_flow, conserve_volume_flow_mode, &
    147              coupling_start_time, cthf, cut_spline_overshoot, &
     148             coupling_start_time, cthf, curvature_solution_effects, &
     149             cut_spline_overshoot, &
    148150             cycle_mg, damp_level_1d, dissipation_1d, & !dissipation_control, &
    149151             dp_external, dp_level_b, dp_smooth, dpdxy, drag_coefficient, &
  • palm/trunk/SOURCE/particle_boundary_conds.f90

    r484 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! particle attributes speed_x|y|z_sgs renamed rvar1|2|3.
    77!
    88! Former revisions:
     
    549549
    550550          IF ( use_sgs_for_particles )  THEN
    551              particles(n)%speed_z_sgs = - particles(n)%speed_z_sgs
     551             particles(n)%rvar3 = - particles(n)%rvar3
    552552          ENDIF
    553553          reflect_z = .FALSE.
     
    559559
    560560          IF ( use_sgs_for_particles )  THEN
    561              particles(n)%speed_y_sgs = - particles(n)%speed_y_sgs
     561             particles(n)%rvar2 = - particles(n)%rvar2
    562562          ENDIF
    563563          reflect_y = .FALSE.
     
    569569
    570570          IF ( use_sgs_for_particles )  THEN
    571              particles(n)%speed_x_sgs = - particles(n)%speed_x_sgs
     571             particles(n)%rvar1 = - particles(n)%rvar1
    572572          ENDIF
    573573          reflect_x = .FALSE.
  • palm/trunk/SOURCE/read_var_list.f90

    r627 r824  
    44! Current revisions:
    55! ------------------
    6 !
     6! +curvature_solution_effects
    77!
    88! Former revisions:
     
    9999    USE arrays_3d
    100100    USE averaging
     101    USE cloud_parameters
    101102    USE control_parameters
    102103    USE grid_variables
     
    293294          CASE ( 'current_timestep_number' )
    294295             READ ( 13 )  current_timestep_number
     296          CASE ( 'curvature_solution_effects' )
     297             READ ( 13 )  curvature_solution_effects
    295298          CASE ( 'cut_spline_overshoot' )
    296299             READ ( 13 )  cut_spline_overshoot
  • palm/trunk/SOURCE/write_var_list.f90

    r623 r824  
    44! Current revisions:
    55! -----------------
    6 !
     6! +curvature_solution_effects
    77!
    88! Former revisions:
     
    8989    USE arrays_3d
    9090    USE averaging
     91    USE cloud_parameters
    9192    USE control_parameters
    9293    USE grid_variables
     
    213214    WRITE ( 14 )  'current_timestep_number       '
    214215    WRITE ( 14 )  current_timestep_number
     216    WRITE ( 14 )  'curvature_solution_effects    '
     217    WRITE ( 14 )  curvature_solution_effects
    215218    WRITE ( 14 )  'cthf                          '
    216219    WRITE ( 14 )  cthf
Note: See TracChangeset for help on using the changeset viewer.