Changeset 411 for palm


Ignore:
Timestamp:
Dec 11, 2009 2:15:58 PM (15 years ago)
Author:
heinze
Message:

Large scale vertical motion (subsidence/ascent) can be applied to the prognostic equation for the potential temperature

Location:
palm/trunk
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/DOC/app/appendix_a.html

    r376 r411  
    35353535      </td>
    35363536    </tr>
     3537    <tr>
     3538      <td style="vertical-align: top;"><a name="PA0324"></a>PA0324<br>
     3539      </td>
     3540      <td style="vertical-align: top;">Applying large scale vertical motion is not
     3541                          allowed for ocean runs<br>
     3542      </td>
     3543    </tr>
    35373544<tr>
    35383545
  • palm/trunk/DOC/app/chapter_4.1.html

    r407 r411  
    1724917249
    1725017250
    17251 
    17252  
     17251 </tr>
     17252
     17253 <tr>
     17254
     17255 <td style="vertical-align: top;">
     17256     
     17257  <p><a name="ws_vertical_gradient"></a><b>ws_vertical_gradient</b></p>
     17258
     17259 </td>
     17260
     17261  <td style="vertical-align: top;">R (10)</td>
     17262
     17263  <td style="vertical-align: top;"><i>10 * 0.0</i></td>
     17264
     17265  <td style="vertical-align: top;">
     17266     
     17267    <p>Gradient(s) of the profile for the large scale subsidence/ascent velocity
     17268       (in (m/s) / 100 m).&nbsp; </p>
     17269     
     17270      <p>This gradient holds starting from the height&nbsp;
     17271        level defined by <a href="#ws_vertical_gradient_level">ws_vertical_gradient_level</a>
     17272       (precisely: for all uv levels k where zu(k) &gt;
     17273       ws_vertical_gradient_level,
     17274       w_subs(k) is set: w_subs(k) = w_subs(k-1) + dzu(k) * <b>ws_vertical_gradient</b>)
     17275       up to the top boundary or up to the next height level defined
     17276       by <a href="#ws_vertical_gradient_level">ws_vertical_gradient_level</a>.
     17277       A total of 10 different gradients for 11 height intervals (10 intervals
     17278       if <a href="#ws_vertical_gradient_level">ws_vertical_gradient_level</a>(1)
     17279       = <i>0.0</i>) can be assigned. &nbsp;
     17280      </p>
     17281     
     17282      <p>Example:&nbsp; </p>
     17283     
     17284      <ul>
     17285     
     17286        <p><b>ws_vertical_gradient</b>
     17287= <i>-0.002</i>, <i>0.0</i>,&nbsp; <br>
     17288
     17289        <b>ws_vertical_gradient_level</b> = <i>0.0</i>,
     17290        <i>1000.0</i>,</p>
     17291     
     17292      </ul>   
     17293     
     17294      <p>That defines the subsidence/ascent profile to be linear up
     17295         to z = 1000.0 m with a surface value of 0 m/s.
     17296         For z &gt; 1000.0 m up to the top boundary the gradient is <i>0.0</i> (m/s) / 100 m
     17297         (it is assumed that the assigned height levels correspond
     17298         with uv levels).</p>
     17299           
     17300       <p>With an appropriate construction of w_subs the height of the boundary layer z_i
     17301        can be kept approximately constant.</p>
     17302     
     17303   <p><span style="font-weight: bold;">Attention:</span><br>
     17304
     17305      The large scale vertical motion is only applied to the prognostic equation for the potential
     17306      temperature because it cannot be applied to the momentum equations due to incompressibility.
     17307      Thus, the model is not mass consistent.</p>
     17308
     17309
     17310 </td>
     17311
     17312 </tr>
     17313
     17314
     17315 </tr>
     17316
     17317 <tr>
     17318
     17319 <td style="vertical-align: top;">   
     17320     
     17321      <p><a name="ws_vertical_gradient_level"></a><b>ws_vertical_gradient</b>
     17322      <br><b>_level</b></p>
     17323
     17324 </td>
     17325
     17326 <td style="vertical-align: top;">R (10)</td>
     17327
     17328 <td style="vertical-align: top;">
     17329         
     17330      <p><i>10 *</i>&nbsp;
     17331      <span style="font-style: italic;">0.0</span><br>
     17332      </p>
     17333
     17334 </td>
     17335
     17336
     17337 <td style="vertical-align: top;">
     17338           
     17339      <p>Height level from which on the gradient for the subsidence/ascent velocity  defined by
     17340      <a href="#ws_vertical_gradient">ws_vertical_gradient</a>
     17341      is effective (in m).&nbsp; </p>
     17342   
     17343      <p>The height levels have to be assigned in ascending order. The
     17344default values result in a profile which is zero everywhere regardless of the
     17345values of <a href="#ws_vertical_gradient">ws_vertical_gradient</a>.
     17346For the piecewise construction of temperature profiles see <a href="#ws_vertical_gradient">ws_vertical_gradient</a>.</p>
     17347      </td>
     17348
     17349 </tr>
     17350
    1725317351 
    1725417352 
  • palm/trunk/DOC/app/chapter_4.6.html

    r407 r411  
    1514915149
    1515015150 </tr>
     15151
     15152  <tr>
     15153
     15154 <td><a href="chapter_4.1.html#ws_vertical_gradient"><span style="font-weight: bold;">ws_vertical_gradient</span></a></td>
     15155
     15156 <td>I</td>
     15157
     15158 <td>R(10)</td>
     15159
     15160 <td><span style="font-style: italic;">10 * 0.0</span></td>
     15161
     15162 <td>Gradient(s) of the profile for the large scale subsidence/ascent velocity in ((m/s) / 100 m)</td>
     15163
     15164 </tr>
     15165
     15166  <tr>
     15167
     15168 <td><a href="chapter_4.1.html#ws_vertical_gradient_level"><span style="font-weight: bold;">ws_vertical_gradient_level</span></a></td>
     15169
     15170 <td>I</td>
     15171
     15172 <td>R(10)</td>
     15173
     15174 <td><span style="font-style: italic;">10 * 0.0</span></td>
     15175
     15176 <td>Height level from which on the gradient for the subsidence/ascent velocity defined by
     15177     ws_vertical_gradient is effective (in m).</td>
     15178
     15179 </tr>
    1515115180 
    1515215181 <tr>
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r407 r411  
    55(check_parameters, init_3d_model, parin)
    66
    7 check parameters, init_3d_model, parin
     7Large scale vertical motion (subsidence/ascent) can be applied to the
     8prognostic equation for the potential temperature. (check_parameters, header,
     9Makefile, modules, parin, prognostic_equations, read_var_list, subsidence,
     10write_var_list)
     11
     12check parameters, header, init_3d_model, Makefile, modules, parin prognostic equations, read_var_list, subsidence, write_var_list
    813
    914Changed:
  • palm/trunk/SOURCE/Makefile

    r410 r411  
    55# -----------------
    66# +set_particle_attributes, set_slicer_attributes_dvrp
     7# +subsidence
    78#
    89# Branch revisions:
     
    8182        set_particle_attributes.f90 set_slicer_attributes_dvrp.f90 \
    8283        singleton.f90 sor.f90 spline_x.f90 \
    83         spline_y.f90 spline_z.f90 sum_up_3d_data.f90 surface_coupler.f90 \
     84        spline_y.f90 spline_z.f90 subsidence.f90 \
     85        sum_up_3d_data.f90 surface_coupler.f90 \
    8486        swap_timelevel.f90 temperton_fft.f90 time_integration.f90 \
    8587        time_to_string.f90 timestep.f90 timestep_scheme_steering.f90 \
     
    124126        set_particle_attributes.o set_slicer_attributes_dvrp.o \
    125127        singleton.o sor.o spline_x.o spline_y.o \
    126         spline_z.o sum_up_3d_data.o surface_coupler.o swap_timelevel.o \
     128        spline_z.o subsidence.o sum_up_3d_data.o surface_coupler.o \
     129        swap_timelevel.o \
    127130        temperton_fft.o time_integration.o time_to_string.o \
    128131        timestep.o timestep_scheme_steering.o transpose.o \
     
    188191check_for_restart.o: modules.o
    189192check_open.o: modules.o
    190 check_parameters.o: modules.o
     193check_parameters.o: modules.o subsidence.o
    191194close_file.o: modules.o
    192195compute_vpt.o: modules.o
     
    260263        eqn_state_seawater.o impact_of_latent_heat.o \
    261264        plant_canopy_model.o production_e.o \
    262         user_actions.o
     265        subsidence.o user_actions.o
    263266random_gauss.o: random_function.o
    264267read_3d_binary.o: modules.o random_function.o
     
    272275spline_y.o: modules.o
    273276spline_z.o: modules.o
     277subsidence.o: modules.o
    274278sum_up_3d_data.o: modules.o
    275279surface_coupler.o: modules.o
  • palm/trunk/SOURCE/check_parameters.f90

    r410 r411  
    55! -----------------
    66! Enabled passive scalar/humidity wall fluxes for non-flat topography
     7! Initialization of large scale vertical motion (subsidence/ascent)
    78!
    89! Branch revisions:
     
    114115    USE pegrid
    115116    USE profil_parameter
     117    USE subsidence_mod
    116118    USE statistics
    117119    USE transpose_indices
     
    983985         
    984986    ENDIF
     987
     988!
     989!-- Initialize large scale subsidence if required
     990    IF ( ws_vertical_gradient_level(1) /= -9999999.9 )  THEN
     991       large_scale_subsidence = .TRUE.
     992       CALL init_w_subsidence
     993    END IF
     994 
    985995             
    986996!
  • palm/trunk/SOURCE/header.f90

    r410 r411  
    44! Current revisions:
    55! -----------------
     6! +large scale vertical motion (subsidence/ascent)
    67!
    78!
     
    8485! end of the run, then writing additional information about CPU-usage on file
    8586! header.
    86 !------------------------------------------------------------------------------!
     87!-----------------------------------------------------------------------------!
    8788
    8889    USE arrays_3d
     
    9697    USE particle_attributes
    9798    USE pegrid
     99    USE subsidence_mod
    98100    USE spectrum
    99101
     
    323325          WRITE ( io, 152 )  dpdxy, dp_level_b, '.'
    324326       ENDIF
     327    ENDIF
     328    IF ( large_scale_subsidence )  THEN
     329        WRITE ( io, 153 )
     330        WRITE ( io, 154 )
    325331    ENDIF
    326332    WRITE ( io, 99 )
     
    13571363
    13581364       WRITE ( io, 425 )  TRIM( coordinates ), TRIM( temperatures ), &
     1365                          TRIM( gradients ), TRIM( slices )
     1366    ENDIF
     1367
     1368!
     1369!-- Profile for the large scale vertial velocity
     1370!-- Building output strings, starting with surface value
     1371    IF ( large_scale_subsidence )  THEN
     1372       temperatures = '   0.0'
     1373       gradients = '------'
     1374       slices = '     0'
     1375       coordinates = '   0.0'
     1376       i = 1
     1377       DO  WHILE ( ws_vertical_gradient_level_ind(i) /= -9999 )
     1378
     1379          WRITE (coor_chr,'(E10.2,7X)')  &
     1380                                w_subs(ws_vertical_gradient_level_ind(i))
     1381          temperatures = TRIM( temperatures ) // ' ' // TRIM( coor_chr )
     1382
     1383          WRITE (coor_chr,'(E10.2,7X)')  ws_vertical_gradient(i)
     1384          gradients = TRIM( gradients ) // ' ' // TRIM( coor_chr )
     1385
     1386          WRITE (coor_chr,'(I10,7X)')  ws_vertical_gradient_level_ind(i)
     1387          slices = TRIM( slices ) // ' ' // TRIM( coor_chr )
     1388
     1389          WRITE (coor_chr,'(F10.2,7X)')  ws_vertical_gradient_level(i)
     1390          coordinates = TRIM( coordinates ) // ' '  // TRIM( coor_chr )
     1391
     1392          i = i + 1
     1393       ENDDO
     1394
     1395       WRITE ( io, 426 )  TRIM( coordinates ), TRIM( temperatures ), &
    13591396                          TRIM( gradients ), TRIM( slices )
    13601397    ENDIF
     
    15681605           /'     ',2(1X,E12.5),'Pa/m in x/y direction', &
    15691606           /'     starting from dp_level_b =', F8.3, 'm', A /)
     1607153 FORMAT (' --> Large-scale vertical motion is used in the ', &
     1608                  'prognostic equation for')
     1609154 FORMAT ('     the potential temperature')
    15701610200 FORMAT (//' Run time and time step information:'/ &
    15711611             ' ----------------------------------'/)
     
    18141854            '       Gradient:   ',A,'  psu/100m'/ &
    18151855            '       Gridpoint:  ',A)
     1856426 FORMAT (/'    Characteristic levels of the subsidence/ascent profile:'// &
     1857            '       Height:      ',A,'  m'/ &
     1858            '       w_subs:      ',A,'  m/s'/ &
     1859            '       Gradient:    ',A,'  (m/s)/100m'/ &
     1860            '       Gridpoint:   ',A)
    18161861450 FORMAT (//' LES / Turbulence quantities:'/ &
    18171862              ' ---------------------------'/)
  • palm/trunk/SOURCE/modules.f90

    r410 r411  
    88! initial data assignments to some dvrp arrays changed due to error messages
    99! from gfortran compiler
     10! +large_scale_subsidence, ws_vertical_gradient, ws_vertical_gradient_level,
     11! ws_vertical_gradient_level_ind, w_subs
    1012!
    1113! Branch revisions:
     
    155157          ddzu, dd2zu, dzu, ddzw, dzw, hyp, inflow_damping_factor, km_damp_x,  &
    156158          km_damp_y, lad, l_grid, pt_init, q_init, rdf, sa_init, ug, u_init,   &
    157           u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, zu, zw
     159          u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, w_subs, zu, zw
    158160
    159161    REAL, DIMENSION(:,:), ALLOCATABLE ::                                       &
     
    398400                section_xz(100) = -9999, section_yz(100) = -9999, &
    399401                ug_vertical_gradient_level_ind(10) = -9999, &
    400                 vg_vertical_gradient_level_ind(10) = -9999
     402                vg_vertical_gradient_level_ind(10) = -9999, &
     403                ws_vertical_gradient_level_ind(10) = -9999
    401404
    402405    INTEGER, DIMENSION(:), ALLOCATABLE ::  grid_level_count
     
    426429                humidity = .FALSE., humidity_remote = .FALSE., &
    427430                inflow_l = .FALSE., inflow_n = .FALSE., &
    428                 inflow_r = .FALSE., inflow_s = .FALSE., iso2d_output = .FALSE.,&
     431                inflow_r = .FALSE., inflow_s = .FALSE., &
     432                iso2d_output = .FALSE., large_scale_subsidence = .FALSE., &
    429433                mg_switch_to_pe0 = .FALSE., &
    430434                netcdf_output = .FALSE., netcdf_64bit = .FALSE., &
     
    545549             volume_flow_initial(1:2) = 0.0, wall_heatflux(0:4) = 0.0, &
    546550             wall_humidityflux(0:4) = 0.0, wall_qflux(0:4) = 0.0, &
    547              wall_salinityflux(0:4) = 0.0, wall_scalarflux(0:4) = 0.0
     551             wall_salinityflux(0:4) = 0.0, wall_scalarflux(0:4) = 0.0, &
     552             ws_vertical_gradient(10) = 0.0, &
     553             ws_vertical_gradient_level(10) = -9999999.9
    548554
    549555    REAL, DIMENSION(:), ALLOCATABLE ::  dp_smooth_factor
  • palm/trunk/SOURCE/parin.f90

    r410 r411  
    55! -----------------
    66! +wall_humidityflux, wall_scalarflux
     7! +ws_vertical_gradient, ws_vertical_gradient_level
    78!
    89! Branch revisions:
     
    137138             use_upstream_for_tke, vg_surface, vg_vertical_gradient, &
    138139             vg_vertical_gradient_level, v_bulk, wall_adjustment, &
    139              wall_heatflux, wall_humidityflux, wall_scalarflux
     140             wall_heatflux, wall_humidityflux, wall_scalarflux, &
     141             ws_vertical_gradient, ws_vertical_gradient_level
    140142
    141143
  • palm/trunk/SOURCE/prognostic_equations.f90

    r407 r411  
    44! Actual revisions:
    55! -----------------
     6! add call of subsidence in the prognostic equation for
     7! the potential temperature
    68!
    79!
     
    9496    USE plant_canopy_model_mod
    9597    USE production_e_mod
     98    USE subsidence_mod
    9699    USE user_actions_mod
    97100
     
    452455          IF ( plant_canopy .AND. ( cthf /= 0.0 ) ) THEN
    453456             CALL plant_canopy_model( i, j, 4 )
     457          ENDIF
     458
     459!
     460!--       If required compute influence of large-scale subsidence/ascent
     461          IF ( large_scale_subsidence ) THEN
     462             CALL subsidence ( i, j, tend, pt, pt_init )
    454463          ENDIF
    455464
     
    10941103          ENDIF
    10951104
     1105
     1106!--       If required compute influence of large-scale subsidence/ascent
     1107          IF ( large_scale_subsidence ) THEN
     1108             CALL subsidence ( i, j, tend, pt, pt_init )
     1109          ENDIF
     1110
     1111
    10961112          CALL user_actions( i, j, 'pt-tendency' )
    10971113
     
    16801696    ENDIF
    16811697
     1698!--If required compute influence of large-scale subsidence/ascent
     1699   IF ( large_scale_subsidence ) THEN
     1700      CALL subsidence ( tend, pt, pt_init )
     1701   ENDIF
    16821702
    16831703    CALL user_actions( 'pt-tendency' )
  • palm/trunk/SOURCE/read_var_list.f90

    r392 r411  
    44! Current revisions:
    55! -----------------
    6 !
     6! +large_scale_subsidence, ws_vertical_gradient, ws_vertical_gradient_level,
     7! ws_vertical_gradient_level_ind
    78!
    89! Former revisions:
     
    346347          CASE ( 'last_dt_change' )
    347348             READ ( 13 )  last_dt_change
     349           CASE ( 'large_scale_subsidence' )
     350             READ ( 13 )  large_scale_subsidence
    348351          CASE ( 'leaf_surface_concentration' )
    349352             READ ( 13 )  leaf_surface_concentration
     
    593596          CASE ( 'wall_adjustment' )
    594597             READ ( 13 )  wall_adjustment
     598          CASE ( 'ws_vertical_gradient' )
     599             READ ( 13 )  ws_vertical_gradient
     600          CASE ( 'ws_vertical_gradient_level' )
     601             READ ( 13 )  ws_vertical_gradient_level
     602          CASE ( 'ws_vertical_gradient_level_ind' )
     603             READ ( 13 )  ws_vertical_gradient_level_ind
    595604          CASE ( 'w_max' )
    596605             READ ( 13 )  w_max
  • palm/trunk/SOURCE/write_var_list.f90

    r392 r411  
    44! Actual revisions:
    55! -----------------
    6 !
     6! +large_scale_subsidence, ws_vertical_gradient, ws_vertical_gradient_level,
     7! ws_vertical_gradient_level_ind
    78!
    89! Former revisions:
     
    267268    WRITE ( 14 )  'last_dt_change                '
    268269    WRITE ( 14 )  last_dt_change
     270    WRITE ( 14 )  'large_scale_subsidence        '
     271    WRITE ( 14 )  large_scale_subsidence
    269272    WRITE ( 14 )  'leaf_surface_concentration    '
    270273    WRITE ( 14 )  leaf_surface_concentration
     
    511514    WRITE ( 14 )  'wall_adjustment               '
    512515    WRITE ( 14 )  wall_adjustment
     516    WRITE ( 14 )  'ws_vertical_gradient          '
     517    WRITE ( 14 )  ws_vertical_gradient
     518    WRITE ( 14 )  'ws_vertical_gradient_level    '
     519    WRITE ( 14 )  ws_vertical_gradient_level
     520    WRITE ( 14 )  'ws_vertical_gradient_level_ind'
     521    WRITE ( 14 )  ws_vertical_gradient_level_ind
    513522    WRITE ( 14 )  'w_max                         '
    514523    WRITE ( 14 )  w_max
Note: See TracChangeset for help on using the changeset viewer.