Index: /palm/trunk/SOURCE/data_output_dvrp.f90
===================================================================
--- /palm/trunk/SOURCE/data_output_dvrp.f90	(revision 283)
+++ /palm/trunk/SOURCE/data_output_dvrp.f90	(revision 284)
@@ -93,6 +93,6 @@
     CHARACTER (LEN=6) ::  output_variable
     INTEGER ::  c_mode, c_size_x, c_size_y, c_size_z, dvrp_nop, dvrp_not,     &
-                gradient_normals, i, ip, j, jp, k, l, m, n, nn, section_mode, &
-                tv, vn
+                gradient_normals, i, ip, j, jp, k, l, m, n, n_isosurfave,     &
+                n_slicer, nn, section_mode, vn
     INTEGER, DIMENSION(:), ALLOCATABLE ::  p_c, p_t
 
@@ -111,7 +111,7 @@
 !
 !-- Loop over all output modes choosed
-    m           = 1
-    tv          = 0  ! threshold counter
-    islice_dvrp = 0  ! slice plane counter
+    m            = 1
+    n_isosurface = 0  ! isosurface counter (for threshold values and color)
+    n_slicer     = 0  ! slice plane counter (for range of values)
     DO WHILE ( mode_dvrp(m) /= ' ' )
 !
@@ -131,5 +131,5 @@
           READ ( mode_dvrp(m), '(10X,I2)' )  vn
           output_variable = do3d(0,vn)
-          tv = tv + 1
+          n_isosurface = n_isosurface + 1
        ELSEIF ( mode_dvrp(m)(1:6) == 'slicer' )  THEN
           READ ( mode_dvrp(m), '(6X,I2)' )  vn
@@ -475,23 +475,10 @@
 
 !
-!--          Definition of characteristics of isosurface material
-!--          Preliminary settings for w and pt!
-             IF ( output_variable == 'w' )  THEN
-                IF ( tv == 1 )  THEN
-                   tmp_r = 0.8;  tmp_g = 0.1;  tmp_b = 0.1;  tmp_t = 0.0
-                   CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
-                ELSE
-                   tmp_r = 0.1;  tmp_g = 0.1;  tmp_b = 0.8;  tmp_t = 0.0
-                   CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
-                ENDIF
-             ELSEIF ( output_variable == 'pt' )  THEN
-                tmp_r = 0.8;  tmp_g = 0.1;  tmp_b = 0.1;  tmp_t = 0.0
-                CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
-             ELSE
-                tmp_r = 0.9;  tmp_g = 0.9;  tmp_b = 0.9;  tmp_t = 0.0
-                CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
-             ENDIF
-             WRITE(9,*) '#8.1'
-             CALL local_flush( 9 )
+!--          Definition of isosurface color
+             tmp_r = isosurface_color(1,n_isosurface)
+             tmp_g = isosurface_color(2,n_isosurface)
+             tmp_b = isosurface_color(3,n_isosurface)
+             tmp_t = 0.0
+             CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
 
 !
@@ -525,5 +512,5 @@
 
              IF ( dvrp_overlap )  THEN
-                tmp_th = threshold(tv)
+                tmp_th = threshold(n_isosurface)
              ELSE
                 tmp_th = 1.0   ! nothing is plotted because array values are 0
@@ -559,9 +546,19 @@
              CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
 
-             islice_dvrp = islice_dvrp + 1
-!             CALL DVRP_COLORFUNCTION( m-1, DVRP_CM_HLS, 25,                    &
-!                                      slicer_range_limits_dvrp(:,islice_dvrp), &
+             n_slicer = n_slicer + 1
+
+!
+!--           Using dolorfunction has not been properly tested
+!             islice_dvrp = n_slicer
+!             CALL DVRP_COLORFUNCTION( m-1, DVRP_CM_HLS, 25,                 &
+!                                      slicer_range_limits_dvrp(:,n_slicer), &
 !                                      color_dvrp )
 
+!
+!--          Set interval of values defining the colortable
+             CALL set_slicer_attributes_dvrp( n_slicer )
+
+!
+!--          Create user-defined colortable
              CALL user_dvrp_coltab( 'slicer', output_variable )
 
Index: /palm/trunk/SOURCE/init_dvrp.f90
===================================================================
--- /palm/trunk/SOURCE/init_dvrp.f90	(revision 283)
+++ /palm/trunk/SOURCE/init_dvrp.f90	(revision 284)
@@ -332,5 +332,8 @@
                              ycoor_dvrp, zcoor_dvrp )
 
