Index: palm/trunk/SOURCE/Makefile
===================================================================
--- palm/trunk/SOURCE/Makefile	(revision 3684)
+++ palm/trunk/SOURCE/Makefile	(revision 3685)
@@ -862,8 +862,8 @@
 	modules.o \
 	netcdf_data_input_mod.o \
-	salsa_mod.o \
 	surface_mod.o
 chemistry_model_mod.o: \
 	advec_ws.o \
+	chem_emissions_mod.o \
 	chem_gasphase_mod.o \
 	chem_modules.o \
@@ -1081,12 +1081,7 @@
 	advec_ws.o \
 	basic_constants_and_equations_mod.o \
-	biometeorology_mod.o \
-	bulk_cloud_model_mod.o \
-	chem_emissions_mod.o \
+	bulk_cloud_model_mod.o \
 	cpulog_mod.o \
 	disturb_heatflux.o \
-	gust_mod.o \
-	indoor_model_mod.o \
-	land_surface_model_mod.o \
 	large_scale_forcing_nudging_mod.o \
 	lpm_init.o \
@@ -1099,6 +1094,4 @@
 	netcdf_interface_mod.o \
 	nesting_offl_mod.o \
-	ocean_mod.o \
-	plant_canopy_model_mod.o \
 	pmc_interface_mod.o \
 	radiation_model_mod.o \
@@ -1106,14 +1099,9 @@
 	random_generator_parallel_mod.o \
 	read_restart_data_mod.o \
-	salsa_mod.o \
 	surface_layer_fluxes_mod.o \
 	surface_mod.o \
 	surface_data_output_mod.o \
 	synthetic_turbulence_generator_mod.o \
-	turbulence_closure_mod.o \
-	urban_surface_mod.o \
-	virtual_flight_mod.o \
-	virtual_measurement_mod.o \
-	wind_turbine_model_mod.o
+	turbulence_closure_mod.o
 init_advec.o: \
 	mod_kinds.o \
@@ -1412,5 +1400,4 @@
 palm.o: \
 	bulk_cloud_model_mod.o \
-	chemistry_model_mod.o \
 	chem_photolysis_mod.o \
 	cpulog_mod.o \
Index: palm/trunk/SOURCE/biometeorology_mod.f90
===================================================================
--- palm/trunk/SOURCE/biometeorology_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/biometeorology_mod.f90	(revision 3685)
@@ -27,4 +27,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3650 2019-01-04 13:01:33Z kanani
 ! Bugfixes and additions for enabling restarts with biometeorology 
 ! 
@@ -1114,4 +1117,6 @@
 !-- Internal vriables
     REAL ( wp )  :: height  !< current height in meters
+
+    CALL location_message( 'initializing biometeorology module', .FALSE. )
 !
 !-- Determine cell level corresponding to 1.1 m above ground level
@@ -1136,4 +1141,6 @@
 !-- Init UVEM and load lookup tables
     IF ( uv_exposure )  CALL netcdf_data_input_uvem
+    
+    CALL location_message( 'finished', .TRUE. )
 
  END SUBROUTINE bio_init
Index: palm/trunk/SOURCE/chem_emissions_mod.f90
===================================================================
--- palm/trunk/SOURCE/chem_emissions_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/chem_emissions_mod.f90	(revision 3685)
@@ -22,9 +22,12 @@
 ! Current revisions:
 ! ------------------
-!
+! 
 ! 
 ! Former revisions:
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3611 2018-12-07 14:14:11Z banzhafs
 ! Code update to comply PALM coding rules
 ! removed unnecessary informative messsages/location
@@ -693,23 +696,17 @@
 !> fluxes at timestep 0 
 !------------------------------------------------------------------------------!
- SUBROUTINE chem_emissions_init( emt_att, emt, nspec_out )
+ SUBROUTINE chem_emissions_init
 
     USE surface_mod,                                                           &
         ONLY:  surf_def_h, surf_lsm_h, surf_usm_h
+
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  chem_emis, chem_emis_att
     
     IMPLICIT NONE
  
     CHARACTER (LEN=80)          ::  units                                           !< units of inputs
-    
-    INTEGER(iwp), INTENT(INOUT) ::  nspec_out                                       !< number of outputs
 
     INTEGER(iwp)                :: ispec                                            !< running index
-
-    TYPE(chem_emis_att_type), INTENT(INOUT) ::  emt_att                             !< variable where to store all the information
-                                                                                    !< of emission inputs whose values do not 
-                                                                                    !< depend on the considered species
-
-    TYPE(chem_emis_val_type), INTENT(INOUT), ALLOCATABLE, DIMENSION(:) ::  emt      !< variable where to store emission input  
-                                                                                    !< values depending on the considered species
 
 !    
@@ -730,5 +727,5 @@
   !
   !-- Matching
-  CALL  chem_emissions_match( emt_att, nspec_out )
+  CALL  chem_emissions_match( chem_emis_att, nspec_out )
  
   IF ( nspec_out == 0 )  THEN
@@ -743,19 +740,19 @@
      !
      !-- Set molecule masses' 
-     ALLOCATE( emt_att%xm(nspec_out) )
+     ALLOCATE( chem_emis_att%xm(nspec_out) )
 
      DO ispec = 1, nspec_out
         SELECT CASE ( TRIM( spc_names(match_spec_model(ispec)) ) )
