Index: palm/trunk/SOURCE/radiation_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/radiation_model_mod.f90	(revision 2920)
+++ palm/trunk/SOURCE/radiation_model_mod.f90	(revision 2930)
@@ -28,4 +28,9 @@
 ! -----------------
 ! $Id$
+! Remove default surfaces from radiation model, does not make much sense to 
+! apply radiation model without energy-balance solvers; Further, add check for 
+! this. 
+! 
+! 2920 2018-03-22 11:22:01Z kanani
 ! - Bugfix: Initialize pcbl array (=-1)
 ! moh.hefny:
@@ -344,6 +349,5 @@
     USE surface_mod,                                                           &
         ONLY:  get_topography_top_index, get_topography_top_index_ji,          &
-               surf_def_h, surf_def_v, surf_lsm_h,                             &
-               surf_lsm_v, surf_type, surf_usm_h, surf_usm_v
+               surf_lsm_h, surf_lsm_v, surf_type, surf_usm_h, surf_usm_v
 
     IMPLICIT NONE
@@ -1219,5 +1223,5 @@
 
        USE control_parameters,                                                 &
-           ONLY: message_string, topography, urban_surface
+           ONLY: land_surface, message_string, topography, urban_surface
 
        USE netcdf_data_input_mod,                                              &
@@ -1226,4 +1230,12 @@
        IMPLICIT NONE
        
