Index: palm/trunk/SOURCE/diffusion_w.f90
===================================================================
--- palm/trunk/SOURCE/diffusion_w.f90	(revision 2001)
+++ palm/trunk/SOURCE/diffusion_w.f90	(revision 2037)
@@ -20,5 +20,5 @@
 ! Current revisions:
 ! -----------------
-! 
+! Anelastic approximation implemented
 ! 
 ! Former revisions:
@@ -119,5 +119,5 @@
 
        USE arrays_3d,                                                          &          
-           ONLY :  ddzu, ddzw, km, tend, u, v, w
+           ONLY :  ddzu, ddzw, km, tend, u, v, w, drho_air_zw, rho_air
            
        USE control_parameters,                                                 & 
@@ -184,6 +184,8 @@
                       & + 2.0_wp * (                                           &
                       &   km(k+1,j,i) * ( w(k+1,j,i) - w(k,j,i) ) * ddzw(k+1)  &
+                      &               * rho_air(k+1)                           &
                       & - km(k,j,i)   * ( w(k,j,i)   - w(k-1,j,i) ) * ddzw(k)  &
-                      &            ) * ddzu(k+1)
+                      &               * rho_air(k)                             &
+                      &            ) * ddzu(k+1) * drho_air_zw(k)
              ENDDO
 
@@ -227,6 +229,8 @@
                                  + 2.0_wp * (                                  &
                            km(k+1,j,i) * ( w(k+1,j,i) - w(k,j,i) ) * ddzw(k+1) &
+                                       * rho_air(k+1)                          &
                          - km(k,j,i)   * ( w(k,j,i)   - w(k-1,j,i) ) * ddzw(k) &
-                                            ) * ddzu(k+1)
+                                       * rho_air(k)                            &
+                                            ) * ddzu(k+1) * drho_air_zw(k)
                 ENDDO
              ENDIF
@@ -246,5 +250,5 @@
 
        USE arrays_3d,                                                          &
-           ONLY :  ddzu, ddzw, km, tend, u, v, w
+           ONLY :  ddzu, ddzw, km, tend, u, v, w, drho_air_zw, rho_air
            
        USE control_parameters,                                                 &
@@ -316,6 +320,8 @@
                          & + 2.0_wp * (                                          &
                          &   km(k+1,j,i) * ( w(k+1,j,i) - w(k,j,i) ) * ddzw(k+1) &
+                         &               * rho_air(k+1)                          &
                          & - km(k,j,i)   * ( w(k,j,i)   - w(k-1,j,i) ) * ddzw(k) &
-                         &            ) * ddzu(k+1)
+                         &               * rho_air(k)                            &
+                         &            ) * ddzu(k+1) * drho_air_zw(k)
                 ENDIF
              ENDDO
@@ -361,6 +367,8 @@
                                  + 2.0_wp * (                                  &
                            km(k+1,j,i) * ( w(k+1,j,i) - w(k,j,i) ) * ddzw(k+1) &
+                                       * rho_air(k+1)                          &
                          - km(k,j,i)   * ( w(k,j,i)   - w(k-1,j,i) ) * ddzw(k) &
-                                            ) * ddzu(k+1)
+                                       * rho_air(k)                            &
+                                            ) * ddzu(k+1) * drho_air_zw(k)
                 ENDIF
              ENDDO
@@ -381,5 +389,5 @@
 
        USE arrays_3d,                                                          &          
-           ONLY :  ddzu, ddzw, km, tend, u, v, w
+           ONLY :  ddzu, ddzw, km, tend, u, v, w, drho_air_zw, rho_air
            
        USE control_parameters,                                                 & 
@@ -430,6 +438,8 @@
                       & + 2.0_wp * (                                           &
                       &   km(k+1,j,i) * ( w(k+1,j,i) - w(k,j,i) ) * ddzw(k+1)  &
+                      &               * rho_air(k+1)                           &
                       & - km(k,j,i)   * ( w(k,j,i)   - w(k-1,j,i) ) * ddzw(k)  &
-                      &            ) * ddzu(k+1)
+                      &               * rho_air(k)                             &
+                      &            ) * ddzu(k+1) * drho_air_zw(k)
        ENDDO
 
@@ -485,6 +495,8 @@
                                  + 2.0_wp * (                                  &
                            km(k+1,j,i) * ( w(k+1,j,i) - w(k,j,i) ) * ddzw(k+1) &
+                                       * rho_air(k+1)                          &
                          - km(k,j,i)   * ( w(k,j,i)   - w(k-1,j,i) ) * ddzw(k) &
-                                            ) * ddzu(k+1)
+                                       * rho_air(k)                            &
+                                            ) * ddzu(k+1) * drho_air_zw(k)
           ENDDO
        ENDIF
