Changeset 411 for palm/trunk
- Timestamp:
- Dec 11, 2009 2:15:58 PM (15 years ago)
- Location:
- palm/trunk
- Files:
-
- 1 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/app/appendix_a.html
r376 r411 3535 3535 </td> 3536 3536 </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> 3537 3544 <tr> 3538 3545 -
palm/trunk/DOC/app/chapter_4.1.html
r407 r411 17249 17249 17250 17250 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). </p> 17269 17270 <p>This gradient holds starting from the height 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) > 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. 17280 </p> 17281 17282 <p>Example: </p> 17283 17284 <ul> 17285 17286 <p><b>ws_vertical_gradient</b> 17287 = <i>-0.002</i>, <i>0.0</i>, <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 > 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> 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). </p> 17342 17343 <p>The height levels have to be assigned in ascending order. The 17344 default values result in a profile which is zero everywhere regardless of the 17345 values of <a href="#ws_vertical_gradient">ws_vertical_gradient</a>. 17346 For the piecewise construction of temperature profiles see <a href="#ws_vertical_gradient">ws_vertical_gradient</a>.</p> 17347 </td> 17348 17349 </tr> 17350 17253 17351 17254 17352 -
palm/trunk/DOC/app/chapter_4.6.html
r407 r411 15149 15149 15150 15150 </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> 15151 15180 15152 15181 <tr> -
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r407 r411 5 5 (check_parameters, init_3d_model, parin) 6 6 7 check parameters, init_3d_model, parin 7 Large scale vertical motion (subsidence/ascent) can be applied to the 8 prognostic equation for the potential temperature. (check_parameters, header, 9 Makefile, modules, parin, prognostic_equations, read_var_list, subsidence, 10 write_var_list) 11 12 check parameters, header, init_3d_model, Makefile, modules, parin prognostic equations, read_var_list, subsidence, write_var_list 8 13 9 14 Changed: -
palm/trunk/SOURCE/Makefile
r410 r411 5 5 # ----------------- 6 6 # +set_particle_attributes, set_slicer_attributes_dvrp 7 # +subsidence 7 8 # 8 9 # Branch revisions: … … 81 82 set_particle_attributes.f90 set_slicer_attributes_dvrp.f90 \ 82 83 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 \ 84 86 swap_timelevel.f90 temperton_fft.f90 time_integration.f90 \ 85 87 time_to_string.f90 timestep.f90 timestep_scheme_steering.f90 \ … … 124 126 set_particle_attributes.o set_slicer_attributes_dvrp.o \ 125 127 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 \ 127 130 temperton_fft.o time_integration.o time_to_string.o \ 128 131 timestep.o timestep_scheme_steering.o transpose.o \ … … 188 191 check_for_restart.o: modules.o 189 192 check_open.o: modules.o 190 check_parameters.o: modules.o 193 check_parameters.o: modules.o subsidence.o 191 194 close_file.o: modules.o 192 195 compute_vpt.o: modules.o … … 260 263 eqn_state_seawater.o impact_of_latent_heat.o \ 261 264 plant_canopy_model.o production_e.o \ 262 user_actions.o265 subsidence.o user_actions.o 263 266 random_gauss.o: random_function.o 264 267 read_3d_binary.o: modules.o random_function.o … … 272 275 spline_y.o: modules.o 273 276 spline_z.o: modules.o 277 subsidence.o: modules.o 274 278 sum_up_3d_data.o: modules.o 275 279 surface_coupler.o: modules.o -
palm/trunk/SOURCE/check_parameters.f90
r410 r411 5 5 ! ----------------- 6 6 ! Enabled passive scalar/humidity wall fluxes for non-flat topography 7 ! Initialization of large scale vertical motion (subsidence/ascent) 7 8 ! 8 9 ! Branch revisions: … … 114 115 USE pegrid 115 116 USE profil_parameter 117 USE subsidence_mod 116 118 USE statistics 117 119 USE transpose_indices … … 983 985 984 986 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 985 995 986 996 ! -
palm/trunk/SOURCE/header.f90
r410 r411 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! +large scale vertical motion (subsidence/ascent) 6 7 ! 7 8 ! … … 84 85 ! end of the run, then writing additional information about CPU-usage on file 85 86 ! header. 86 !----------------------------------------------------------------------------- -!87 !-----------------------------------------------------------------------------! 87 88 88 89 USE arrays_3d … … 96 97 USE particle_attributes 97 98 USE pegrid 99 USE subsidence_mod 98 100 USE spectrum 99 101 … … 323 325 WRITE ( io, 152 ) dpdxy, dp_level_b, '.' 324 326 ENDIF 327 ENDIF 328 IF ( large_scale_subsidence ) THEN 329 WRITE ( io, 153 ) 330 WRITE ( io, 154 ) 325 331 ENDIF 326 332 WRITE ( io, 99 ) … … 1357 1363 1358 1364 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 ), & 1359 1396 TRIM( gradients ), TRIM( slices ) 1360 1397 ENDIF … … 1568 1605 /' ',2(1X,E12.5),'Pa/m in x/y direction', & 1569 1606 /' starting from dp_level_b =', F8.3, 'm', A /) 1607 153 FORMAT (' --> Large-scale vertical motion is used in the ', & 1608 'prognostic equation for') 1609 154 FORMAT (' the potential temperature') 1570 1610 200 FORMAT (//' Run time and time step information:'/ & 1571 1611 ' ----------------------------------'/) … … 1814 1854 ' Gradient: ',A,' psu/100m'/ & 1815 1855 ' Gridpoint: ',A) 1856 426 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) 1816 1861 450 FORMAT (//' LES / Turbulence quantities:'/ & 1817 1862 ' ---------------------------'/) -
palm/trunk/SOURCE/modules.f90
r410 r411 8 8 ! initial data assignments to some dvrp arrays changed due to error messages 9 9 ! from gfortran compiler 10 ! +large_scale_subsidence, ws_vertical_gradient, ws_vertical_gradient_level, 11 ! ws_vertical_gradient_level_ind, w_subs 10 12 ! 11 13 ! Branch revisions: … … 155 157 ddzu, dd2zu, dzu, ddzw, dzw, hyp, inflow_damping_factor, km_damp_x, & 156 158 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, zw159 u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, w_subs, zu, zw 158 160 159 161 REAL, DIMENSION(:,:), ALLOCATABLE :: & … … 398 400 section_xz(100) = -9999, section_yz(100) = -9999, & 399 401 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 401 404 402 405 INTEGER, DIMENSION(:), ALLOCATABLE :: grid_level_count … … 426 429 humidity = .FALSE., humidity_remote = .FALSE., & 427 430 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., & 429 433 mg_switch_to_pe0 = .FALSE., & 430 434 netcdf_output = .FALSE., netcdf_64bit = .FALSE., & … … 545 549 volume_flow_initial(1:2) = 0.0, wall_heatflux(0:4) = 0.0, & 546 550 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 548 554 549 555 REAL, DIMENSION(:), ALLOCATABLE :: dp_smooth_factor -
palm/trunk/SOURCE/parin.f90
r410 r411 5 5 ! ----------------- 6 6 ! +wall_humidityflux, wall_scalarflux 7 ! +ws_vertical_gradient, ws_vertical_gradient_level 7 8 ! 8 9 ! Branch revisions: … … 137 138 use_upstream_for_tke, vg_surface, vg_vertical_gradient, & 138 139 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 140 142 141 143 -
palm/trunk/SOURCE/prognostic_equations.f90
r407 r411 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! add call of subsidence in the prognostic equation for 7 ! the potential temperature 6 8 ! 7 9 ! … … 94 96 USE plant_canopy_model_mod 95 97 USE production_e_mod 98 USE subsidence_mod 96 99 USE user_actions_mod 97 100 … … 452 455 IF ( plant_canopy .AND. ( cthf /= 0.0 ) ) THEN 453 456 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 ) 454 463 ENDIF 455 464 … … 1094 1103 ENDIF 1095 1104 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 1096 1112 CALL user_actions( i, j, 'pt-tendency' ) 1097 1113 … … 1680 1696 ENDIF 1681 1697 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 1682 1702 1683 1703 CALL user_actions( 'pt-tendency' ) -
palm/trunk/SOURCE/read_var_list.f90
r392 r411 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! 6 ! +large_scale_subsidence, ws_vertical_gradient, ws_vertical_gradient_level, 7 ! ws_vertical_gradient_level_ind 7 8 ! 8 9 ! Former revisions: … … 346 347 CASE ( 'last_dt_change' ) 347 348 READ ( 13 ) last_dt_change 349 CASE ( 'large_scale_subsidence' ) 350 READ ( 13 ) large_scale_subsidence 348 351 CASE ( 'leaf_surface_concentration' ) 349 352 READ ( 13 ) leaf_surface_concentration … … 593 596 CASE ( 'wall_adjustment' ) 594 597 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 595 604 CASE ( 'w_max' ) 596 605 READ ( 13 ) w_max -
palm/trunk/SOURCE/write_var_list.f90
r392 r411 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! +large_scale_subsidence, ws_vertical_gradient, ws_vertical_gradient_level, 7 ! ws_vertical_gradient_level_ind 7 8 ! 8 9 ! Former revisions: … … 267 268 WRITE ( 14 ) 'last_dt_change ' 268 269 WRITE ( 14 ) last_dt_change 270 WRITE ( 14 ) 'large_scale_subsidence ' 271 WRITE ( 14 ) large_scale_subsidence 269 272 WRITE ( 14 ) 'leaf_surface_concentration ' 270 273 WRITE ( 14 ) leaf_surface_concentration … … 511 514 WRITE ( 14 ) 'wall_adjustment ' 512 515 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 513 522 WRITE ( 14 ) 'w_max ' 514 523 WRITE ( 14 ) w_max
Note: See TracChangeset
for help on using the changeset viewer.