+!
+!--    In case no urban-surface or land-surface model is applied, usage of 
+!--    a radiation model make no sense.         
+       IF ( .NOT. land_surface  .AND.  .NOT. urban_surface )  THEN
+          message_string = 'Usage of radiation module is only allowed if ' //  &
+                           'land-surface and/or urban-surface model is applied.'
+          CALL message( 'check_parameters', 'PA0486', 1, 2, 0, 6, 0 )
+       ENDIF
 
        IF ( radiation_scheme /= 'constant'   .AND.                             &
@@ -1316,9 +1328,4 @@
 !
 !--    Allocate array for storing the surface net radiation
-       IF ( .NOT. ALLOCATED ( surf_def_h(0)%rad_net )  .AND.                   &
-                  surf_def_h(0)%ns > 0  )  THEN
-          ALLOCATE( surf_def_h(0)%rad_net(1:surf_def_h(0)%ns) )
-          surf_def_h(0)%rad_net = 0.0_wp 
-       ENDIF
        IF ( .NOT. ALLOCATED ( surf_lsm_h%rad_net )  .AND.                      &
                   surf_lsm_h%ns > 0  )   THEN
@@ -1332,9 +1339,4 @@
        ENDIF
        DO  l = 0, 3
-          IF ( .NOT. ALLOCATED ( surf_def_v(l)%rad_net )  .AND.                &
-                     surf_def_v(l)%ns > 0  )  THEN
-             ALLOCATE( surf_def_v(l)%rad_net(1:surf_def_v(l)%ns) )
-             surf_def_v(l)%rad_net = 0.0_wp 
-          ENDIF
           IF ( .NOT. ALLOCATED ( surf_lsm_v(l)%rad_net )  .AND.                &
                      surf_lsm_v(l)%ns > 0  )  THEN
@@ -1352,9 +1354,4 @@
 !
 !--    Allocate array for storing the surface longwave (out) radiation change
-       IF ( .NOT. ALLOCATED ( surf_def_h(0)%rad_lw_out_change_0 )  .AND.       &
-                  surf_def_h(0)%ns > 0  )  THEN
-          ALLOCATE( surf_def_h(0)%rad_lw_out_change_0(1:surf_def_h(0)%ns) )
-          surf_def_h(0)%rad_lw_out_change_0 = 0.0_wp 
-       ENDIF
        IF ( .NOT. ALLOCATED ( surf_lsm_h%rad_lw_out_change_0 )  .AND.          &
                   surf_lsm_h%ns > 0  )   THEN
@@ -1368,9 +1365,4 @@
        ENDIF
        DO  l = 0, 3
-          IF ( .NOT. ALLOCATED ( surf_def_v(l)%rad_lw_out_change_0 )  .AND.    &
-                     surf_def_v(l)%ns > 0  )  THEN
-             ALLOCATE( surf_def_v(l)%rad_lw_out_change_0(1:surf_def_v(l)%ns) )
-             surf_def_v(l)%rad_lw_out_change_0 = 0.0_wp 
-          ENDIF
           IF ( .NOT. ALLOCATED ( surf_lsm_v(l)%rad_lw_out_change_0 )  .AND.    &
                      surf_lsm_v(l)%ns > 0  )  THEN
@@ -1387,15 +1379,4 @@
 !
 !--    Allocate surface arrays for incoming/outgoing short/longwave radiation
-       IF ( .NOT. ALLOCATED ( surf_def_h(0)%rad_sw_in )  .AND.                 &
-                  surf_def_h(0)%ns > 0  )  THEN
-          ALLOCATE( surf_def_h(0)%rad_sw_in(1:surf_def_h(0)%ns)  )
-          ALLOCATE( surf_def_h(0)%rad_sw_out(1:surf_def_h(0)%ns) )
-          ALLOCATE( surf_def_h(0)%rad_lw_in(1:surf_def_h(0)%ns)  )
-          ALLOCATE( surf_def_h(0)%rad_lw_out(1:surf_def_h(0)%ns) )
-          surf_def_h(0)%rad_sw_in  = 0.0_wp 
-          surf_def_h(0)%rad_sw_out = 0.0_wp 
-          surf_def_h(0)%rad_lw_in  = 0.0_wp 
-          surf_def_h(0)%rad_lw_out = 0.0_wp 
-       ENDIF
        IF ( .NOT. ALLOCATED ( surf_lsm_h%rad_sw_in )  .AND.                    &
                   surf_lsm_h%ns > 0  )   THEN
@@ -1421,15 +1402,4 @@
        ENDIF
        DO  l = 0, 3
-          IF ( .NOT. ALLOCATED ( surf_def_v(l)%rad_sw_in )  .AND.              &
-                     surf_def_v(l)%ns > 0  )  THEN
-             ALLOCATE( surf_def_v(l)%rad_sw_in(1:surf_def_v(l)%ns)  )
-             ALLOCATE( surf_def_v(l)%rad_sw_out(1:surf_def_v(l)%ns) )
-             ALLOCATE( surf_def_v(l)%rad_lw_in(1:surf_def_v(l)%ns)  )
-             ALLOCATE( surf_def_v(l)%rad_lw_out(1:surf_def_v(l)%ns) )
-             surf_def_v(l)%rad_sw_in  = 0.0_wp 
-             surf_def_v(l)%rad_sw_out = 0.0_wp 
-             surf_def_v(l)%rad_lw_in  = 0.0_wp 
-             surf_def_v(l)%rad_lw_out = 0.0_wp 
-          ENDIF
           IF ( .NOT. ALLOCATED ( surf_lsm_v(l)%rad_sw_in )  .AND.              &
                      surf_lsm_v(l)%ns > 0  )  THEN
@@ -1456,60 +1426,6 @@
        ENDDO
 !
-!--    If necessary, allocate surface attribute albedo_type. 
-!--    Only for default-surfaces, In case urban- or land-surface scheme is 
-!--    utilized, this has been already allocated. For default surfaces,
-!--    no tile approach between different surface fractions is considered,
-!--    so first dimension is allocated with zero.
-!--    Initialize them with namelist parameter.
-       ALLOCATE ( surf_def_h(0)%albedo_type(0:0,1:surf_def_h(0)%ns) )
-       surf_def_h(0)%albedo_type = albedo_type
-
-       DO  l = 0, 3
-          ALLOCATE ( surf_def_v(l)%albedo_type(0:0,1:surf_def_v(l)%ns) )
-          surf_def_v(l)%albedo_type = albedo_type
-       ENDDO
-!
-!--    If available, overwrite albedo_type by values read from file.
-!--    Again, only required for default-type surfaces.
-       IF ( albedo_type_f%from_file )  THEN
-          DO  i = nxl, nxr
-             DO  j = nys, nyn 
-                IF ( albedo_type_f%var(j,i) /= albedo_type_f%fill )  THEN
-
-                   DO  m = surf_def_h(0)%start_index(j,i),                     &
-                           surf_def_h(0)%end_index(j,i)
-                      surf_def_h(0)%albedo_type(0,m) = albedo_type_f%var(j,i)
-                   ENDDO
-                   DO  l = 0, 3
-                      ioff = surf_def_v(l)%ioff
-                      joff = surf_def_v(l)%joff
-                      DO  m = surf_def_v(l)%start_index(j,i),                  &
-                              surf_def_v(l)%end_index(j,i)
-                         surf_def_v(l)%albedo_type(0,m) =                      &
-                                                albedo_type_f%var(j+joff,i+ioff)
-                      ENDDO
-                   ENDDO
-                ENDIF
-             ENDDO
-          ENDDO
-       ENDIF
-
-!
-!--    If necessary, allocate surface attribute emissivity. 
-!--    Only for default-type surfaces. In case urband- or
-!--    land-surface scheme is utilized, this has been already allocated.
-!--    Initialize them with namelist parameter.
-       ALLOCATE ( surf_def_h(0)%emissivity(0:0,1:surf_def_h(0)%ns) )
-       surf_def_h(0)%emissivity = emissivity
-
-       DO  l = 0, 3
-          ALLOCATE ( surf_def_v(l)%emissivity(0:0,1:surf_def_v(l)%ns) )
-       ENDDO
-
-!
 !--    Fix net radiation in case of radiation_scheme = 'constant'
        IF ( radiation_scheme == 'constant' )  THEN
-          IF ( ALLOCATED( surf_def_h(0)%rad_net ) )                            &
-             surf_def_h(0)%rad_net = net_radiation
           IF ( ALLOCATED( surf_lsm_h%rad_net ) )                               &
              surf_lsm_h%rad_net    = net_radiation
@@ -1519,6 +1435,4 @@
 !--       Todo: weight with inclination angle
           DO  l = 0, 3
-             IF ( ALLOCATED( surf_def_v(l)%rad_net ) )                         &
-                surf_def_v(l)%rad_net = net_radiation
              IF ( ALLOCATED( surf_lsm_v(l)%rad_net ) )                         &
                 surf_lsm_v(l)%rad_net = net_radiation
@@ -1575,8 +1489,4 @@
 !--       Allocate arrays for broadband albedo, and level 1 initialization
 !--       via namelist paramter, unless already allocated.
-          IF ( .NOT. ALLOCATED(surf_def_h(0)%albedo) )  THEN
-             ALLOCATE( surf_def_h(0)%albedo(0:0,1:surf_def_h(0)%ns) )
-             surf_def_h(0)%albedo = albedo
-          ENDIF
           IF ( .NOT. ALLOCATED(surf_lsm_h%albedo) )  THEN
              ALLOCATE( surf_lsm_h%albedo(0:2,1:surf_lsm_h%ns)     )
@@ -1589,8 +1499,4 @@
 
           DO  l = 0, 3
-             IF ( .NOT. ALLOCATED( surf_def_v(l)%albedo ) )  THEN
-                ALLOCATE( surf_def_v(l)%albedo(0:0,1:surf_def_v(l)%ns) )
-                surf_def_v(l)%albedo = albedo
-             ENDIF
              IF ( .NOT. ALLOCATED( surf_lsm_v(l)%albedo ) )  THEN
                 ALLOCATE( surf_lsm_v(l)%albedo(0:2,1:surf_lsm_v(l)%ns) )
@@ -1605,9 +1511,4 @@
 !--       Level 2 initialization of broadband albedo via given albedo_type. 
 !--       Only if albedo_type is non-zero
-          DO  m = 1, surf_def_h(0)%ns
-             IF ( surf_def_h(0)%albedo_type(0,m) /= 0 )                        &
-                surf_def_h(0)%albedo(0,m) =                                    &
-                                albedo_pars(2,surf_def_h(0)%albedo_type(0,m))
-          ENDDO
           DO  m = 1, surf_lsm_h%ns
              IF ( surf_lsm_h%albedo_type(0,m) /= 0 )                           &
@@ -1634,9 +1535,4 @@
 
           DO  l = 0, 3
-             DO  m = 1, surf_def_v(l)%ns
-                IF ( surf_def_v(l)%albedo_type(0,m) /= 0 )                     &
-                   surf_def_v(l)%albedo(0,m) =                                 &
-                                albedo_pars(2,surf_def_v(l)%albedo_type(0,m))
-             ENDDO
              DO  m = 1, surf_lsm_v(l)%ns
                 IF ( surf_lsm_v(l)%albedo_type(0,m) /= 0 )                     &
@@ -1670,12 +1566,4 @@
 !
 !--          Horizontal surfaces
-             DO  m = 1, surf_def_h(0)%ns
-                i = surf_def_h(0)%i(m)
-                j = surf_def_h(0)%j(m)
-                IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill  .AND. &
-                     surf_def_h(0)%albedo_type(0,m) == 0 )  THEN
-                   surf_def_h(0)%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
-                ENDIF
-             ENDDO
              DO  m = 1, surf_lsm_h%ns
                 i = surf_lsm_h%i(m)