-           CASE ( 'SO2' ); emt_att%xm(ispec) = xm_S + xm_O * 2        !< kg/mole
-           CASE ( 'SO4' ); emt_att%xm(ispec) = xm_S + xm_O * 4        !< kg/mole
-           CASE ( 'NO' ); emt_att%xm(ispec) = xm_N + xm_O             !< kg/mole
-           CASE ( 'NO2' ); emt_att%xm(ispec) = xm_N + xm_O * 2        !< kg/mole   
-           CASE ( 'NH3' ); emt_att%xm(ispec) = xm_N + xm_H * 3        !< kg/mole
-           CASE ( 'CO'  ); emt_att%xm(ispec) = xm_C + xm_O            !< kg/mole
-           CASE ( 'CO2' ); emt_att%xm(ispec) = xm_C + xm_O * 2        !< kg/mole
-           CASE ( 'CH4' ); emt_att%xm(ispec) = xm_C + xm_H * 4        !< kg/mole     
-           CASE ( 'HNO3' ); emt_att%xm(ispec) = xm_H + xm_N + xm_O*3  !< kg/mole  
+           CASE ( 'SO2' ); chem_emis_att%xm(ispec) = xm_S + xm_O * 2        !< kg/mole
+           CASE ( 'SO4' ); chem_emis_att%xm(ispec) = xm_S + xm_O * 4        !< kg/mole
+           CASE ( 'NO' ); chem_emis_att%xm(ispec) = xm_N + xm_O             !< kg/mole
+           CASE ( 'NO2' ); chem_emis_att%xm(ispec) = xm_N + xm_O * 2        !< kg/mole   
+           CASE ( 'NH3' ); chem_emis_att%xm(ispec) = xm_N + xm_H * 3        !< kg/mole
+           CASE ( 'CO'  ); chem_emis_att%xm(ispec) = xm_C + xm_O            !< kg/mole
+           CASE ( 'CO2' ); chem_emis_att%xm(ispec) = xm_C + xm_O * 2        !< kg/mole
+           CASE ( 'CH4' ); chem_emis_att%xm(ispec) = xm_C + xm_H * 4        !< kg/mole     
+           CASE ( 'HNO3' ); chem_emis_att%xm(ispec) = xm_H + xm_N + xm_O*3  !< kg/mole  
            CASE DEFAULT
-              emt_att%xm(ispec) = 1.0_wp
+              chem_emis_att%xm(ispec) = 1.0_wp
         END SELECT
      ENDDO
@@ -775,5 +772,5 @@
            !
            !-- Get emissions at the first time step
-           CALL chem_emissions_setup( emt_att, emt, nspec_out )
+           CALL chem_emissions_setup( chem_emis_att, chem_emis, nspec_out )
 
         !
@@ -785,5 +782,5 @@
            !
            !-- Get emissions at the first time step
-           CALL chem_emissions_setup( emt_att, emt, nspec_out )
+           CALL chem_emissions_setup( chem_emis_att, chem_emis, nspec_out )
 
         !
@@ -795,5 +792,5 @@
            !
            !-- Get emissions at the first time step
-           CALL chem_emissions_setup( emt_att, emt, nspec_out)
+           CALL chem_emissions_setup( chem_emis_att, chem_emis, nspec_out)
 
      END SELECT
Index: palm/trunk/SOURCE/chemistry_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/chemistry_model_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/chemistry_model_mod.f90	(revision 3685)
@@ -27,4 +27,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3664 2019-01-09 14:00:37Z forkel
 ! Replaced misplaced location message by @todo
 ! 
@@ -454,4 +457,8 @@
     END INTERFACE chem_header
 
+    INTERFACE chem_init_arrays
+       MODULE PROCEDURE chem_init_arrays
+    END INTERFACE chem_init_arrays
+
     INTERFACE chem_init
        MODULE PROCEDURE chem_init
@@ -564,5 +571,5 @@
          chem_check_data_output_pr, chem_check_parameters,                    &
          chem_data_output_2d, chem_data_output_3d, chem_data_output_mask,     &
-         chem_define_netcdf_grid, chem_header, chem_init,                     &
+         chem_define_netcdf_grid, chem_header, chem_init, chem_init_arrays,   &
          chem_init_profiles, chem_integrate, chem_parin,                      &
          chem_prognostic_equations, chem_rrd_local,                           &
@@ -1182,4 +1189,5 @@
 !-- temporary switch of this part of the check
 !    RETURN                !bK commented
+    CALL chem_init_internal
 !---------------------
 
@@ -1717,7 +1725,41 @@
 ! Description:
 ! ------------
+!> Subroutine initializating chemistry_model_mod specific arrays
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_init_arrays
+
+!-- Please use this place to allocate required arrays
+
+ END SUBROUTINE chem_init_arrays
+
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
 !> Subroutine initializating chemistry_model_mod
 !------------------------------------------------------------------------------!
  SUBROUTINE chem_init
+
+    USE chem_emissions_mod,                                                    &
+        ONLY:  chem_emissions_init
+
+    IMPLICIT NONE
+
+
+    IF ( do_emis )  CALL chem_emissions_init
+
+
+ END SUBROUTINE chem_init
+
+!
+!------------------------------------------------------------------------------!
+!
+! Description:
+! ------------
+!> Subroutine initializating chemistry_model_mod
+!> internal workaround for chem_species dependency in chem_check_parameters
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_init_internal
 
     USE control_parameters,                                                  &
@@ -1727,4 +1769,7 @@
     USE pegrid
 
+    USE netcdf_data_input_mod,                                                 &
+        ONLY:  chem_emis, chem_emis_att, netcdf_data_input_chemistry_data
+
     IMPLICIT NONE
 
@@ -1736,4 +1781,7 @@
     INTEGER(iwp) ::  lpr_lev           !< running index for chem spcs profile level
 
+    IF ( do_emis ) THEN
+       CALL netcdf_data_input_chemistry_data( chem_emis_att, chem_emis )
+    ENDIF
 !
 !-- Allocate memory for chemical species
@@ -1861,7 +1909,9 @@
     ENDDO
 
+!    CALL photolysis_init   ! probably also required for restart
+
     RETURN
 
- END SUBROUTINE chem_init
+ END SUBROUTINE chem_init_internal
 
 !
Index: palm/trunk/SOURCE/gust_mod.f90
===================================================================
--- palm/trunk/SOURCE/gust_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/gust_mod.f90	(revision 3685)
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3665 2019-01-10 08:28:24Z raasch
 ! dummy statements added to avoid compiler warnings about unused variables
 ! 
@@ -279,17 +282,9 @@
 !> Initialization of the gust module
 !------------------------------------------------------------------------------!
