<p><b>laura@ucar.edu</b> 2012-03-01 16:17:44 -0700 (Thu, 01 Mar 2012)</p><p>added alarm, and initialization of accumulated radiation diagnostics and accumulated radiation counters<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_init.F
===================================================================
--- branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_init.F        2012-03-01 22:42:29 UTC (rev 1567)
+++ branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_init.F        2012-03-01 23:17:44 UTC (rev 1568)
@@ -63,11 +63,53 @@
 !threshold value:
  if(.not. config_do_restart) then
     do iCell = 1, mesh % nCellsSolve
-       diag_physics % i_rainc  % array(iCell) = 0._RKIND
-       diag_physics % i_rainnc % array(iCell) = 0._RKIND
+       diag_physics % i_rainc  % array(iCell) = 0
+       diag_physics % i_rainnc % array(iCell) = 0
     enddo
  endif
 
+!initialization of counters i_acsw* and i_aclw*. i_acsw* and i_aclw* track the number of times
+!the accumulated long and short-wave radiation fluxes exceed their prescribed theshold values.
+ if(.not. config_do_restart) then
+    do iCell = 1, mesh % nCellsSolve
+       diag_physics % i_acswdnb  % array(iCell) = 0
+       diag_physics % i_acswdnbc % array(iCell) = 0
+       diag_physics % i_acswdnt  % array(iCell) = 0
+       diag_physics % i_acswdntc % array(iCell) = 0
+       diag_physics % i_acswupb  % array(iCell) = 0
+       diag_physics % i_acswupbc % array(iCell) = 0
+       diag_physics % i_acswupt  % array(iCell) = 0
+       diag_physics % i_acswuptc % array(iCell) = 0
+
+       diag_physics % i_aclwdnb  % array(iCell) = 0
+       diag_physics % i_aclwdnbc % array(iCell) = 0
+       diag_physics % i_aclwdnt  % array(iCell) = 0
+       diag_physics % i_aclwdntc % array(iCell) = 0
+       diag_physics % i_aclwupb  % array(iCell) = 0
+       diag_physics % i_aclwupbc % array(iCell) = 0
+       diag_physics % i_aclwupt  % array(iCell) = 0
+       diag_physics % i_aclwuptc % array(iCell) = 0
+
+       diag_physics % acswdnb  % array(iCell) = 0._RKIND
+       diag_physics % acswdnbc % array(iCell) = 0._RKIND
+       diag_physics % acswdnt  % array(iCell) = 0._RKIND
+       diag_physics % acswdntc % array(iCell) = 0._RKIND
+       diag_physics % acswupb  % array(iCell) = 0._RKIND
+       diag_physics % acswupbc % array(iCell) = 0._RKIND
+       diag_physics % acswupt  % array(iCell) = 0._RKIND
+       diag_physics % acswuptc % array(iCell) = 0._RKIND
+
+       diag_physics % aclwdnb  % array(iCell) = 0._RKIND
+       diag_physics % aclwdnbc % array(iCell) = 0._RKIND
+       diag_physics % aclwdnt  % array(iCell) = 0._RKIND
+       diag_physics % aclwdntc % array(iCell) = 0._RKIND
+       diag_physics % aclwupb  % array(iCell) = 0._RKIND
+       diag_physics % aclwupbc % array(iCell) = 0._RKIND
+       diag_physics % aclwupt  % array(iCell) = 0._RKIND
+       diag_physics % aclwuptc % array(iCell) = 0._RKIND
+    enddo
+ endif
+
 !initialization of temperatures needed for updating the deep soil temperature:
  if(.not. config_do_restart) then
     do iCell = 1, mesh % nCellsSolve

Modified: branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_manager.F
===================================================================
--- branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_manager.F        2012-03-01 22:42:29 UTC (rev 1567)
+++ branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_manager.F        2012-03-01 23:17:44 UTC (rev 1568)
@@ -46,9 +46,14 @@
 
 !defines alarm to check if the accumulated rain due to cloud microphysics and convection is
 !greater than its maximum allowed value:
