Index: /palm/trunk/SOURCE/chemistry_model_mod.f90
===================================================================
--- /palm/trunk/SOURCE/chemistry_model_mod.f90	(revision 3877)
+++ /palm/trunk/SOURCE/chemistry_model_mod.f90	(revision 3878)
@@ -314,4 +314,7 @@
         ONLY:  photolysis_control
 
+    USE cpulog,                                                                                    &
+        ONLY:  cpu_log, log_point_s
+
     USE statistics
 
@@ -486,4 +489,9 @@
     END INTERFACE chem_actions
 
+    INTERFACE chem_non_transport_physics
+       MODULE PROCEDURE chem_non_transport_physics
+       MODULE PROCEDURE chem_non_transport_physics_ij
+    END INTERFACE chem_non_transport_physics
+
     INTERFACE chem_prognostic_equations
        MODULE PROCEDURE chem_prognostic_equations
@@ -583,5 +591,6 @@
          chem_init_profiles, chem_integrate, chem_parin,                      &
          chem_actions, chem_prognostic_equations, chem_rrd_local,             &
-         chem_statistics, chem_swap_timelevel, chem_wrd_local, chem_depo 
+         chem_statistics, chem_swap_timelevel, chem_wrd_local, chem_depo,     &
+         chem_non_transport_physics
 
  CONTAINS
@@ -2349,4 +2358,84 @@
 
     END SUBROUTINE chem_actions_ij
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Call for all grid points
+!------------------------------------------------------------------------------!
+ SUBROUTINE chem_non_transport_physics()
+
+
+    INTEGER(iwp) ::  i  !<
+    INTEGER(iwp) ::  j  !<
+
+!
+!-- Calculation of chemical reactions and deposition.
+    IF ( chem_gasphase_on ) THEN
+
+       IF ( intermediate_timestep_count == 1 .OR. call_chem_at_all_substeps )  THEN
+
+          CALL cpu_log( log_point_s(19), 'chem.reactions', 'start' )
+          !$OMP PARALLEL PRIVATE (i,j)
+          !$OMP DO schedule(static,1)
+          DO  i = nxl, nxr
+             DO  j = nys, nyn
+                CALL chem_integrate( i, j )
+             ENDDO
+          ENDDO
+          !$OMP END PARALLEL
+          CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' )
+
+          IF ( deposition_dry )  THEN
+             CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' )
+             DO  i = nxl, nxr
+                DO  j = nys, nyn
+                   CALL chem_depo( i, j )
+                ENDDO
+             ENDDO
+             CALL cpu_log( log_point_s(24), 'chem.deposition', 'stop' )
+          ENDIF
+
+       ENDIF
+
+    ENDIF
+
+ END SUBROUTINE chem_non_transport_physics
+
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Call for grid points i,j
+!------------------------------------------------------------------------------!
+
+ SUBROUTINE chem_non_transport_physics_ij( i, j )
+
+
+    INTEGER(iwp), INTENT(IN) ::  i  !< grid index in x-direction
+    INTEGER(iwp), INTENT(IN) ::  j  !< grid index in y-direction
+
+!
+!-- Calculation of chemical reactions and deposition.
+    IF ( chem_gasphase_on ) THEN
+
+       IF ( intermediate_timestep_count == 1 .OR. call_chem_at_all_substeps )  THEN
+
+          CALL cpu_log( log_point_s(19), 'chem.reactions', 'start' )
+          CALL chem_integrate( i, j )
+          CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' )
+
+          IF ( deposition_dry )  THEN
+             CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' )
+             CALL chem_depo( i, j )
+             CALL cpu_log( log_point_s(24), 'chem.deposition', 'stop' )
+          ENDIF
+
+       ENDIF
+
+    ENDIF
+
+ END SUBROUTINE chem_non_transport_physics_ij
 
  
Index: /palm/trunk/SOURCE/module_interface.f90
===================================================================
--- /palm/trunk/SOURCE/module_interface.f90	(revision 3877)
+++ /palm/trunk/SOURCE/module_interface.f90	(revision 3878)
@@ -167,4 +167,5 @@
               chem_header,                                                     &
               chem_actions,                                                    &
+              chem_non_transport_physics,                                      &
               chem_swap_timelevel,                                             &
               chem_3d_data_averaging,                                          &
@@ -935,4 +936,5 @@
 
     IF ( bulk_cloud_model    )  CALL bcm_non_transport_physics()
+    IF ( air_chemistry       )  CALL chem_non_transport_physics()
 
 
@@ -952,4 +954,5 @@
 
 
+    IF ( air_chemistry       )  CALL chem_non_transport_physics( i, j )
     IF ( bulk_cloud_model    )  CALL bcm_non_transport_physics( i, j )
 
Index: /palm/trunk/SOURCE/prognostic_equations.f90
===================================================================
--- /palm/trunk/SOURCE/prognostic_equations.f90	(revision 3877)
+++ /palm/trunk/SOURCE/prognostic_equations.f90	(revision 3878)
@@ -395,6 +395,5 @@
 
     USE chemistry_model_mod,                                                   &
-        ONLY:  chem_boundary_conds, chem_depo, chem_integrate,                 &
-               chem_prognostic_equations
+        ONLY:  chem_boundary_conds, chem_prognostic_equations
 
     USE control_parameters,                                                    &
@@ -528,38 +527,16 @@
     CALL cpu_log( log_point(32), 'all progn.equations', 'start' )
 
-!
-!-- Calculation of chemical reactions. This is done outside of main loop,
-!-- since exchange of ghost points is required after this update of the
-!-- concentrations of chemical species                                    
+    !$OMP PARALLEL PRIVATE (i,j)
+    !$OMP DO
+    DO  i = nxlg, nxrg
+       DO  j = nysg, nyng
+!
+!--       Calculate non transport physics for all other modules
+          CALL module_interface_non_transport_physics( i, j )
+       ENDDO
+    ENDDO
+    !$OMP END PARALLEL
+
     IF ( air_chemistry )  THEN
-!
-!--    Chemical reactions and deposition
-       IF ( chem_gasphase_on ) THEN
-
-          IF ( intermediate_timestep_count == 1 .OR.                        &
-             call_chem_at_all_substeps )  THEN
-
-             CALL cpu_log( log_point_s(19), 'chem.reactions', 'start' )
-             !$OMP PARALLEL PRIVATE (i,j)
-             !$OMP DO schedule(static,1)
-             DO  i = nxl, nxr
-                DO  j = nys, nyn
-                   CALL chem_integrate (i,j)
-                ENDDO
-             ENDDO
-             !$OMP END PARALLEL
-             CALL cpu_log( log_point_s(19), 'chem.reactions', 'stop' )
-
-             IF ( deposition_dry )  THEN
-                CALL cpu_log( log_point_s(24), 'chem.deposition', 'start' )
-                DO  i = nxl, nxr
-                   DO  j = nys, nyn
-                      CALL chem_depo(i,j)
-                   ENDDO
-                ENDDO
-                CALL cpu_log( log_point_s(24), 'chem.deposition', 'stop' )
-             ENDIF
-          ENDIF
-       ENDIF
 !
 !--    Loop over chemical species       
@@ -639,15 +616,4 @@
 
     ENDIF
-
-    !$OMP PARALLEL PRIVATE (i,j)
-    !$OMP DO
-    DO  i = nxlg, nxrg
-       DO  j = nysg, nyng
-!
-!--       Calculate non transport physics for all other modules
-          CALL module_interface_non_transport_physics( i, j )
-       ENDDO
-    ENDDO
-    !$OMP END PARALLEL
 
 !