-    SUBROUTINE gust_init( dots_label, dots_unit, dots_num, dots_max )
-
-
-       IMPLICIT NONE
-
-       INTEGER(iwp) ::  dots_num
-       INTEGER(iwp) ::  dots_max
-       CHARACTER (LEN=13), DIMENSION(dots_max) :: dots_unit
-       CHARACTER (LEN=13), DIMENSION(dots_max) :: dots_label
-
-!
-!--    Next line is just to avoid compiler warnings about unused variables. You may remove it.
-       IF ( dummy_logical )  idum = dots_num + dots_max + LEN( dots_unit(1) ) + LEN( dots_label(1) )
+    SUBROUTINE gust_init
+
+
+       IMPLICIT NONE
+
 
     END SUBROUTINE gust_init
Index: palm/trunk/SOURCE/indoor_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/indoor_model_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/indoor_model_mod.f90	(revision 3685)
@@ -26,4 +26,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3597 2018-12-04 08:40:18Z maronga
 ! Renamed t_surf_10cm to pt_10cm
 ! 
@@ -388,4 +391,6 @@
                                                            !< on local subdomain
 
+    CALL location_message( 'initializing indoor model', .FALSE. )
+
 !
 !-- Initializing of indoor model is only possible if buildings can be 
@@ -814,4 +819,5 @@
     theta_m_t_prev = initial_indoor_temperature
 
+    CALL location_message( 'finished', .TRUE. )
 
  END SUBROUTINE im_init
Index: palm/trunk/SOURCE/init_3d_model.f90
===================================================================
--- palm/trunk/SOURCE/init_3d_model.f90	(revision 3684)
+++ palm/trunk/SOURCE/init_3d_model.f90	(revision 3685)
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3648 2019-01-02 16:35:46Z suehring
 ! Rename subroutines for surface-data output
 ! 
@@ -583,36 +586,18 @@
                ideal_gas_law_rho, ideal_gas_law_rho_pt, barometric_formula
 
-    USE biometeorology_mod,                                                    &
-        ONLY:  bio_init
-
     USE bulk_cloud_model_mod,                                                  &
-        ONLY:  bulk_cloud_model, bcm_init, bcm_init_arrays
-
-    USE chem_emissions_mod,                                                    &
-        ONLY:  chem_emissions_init
+        ONLY:  bulk_cloud_model
 
     USE chem_modules,                                                          &
-        ONLY:  do_emis, max_pr_cs, nspec_out
+        ONLY:  max_pr_cs ! ToDo: this dependency needs to be removed cause it is ugly #new_dom
 
     USE control_parameters
-
-    USE flight_mod,                                                            &
-        ONLY:  flight_init
 
     USE grid_variables,                                                        &
         ONLY:  dx, dy, ddx2_mg, ddy2_mg
 
-    USE gust_mod,                                                              &
-        ONLY:  gust_init, gust_init_arrays, gust_module_enabled
-
     USE indices
 
-    USE indoor_model_mod,                                                      &
-        ONLY:  im_init
-
     USE kinds
-
-    USE land_surface_model_mod,                                                &
-        ONLY:  lsm_init, lsm_init_arrays
 
     USE lpm_init_mod,                                                          &
@@ -620,8 +605,11 @@
   
     USE lsf_nudging_mod,                                                       &
-        ONLY:  lsf_init, ls_forcing_surf, nudge_init
+        ONLY:  ls_forcing_surf
 
     USE model_1d_mod,                                                          &
         ONLY:  init_1d_model, l1d, u1d, v1d
+
+    USE module_interface,                                                      &
+        ONLY:  module_interface_init_arrays, module_interface_init
 
     USE multi_agent_system_mod,                                                &
@@ -638,14 +626,8 @@
         ONLY:  nesting_offl_init
 
-    USE ocean_mod,                                                             &
-        ONLY:  ocean_init, ocean_init_arrays
-
     USE particle_attributes,                                                   &
         ONLY:  particle_advection
 
     USE pegrid
-
-    USE plant_canopy_model_mod,                                                &
-        ONLY:  pcm_init
 
 #if defined( __parallel )
@@ -655,22 +637,14 @@
 
     USE radiation_model_mod,                                                   &
-        ONLY:  average_radiation,                                              &
-               radiation_init, radiation, radiation_scheme,                    &
-               radiation_calc_svf, radiation_write_svf,                        &
-               radiation_interaction, radiation_interactions,                  &
-               radiation_interaction_init, radiation_read_svf,                 &
-               radiation_presimulate_solar_pos, radiation_interactions_on
-    
+        ONLY:  radiation, radiation_scheme
+
     USE random_function_mod 
-    
+
     USE random_generator_parallel,                                             &
         ONLY:  init_parallel_random_generator
-        
+
     USE read_restart_data_mod,                                                 &
-        ONLY:  rrd_read_parts_of_global, rrd_local    
-             
-    USE salsa_mod,                                                             &
-        ONLY:  salsa_init, salsa_init_arrays      
-    
+        ONLY:  rrd_read_parts_of_global, rrd_local
+
     USE statistics,                                                            &
         ONLY:  hom, hom_sum, mean_surface_level_height, pr_palm, rmask,        &
@@ -682,5 +656,5 @@
         ONLY:  parametrize_inflow_turbulence, stg_adjust, stg_init,            &
                use_syn_turb_gen
-               
+
     USE surface_layer_fluxes_mod,                                              &
         ONLY:  init_surface_layer_fluxes
@@ -689,21 +663,12 @@
         ONLY :  init_surface_arrays, init_surfaces, surf_def_h, surf_lsm_h,    &
                 surf_usm_h, get_topography_top_index_ji, vertical_surfaces_exist
-   
+
     USE surface_data_output_mod,                                               &
         ONLY:  surface_data_output_init
-   
+
     USE transpose_indices
 
     USE turbulence_closure_mod,                                                &
         ONLY:  tcm_init_arrays, tcm_init
-
-    USE urban_surface_mod,                                                     &
-        ONLY:  usm_init_urban_surface, usm_allocate_surface
-
-    USE virtual_measurement_mod,                                               &
-        ONLY:  vm_init
-
-    USE wind_turbine_model_mod,                                                &
-        ONLY:  wtm_init, wtm_init_arrays
 
     IMPLICIT NONE