@@ -1706,15 +1594,4 @@
              DO  l = 0, 3
 
-                ioff = surf_def_v(l)%ioff
-                joff = surf_def_v(l)%joff
-                DO  m = 1, surf_def_v(l)%ns
-                   i = surf_def_v(l)%i(m) + ioff
-                   j = surf_def_v(l)%j(m) + joff
-                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill  .AND. &
-                        surf_def_v(l)%albedo_type(0,m) == 0 )  THEN
-                      surf_def_v(l)%albedo(0,m) = albedo_pars_f%pars_xy(0,j,i)
-                   ENDIF
-                ENDDO
-
                 ioff = surf_lsm_v(l)%ioff
                 joff = surf_lsm_v(l)%joff
@@ -1756,15 +1633,5 @@
 !--       Allocate albedos for short/longwave radiation, horizontal surfaces
 !--       for wall/green/window (USM) or vegetation/pavement/water surfaces
-!--       (LSM). Please note, for default-type surfaces no tile approach is 
-!--       applied. 
-          ALLOCATE ( surf_def_h(0)%aldif(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%aldir(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%asdif(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%asdir(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%rrtm_aldif(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%rrtm_aldir(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%rrtm_asdif(0:0,1:surf_def_h(0)%ns) )
-          ALLOCATE ( surf_def_h(0)%rrtm_asdir(0:0,1:surf_def_h(0)%ns) )
-
+!--       (LSM). 
           ALLOCATE ( surf_lsm_h%aldif(0:2,1:surf_lsm_h%ns)       )
           ALLOCATE ( surf_lsm_h%aldir(0:2,1:surf_lsm_h%ns)       )
@@ -1788,6 +1655,4 @@
 !--       Allocate broadband albedo (temporary for the current radiation 
 !--       implementations)
-          IF ( .NOT. ALLOCATED(surf_def_h(0)%albedo) )                         &
-             ALLOCATE( surf_def_h(0)%albedo(0:0,1:surf_def_h(0)%ns) )
           IF ( .NOT. ALLOCATED(surf_lsm_h%albedo) )                            &
              ALLOCATE( surf_lsm_h%albedo(0:2,1:surf_lsm_h%ns)     )
@@ -1798,13 +1663,4 @@
 !--       Allocate albedos for short/longwave radiation, vertical surfaces 
           DO  l = 0, 3
-             ALLOCATE ( surf_def_v(l)%aldif(0:0,1:surf_def_v(l)%ns)      )
-             ALLOCATE ( surf_def_v(l)%aldir(0:0,1:surf_def_v(l)%ns)      )
-             ALLOCATE ( surf_def_v(l)%asdif(0:0,1:surf_def_v(l)%ns)      )
-             ALLOCATE ( surf_def_v(l)%asdir(0:0,1:surf_def_v(l)%ns)      )
-
-             ALLOCATE ( surf_def_v(l)%rrtm_aldif(0:0,1:surf_def_v(l)%ns) )
-             ALLOCATE ( surf_def_v(l)%rrtm_aldir(0:0,1:surf_def_v(l)%ns) )
-             ALLOCATE ( surf_def_v(l)%rrtm_asdif(0:0,1:surf_def_v(l)%ns) )
-             ALLOCATE ( surf_def_v(l)%rrtm_asdir(0:0,1:surf_def_v(l)%ns) )
 
              ALLOCATE ( surf_lsm_v(l)%aldif(0:2,1:surf_lsm_v(l)%ns)      )
@@ -1830,6 +1686,4 @@
 !--          Allocate broadband albedo (temporary for the current radiation
 !--          implementations)
-             IF ( .NOT. ALLOCATED( surf_def_v(l)%albedo ) )                    &
-                ALLOCATE( surf_def_v(l)%albedo(0:0,1:surf_def_v(l)%ns) )
              IF ( .NOT. ALLOCATED( surf_lsm_v(l)%albedo ) )                    &
                 ALLOCATE( surf_lsm_v(l)%albedo(0:2,1:surf_lsm_v(l)%ns) )
@@ -1842,11 +1696,4 @@
 !--       paramters. Please note, this case all surface tiles are initialized 
 !--       the same. 
-          IF ( surf_def_h(0)%ns > 0 )  THEN
-             surf_def_h(0)%aldif  = albedo_lw_dif
-             surf_def_h(0)%aldir  = albedo_lw_dir
-             surf_def_h(0)%asdif  = albedo_sw_dif
-             surf_def_h(0)%asdir  = albedo_sw_dir
-             surf_def_h(0)%albedo = albedo_sw_dif
-          ENDIF
           IF ( surf_lsm_h%ns > 0 )  THEN
              surf_lsm_h%aldif  = albedo_lw_dif
@@ -1865,11 +1712,4 @@
 
           DO  l = 0, 3
-             IF ( surf_def_v(l)%ns > 0 )  THEN
-                surf_def_v(l)%aldif  = albedo_lw_dif
-                surf_def_v(l)%aldir  = albedo_lw_dir
-                surf_def_v(l)%asdif  = albedo_sw_dif
-                surf_def_v(l)%asdir  = albedo_sw_dir
-                surf_def_v(l)%albedo = albedo_sw_dif
-             ENDIF
 
              IF ( surf_lsm_v(l)%ns > 0 )  THEN
@@ -1895,19 +1735,4 @@
 !--       is applied so that the resulting albedo is calculated via the weighted 
 !--       average of respective surface fractions. 
-          DO  m = 1, surf_def_h(0)%ns
-             IF ( surf_def_h(0)%albedo_type(0,m) /= 0 )  THEN
-                surf_def_h(0)%aldif(0,m) =                                     &
-                                albedo_pars(0,surf_def_h(0)%albedo_type(0,m))
-                surf_def_h(0)%asdif(0,m) =                                     &
-                                albedo_pars(1,surf_def_h(0)%albedo_type(0,m))
-                surf_def_h(0)%aldir(0,m) =                                     &
-                                albedo_pars(0,surf_def_h(0)%albedo_type(0,m))
-                surf_def_h(0)%asdir(0,m) =                                     &
-                                albedo_pars(1,surf_def_h(0)%albedo_type(0,m))
-                surf_def_h(0)%albedo(0,m) =                                    &
-                                albedo_pars(2,surf_def_h(0)%albedo_type(0,m))
-             ENDIF
-          ENDDO
-
           DO  m = 1, surf_lsm_h%ns
 !
@@ -1951,19 +1776,4 @@
 
           DO l = 0, 3
-
-             DO  m = 1, surf_def_v(l)%ns
-                IF ( surf_def_v(l)%albedo_type(0,m) /= 0 )  THEN
-                    surf_def_v(l)%aldif(0,m) =                                 &
-                               albedo_pars(0,surf_def_v(l)%albedo_type(0,m))
-                    surf_def_v(l)%asdif(0,m) =                                 &
-                               albedo_pars(1,surf_def_v(l)%albedo_type(0,m))
-                    surf_def_v(l)%aldir(0,m) =                                 &
-                               albedo_pars(0,surf_def_v(l)%albedo_type(0,m))
-                    surf_def_v(l)%asdir(0,m) =                                 &
-                               albedo_pars(1,surf_def_v(l)%albedo_type(0,m))
-                    surf_def_v(l)%albedo(0,m) =                                &
-                               albedo_pars(2,surf_def_v(l)%albedo_type(0,m))
-                ENDIF
-             ENDDO
 
              DO  m = 1, surf_lsm_v(l)%ns
@@ -2012,22 +1822,4 @@
 !
 !--          Horizontal
-             DO  m = 1, surf_def_h(0)%ns
-                i = surf_def_h(0)%i(m)
-                j = surf_def_h(0)%j(m)
-                IF ( surf_def_h(0)%albedo_type(0,m) == 0 )  THEN
-
-                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
-                      surf_def_h(0)%albedo(0,m) = albedo_pars_f%pars_xy(1,j,i)
-                   IF ( albedo_pars_f%pars_xy(1,j,i) /= albedo_pars_f%fill )   &
-                      surf_def_h(0)%aldir(0,m) = albedo_pars_f%pars_xy(1,j,i)
-                   IF ( albedo_pars_f%pars_xy(2,j,i) /= albedo_pars_f%fill )   &
-                      surf_def_h(0)%aldif(0,m) = albedo_pars_f%pars_xy(2,j,i)
-                   IF ( albedo_pars_f%pars_xy(3,j,i) /= albedo_pars_f%fill )   &
-                      surf_def_h(0)%asdir(0,m) = albedo_pars_f%pars_xy(3,j,i)
-                   IF ( albedo_pars_f%pars_xy(4,j,i) /= albedo_pars_f%fill )   &
-                      surf_def_h(0)%asdif(0,m) = albedo_pars_f%pars_xy(4,j,i)
-                ENDIF
-             ENDDO
-
              DO  m = 1, surf_lsm_h%ns
                 i = surf_lsm_h%i(m)
@@ -2085,37 +1877,4 @@
 !--          Vertical
              DO  l = 0, 3
-                ioff = surf_def_v(l)%ioff
-                joff = surf_def_v(l)%joff
-
-                DO  m = 1, surf_def_v(l)%ns
-
-                   i = surf_def_v(l)%i(m)
-                   j = surf_def_v(l)%j(m)
-
-                   IF ( surf_def_v(l)%albedo_type(0,m) == 0 )  THEN
-
-                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
-                           albedo_pars_f%fill )                                &
-                         surf_def_v(l)%albedo(0,m) =                           &
-                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
-                      IF ( albedo_pars_f%pars_xy(1,j+joff,i+ioff) /=           &
-                           albedo_pars_f%fill )                                &
-                         surf_def_v(l)%aldir(0,m) =                            &
-                                          albedo_pars_f%pars_xy(1,j+joff,i+ioff)
-                      IF ( albedo_pars_f%pars_xy(2,j+joff,i+ioff) /=           &
-                           albedo_pars_f%fill )                                &
-                         surf_def_v(l)%aldif(0,m) =                            &
-                                          albedo_pars_f%pars_xy(2,j+joff,i+ioff)
-                      IF ( albedo_pars_f%pars_xy(3,j+joff,i+ioff) /=           &
-                           albedo_pars_f%fill )                                &
-                         surf_def_v(l)%asdir(0,m) =                            &
-                                          albedo_pars_f%pars_xy(3,j+joff,i+ioff)
-                      IF ( albedo_pars_f%pars_xy(4,j+joff,i+ioff) /=           &
-                           albedo_pars_f%fill )                                &
-                         surf_def_v(l)%asdif(0,m) =                            &
-                                          albedo_pars_f%pars_xy(4,j+joff,i+ioff)
-                   ENDIF
-                ENDDO
-
                 ioff = surf_lsm_v(l)%ioff
                 joff = surf_lsm_v(l)%joff
@@ -2198,12 +1957,10 @@
           IF ( .NOT. constant_albedo )  THEN
 !
-!--          Horizontally aligned default, natural and urban surfaces
-             CALL calc_albedo( surf_def_h(0) )
+!--          Horizontally aligned natural and urban surfaces
              CALL calc_albedo( surf_lsm_h    )
              CALL calc_albedo( surf_usm_h    )
 !
-!--          Vertically aligned default, natural and urban surfaces
+!--          Vertically aligned natural and urban surfaces
              DO  l = 0, 3
-                CALL calc_albedo( surf_def_v(l) )
                 CALL calc_albedo( surf_lsm_v(l) )
                 CALL calc_albedo( surf_usm_v(l) )
@@ -2213,10 +1970,4 @@
 !--          Initialize sun-inclination independent spectral albedos
 !--          Horizontal surfaces
-             IF ( surf_def_h(0)%ns > 0 )  THEN
-                surf_def_h(0)%rrtm_aldir = surf_def_h(0)%aldir
-                surf_def_h(0)%rrtm_asdir = surf_def_h(0)%asdir
-                surf_def_h(0)%rrtm_aldif = surf_def_h(0)%aldif
-                surf_def_h(0)%rrtm_asdif = surf_def_h(0)%asdif
-             ENDIF
              IF ( surf_lsm_h%ns > 0 )  THEN
                 surf_lsm_h%rrtm_aldir = surf_lsm_h%aldir
@@ -2234,10 +1985,4 @@
 !--          Vertical surfaces
              DO  l = 0, 3
-                IF ( surf_def_h(0)%ns > 0 )  THEN
-                   surf_def_v(l)%rrtm_aldir = surf_def_v(l)%aldir
-                   surf_def_v(l)%rrtm_asdir = surf_def_v(l)%asdir
-                   surf_def_v(l)%rrtm_aldif = surf_def_v(l)%aldif
-                   surf_def_v(l)%rrtm_asdif = surf_def_v(l)%asdif
-                ENDIF
                 IF ( surf_lsm_v(l)%ns > 0 )  THEN
                    surf_lsm_v(l)%rrtm_aldir = surf_lsm_v(l)%aldir
@@ -2464,6 +2209,4 @@
 !--    Call clear-sky calculation for each surface orientation. 
 !--    First, horizontal surfaces
-       surf => surf_def_h(0)
-       CALL radiation_clearsky_surf
        surf => surf_lsm_h
        CALL radiation_clearsky_surf
@@ -2473,6 +2216,4 @@
 !--    Vertical surfaces
        DO  l = 0, 3
-          surf => surf_def_v(l)
-          CALL radiation_clearsky_surf
           surf => surf_lsm_v(l)
           CALL radiation_clearsky_surf
@@ -2532,44 +2273,26 @@
 !
 !--                Weighted average according to surface fraction. 
-!--                In case no surface fraction is given ( default-type )
-!--                no weighted averaging is performed ( only one surface type per
-!--                surface element ). 
 !--                ATTENTION: when radiation interactions are switched on the 
 !--                calculated fluxes below are not actually used as they are 
 !--                overwritten in radiation_interaction.
-                   IF ( ALLOCATED( surf%frac ) )  THEN
-
-                      surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
-                                           + surf%frac(1,m) * surf%albedo(1,m)    &
-                                           + surf%frac(2,m) * surf%albedo(2,m) )  &
-                                           * surf%rad_sw_in(m)
-
-                      surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
-                                           + surf%frac(1,m) * surf%emissivity(1,m)&
-                                           + surf%frac(2,m) * surf%emissivity(2,m)&
-                                           )                                      &
-                                           * sigma_sb                             &
-                                           * ( surf%pt_surface(m) * exn )**4
-
-                      surf%rad_lw_out_change_0(m) =                               &
-                                         ( surf%frac(0,m) * surf%emissivity(0,m)  &
-                                         + surf%frac(1,m) * surf%emissivity(1,m)  &
-                                         + surf%frac(2,m) * surf%emissivity(2,m)  &
-                                         ) * 3.0_wp * sigma_sb                    &
-                                         * ( surf%pt_surface(m) * exn )** 3
-
-                   ELSE
-
-                      surf%rad_sw_out(m) = surf%albedo(0,m) * surf%rad_sw_in(m)
-
-                      surf%rad_lw_out(m) = surf%emissivity(0,m)                   &
-                                           * sigma_sb                             &
-                                           * ( surf%pt_surface(m) * exn )**4
-
-                      surf%rad_lw_out_change_0(m) = surf%emissivity(0,m)          &
-                                           * 3.0_wp * sigma_sb                    &
-                                           * ( surf%pt_surface(m) * exn )** 3
-
-                   ENDIF
+                   surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
+                                        + surf%frac(1,m) * surf%albedo(1,m)    &
+                                        + surf%frac(2,m) * surf%albedo(2,m) )  &
+                                        * surf%rad_sw_in(m)
+
+                   surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
+                                        + surf%frac(1,m) * surf%emissivity(1,m)&
+                                        + surf%frac(2,m) * surf%emissivity(2,m)&
+                                        )                                      &
+                                        * sigma_sb                             &
+                                        * ( surf%pt_surface(m) * exn )**4
+
+                   surf%rad_lw_out_change_0(m) =                               &
+                                      ( surf%frac(0,m) * surf%emissivity(0,m)  &
+                                      + surf%frac(1,m) * surf%emissivity(1,m)  &
+                                      + surf%frac(2,m) * surf%emissivity(2,m)  &
+                                      ) * 3.0_wp * sigma_sb                    &
+                                      * ( surf%pt_surface(m) * exn )** 3
+
 
                    IF ( cloud_physics )  THEN
@@ -2580,5 +2303,5 @@
                    ENDIF
 
-                   surf%rad_net(m) = surf%rad_sw_in(m) - surf%rad_sw_out(m)       &
+                   surf%rad_net(m) = surf%rad_sw_in(m) - surf%rad_sw_out(m)    &
                                    + surf%rad_lw_in(m) - surf%rad_lw_out(m)
 
@@ -2654,6 +2377,4 @@
 !
 !--    First, horizontal surfaces
-       surf => surf_def_h(0)
-       CALL radiation_constant_surf
        surf => surf_lsm_h
        CALL radiation_constant_surf
@@ -2663,6 +2384,4 @@
 !--    Vertical surfaces
        DO  l = 0, 3
-          surf => surf_def_v(l)
-          CALL radiation_constant_surf
           surf => surf_lsm_v(l)
           CALL radiation_constant_surf
@@ -2737,5 +2456,5 @@
                       surf%rad_lw_in(m)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
                    ELSE
-                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb *                    &
+                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb *                 &
                                              ( pt(k,j,i) * exn1 )**4
                    ENDIF
@@ -2743,43 +2462,23 @@
 !
 !--                Weighted average according to surface fraction. 
-!--                In case no surface fraction is given ( default-type )
-!--                no weighted averaging is performed ( only one surface type per
-!--                surface element ). 
-                   IF ( ALLOCATED( surf%frac ) )  THEN
-
-                      surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
-                                           + surf%frac(1,m) * surf%emissivity(1,m)&
-                                           + surf%frac(2,m) * surf%emissivity(2,m)&
-                                           )                                      &
-                                         * sigma_sb                               &
-                                         * ( surf%pt_surface(m) * exn )**4
-
-                      surf%rad_sw_in(m) = ( surf%rad_net(m) - surf%rad_lw_in(m)   &
-                                          + surf%rad_lw_out(m) )                  &
-                                          / ( 1.0_wp -                            &
-                                             ( surf%frac(0,m) * surf%albedo(0,m) +&
-                                               surf%frac(1,m) * surf%albedo(1,m) +&
-                                               surf%frac(1,m) * surf%albedo(1,m) )&
-                                            )
-
-                      surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
-                                           + surf%frac(1,m) * surf%albedo(1,m)    &
-                                           + surf%frac(2,m) * surf%albedo(2,m) )  &
-                                         * surf%rad_sw_in(m)
-
-                   ELSE
-                      surf%rad_lw_out(m) = surf%emissivity(0,m)                   &
-                                         * sigma_sb                               &
-                                         * ( surf%pt_surface(m) * exn )**4
-
-                      surf%rad_sw_in(m) = ( surf%rad_net(m) - surf%rad_lw_in(m)   &
-                                          + surf%rad_lw_out(m) )                  &
-                                          / ( 1.0_wp -                            &
-                                             ( surf%frac(0,m) * surf%albedo(0,m) )&
-                                            )
-
-                      surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m) )  &
-                                         * surf%rad_sw_in(m)
-                   ENDIF
+                   surf%rad_lw_out(m) = ( surf%frac(0,m) * surf%emissivity(0,m)&
+                                        + surf%frac(1,m) * surf%emissivity(1,m)&
+                                        + surf%frac(2,m) * surf%emissivity(2,m)&
+                                        )                                      &
+                                      * sigma_sb                               &
+                                      * ( surf%pt_surface(m) * exn )**4
+
+                   surf%rad_sw_in(m) = ( surf%rad_net(m) - surf%rad_lw_in(m)   &
+                                       + surf%rad_lw_out(m) )                  &
+                                       / ( 1.0_wp -                            &
+                                          ( surf%frac(0,m) * surf%albedo(0,m) +&
+                                            surf%frac(1,m) * surf%albedo(1,m) +&
+                                            surf%frac(1,m) * surf%albedo(1,m) )&
+                                         )
+
+                   surf%rad_sw_out(m) = ( surf%frac(0,m) * surf%albedo(0,m)    &
+                                        + surf%frac(1,m) * surf%albedo(1,m)    &
+                                        + surf%frac(2,m) * surf%albedo(2,m) )  &
+                                      * surf%rad_sw_in(m)
 
                 ENDDO
