<p><b>ringler@lanl.gov</b> 2013-03-18 12:59:14 -0600 (Mon, 18 Mar 2013)</p><p><br>
fixing Euler forward time stepping of del2, del4 and vertical diffusion<br>
</p><hr noshade><pre><font color="gray">Modified: branches/mpas_cam_coupling/src/core_hyd_atmos/module_time_integration.F
===================================================================
--- branches/mpas_cam_coupling/src/core_hyd_atmos/module_time_integration.F        2013-03-15 23:18:22 UTC (rev 2623)
+++ branches/mpas_cam_coupling/src/core_hyd_atmos/module_time_integration.F        2013-03-18 18:59:14 UTC (rev 2624)
@@ -699,10 +699,8 @@
 
 
 ! tdr
-      if (rk_step .eq. 1) then
-          write(6,*) ' zeroing euler_tend_u'
-          euler_tend_u(:,:) = 0.0
-      endif
+       write(6,*) ' zeroing euler_tend_u'
+       euler_tend_u(:,:) = 0.0
 ! tdr
 
       !
@@ -738,22 +736,24 @@
 ! resolution!
 
                 if (k&gt;=nVertLevels-2) then
-                if (k==nVertLevels-2) u_diffusion =h_mom_eddy_visc2*nu_top*u_diffusion
-                if (k==nVertLevels-1) u_diffusion =h_mom_eddy_visc2*nu_top*2*u_diffusion
-                 if (k==nVertLevels)   u_diffusion =h_mom_eddy_visc2*nu_top*4*u_diffusion
+                  if (k==nVertLevels-2) u_diffusion =h_mom_eddy_visc2*nu_top*u_diffusion
+                  if (k==nVertLevels-1) u_diffusion =h_mom_eddy_visc2*nu_top*2*u_diffusion
+                  if (k==nVertLevels)   u_diffusion =h_mom_eddy_visc2*nu_top*4*u_diffusion
                 else
-                u_diffusion = 0
+                  u_diffusion = 0
                 end if
 ! end of LDC !!!!!!!!!!!!!!!!!
 ! CSR
 
             ! tdr
+            ! (factor of 2.0 is to compensate for dt=dt/2 on the first RK step)
                if(doEuler) then
-                  if(rk_step.eq.1) euler_tend_u(k,iEdge) = euler_tend_u(k,iEdge) + u_diffusion
+                  if(rk_step.eq.1) euler_tend_u(k,iEdge) = euler_tend_u(k,iEdge) + 2.0*u_diffusion
                else
                   tend_u(k,iEdge) = tend_u(k,iEdge) + u_diffusion
                endif
             ! tdr
+
             end do
          end do
       end if
@@ -834,8 +834,9 @@
                u_diffusion = meshScalingDel4(iEdge) * h_mom_eddy_visc4 * u_diffusion
 
                ! tdr
+               ! (factor of 2.0 is to compensate for dt=dt/2 on the first RK step)
                if(doEuler) then
-                 if(rk_step.eq.1) euler_tend_u(k,iEdge) = euler_tend_u(k,iEdge) - u_diffusion
+                 if(rk_step.eq.1) euler_tend_u(k,iEdge) = euler_tend_u(k,iEdge) - 2.0*u_diffusion
                else
                  tend_u(k,iEdge) = tend_u(k,iEdge) - u_diffusion
                endif
@@ -873,13 +874,14 @@
                zp = 0.5*(z3+z4)
     
                ! tdr
+               ! (factor of 2.0 is to compensate for dt=dt/2 on the first RK step)
                if(doEuler) then
                    if(rk_step.eq.1)  &amp;
-                      euler_tend_u(k,iEdge) = euler_tend_u(k,iEdge) + v_mom_eddy_visc2*(     &amp;
+                      euler_tend_u(k,iEdge) = euler_tend_u(k,iEdge) + 2.0*v_mom_eddy_visc2*(     &amp;
                                     (u(k+1,iEdge)-u(k  ,iEdge))/(zp-z0)                 &amp;
                                    -(u(k  ,iEdge)-u(k-1,iEdge))/(z0-zm) )/(0.5*(zp-zm))
                else
-                   tend_u(k,iEdge) = tend_u(k,iEdge) + v_mom_eddy_visc2*(                 &amp;
+                   tend_u(k,iEdge)=tend_u(k,iEdge) + v_mom_eddy_visc2*(     &amp;
                                     (u(k+1,iEdge)-u(k  ,iEdge))/(zp-z0)                 &amp;
                                    -(u(k  ,iEdge)-u(k-1,iEdge))/(z0-zm) )/(0.5*(zp-zm))
                endif
@@ -921,7 +923,7 @@
       end do
 
       ! tdr
-      ! for each rk step 1 to 3, maxval(euler_tend_u) should not change
+      ! for each rk step 1 to 3, maxval(euler_tend_u), should be zero for rk_step=2,3
       write(6,*) ' euler forward testing ', rk_step, maxval(euler_tend_u)
       ! tdr
 

</font>
</pre>