-             tmp_r = 0.8;  tmp_g = 0.7;  tmp_b = 0.6;  tmp_t = 0.0
+             tmp_r = topography_color(1)
+             tmp_g = topography_color(2)
+             tmp_b = topography_color(3)
+             tmp_t = 0.0
              CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
 
@@ -455,5 +458,8 @@
                           ycoor_dvrp, zcoor_dvrp )
 
-          tmp_r = 0.0;  tmp_g = 0.6;  tmp_b = 0.0;  tmp_t = 0.0
+          tmp_r = groundplate_color(1)
+          tmp_g = groundplate_color(2)
+          tmp_b = groundplate_color(3)
+          tmp_t = 0.0
           CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
 
Index: /palm/trunk/SOURCE/modules.f90
===================================================================
--- /palm/trunk/SOURCE/modules.f90	(revision 283)
+++ /palm/trunk/SOURCE/modules.f90	(revision 284)
@@ -6,6 +6,7 @@
 ! -----------------
 ! +clip_dvrp_*, cluster_size, color_interval, dvrpsize_interval, dvrp_overlap,
-! dvrp_total_overlap, local_dvrserver_running, n*_dvrp, interval_*_dvrp_prt,
-! particle_color, particle_dvrpsize in dvrp_variables
+! dvrp_total_overlap, groundplate_color, local_dvrserver_running, n*_dvrp,
+! interval_*_dvrp_prt, isosurface_color, particle_color, particle_dvrpsize,
+! topography color in dvrp_variables,
 ! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left, 
 ! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b, 
@@ -563,4 +564,7 @@
                            dvrpsize_interval = (/ 0.0, 1.0 /)
 
+    REAL, DIMENSION(3) ::  groundplate_color = (/ 0.0, 0.6, 0.0 /), &
+                           topography_color = (/ 0.8, 0.7, 0.6 /)
+
 #if defined( __decalpha )
     REAL, DIMENSION(2,10)  ::  slicer_range_limits_dvrp = (/ &
@@ -568,4 +572,10 @@
                                 -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
                                 -1.0, 1.0, -1.0, 1.0 /)
+
+    REAL, DIMENSION(3,10)  ::  isosurface_color = (/ &
+                                0.9, 0.9, 0.9,  0.8, 0.1, 0.1,  0.1, 0.1, 0.8, &
+                                0.1, 0.8, 0.1,  0.6, 0.1, 0.1,  0.1, 0.1, 0.6, &
+                                0.1, 0.6, 0.1,  0.4, 0.1, 0.1,  0.1, 0.1, 0.4  &
+                                0.1, 0.4, 0.1 /)
 
     REAL(4), DIMENSION(2,100) ::  interval_values_dvrp, interval_h_dvrp =      &
@@ -582,5 +592,7 @@
                                   interval_a_dvrp_prt = 0.0
 #else
-    REAL, DIMENSION(2,10)  ::  slicer_range_limits_dvrp
+    REAL, DIMENSION(2,10)     ::  slicer_range_limits_dvrp
+
+    REAL, DIMENSION(3,10)     ::  isosurface_color
 
     REAL(4), DIMENSION(2,100) ::  interval_values_dvrp,                       &
@@ -595,4 +607,9 @@
                                      -1.0, 1.0, -1.0, 1.0, -1.0, 1.0, &
                                      -1.0, 1.0 /
+
+    DATA  isosurface_color / 0.9, 0.9, 0.9,  0.8, 0.1, 0.1,  0.1, 0.1, 0.8, &
+                             0.1, 0.8, 0.1,  0.6, 0.1, 0.1,  0.1, 0.1, 0.6, &
+                             0.1, 0.6, 0.1,  0.4, 0.1, 0.1,  0.1, 0.1, 0.4, &
+                             0.1, 0.4, 0.1 /
 
     DATA  interval_h_dvrp / 270.0, 225.0, 225.0, 180.0, 70.0, 25.0, &