@@ -2970,5 +2669,4 @@
 !
 !--       Horizontally aligned default, natural and urban surfaces
-          CALL calc_albedo( surf_def_h(0) )
           CALL calc_albedo( surf_lsm_h    )
           CALL calc_albedo( surf_usm_h    )
@@ -2976,5 +2674,4 @@
 !--       Vertically aligned default, natural and urban surfaces
           DO  l = 0, 3
-             CALL calc_albedo( surf_def_v(l) )
              CALL calc_albedo( surf_lsm_v(l) )
              CALL calc_albedo( surf_usm_v(l) )
@@ -3132,9 +2829,4 @@
 !--          onto respective surface elements
 !--          Horizontal surfaces
-             IF ( surf_def_h(0)%ns > 0 )  THEN
-                surf_def_h(0)%rad_lw_in           = rrtm_lwdflx(0,nzb)
-                surf_def_h(0)%rad_lw_out          = rrtm_lwuflx(0,nzb)
-                surf_def_h(0)%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
-             ENDIF
              IF ( surf_lsm_h%ns > 0 )  THEN
                 surf_lsm_h%rad_lw_in           = rrtm_lwdflx(0,nzb)
@@ -3150,9 +2842,4 @@
 !--          Vertical surfaces. 
              DO  l = 0, 3
