<p><b>laura@ucar.edu</b> 2011-05-09 11:28:55 -0600 (Mon, 09 May 2011)</p><p>added physics tendencies in advection of scalars (subroutines advance_scalars and advance_scalars_mono<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_nhyd_atmos/module_time_integration.F
===================================================================
--- branches/atmos_physics/src/core_nhyd_atmos/module_time_integration.F        2011-05-09 17:27:00 UTC (rev 815)
+++ branches/atmos_physics/src/core_nhyd_atmos/module_time_integration.F        2011-05-09 17:28:55 UTC (rev 816)
@@ -1187,11 +1187,6 @@
real (kind=RKIND) :: h_theta_eddy_visc2, v_theta_eddy_visc2, scalar_turb_flux, z1,z2,z3,z4,zm,z0,zp
-#ifdef DO_PHYSICS
- character(len=80):: errmess
- real(kind=RKIND):: scalar_max,scalar_min
-#endif
-
real (kind=RKIND) :: flux3, flux4
real (kind=RKIND) :: q_im2, q_im1, q_i, q_ip1, ua, coef3
@@ -1241,19 +1236,9 @@
qv_init => grid % qv_init % array
zgrid => grid % zgrid % array
-!#ifndef DO_PHYSICS
-! scalar_tend = 0. ! testing purposes - we have no sources or sinks
-!#else
-!testing:
- write(0,*)
- write(0,*) 'subroutine advance_scalars:'
- write(0,*) 'max tend qv=',maxval(scalar_tend(tend%index_qv,:,:))
- write(0,*) 'max tend qc=',maxval(scalar_tend(tend%index_qc,:,:))
- write(0,*) 'max tend qr=',maxval(scalar_tend(tend%index_qr,:,:))
- write(0,*) 'max tend qi=',maxval(scalar_tend(tend%index_qi,:,:))
- write(0,*) 'max tend qs=',maxval(scalar_tend(tend%index_qs,:,:))
- write(0,*)
-!#endif
+#ifndef DO_PHYSICS
+ scalar_tend = 0. ! testing purposes - we have no sources or sinks
+#endif
!
! Runge Kutta integration, so we compute fluxes from scalar_new values, update starts form scalar_old
@@ -1501,17 +1486,6 @@
end do
end do
-#ifdef DO_PHYSICS
- 101 format(' min, max scalar',i4,2(1x,e17.10))
- !testing:
- do iScalar=1,s_old%num_scalars
- scalar_max = maxval(scalar_new(iScalar,:,:))
- scalar_min = minval(scalar_new(iScalar,:,:))
- write(0,101) iScalar,scalar_min,scalar_max
- enddo
-#endif
-
-
end subroutine advance_scalars
@@ -1560,13 +1534,6 @@
real (kind=RKIND) :: flux3, flux4
real (kind=RKIND) :: q_im2, q_im1, q_i, q_ip1, ua, coef3
-#ifdef DO_PHYSICS
- character(len=80):: errmess
- integer:: imax,imin
- integer:: kmax,kmin
- real(kind=RKIND):: scalar_max,scalar_min
-#endif
-
flux4(q_im2, q_im1, q_i, q_ip1, ua) = &
ua*( 7.*(q_i + q_im1) - (q_ip1 + q_im2) )/12.0
@@ -1601,18 +1568,9 @@
nVertLevels = grid % nVertLevels
-!#ifndef DO_PHYSICS
-! scalar_tend = 0. ! testing purposes - we have no sources or sinks
-!#else
- write(0,*)
- write(0,*) 'subroutine advance_scalars_mono:'
- write(0,*) 'max tend qv=',maxval(scalar_tend(tend%index_qv,:,:))
- write(0,*) 'max tend qc=',maxval(scalar_tend(tend%index_qc,:,:))
- write(0,*) 'max tend qr=',maxval(scalar_tend(tend%index_qr,:,:))
- write(0,*) 'max tend qi=',maxval(scalar_tend(tend%index_qi,:,:))
- write(0,*) 'max tend qs=',maxval(scalar_tend(tend%index_qs,:,:))
- write(0,*)
-!#endif
+#ifndef DO_PHYSICS
+ scalar_tend = 0. ! testing purposes - we have no sources or sinks
+#endif
!
! Runge Kutta integration, so we compute fluxes from scalar_new values, update starts from scalar_old
@@ -1924,19 +1882,12 @@
/ h_new(grid%nVertLevels,iCell)
enddo
enddo
-!ldf end.
-#ifdef DO_PHYSICS
- 101 format(' min, max scalar ',i4,2(1x,e17.10))
- 102 format(i6,i4,8(1x,e17.10))
- !testing:
+ !remove negative values:
do iScalar=1,s_old%num_scalars
- scalar_max = maxval(scalar_new(iScalar,:,:))
- scalar_min = minval(scalar_new(iScalar,:,:))
- write(0,101) iScalar,scalar_min,scalar_max
- where(scalar_new(iScalar,:,:) .lt. 0.) scalar_new(iScalar,:,:) = 0.
+ where(scalar_new(iScalar,:,:) .lt. 0.) scalar_new(iScalar,:,:) = 0.
enddo
-#endif
+!ldf end.
end subroutine advance_scalars_mono
</font>
</pre>