Index: /palm/trunk/SOURCE/package_parin.f90
===================================================================
--- /palm/trunk/SOURCE/package_parin.f90	(revision 283)
+++ /palm/trunk/SOURCE/package_parin.f90	(revision 284)
@@ -4,6 +4,7 @@
 ! Actual revisions:
 ! -----------------
-! +clip_dvrp_*, cluster_size, color_interval, dvrpsize_interval, particle_color,
-! particle_dvrpsize in dvrp_graphics_par,
+! +clip_dvrp_*, cluster_size, color_interval, dvrpsize_interval,
+! groundplate_color, isosurface_color, particle_color, particle_dvrpsize
+! topography_color, in dvrp_graphics_par,
 ! parameter dvrp_psize moved from particles_par to dvrp_graphics_par
 ! Variables for dvrp-mode pathlines added
@@ -51,6 +52,7 @@
                                   dt_dvrp, dvrpsize_interval, dvrp_directory,  &
                                   dvrp_file, dvrp_host, dvrp_output,           &
-                                  dvrp_password, dvrp_username, mode_dvrp,     &
-                                  particle_color, particle_dvrpsize,           &
+                                  dvrp_password, dvrp_username,                &
+                                  groundplate_color, isosurface_color,         &
+                                  mode_dvrp, particle_color, particle_dvrpsize,&
                                   pathlines_fadeintime, pathlines_fadeouttime, &
                                   pathlines_linecount, pathlines_maxhistory,   &
@@ -58,6 +60,7 @@
                                   slicer_range_limits_dvrp, superelevation,    &
                                   superelevation_x, superelevation_y,          &
-                                  threshold, vc_alpha, vc_gradient_normals,    &
-                                  vc_mode, vc_size_x, vc_size_y, vc_size_z
+                                  threshold, topography_color, vc_alpha,       &
+                                  vc_gradient_normals, vc_mode, vc_size_x,     &
+                                  vc_size_y, vc_size_z
 
     NAMELIST /particles_par/      bc_par_b, bc_par_lr, bc_par_ns, bc_par_t,    &
Index: /palm/trunk/SOURCE/set_slicer_attributes_dvrp.f90
===================================================================
--- /palm/trunk/SOURCE/set_slicer_attributes_dvrp.f90	(revision 283)
+++ /palm/trunk/SOURCE/set_slicer_attributes_dvrp.f90	(revision 284)
@@ -1,3 +1,3 @@
- SUBROUTINE set_slicer_attributes_dvrp
+ SUBROUTINE set_slicer_attributes_dvrp( n_slicer )
 
 !------------------------------------------------------------------------------!
@@ -23,9 +23,31 @@
     IMPLICIT NONE
 
-!    INTEGER ::  
-!    REAL    ::  
+    INTEGER ::  j, n_slicer
+    REAL    ::  maxv, meav, minv
+
 
 !
-!-- Set particle color
+!-- Set interval values to user settings.
+!-- The middle of this interval defines the change from blue to yellow
+    minv = slicer_range_limits_dvrp(1,n_slicer)
+    maxv = slicer_range_limits_dvrp(2,n_slicer)
+    meav = ( minv + maxv ) * 0.5
+
+!
+!-- Create appropriate colortable with 100 entries.
+!-- This table ranges from deep blue (min) to deep red (max)
+    DO  j = 1, 50
+       interval_values_dvrp(1,j) = minv + (meav-minv) * (j-1.0) / 50.0
+       interval_values_dvrp(2,j) = minv + (meav-minv) * (  j  ) / 50.0
+       interval_h_dvrp(:,j) = 270.0 - ( j - 1.0 ) * 90.0 / 49.0
+    ENDDO
+
+    DO  j = 51, 100
+       interval_values_dvrp(1,j) = meav + (maxv-meav) * (j-51.0) / 50.0
+       interval_values_dvrp(2,j) = meav + (maxv-meav) * (j-50.0) / 50.0
+       interval_h_dvrp(:,j) = 70.0 - ( j - 51.0 ) * 90.0 / 49.0
+    ENDDO
+
+    dvrp_colourtable_entries = 100
 
 #endif