-                IF ( surf_def_v(l)%ns > 0 )  THEN
-                   surf_def_v(l)%rad_lw_in           = rrtm_lwdflx(0,nzb)
-                   surf_def_v(l)%rad_lw_out          = rrtm_lwuflx(0,nzb)
-                   surf_def_v(l)%rad_lw_out_change_0 = rrtm_lwuflx_dt(0,nzb)
-                ENDIF
                 IF ( surf_lsm_v(l)%ns > 0 )  THEN
                    surf_lsm_v(l)%rad_lw_in           = rrtm_lwdflx(0,nzb)
@@ -3200,8 +2887,4 @@
 !--          Save surface radiative fluxes onto respective surface elements
 !--          Horizontal surfaces
-             IF ( surf_def_h(0)%ns > 0 )  THEN
-                surf_def_h(0)%rad_lw_in           = rrtm_swdflx(0,nzb)
-                surf_def_h(0)%rad_lw_out          = rrtm_swuflx(0,nzb)
-             ENDIF
              IF ( surf_lsm_h%ns > 0 )  THEN
                    surf_lsm_h%rad_sw_in     = rrtm_swdflx(0,nzb)
@@ -3216,8 +2899,4 @@
 !--          level of the surface element
              DO  l = 0, 3
-                IF ( surf_def_v(l)%ns > 0 )  THEN
-                      surf_def_v(l)%rad_sw_in  = rrtm_swdflx(0,nzb)
-                      surf_def_v(l)%rad_sw_out = rrtm_swuflx(0,nzb)
-                ENDIF
                 IF ( surf_lsm_v(l)%ns > 0 )  THEN
                       surf_lsm_v(l)%rad_sw_in  = rrtm_swdflx(0,nzb)
