Index: palm/trunk/SOURCE/check_parameters.f90
===================================================================
--- palm/trunk/SOURCE/check_parameters.f90	(revision 102)
+++ palm/trunk/SOURCE/check_parameters.f90	(revision 103)
@@ -1083,4 +1083,16 @@
     IF ( surface_heatflux == 9999999.9 )  constant_heatflux     = .FALSE.
     IF ( top_heatflux     == 9999999.9 )  constant_top_heatflux = .FALSE.
+    IF ( top_momentumflux_u /= 9999999.9  .AND.  &
+         top_momentumflux_v /= 9999999.9 )  THEN
+       constant_top_momentumflux = .TRUE.
+    ELSEIF (  .NOT. ( top_momentumflux_u == 9999999.9  .AND.  &
+           top_momentumflux_v == 9999999.9 ) )  THEN   
+       IF ( myid == 0 )  THEN
+          PRINT*, '+++ check_parameters:'
+          PRINT*, '    both, top_momentumflux_u AND top_momentumflux_v'
+          PRINT*, '    must be set'
+       ENDIF
+       CALL local_stop
+    ENDIF
 
 !
Index: palm/trunk/SOURCE/diffusion_u.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_u.f90	(revision 102)
+++ palm/trunk/SOURCE/diffusion_u.f90	(revision 103)
@@ -204,5 +204,5 @@
 !--          Vertical diffusion at the first gridpoint below the top boundary,
 !--          if the momentum flux at the top is prescribed by the user
-             IF ( use_top_fluxes )  THEN
+             IF ( use_top_fluxes  .AND.  constant_top_momentumflux )  THEN
                 k = nzt
 !
@@ -368,5 +368,5 @@
 !--    Vertical diffusion at the first gridpoint below the top boundary,
 !--    if the momentum flux at the top is prescribed by the user
-       IF ( use_top_fluxes )  THEN
+       IF ( use_top_fluxes  .AND.  constant_top_momentumflux )  THEN
           k = nzt
 !
Index: palm/trunk/SOURCE/diffusion_v.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_v.f90	(revision 102)
+++ palm/trunk/SOURCE/diffusion_v.f90	(revision 103)
@@ -202,5 +202,5 @@
 !--          Vertical diffusion at the first gridpoint below the top boundary,
 !--          if the momentum flux at the top is prescribed by the user
-             IF ( use_top_fluxes )  THEN
+             IF ( use_top_fluxes  .AND.  constant_top_momentumflux )  THEN
                 k = nzt
 !
@@ -367,5 +367,5 @@
 !--    Vertical diffusion at the first gridpoint below the top boundary,
 !--    if the momentum flux at the top is prescribed by the user
-       IF ( use_top_fluxes )  THEN
+       IF ( use_top_fluxes  .AND.  constant_top_momentumflux )  THEN
           k = nzt
 !
Index: palm/trunk/SOURCE/header.f90
===================================================================
--- palm/trunk/SOURCE/header.f90	(revision 102)
+++ palm/trunk/SOURCE/header.f90	(revision 103)
@@ -5,4 +5,5 @@
 ! -----------------
 ! Output of informations for coupled model runs (boundary conditions etc.)
+! + output of momentumfluxes at the top boundary
 !
 ! Former revisions:
@@ -462,4 +463,5 @@
        WRITE ( io, 304 )
        IF ( coupling_mode == 'uncoupled' )  THEN
+          WRITE ( io, 319 )  top_momentumflux_u, top_momentumflux_v
           IF ( constant_top_heatflux )  THEN
              WRITE ( io, 306 )  top_heatflux
@@ -1349,4 +1351,6 @@
 318 FORMAT (/'       outflow damping layer width: ',I3,' gridpoints with km_', &
                     'max =',F5.1,' m**2/s')
+319 FORMAT ('       Predefined constant momentumflux:  u: ',F9.6,' m**2/s**2'/ &
+            '                                          v: ',F9.6,' m**2/s**2')
 320 FORMAT (//' List output:'/ &
              ' -----------'//  &
Index: palm/trunk/SOURCE/modules.f90
===================================================================
--- palm/trunk/SOURCE/modules.f90	(revision 102)
+++ palm/trunk/SOURCE/modules.f90	(revision 103)
@@ -5,6 +5,7 @@
 ! Actual revisions:
 ! -----------------
-! +comm_inter, coupling_char, coupling_mode, dt_coupling, ngp_xy, port_name,
-! time_coupling, type_xy, uswst*, vswst*
+! +comm_inter, constant_top_momentumflux, coupling_char, coupling_mode,
+! dt_coupling, ngp_xy, port_name, time_coupling, top_momentumflux_u|v,
+! type_xy, uswst*, vswst*
 !
 ! Former revisions:
@@ -311,4 +312,5 @@
                 conserve_volume_flow = .FALSE., constant_diffusion = .FALSE., &
                 constant_heatflux = .TRUE., constant_top_heatflux = .TRUE., &
+                constant_top_momentumflux = .FALSE., &
                 constant_top_salinityflux = .TRUE., &
                 constant_waterflux = .TRUE., create_disturbances = .TRUE., &
@@ -396,6 +398,6 @@
              time_do_sla = 0.0, time_dvrp = 0.0, time_prel = 0.0, &
              time_restart = 9999999.9, time_run_control = 0.0, &
-             top_heatflux = 9999999.9, top_momentumflux_u = 0.0, &
-             top_momentumflux_v = 0.0, top_salinityflux = 9999999.9, &
+             top_heatflux = 9999999.9, top_momentumflux_u = 9999999.9, &
+             top_momentumflux_v = 9999999.9, top_salinityflux = 9999999.9, &
              ug_surface = 0.0, u_gtrans = 0.0, &
              ups_limit_e = 0.0, ups_limit_pt = 0.0, ups_limit_u = 0.0, &
