- Timestamp:
- Mar 21, 2009 8:14:44 AM (16 years ago)
- Location:
- palm/trunk
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/tec/message_identifiers
r263 r264 566 566 v_max = ... m/s k=... j=... i=... 567 567 w_max = ... m/s k=... j=... i=... 568 PA0313 illegal value for parameter particle_color: ... 569 PA0314 illegal value for parameter particle_dvrpsize: ... 570 PA0315 color_interval(2) <= color_interval(1) 571 PA0316 dvrpsize_interval(2) <= dvrpsize_interval(1) 568 572 569 573 -
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r263 r264 1 1 New: 2 2 --- 3 Clipping of dvrp output implemented. (init_dvrp, data_output_dvrp, 4 user_data_output_dvrp) 3 Clipping of dvrp output implemented. Default colourtable for particles 4 implemented, particle attributes (color, dvrp_size) can be set with new 5 parameters particle_color, particle_dvrpsize, color_interval, 6 dvrpsize_interval (init_dvrp, data_output_dvrp, modules, user_data_output_dvrp) 5 7 6 8 Polygon reduction for topography and ground plate isosurface. Reduction level … … 19 21 check_parameters, data_output_dvrp, init_dvrp, init_grid, init_3d_model, header, modules, package_parin, parin, prognostic_equations, read_var_list, user_check_parameters, user_data_output_dvrp, user_header, user_init_grid, write_var_list 20 22 23 New: set_particle_attributes 21 24 22 25 Changed: -
palm/trunk/SOURCE/Makefile
r226 r264 4 4 # Actual revisions: 5 5 # ----------------- 6 # 6 # +set_particle_attributes 7 7 # 8 8 # Former revisions: … … 74 74 production_e.f90 prognostic_equations.f90 random_function.f90 \ 75 75 random_gauss.f90 read_3d_binary.f90 read_var_list.f90 run_control.f90 \ 76 singleton.f90 sor.f90 spline_x.f90 spline_y.f90 spline_z.f90 \ 77 sum_up_3d_data.f90 surface_coupler.f90 swap_timelevel.f90 \ 78 temperton_fft.f90 time_integration.f90 time_to_string.f90 timestep.f90 \ 79 timestep_scheme_steering.f90 transpose.f90 user_3d_data_averaging.f90 \ 80 user_actions.f90 user_additional_routines.f90 user_advec_particles.f90 \ 76 set_particle_attributes.f90 singleton.f90 sor.f90 spline_x.f90 \ 77 spline_y.f90 spline_z.f90 sum_up_3d_data.f90 surface_coupler.f90 \ 78 swap_timelevel.f90 temperton_fft.f90 time_integration.f90 \ 79 time_to_string.f90 timestep.f90 timestep_scheme_steering.f90 \ 80 transpose.f90 user_3d_data_averaging.f90 user_actions.f90 \ 81 user_additional_routines.f90 user_advec_particles.f90 \ 81 82 user_check_data_output.f90 user_check_data_output_pr.f90 \ 82 83 user_check_parameters.f90 user_data_output_2d.f90 \ … … 113 114 poisfft_hybrid.o poismg.o prandtl_fluxes.o pres.o print_1d.o \ 114 115 production_e.o prognostic_equations.o random_function.o random_gauss.o \ 115 read_3d_binary.o read_var_list.o run_control.o singleton.o sor.o \ 116 spline_x.o spline_y.o spline_z.o sum_up_3d_data.o surface_coupler.o \ 117 swap_timelevel.o temperton_fft.o time_integration.o time_to_string.o \ 116 read_3d_binary.o read_var_list.o run_control.o \ 117 set_particle_attributes.o singleton.o sor.o spline_x.o spline_y.o \ 118 spline_z.o sum_up_3d_data.o surface_coupler.o swap_timelevel.o \ 119 temperton_fft.o time_integration.o time_to_string.o \ 118 120 timestep.o timestep_scheme_steering.o transpose.o \ 119 121 user_3d_data_averaging.o user_actions.o user_additional_routines.o \ … … 253 255 read_var_list.o: modules.o 254 256 run_control.o: modules.o 257 set_particle_attributes.o: modules.o 255 258 singleton.o: singleton.f90 256 259 sor.o: modules.o -
palm/trunk/SOURCE/advec_particles.f90
r263 r264 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Particle attributes are set with new routine set_particle_attributes. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! Output of messages replaced by message handling routine … … 3360 3361 3361 3362 ! 3363 !-- Set particle attributes 3364 CALL set_particle_attributes 3365 3366 ! 3362 3367 !-- Set particle attributes defined by the user 3363 3368 CALL user_particle_attributes -
palm/trunk/SOURCE/check_parameters.f90
r256 r264 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Check particle_color, particle_dvrpsize, color_interval, dvrpsize_interval 6 7 ! Bugfix: pressure included for profile output 7 8 ! Check pressure gradient conditions … … 90 91 USE constants 91 92 USE control_parameters 93 USE dvrp_variables 92 94 USE grid_variables 93 95 USE indices … … 2916 2918 2917 2919 ! 2920 !-- Check particle attributes 2921 IF ( particle_color /= 'none' ) THEN 2922 IF ( particle_color /= 'absuv' .AND. particle_color /= 'pt*' .AND. & 2923 particle_color /= 'z' ) THEN 2924 message_string = 'illegal value for parameter particle_color: ' // & 2925 TRIM( particle_color) 2926 CALL message( 'check_parameters', 'PA0313', 1, 2, 0, 6, 0 ) 2927 ELSE 2928 IF ( color_interval(2) <= color_interval(1) ) THEN 2929 message_string = 'color_interval(2) <= color_interval(1)' 2930 CALL message( 'check_parameters', 'PA0315', 1, 2, 0, 6, 0 ) 2931 ENDIF 2932 ENDIF 2933 ENDIF 2934 2935 IF ( particle_dvrpsize /= 'none' ) THEN 2936 IF ( particle_dvrpsize /= 'absw' ) THEN 2937 message_string = 'illegal value for parameter particle_dvrpsize:' // & 2938 ' ' // TRIM( particle_color) 2939 CALL message( 'check_parameters', 'PA0314', 1, 2, 0, 6, 0 ) 2940 ELSE 2941 IF ( dvrpsize_interval(2) <= dvrpsize_interval(1) ) THEN 2942 message_string = 'dvrpsize_interval(2) <= dvrpsize_interval(1)' 2943 CALL message( 'check_parameters', 'PA0316', 1, 2, 0, 6, 0 ) 2944 ENDIF 2945 ENDIF 2946 ENDIF 2947 2948 ! 2918 2949 !-- Check &userpar parameters 2919 2950 CALL user_check_parameters -
palm/trunk/SOURCE/data_output_dvrp.f90
r262 r264 32 32 ! Current revisions: 33 33 ! ----------------- 34 ! Clipping of dvr-output implemented, 34 ! Clipping of dvr-output implemented, using a default colourtable for 35 ! particles, 35 36 ! output of messages replaced by message handling routine. 36 37 ! TEST: different colours for isosurfaces … … 168 169 !-- number of particles and tails to be plotted; otherwise, all 169 170 !-- particles/tails are plotted. dvrp_mask is used to mark the partikles. 170 ! IF ( .NOT. use_particle_tails ) THEN 171 ALLOCATE( dvrp_mask(number_of_particles) ) 172 ! ELSE 173 ! ALLOCATE( dvrp_mask(number_of_tails*maximum_number_of_tailpoints) ) 174 ! ENDIF 175 dvrp_mask = .TRUE. 171 ALLOCATE( dvrp_mask(number_of_particles) ) 172 176 173 IF ( dvrp_total_overlap ) THEN 177 dvrp_nop = number_of_particles 178 dvrp_not = number_of_tails 174 dvrp_mask = .TRUE. 175 dvrp_nop = number_of_particles 176 dvrp_not = number_of_tails 179 177 ELSE 180 dvrp_nop = 0 181 dvrp_not = 0 178 dvrp_mask = .FALSE. 179 dvrp_nop = 0 180 dvrp_not = 0 182 181 IF ( dvrp_overlap ) THEN 183 182 IF ( .NOT. use_particle_tails ) THEN … … 188 187 jp >= nys_dvrp .AND. jp <= nyn_dvrp ) THEN 189 188 dvrp_nop = dvrp_nop + 1 190 ELSE 191 dvrp_mask(n) = .FALSE. 189 dvrp_mask(n) = .TRUE. 192 190 ENDIF 193 191 ENDDO … … 202 200 jp >= nys_dvrp .AND. jp <= nyn_dvrp ) THEN 203 201 dvrp_not = dvrp_not + 1 204 ELSE 205 dvrp_mask(n) = .FALSE. 202 dvrp_mask(n) = .TRUE. 206 203 ENDIF 207 204 ENDIF … … 243 240 i = 0 244 241 k = 0 242 245 243 DO n = 1, number_of_particles 246 244 nn = particles(n)%tail_id … … 275 273 CALL user_dvrp_coltab( 'particles', 'none' ) 276 274 277 CALL DVRP_COLORTABLE_HLS( m-1, 0, interval_values_dvrp, & 278 interval_h_dvrp, interval_l_dvrp, & 279 interval_s_dvrp, interval_a_dvrp ) 275 CALL DVRP_COLORTABLE_HLS( m-1, 0, interval_values_dvrp_prt, & 276 interval_h_dvrp_prt, & 277 interval_l_dvrp_prt, & 278 interval_s_dvrp_prt, & 279 interval_a_dvrp_prt ) 280 280 281 281 IF ( .NOT. use_particle_tails ) THEN … … 452 452 END SELECT 453 453 454 ELSE 455 ! 456 !-- No overlap of clipping domain with the current subdomain 457 DO i = nxl_dvrp, nxr_dvrp+1 458 DO j = nys_dvrp, nyn_dvrp+1 459 DO k = nzb, nz_do3d 460 local_pf(i,j,k) = 0.0 461 ENDDO 462 ENDDO 463 ENDDO 464 454 465 ENDIF 455 466 456 467 IF ( mode_dvrp(m)(1:10) == 'isosurface' ) THEN 468 WRITE(9,*) '#8' 469 CALL local_flush( 9 ) 457 470 ! 458 471 !-- DVRP-Calls for plotting isosurfaces: … … 477 490 CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t ) 478 491 ENDIF 492 WRITE(9,*) '#8.1' 493 CALL local_flush( 9 ) 479 494 480 495 ! … … 482 497 CALL DVRP_DATA( m-1, local_pf, 1, nx_dvrp, ny_dvrp, nz_dvrp, & 483 498 cyclic_dvrp, cyclic_dvrp, cyclic_dvrp ) 499 WRITE(9,*) '#8.2' 500 CALL local_flush( 9 ) 484 501 485 502 c_size_x = vc_size_x; c_size_y = vc_size_y; c_size_z = vc_size_z 486 503 CALL DVRP_CLUSTER_SIZE( m-1, c_size_x, c_size_y, c_size_z ) 504 WRITE(9,*) '#8.3' 505 CALL local_flush( 9 ) 487 506 488 507 c_mode = vc_mode 489 508 CALL DVRP_CLUSTERING_MODE( m-1, c_mode ) 509 WRITE(9,*) '#8.4' 510 CALL local_flush( 9 ) 490 511 491 512 gradient_normals = vc_gradient_normals 492 513 CALL DVRP_GRADIENTNORMALS( m-1, gradient_normals ) 514 WRITE(9,*) '#8.5' 515 CALL local_flush( 9 ) 493 516 ! 494 517 !-- A seperate procedure for setting vc_alpha will be in the next … … 496 519 tmp_c_alpha = vc_alpha 497 520 CALL DVRP_THRESHOLD( -(m-1)-1, tmp_c_alpha ) 521 WRITE(9,*) '#8.6' 522 CALL local_flush( 9 ) 498 523 499 524 IF ( dvrp_overlap ) THEN … … 502 527 tmp_th = 1.0 ! nothing is plotted because array values are 0 503 528 ENDIF 529 WRITE(9,*) '#8.7' 530 CALL local_flush( 9 ) 504 531 505 532 CALL DVRP_THRESHOLD( m-1, tmp_th ) 533 WRITE(9,*) '#8.8' 534 WRITE(9,*) 'nxl_dvrp=',nxl_dvrp, ' nxl=',nxl 535 WRITE(9,*) 'nxr_dvrp=',nxr_dvrp, ' nxr=',nxr 536 WRITE(9,*) 'nys_dvrp=',nys_dvrp, ' nys=',nys 537 WRITE(9,*) 'nyn_dvrp=',nyn_dvrp, ' nyn=',nyn 538 CALL local_flush( 9 ) 506 539 CALL DVRP_VISUALIZE( m-1, 21, dvrp_filecount ) 540 WRITE(9,*) '#8.9' 541 CALL local_flush( 9 ) 507 542 508 543 CALL cpu_log( log_point_s(26), 'dvrp_isosurface', 'stop' ) 544 WRITE(9,*) '#9' 545 CALL local_flush( 9 ) 509 546 510 547 ELSEIF ( mode_dvrp(m)(1:6) == 'slicer' ) THEN 548 WRITE(9,*) '#10' 549 CALL local_flush( 9 ) 511 550 ! 512 551 !-- DVRP-Calls for plotting slicers: … … 547 586 548 587 CALL cpu_log( log_point_s(27), 'dvrp_slicer', 'stop' ) 588 WRITE(9,*) '#11' 589 CALL local_flush( 9 ) 549 590 550 591 ENDIF … … 552 593 DEALLOCATE( local_pf ) 553 594 595 WRITE(9,*) '#12' 596 CALL local_flush( 9 ) 554 597 ELSEIF ( mode_dvrp(m)(1:9) == 'pathlines' ) THEN 555 598 … … 588 631 589 632 ENDDO 633 WRITE(9,*) '#13' 634 CALL local_flush( 9 ) 590 635 591 636 dvrp_filecount = dvrp_filecount + 1 -
palm/trunk/SOURCE/init_dvrp.f90
r260 r264 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Definition of a colortable to be used for particles. 6 7 ! Output names are changed: surface=groundplate, buildings=topography 7 8 ! Output of messages replaced by message handling routine. … … 112 113 dvrp_overlap = .FALSE. 113 114 dvrp_total_overlap = .FALSE. 114 nxl_dvrp = nx_dvrp_l 115 nxr_dvrp = nxl_dvrp + 4 116 nys_dvrp = ny_dvrp_s 117 nyn_dvrp = nys_dvrp + 4 115 ! nxl_dvrp = nx_dvrp_l 116 ! nxr_dvrp = nxl_dvrp + 4 117 ! nys_dvrp = ny_dvrp_s 118 ! nyn_dvrp = nys_dvrp + 4 119 nxl_dvrp = nxl 120 nxr_dvrp = MIN( nxl+4, nxr ) 121 nys_dvrp = nys 122 nyn_dvrp = MIN( nys+4, nyn ) 118 123 119 124 ENDIF … … 250 255 tmp_3 = clip_dvrp_s * superelevation_y 251 256 tmp_4 = 0.0 252 tmp_5 = clip_dvrp_r* superelevation_x253 tmp_6 = clip_dvrp_n* superelevation_y257 tmp_5 = (clip_dvrp_r+dx) * superelevation_x 258 tmp_6 = (clip_dvrp_n+dy) * superelevation_y 254 259 tmp_7 = zu(nz_do3d) * superelevation 255 260 CALL DVRP_BOUNDINGBOX( m-1, 1, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, & … … 644 649 ENDIF 645 650 651 IF ( mode_dvrp(m) == 'particles' ) THEN 652 ! 653 !-- Define a default colourtable for particles 654 DO i = 1, 11 655 interval_values_dvrp_prt(1,i) = i - 1.0 656 interval_values_dvrp_prt(2,i) = REAL( i ) 657 interval_h_dvrp_prt(:,i) = 270.0 - ( i - 1.0 ) * 9.0 658 ENDDO 659 660 DO j = 12, 22 661 interval_values_dvrp_prt(1,i) = i - 1.0 662 interval_values_dvrp_prt(2,i) = REAL( i ) 663 interval_h_dvrp_prt(:,i) = 70.0 - ( i - 12.0 ) * 9.5 664 ENDDO 665 666 dvrp_colortable_entries_prt = 22 667 668 ENDIF 669 646 670 m = m + 1 647 671 -
palm/trunk/SOURCE/modules.f90
r260 r264 5 5 ! Actual revisions: 6 6 ! ----------------- 7 ! +clip_dvrp_*, cluster_size, dvrp_overlap, dvrp_total_overlap, 8 ! local_dvrserver_running, n*_dvrp in dvrp_variables 7 ! +clip_dvrp_*, cluster_size, color_interval, dvrpsize_interval, dvrp_overlap, 8 ! dvrp_total_overlap, local_dvrserver_running, n*_dvrp, interval_*_dvrp_prt, 9 ! particle_color, particle_dvrpsize in dvrp_variables 9 10 ! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left, 10 11 ! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b, … … 527 528 !------------------------------------------------------------------------------! 528 529 529 CHARACTER (LEN=10) :: dvrp_output = 'rtsp' 530 CHARACTER (LEN=10) :: dvrp_output = 'rtsp', particle_color = 'none', & 531 particle_dvrpsize = 'none' 530 532 531 533 CHARACTER (LEN=20), DIMENSION(10) :: mode_dvrp = & … … 538 540 dvrp_username = ' ' 539 541 540 INTEGER :: cluster_size = 1, dvrp_colourtable_entries = 4, islice_dvrp, & 542 INTEGER :: cluster_size = 1, dvrp_colortable_entries = 4, & 543 dvrp_colortable_entries_prt = 22, islice_dvrp, & 541 544 nx_dvrp, nxl_dvrp, nxr_dvrp, ny_dvrp, nyn_dvrp, nys_dvrp, & 542 545 nz_dvrp, pathlines_fadeintime = 5, pathlines_fadeouttime = 5, & … … 557 560 superelevation_y = 1.0, vc_alpha = 38.0 558 561 562 REAL, DIMENSION(2) :: color_interval = (/ 0.0, 1.0 /), & 563 dvrpsize_interval = (/ 0.0, 1.0 /) 564 559 565 #if defined( __decalpha ) 560 566 REAL, DIMENSION(2,10) :: slicer_range_limits_dvrp = (/ & … … 563 569 -1.0, 1.0, -1.0, 1.0 /) 564 570 565 REAL /4), DIMENSION(2,100) :: interval_values_dvrp, interval_h_dvrp = &571 REAL(4), DIMENSION(2,100) :: interval_values_dvrp, interval_h_dvrp = & 566 572 (/ 270.0, 225.0, 225.0, 180.0, 70.0, 25.0, & 567 573 25.0, -25.0, ( 0.0, i9 = 1, 192 ) /), & 568 574 interval_l_dvrp = 0.5, interval_s_dvrp = 1.0,& 569 interval_a_dvrp = 0.0 575 interval_a_dvrp = 0.0, & 576 interval_values_dvrp_prt, & 577 interval_h_dvrp_prt, & 578 (/ 270.0, 225.0, 225.0, 180.0, 70.0, 25.0, & 579 25.0, -25.0, ( 0.0, i9 = 1, 192 ) /), & 580 interval_l_dvrp_prt = 0.5, & 581 interval_s_dvrp_prt = 1.0, & 582 interval_a_dvrp_prt = 0.0 570 583 #else 571 584 REAL, DIMENSION(2,10) :: slicer_range_limits_dvrp 572 585 573 REAL(4), DIMENSION(2,100) :: interval_values_dvrp, interval_h_dvrp, & 574 interval_l_dvrp = 0.5, interval_s_dvrp = 1.0,& 575 interval_a_dvrp = 0.0 586 REAL(4), DIMENSION(2,100) :: interval_values_dvrp, & 587 interval_values_dvrp_prt, interval_h_dvrp, & 588 interval_h_dvrp_prt, interval_l_dvrp = 0.5, & 589 interval_l_dvrp_prt, interval_s_dvrp = 1.0, & 590 interval_s_dvrp_prt, interval_a_dvrp = 0.0, & 591 interval_a_dvrp_prt 576 592 577 593 DATA slicer_range_limits_dvrp / -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, & -
palm/trunk/SOURCE/package_parin.f90
r242 r264 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! +clip_dvrp_*, cluster_size in dvrp_graphics_par 6 ! +clip_dvrp_*, cluster_size, color_interval, dvrpsize_interval, particle_color, 7 ! dvrpsize_color in dvrp_graphics_par 7 8 ! Variables for dvrp-mode pathlines added 8 9 ! … … 46 47 47 48 NAMELIST /dvrp_graphics_par/ clip_dvrp_l, clip_dvrp_n, clip_dvrp_r, & 48 clip_dvrp_s, cluster_size, dt_dvrp, & 49 dvrp_directory, dvrp_file, dvrp_host, & 50 dvrp_output, dvrp_password, dvrp_username, & 51 mode_dvrp, pathlines_fadeintime, & 52 pathlines_fadeouttime, pathlines_linecount, & 53 pathlines_maxhistory, pathlines_wavecount, & 54 pathlines_wavetime, slicer_range_limits_dvrp,& 55 superelevation, superelevation_x, & 56 superelevation_y, threshold, vc_alpha, & 57 vc_gradient_normals, vc_mode, vc_size_x, & 58 vc_size_y, vc_size_z 49 clip_dvrp_s, cluster_size, color_interval, & 50 dt_dvrp, dvrpsize_interval, dvrp_directory, & 51 dvrp_file, dvrp_host, dvrp_output, & 52 dvrp_password, dvrp_username, mode_dvrp, & 53 particle_color, particle_dvrpsize, & 54 pathlines_fadeintime, pathlines_fadeouttime, & 55 pathlines_linecount, pathlines_maxhistory, & 56 pathlines_wavecount, pathlines_wavetime, & 57 slicer_range_limits_dvrp, superelevation, & 58 superelevation_x, superelevation_y, & 59 threshold, vc_alpha, vc_gradient_normals, & 60 vc_mode, vc_size_x, vc_size_y, vc_size_z 61 59 62 NAMELIST /particles_par/ bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, & 60 63 density_ratio, radius, dt_dopts, &
Note: See TracChangeset
for help on using the changeset viewer.