@@ -3369,9 +3048,4 @@
 !--             To obtain bulk parameters, apply a weighted average for these 
 !--             surfaces. 
-                DO  m = surf_def_h(0)%start_index(j,i), surf_def_h(0)%end_index(j,i)
-                   rrtm_emis = surf_def_h(0)%emissivity(0,m)
-                   rrtm_tsfc = pt(surf_def_h(0)%k(m)+surf_def_h(0)%koff,j,i) * &
-                                       (surface_pressure / 1000.0_wp )**0.286_wp
-                ENDDO
                 DO  m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
                    rrtm_emis = surf_lsm_h%frac(0,m) * surf_lsm_h%emissivity(0,m) +&
@@ -3468,10 +3142,4 @@
 !--                onto respective surface elements
 !--                Horizontal surfaces
-                   DO  m = surf_def_h(0)%start_index(j,i),                     &
-                           surf_def_h(0)%end_index(j,i)
-                      surf_def_h(0)%rad_lw_in(m)           = rrtm_lwdflx(0,k_topo)
-                      surf_def_h(0)%rad_lw_out(m)          = rrtm_lwuflx(0,k_topo)
-                      surf_def_h(0)%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k_topo)
-                   ENDDO
                    DO  m = surf_lsm_h%start_index(j,i),                        &
                            surf_lsm_h%end_index(j,i)