@@ -1076,16 +1041,5 @@
 !
 !-- Allocate arrays for other modules
-    IF ( bulk_cloud_model    )  CALL bcm_init_arrays
-    IF ( gust_module_enabled )  CALL gust_init_arrays
-    IF ( land_surface        )  CALL lsm_init_arrays
-    IF ( ocean_mode          )  CALL ocean_init_arrays
-    IF ( salsa               )  CALL salsa_init_arrays
-    IF ( wind_turbine        )  CALL wtm_init_arrays
-
-!
-!-- Initialize virtual flight measurements
-    IF ( virtual_flight )  THEN
-       CALL flight_init
-    ENDIF
+    CALL module_interface_init_arrays
 
 
@@ -2098,7 +2052,4 @@
        ENDIF
     ENDIF
-!
-!-- User-defined initializing actions
-    CALL user_init
 !
 !-- To do: New concept for these non-topography grid points!
@@ -2205,12 +2156,4 @@
     DEALLOCATE( mean_surface_level_height_l, ngp_2dh_l, ngp_2dh_outer_l,       &
                 ngp_3d_inner_l, ngp_3d_inner_tmp )
-
-!
-!-- Initialize nudging if required
-    IF ( nudging )  CALL nudge_init
-!
-!-- Initialize 1D large-scale forcing and nudging and read data from external
-!-- ASCII file
-    IF ( large_scale_forcing )  CALL lsf_init
 !
 !-- Initialize surface forcing corresponding to large-scale forcing. Therein, 
@@ -2250,18 +2193,6 @@
 
 !
-!-- If required, initialize quantities needed for the plant canopy model
-    IF ( plant_canopy )  THEN
-       CALL location_message( 'initializing plant canopy model', .FALSE. )    
-       CALL pcm_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
 !-- If required, initialize dvrp-software
     IF ( dt_dvrp /= 9999999.9_wp )  CALL init_dvrp
-
-!
-!-- Initialize quantities needed for the ocean model
-    IF ( ocean_mode )  CALL ocean_init
 
 !
@@ -2281,5 +2212,5 @@
              WRITE( message_string, * )  'absolute temperature < 0.0 at zu(', k, &
                                          ') = ', zu(k)
-             CALL message( 'init_bulk_cloud_model', 'PA0142', 1, 2, 0, 6, 0 )
+             CALL message( 'init_3d_model', 'PA0142', 1, 2, 0, 6, 0 )
           ENDIF
        ENDDO
@@ -2296,49 +2227,11 @@
 
     ENDIF
-!
-!-- If required, initialize quantities needed for the microphysics module
-    IF ( bulk_cloud_model )  THEN
-       CALL bcm_init
-    ENDIF
 
 !
 !-- If required, initialize particles
     IF ( particle_advection )  CALL lpm_init
-
 !
 !-- If required, initialize particles
     IF ( agents_active )  CALL mas_init