- integer, parameter:: rainAlarmID   = 19
- type(MPAS_TimeInterval_Type):: rainTimeStep
+ integer, parameter:: acrainAlarmID   = 19
+ type(MPAS_TimeInterval_Type):: acrainTimeStep
 
+!defines alarm to check if the accumulated radiation diagnostics due to long- and short-wave
+!radiation is greater than its maximum allowed value:
+ integer, parameter:: acradtAlarmID   = 20
+ type(MPAS_TimeInterval_Type):: acradtTimeStep
+
  integer :: h, m, s, s_n, s_d, DoY, yr
  real(kind=RKIND) :: utc_h
 
@@ -191,12 +196,21 @@
 
 !check to see if it is time to apply limit to the accumulated rain due to cloud microphysics
 !and convection:
- l_rain = .false.
- if(mpas_is_alarm_ringing(clock,rainAlarmID,rainTimeStep,ierr=ierr)) then
-    call mpas_reset_clock_alarm(clock,rainAlarmID,rainTimeStep,ierr=ierr)
-    l_rain = .true.
+ l_acrain = .false.
+ if(mpas_is_alarm_ringing(clock,acrainAlarmID,acrainTimeStep,ierr=ierr)) then
+    call mpas_reset_clock_alarm(clock,acrainAlarmID,acrainTimeStep,ierr=ierr)
+    l_acrain = .true.
  endif
- write(0,*) '--- time to apply limit to accumulated rainc and rainnc L_RAIN =',l_rain
+ write(0,*) '--- time to apply limit to accumulated rainc and rainnc L_ACRAIN =',l_acrain
+
+!check to see if it is time to apply limit to the accumulated radiation diagnostics due to
+!long- and short-wave radiation:
+ l_acradt = .false.
+ if(mpas_is_alarm_ringing(clock,acradtAlarmID,acradtTimeStep,ierr=ierr)) then
+    call mpas_reset_clock_alarm(clock,acradtAlarmID,acradtTimeStep,ierr=ierr)
+    l_acradt = .true.
+ endif
+ write(0,*) '--- time to apply limit to accumulated radiation diagnostics L_ACRADT =',l_acradt
  
 !formats:
  101 format(3x,'l_radtlw = ',l1,3x,'l_radtsw = ',l1)
@@ -372,14 +386,25 @@
 !set alarm to check if the accumulated rain due to cloud microphysics and convection is
 !greater than its maximum allowed value:
  if(config_bucket_update /= &quot;none&quot;) then
-    call mpas_set_timeInterval(rainTimeStep,dt=config_dt,ierr=ierr)
+    call mpas_set_timeInterval(acrainTimeStep,dt=config_dt,ierr=ierr)
     call mpas_set_timeInterval(alarmTimeStep,timeString=config_bucket_update,ierr=ierr)
     alarmStartTime = startTime + alarmTimeStep
-    call mpas_add_clock_alarm(clock,rainAlarmID,alarmStartTime,alarmTimeStep,ierr=ierr)
+    call mpas_add_clock_alarm(clock,acrainAlarmID,alarmStartTime,alarmTimeStep,ierr=ierr)
        if(ierr /= 0) &amp;
           call physics_error_fatal('subroutine physics_init: error creating alarm rain limit')
  endif
 
+!set alarm to check if the accumulated radiation diagnostics due to long- and short-wave radiation
+!is greater than its maximum allowed value:
+ if(config_bucket_update /= &quot;none&quot;) then
+    call mpas_set_timeInterval(acradtTimeStep,dt=config_dt,ierr=ierr)
+    call mpas_set_timeInterval(alarmTimeStep,timeString=config_bucket_update,ierr=ierr)
+    alarmStartTime = startTime + alarmTimeStep
+    call mpas_add_clock_alarm(clock,acradtAlarmID,alarmStartTime,alarmTimeStep,ierr=ierr)
+       if(ierr /= 0) &amp;
+          call physics_error_fatal('subroutine physics_init: error creating alarm radiation limit')
+ endif
+
  write(0,102) dt_radtlw,dt_radtsw,dt_cu,dt_pbl
 
 !initialization of physics dimensions to mimic a rectangular grid:

</font>
</pre>