@@ -3490,11 +3158,4 @@
 !--                respective surface element
                    DO  l = 0, 3
-                      DO  m = surf_def_v(l)%start_index(j,i),                  &
-                              surf_def_v(l)%end_index(j,i)
-                         k                                    = surf_def_v(l)%k(m)
-                         surf_def_v(l)%rad_lw_in(m)           = rrtm_lwdflx(0,k)
-                         surf_def_v(l)%rad_lw_out(m)          = rrtm_lwuflx(0,k)
-                         surf_def_v(l)%rad_lw_out_change_0(m) = rrtm_lwuflx_dt(0,k)
-                      ENDDO
                       DO  m = surf_lsm_v(l)%start_index(j,i),                  &
                               surf_lsm_v(l)%end_index(j,i)
@@ -3523,11 +3184,4 @@
 !--                (Please note, only one loop will entered, controlled by 
 !--                start-end index.)
-                   DO  m = surf_def_h(0)%start_index(j,i),                     &
-                           surf_def_h(0)%end_index(j,i)
-                      rrtm_asdir(1)  = surf_def_h(0)%rrtm_asdir(0,m)
-                      rrtm_asdif(1)  = surf_def_h(0)%rrtm_asdif(0,m)
-                      rrtm_aldir(1)  = surf_def_h(0)%rrtm_aldir(0,m)
-                      rrtm_aldif(1)  = surf_def_h(0)%rrtm_aldif(0,m)
-                   ENDDO
                    DO  m = surf_lsm_h%start_index(j,i),                        &
                            surf_lsm_h%end_index(j,i)