-
-!
-!-- If required, initialize quantities needed for the LSM
-    IF ( land_surface )  THEN
-       CALL location_message( 'initializing land surface model', .FALSE. )
-       CALL lsm_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, allocate USM and LSM surfaces
-    IF ( urban_surface )  THEN
-       CALL location_message( 'initializing and allocating urban surfaces', .FALSE. )
-       CALL usm_allocate_surface
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-!
-!-- If required, initialize urban surface model
-    IF ( urban_surface )  THEN
-       CALL location_message( 'initializing urban surface model', .FALSE. )
-       CALL usm_init_urban_surface
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- Initialize surface layer (done after LSM as roughness length are required
-!-- for initialization
-    IF ( constant_flux_layer )  THEN
-       CALL location_message( 'initializing surface layer', .FALSE. )
-       CALL init_surface_layer_fluxes
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
 !
 !-- In case the synthetic turbulence generator does not have any information
@@ -2347,130 +2240,17 @@
 !-- Please note, within pre-determined time intervals these turbulence 
 !-- information can be updated if desired. 
-    IF ( use_syn_turb_gen  .AND.  parametrize_inflow_turbulence )              &
+    IF ( use_syn_turb_gen  .AND.  parametrize_inflow_turbulence )  THEN
        CALL stg_adjust
-!
-!-- If required, set chemical emissions
-!-- Initialize values of cssws according to chemistry emission values
-    IF ( air_chemistry  .AND.  do_emis )  THEN
-       CALL chem_emissions_init( chem_emis_att, chem_emis, nspec_out )
-    ENDIF
-!
-!-- Initialize radiation processes
-    IF ( radiation )  THEN
-!
-!--    Activate radiation_interactions according to the existence of vertical surfaces and/or trees.
-!--    The namelist parameter radiation_interactions_on can override this behavior.
-!--    (This check cannot be performed in check_parameters, because vertical_surfaces_exist is first set in 
-!--    init_surface_arrays.)
-       IF ( radiation_interactions_on )  THEN
-          IF ( vertical_surfaces_exist  .OR.  plant_canopy )  THEN
-             radiation_interactions    = .TRUE.
-             average_radiation         = .TRUE.
-          ELSE
-             radiation_interactions_on = .FALSE.   !< reset namelist parameter: no interactions 
-                                                   !< calculations necessary in case of flat surface
-          ENDIF
-       ELSEIF ( vertical_surfaces_exist  .OR.  plant_canopy )  THEN
-          message_string = 'radiation_interactions_on is set to .FALSE. although '     // &
-                           'vertical surfaces and/or trees exist. The model will run ' // &
-                           'without RTM (no shadows, no radiation reflections)'
-          CALL message( 'init_3d_model', 'PA0348', 0, 1, 0, 6, 0 )
-       ENDIF
-!
-!--    If required, initialize radiation interactions between surfaces 
-!--    via sky-view factors. This must be done before radiation is initialized.
-       IF ( radiation_interactions )  CALL radiation_interaction_init
-
-!
-!--    Initialize radiation model
-       CALL location_message( 'initializing radiation model', .FALSE. )
-       CALL radiation_init
-       CALL location_message( 'finished', .TRUE. )
-
-!
-!--    Find all discretized apparent solar positions for radiation interaction.
-!--    This must be done after radiation_init.
-       IF ( radiation_interactions )  CALL radiation_presimulate_solar_pos
-
-!
-!--    If required, read or calculate and write out the SVF 
-       IF ( radiation_interactions .AND. read_svf)  THEN
-!
-!--       Read sky-view factors and further required data from file
-          CALL location_message( '    Start reading SVF from file', .FALSE. )
-          CALL radiation_read_svf()
-          CALL location_message( '    Reading SVF from file has finished', .TRUE. )
-
-       ELSEIF ( radiation_interactions .AND. .NOT. read_svf)  THEN
-!
-!--       calculate SFV and CSF
-          CALL location_message( '    Start calculation of SVF', .FALSE. )
-          CALL radiation_calc_svf()
-          CALL location_message( '    Calculation of SVF has finished', .TRUE. )
-       ENDIF
-
-       IF ( radiation_interactions .AND. write_svf)  THEN
-!
-!--       Write svf, csf svfsurf and csfsurf data to file
-          CALL location_message( '    Start writing SVF in file', .FALSE. )
-          CALL radiation_write_svf()
-          CALL location_message( '    Writing SVF in file has finished', .TRUE. )
-       ENDIF
-
-!
-!--    Adjust radiative fluxes. In case of urban and land surfaces, also 
-!--    call an initial interaction.
-       IF ( radiation_interactions )  THEN
-          CALL radiation_interaction
-       ENDIF
-    ENDIF
-  
-!
-!-- If required, initialize quantities needed for the wind turbine model
-    IF ( wind_turbine )  THEN
-       CALL location_message( 'initializing wind turbine model', .FALSE. )
-       CALL wtm_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, initialize quantities needed in SALSA 
-    IF ( salsa )  THEN
-       CALL location_message( 'initializing SALSA model', .TRUE. )
-       CALL salsa_init 
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, initialize quantities needed for the gust module
-    IF ( gust_module_enabled )  THEN
-       CALL gust_init( dots_label, dots_unit, dots_num, dots_max )
-    ENDIF
+    ENDIF
+!
+!-- Initializing actions for all other modules
+    CALL module_interface_init
+!
+!-- Initialize surface layer (done after LSM as roughness length are required
+!-- for initialization
+    IF ( constant_flux_layer )  CALL init_surface_layer_fluxes
 !
 !-- Initialize surface data output
-    IF ( surface_output )  THEN
-       CALL surface_data_output_init
-    ENDIF
-!
-!-- If virtual measurements should be taken, initialize all relevant 
-!-- arrays and quantities.
-    IF ( virtual_measurement )  CALL vm_init
-
-!
-!-- If required initialize biometeorology module
-    IF ( biometeorology )  THEN
-        CALL location_message( 'initializing biometeorology module', .FALSE. )
-        CALL bio_init
-        CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
-!
-!-- If required, initialize indoor model
-    IF ( indoor_model )  THEN
-       CALL location_message( 'initializing indoor model', .FALSE. )
-       CALL im_init
-       CALL location_message( 'finished', .TRUE. )
-    ENDIF
-
+    IF ( surface_output )  CALL surface_data_output_init
 !
 !-- Initialize the ws-scheme.    
Index: palm/trunk/SOURCE/land_surface_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/land_surface_model_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/land_surface_model_mod.f90	(revision 3685)
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3677 2019-01-17 09:07:06Z moh.hefny
 ! Removed most_method
 ! 
@@ -2495,4 +2498,6 @@
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  bound, bound_root_fr  !< temporary arrays for storing index bounds
        REAL(wp), DIMENSION(:), ALLOCATABLE ::  pr_soil_init !< temporary array used for averaging soil profiles
+
+       CALL location_message( 'initializing land surface model', .FALSE. )
 !
 !--    If no cloud physics is used, rho_surface has not been calculated before
@@ -4760,5 +4765,7 @@
              ENDIF
           ENDDO
-       ENDDO      
+       ENDDO
+
+       CALL location_message( 'finished', .TRUE. )
 
     END SUBROUTINE lsm_init
Index: palm/trunk/SOURCE/module_interface.f90
===================================================================
--- palm/trunk/SOURCE/module_interface.f90	(revision 3684)
+++ palm/trunk/SOURCE/module_interface.f90	(revision 3685)
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3684 2019-01-20 20:20:58Z knoop
 ! Bugfix: made unit intend INOUT
 ! 
@@ -59,4 +62,5 @@
        ONLY:  biometeorology,                                                  &
               air_chemistry,                                                   &
+              indoor_model,                                                    &
               land_surface,                                                    &
               large_scale_forcing,                                             &
@@ -70,4 +74,5 @@
               urban_surface,                                                   &
               virtual_flight,                                                  &
+              virtual_measurement,                                             &
               wind_turbine
 
@@ -78,4 +83,5 @@
               bio_check_parameters,                                            &
               bio_check_data_output,                                           &
+              bio_init,                                                        &
               bio_header,                                                      &
               bio_3d_data_averaging,                                           &
@@ -93,4 +99,6 @@
               bcm_check_data_output_pr,                                        &
               bcm_check_data_output,                                           &
+              bcm_init_arrays,                                                 &
+              bcm_init,                                                        &
               bcm_header,                                                      &
               bcm_swap_timelevel,                                              &
@@ -108,4 +116,6 @@
               chem_check_data_output_pr,                                       &
               chem_check_data_output,                                          &
+              chem_init_arrays,                                                &
+              chem_init,                                                       &
               chem_header,                                                     &
               chem_swap_timelevel,                                             &
@@ -120,4 +130,5 @@
        ONLY:  flight_parin,                                                    &
               flight_header,                                                   &
+              flight_init,                                                     &
               flight_rrd_global,                                               &
               flight_wrd_global
@@ -129,4 +140,6 @@
               gust_check_data_output_pr,                                       &
               gust_check_data_output,                                          &
+              gust_init_arrays,                                                &
+              gust_init,                                                       &
               gust_header,                                                     &
               gust_actions,                                                    &
@@ -142,5 +155,6 @@
 
    USE indoor_model_mod,                                                       &
-       ONLY:  im_parin
+       ONLY:  im_parin,                                                        &
+              im_init
 
    USE land_surface_model_mod,                                                 &
@@ -149,4 +163,6 @@
               lsm_check_data_output_pr,                                        &
               lsm_check_data_output,                                           &
+              lsm_init_arrays,                                                 &
+              lsm_init,                                                        &
               lsm_header,                                                      &
               lsm_swap_timelevel,                                              &
@@ -159,4 +175,6 @@
        ONLY:  lsf_nudging_check_parameters,                                    &
               lsf_nudging_check_data_output_pr,                                &
+              lsf_init,                                                        &
+              nudge_init,                                                      &
               lsf_nudging_header
 
@@ -174,4 +192,6 @@
               ocean_check_data_output_pr,                                      &
               ocean_check_data_output,                                         &
+              ocean_init_arrays,                                               &
+              ocean_init,                                                      &
               ocean_header,                                                    &
               ocean_swap_timelevel,                                            &
@@ -188,4 +208,5 @@
               pcm_check_parameters,                                            &
               pcm_check_data_output,                                           &
+              pcm_init,                                                        &
               pcm_header,                                                      &
               pcm_data_output_3d
@@ -197,4 +218,5 @@
               radiation_check_data_output_pr,                                  &
               radiation_check_data_output,                                     &
+              radiation_init,                                                  &
               radiation_header,                                                &
               radiation_3d_data_averaging,                                     &
@@ -208,4 +230,6 @@
               salsa_check_parameters,                                          &
               salsa_check_data_output,                                         &
+              salsa_init_arrays,                                               &
+              salsa_init,                                                      &
               salsa_header,                                                    &
               salsa_swap_timelevel,                                            &
@@ -237,4 +261,6 @@
               usm_check_parameters,                                            &
               usm_check_data_output,                                           &
+              usm_init_arrays,                                                 &
+              usm_init,                                                        &
               usm_swap_timelevel,                                              &
               usm_3d_data_averaging,                                           &
@@ -254,9 +280,12 @@
 
    USE virtual_measurement_mod,                                                &
-       ONLY:  vm_parin
+       ONLY:  vm_parin,                                                        &
+              vm_init
 
    USE wind_turbine_model_mod,                                                 &
        ONLY:  wtm_parin,                                                       &
               wtm_check_parameters,                                            &
+              wtm_init_arrays,                                                 &
+              wtm_init,                                                        &
               wtm_rrd_global,                                                  &
               wtm_wrd_global
@@ -584,4 +613,14 @@
 
 
+   IF ( bulk_cloud_model    )  CALL bcm_init_arrays
+   IF ( air_chemistry       )  CALL chem_init_arrays
+   IF ( gust_module_enabled )  CALL gust_init_arrays
+   IF ( land_surface        )  CALL lsm_init_arrays
+   IF ( ocean_mode          )  CALL ocean_init_arrays
+   IF ( salsa               )  CALL salsa_init_arrays
+   IF ( urban_surface       )  CALL usm_init_arrays
+   IF ( wind_turbine        )  CALL wtm_init_arrays
+
+
 END SUBROUTINE module_interface_init_arrays
 
@@ -593,4 +632,22 @@
 !------------------------------------------------------------------------------!
 SUBROUTINE module_interface_init
+
+
+   IF ( biometeorology      )  CALL bio_init
+   IF ( bulk_cloud_model    )  CALL bcm_init
+   IF ( air_chemistry       )  CALL chem_init
+   IF ( virtual_flight      )  CALL flight_init
+   IF ( gust_module_enabled )  CALL gust_init
+   IF ( indoor_model        )  CALL im_init
+   IF ( large_scale_forcing )  CALL lsf_init
+   IF ( land_surface        )  CALL lsm_init
+   IF ( nudging             )  CALL nudge_init
+   IF ( ocean_mode          )  CALL ocean_init
+   IF ( plant_canopy        )  CALL pcm_init
+   IF ( salsa               )  CALL salsa_init
+   IF ( urban_surface       )  CALL usm_init
+   IF ( virtual_measurement )  CALL vm_init
+   IF ( wind_turbine        )  CALL wtm_init
+   IF ( radiation           )  CALL radiation_init
 
 
Index: palm/trunk/SOURCE/palm.f90
===================================================================
--- palm/trunk/SOURCE/palm.f90	(revision 3684)
+++ palm/trunk/SOURCE/palm.f90	(revision 3685)
@@ -25,4 +25,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3648 2019-01-02 16:35:46Z suehring
 ! Rename subroutines for surface-data output
 ! 
@@ -265,6 +268,4 @@
 !> flows
 !> see the PALM homepage https://palm-model.org for further information
-!>
-!> @todo move chem_init call to init_3d_model or to check_parameters
 !------------------------------------------------------------------------------!
  PROGRAM palm
@@ -275,13 +276,4 @@
     USE bulk_cloud_model_mod,                                                  &
         ONLY: bulk_cloud_model, microphysics_morrison, microphysics_seifert
-
-    USE chem_modules,                                                          &
-        ONLY:  do_emis
-
-    USE chemistry_model_mod,                                                   &
-        ONLY:  chem_check_data_output_pr, chem_init
-
-!    USE chem_photolysis_mod,                                                   &
-!        ONLY:  photolysis_init
 
     USE control_parameters,                                                    &
@@ -308,6 +300,5 @@
 
     USE netcdf_data_input_mod,                                                 &
-        ONLY:  chem_emis, chem_emis_att, netcdf_data_input_chemistry_data,     &
-               netcdf_data_input_inquire_file, netcdf_data_input_init,         &
+        ONLY:  netcdf_data_input_inquire_file, netcdf_data_input_init,         &
                netcdf_data_input_surface_data, netcdf_data_input_topo
 
@@ -439,25 +430,6 @@
     CALL netcdf_data_input_surface_data
 !
-!-- Initialize chemistry (called before check_parameters due to dependencies)
-!-- --> Needs to be moved!! What is the dependency about?
-! IF (  TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
-    IF ( air_chemistry )  THEN
-
-       IF ( do_emis ) THEN
-          CALL netcdf_data_input_chemistry_data(chem_emis_att,chem_emis)
-       ENDIF
-
-       CALL chem_init
-
-!       CALL photolysis_init   ! probably also required for restart
-
-    ENDIF
-! END IF
-!
 !-- Check control parameters and deduce further quantities
     CALL check_parameters
-
-!
-!-- Initialize all necessary variables
 !
 !-- Initial time for chem_emissions_mod
Index: palm/trunk/SOURCE/plant_canopy_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/plant_canopy_model_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/plant_canopy_model_mod.f90	(revision 3685)
@@ -27,4 +27,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3655 2019-01-07 16:51:22Z knoop
 ! unused variables removed
 ! 
@@ -902,4 +905,5 @@
        REAL(wp) ::  canopy_height   !< canopy height for lad-profile construction
 
+       CALL location_message( 'initializing plant canopy model', .FALSE. )
 !
 !--    Allocate one-dimensional arrays for the computation of the 
@@ -1209,4 +1213,6 @@
        ENDIF
 
+       CALL location_message( 'finished', .TRUE. )
+
 
     END SUBROUTINE pcm_init
Index: palm/trunk/SOURCE/radiation_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/radiation_model_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/radiation_model_mod.f90	(revision 3685)
@@ -28,4 +28,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3667 2019-01-10 14:26:24Z schwenkel
 ! Modified check for rrtmg input files
 ! 
@@ -567,4 +570,5 @@
                message_string, plant_canopy, pt_surface,                       &
                rho_surface, simulated_time, spinup_time, surface_pressure,     &
+               read_svf, write_svf,                                            &
                time_since_reference_point, urban_surface, varnamelength
 
@@ -630,5 +634,6 @@
         ONLY:  get_topography_top_index, get_topography_top_index_ji,          &
                ind_pav_green, ind_veg_wall, ind_wat_win,                       &
-               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,      &
+               vertical_surfaces_exist
 
     IMPLICIT NONE
@@ -1739,4 +1744,32 @@
        INTEGER(iwp) ::  ind_type  !< running index for subgrid-surface tiles
 #endif
+
+!
+!--    Activate radiation_interactions according to the existence of vertical surfaces and/or trees.
+!--    The namelist parameter radiation_interactions_on can override this behavior.
+!--    (This check cannot be performed in check_parameters, because vertical_surfaces_exist is first set in 
+!--    init_surface_arrays.)
+       IF ( radiation_interactions_on )  THEN
+          IF ( vertical_surfaces_exist  .OR.  plant_canopy )  THEN
+             radiation_interactions    = .TRUE.
+             average_radiation         = .TRUE.
+          ELSE
+             radiation_interactions_on = .FALSE.   !< reset namelist parameter: no interactions 
+                                                   !< calculations necessary in case of flat surface
+          ENDIF
+       ELSEIF ( vertical_surfaces_exist  .OR.  plant_canopy )  THEN
+          message_string = 'radiation_interactions_on is set to .FALSE. although '     // &
+                           'vertical surfaces and/or trees exist. The model will run ' // &
+                           'without RTM (no shadows, no radiation reflections)'
+          CALL message( 'init_3d_model', 'PA0348', 0, 1, 0, 6, 0 )
+       ENDIF
+!
+!--    If required, initialize radiation interactions between surfaces 
+!--    via sky-view factors. This must be done before radiation is initialized.
+       IF ( radiation_interactions )  CALL radiation_interaction_init
+
+!
+!--    Initialize radiation model
+       CALL location_message( 'initializing radiation model', .FALSE. )
 
 !
@@ -2671,4 +2704,42 @@
        CALL init_date_and_time
 
+       CALL location_message( 'finished', .TRUE. )
+
+!
+!--    Find all discretized apparent solar positions for radiation interaction.
+       IF ( radiation_interactions )  CALL radiation_presimulate_solar_pos
+
+!
+!--    If required, read or calculate and write out the SVF 
+       IF ( radiation_interactions .AND. read_svf)  THEN
+!
+!--       Read sky-view factors and further required data from file
+          CALL location_message( '    Start reading SVF from file', .FALSE. )
+          CALL radiation_read_svf()
+          CALL location_message( '    Reading SVF from file has finished', .TRUE. )
+
+       ELSEIF ( radiation_interactions .AND. .NOT. read_svf)  THEN
+!
+!--       calculate SFV and CSF
+          CALL location_message( '    Start calculation of SVF', .FALSE. )
+          CALL radiation_calc_svf()
+          CALL location_message( '    Calculation of SVF has finished', .TRUE. )
+       ENDIF
+
+       IF ( radiation_interactions .AND. write_svf)  THEN
+!
+!--       Write svf, csf svfsurf and csfsurf data to file
+          CALL location_message( '    Start writing SVF in file', .FALSE. )
+          CALL radiation_write_svf()
+          CALL location_message( '    Writing SVF in file has finished', .TRUE. )
+       ENDIF
+
+!
+!--    Adjust radiative fluxes. In case of urban and land surfaces, also 
+!--    call an initial interaction.
+       IF ( radiation_interactions )  THEN
+          CALL radiation_interaction
+       ENDIF
+
        RETURN
 
@@ -5838,5 +5909,5 @@
            !WRITE(message_string, '(a,f6.3)') 'Precomputing effective box optical ' &
            !    // 'depth using prototype leaf area density = ', prototype_lad
-           !CALL message('usm_init_urban_surface', 'PA0520', 0, 0, -1, 6, 0)
+           !CALL message('radiation_interaction_init', 'PA0520', 0, 0, -1, 6, 0)
        ENDIF
 
Index: palm/trunk/SOURCE/salsa_mod.f90
===================================================================
--- palm/trunk/SOURCE/salsa_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/salsa_mod.f90	(revision 3685)
@@ -26,4 +26,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3655 2019-01-07 16:51:22Z knoop
 ! Implementation of the PALM module interface
 ! 
@@ -1182,4 +1185,6 @@
     INTEGER(iwp) :: j
     
+    CALL location_message( 'initializing SALSA model', .TRUE. )
+    
     bin_low_limits = 0.0_wp
     nsect          = 0.0_wp
@@ -1317,4 +1322,6 @@
        CALL salsa_set_source
     ENDIF
+    
+    CALL location_message( 'finished', .TRUE. )
     
  END SUBROUTINE salsa_init
Index: palm/trunk/SOURCE/surface_layer_fluxes_mod.f90
===================================================================
--- palm/trunk/SOURCE/surface_layer_fluxes_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/surface_layer_fluxes_mod.f90	(revision 3685)
@@ -26,4 +26,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3668 2019-01-14 12:49:24Z maronga
 ! Removed methods "circular" and "lookup"
 ! 
@@ -729,4 +732,5 @@
 
 
+       CALL location_message( 'initializing surface layer', .FALSE. )
 
 
@@ -739,4 +743,6 @@
           IF ( surf_usm_h%ns    >= 1 )  surf_usm_h%ol    = 1.0E10_wp
        ENDIF
+
+       CALL location_message( 'finished', .TRUE. )
 
     END SUBROUTINE init_surface_layer_fluxes
Index: palm/trunk/SOURCE/urban_surface_mod.f90
===================================================================
--- palm/trunk/SOURCE/urban_surface_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/urban_surface_mod.f90	(revision 3685)
@@ -28,4 +28,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3655 2019-01-07 16:51:22Z knoop
 ! Implementation of the PALM module interface
 ! 
@@ -1092,7 +1095,7 @@
     END INTERFACE usm_define_netcdf_grid
 
-    INTERFACE usm_init_urban_surface
-       MODULE PROCEDURE usm_init_urban_surface
-    END INTERFACE usm_init_urban_surface
+    INTERFACE usm_init
+       MODULE PROCEDURE usm_init
+    END INTERFACE usm_init
 
     INTERFACE usm_material_heat_model
@@ -1124,7 +1127,7 @@
     END INTERFACE usm_wrd_local
 
-    INTERFACE usm_allocate_surface
-       MODULE PROCEDURE usm_allocate_surface
-    END INTERFACE usm_allocate_surface
+    INTERFACE usm_init_arrays
+       MODULE PROCEDURE usm_init_arrays
+    END INTERFACE usm_init_arrays
 
     INTERFACE usm_3d_data_averaging
@@ -1138,10 +1141,10 @@
     
 !-- Public functions
-    PUBLIC usm_boundary_condition, usm_check_parameters, usm_init_urban_surface,&
+    PUBLIC usm_boundary_condition, usm_check_parameters, usm_init,&
            usm_rrd_local,                                                      & 
            usm_surface_energy_balance, usm_material_heat_model,                &
            usm_swap_timelevel, usm_check_data_output, usm_3d_data_averaging,   &
            usm_data_output_3d, usm_define_netcdf_grid, usm_parin,              &
-           usm_wrd_local, usm_allocate_surface
+           usm_wrd_local, usm_init_arrays
 
 !-- Public parameters, constants and initial values
@@ -1161,9 +1164,11 @@
 !> and plant canopy and it allocates the needed arrays for USM
 !------------------------------------------------------------------------------!
-    SUBROUTINE usm_allocate_surface
+    SUBROUTINE usm_init_arrays
     
         IMPLICIT NONE
        
         INTEGER(iwp) ::  l
+
+        CALL location_message( 'initializing and allocating urban surfaces', .FALSE. )
 
 !
@@ -1556,6 +1561,8 @@
            IF ( ALLOCATED( surf_usm_v(l)%iwghf_eb_window ) )  surf_usm_v(l)%iwghf_eb_window = 0.0_wp
         ENDDO
-        
-    END SUBROUTINE usm_allocate_surface
+
+        CALL location_message( 'finished', .TRUE. )
+
+    END SUBROUTINE usm_init_arrays
 
 
@@ -3870,5 +3877,5 @@
 !> Initialization of the urban surface model
 !------------------------------------------------------------------------------!
-    SUBROUTINE usm_init_urban_surface
+    SUBROUTINE usm_init
 
         USE arrays_3d,                                                         &
@@ -3926,4 +3933,5 @@
         REAL(wp)     ::  z_agl                        !< height above ground
 
+        CALL location_message( 'initializing urban surface model', .FALSE. )
 
         CALL cpu_log( log_point_s(78), 'usm_init', 'start' )
@@ -5189,7 +5197,9 @@
 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++        
 
-        CALL cpu_log( log_point_s(78), 'usm_init', 'stop' )
-
-    END SUBROUTINE usm_init_urban_surface
+       CALL cpu_log( log_point_s(78), 'usm_init', 'stop' )
+
+       CALL location_message( 'finished', .TRUE. )
+
+    END SUBROUTINE usm_init
 
 
Index: palm/trunk/SOURCE/wind_turbine_model_mod.f90
===================================================================
--- palm/trunk/SOURCE/wind_turbine_model_mod.f90	(revision 3684)
+++ palm/trunk/SOURCE/wind_turbine_model_mod.f90	(revision 3685)
@@ -26,4 +26,7 @@
 ! -----------------
 ! $Id$
+! Some interface calls moved to module_interface + cleanup
+! 
+! 3655 2019-01-07 16:51:22Z knoop
 ! Replace degree symbol by 'degrees'
 !
@@ -992,4 +995,6 @@
        INTEGER(iwp), DIMENSION(:), ALLOCATABLE :: index_nacr       !< 
        INTEGER(iwp), DIMENSION(:), ALLOCATABLE :: index_nact       !< 
+       
+       CALL location_message( 'initializing wind turbine model', .FALSE. )
        
        ALLOCATE( index_nacb(1:nturbines) )
@@ -1347,4 +1352,6 @@
 
        CALL wtm_read_blade_tables
+
+       CALL location_message( 'finished', .TRUE. )
  
     END SUBROUTINE wtm_init