@@ -3649,9 +3303,4 @@
 !--                Save surface radiative fluxes onto respective surface elements
 !--                Horizontal surfaces
-                   DO  m = surf_def_h(0)%start_index(j,i),                     &
-                           surf_def_h(0)%end_index(j,i)
-                      surf_def_h(0)%rad_sw_in(m)  = rrtm_swdflx(0,k_topo)
-                      surf_def_h(0)%rad_sw_out(m) = rrtm_swuflx(0,k_topo)
-                   ENDDO
                    DO  m = surf_lsm_h%start_index(j,i),                        &
                            surf_lsm_h%end_index(j,i)
@@ -3668,10 +3317,4 @@
 !--                level of the surface element
                    DO  l = 0, 3
-                      DO  m = surf_def_v(l)%start_index(j,i),                  &
-                              surf_def_v(l)%end_index(j,i)
-                         k                           = surf_def_v(l)%k(m)
-                         surf_def_v(l)%rad_sw_in(m)  = rrtm_swdflx(0,k)
-                         surf_def_v(l)%rad_sw_out(m) = rrtm_swuflx(0,k)
-                      ENDDO
                       DO  m = surf_lsm_v(l)%start_index(j,i),                  &
                               surf_lsm_v(l)%end_index(j,i)
@@ -3696,11 +3339,5 @@
 !
 !--    Finally, calculate surface net radiation for surface elements.
-!--    First, for horizontal surfaces
-       DO  m = 1, surf_def_h(0)%ns
-          surf_def_h(0)%rad_net(m) = surf_def_h(0)%rad_sw_in(m)                &
-                                   - surf_def_h(0)%rad_sw_out(m)               &
-                                   + surf_def_h(0)%rad_lw_in(m)                &
-                                   - surf_def_h(0)%rad_lw_out(m)
-       ENDDO       
+!--    First, for horizontal surfaces    
        DO  m = 1, surf_lsm_h%ns
           surf_lsm_h%rad_net(m) = surf_lsm_h%rad_sw_in(m)                      &
@@ -3718,11 +3355,5 @@
 !--    Vertical surfaces. 
 !--    Todo: weight with azimuth and zenith angle according to their orientation!
-       DO  l = 0, 3
-          DO  m = 1, surf_def_v(l)%ns
-             surf_def_v(l)%rad_net(m) = surf_def_v(l)%rad_sw_in(m)             &
-                                      - surf_def_v(l)%rad_sw_out(m)            &
-                                      + surf_def_v(l)%rad_lw_in(m)             &
-                                      - surf_def_v(l)%rad_lw_out(m)
-          ENDDO       
+       DO  l = 0, 3     
           DO  m = 1, surf_lsm_v(l)%ns
              surf_lsm_v(l)%rad_net(m) = surf_lsm_v(l)%rad_sw_in(m)             &
@@ -7535,8 +7166,4 @@
              DO  i = nxl, nxr
                 DO  j = nys, nyn
-                   DO m = surf_def_h(0)%start_index(j,i),                      &
-                          surf_def_h(0)%end_index(j,i)
-                      rad_net_av(j,i) = rad_net_av(j,i) + surf_def_h(0)%rad_net(m)
-                   ENDDO
                    DO m = surf_lsm_h%start_index(j,i), surf_lsm_h%end_index(j,i)
                       rad_net_av(j,i) = rad_net_av(j,i) + surf_lsm_h%rad_net(m)
@@ -7824,10 +7451,4 @@
 !
 !--                Obtain rad_net from its respective surface type
-!--                Default-type surfaces
-                   DO  m = surf_def_h(0)%start_index(j,i),                     &
-                           surf_def_h(0)%end_index(j,i) 
-                      local_pf(i,j,nzb+1) = surf_def_h(0)%rad_net(m)
-                   ENDDO
-!
 !--                Natural-type surfaces
                    DO  m = surf_lsm_h%start_index(j,i),                        &
