<p><b>laura@ucar.edu</b> 2010-05-24 15:00:10 -0600 (Mon, 24 May 2010)</p><p>Added allocation (deallocation) of total physics tendencies for potential temperature and water species on physics grid<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_hyd_phys/module_physics_manager.F
===================================================================
--- branches/atmos_physics/src/core_hyd_phys/module_physics_manager.F        2010-05-24 20:58:49 UTC (rev 308)
+++ branches/atmos_physics/src/core_hyd_phys/module_physics_manager.F        2010-05-24 21:00:10 UTC (rev 309)
@@ -74,8 +74,11 @@
  dt_microp  = nint(dt_dyn/n_microp)
 
 !ALLOCATION OF ALL PHYSICS ARRAYS:
-!CALL physics_allocate_all
+ CALL physics_allocate_all
 
+!INITIALIZATION OF VARIABLES AND ALLOCATION OF ARRAYS RELATED TO MICROPHYSICS:
+ CALL physics_allocate_microphysics
+
 !INITIALIZATION OF VARIABLES AND ALLOCATION OF ARRAYS RELATED TO CONVECTION:
  adapt_step_flag = .false.
  warm_rain       = .false.
@@ -84,7 +87,7 @@
  dt_cu = dt_physics        !FOR NOW.
 
  write(6,*) '--- end subroutine PHYSICS_WRF_ALLOCATE:'
-!CALL physics_allocate_convection
+ CALL physics_allocate_convection
  
  END SUBROUTINE physics_wrf_allocate
 
@@ -112,6 +115,10 @@
  IF(.NOT.ALLOCATED(qnr_phy)  )  ALLOCATE(qnr_phy(ims:ime,kms:kme,jms:jme)   )
  IF(.NOT.ALLOCATED(qni_phy)  )  ALLOCATE(qni_phy(ims:ime,kms:kme,jms:jme)   )
 
+ IF(.NOT.ALLOCATED(rthten_phy)) ALLOCATE(rthten_phy(ims:ime,kms:kme,jms:jme))
+ IF(.NOT.ALLOCATED(rqten_phy) ) &amp;
+    ALLOCATE(rqten_phy(ims:ime,kms:kme,jms:jme,num_scalars) )
+
  END SUBROUTINE physics_allocate_all
 
 !==============================================================================
@@ -136,46 +143,72 @@
  END SUBROUTINE physics_allocate_convection
 
 !==============================================================================
+ SUBROUTINE physics_allocate_microphysics
+!==============================================================================
+ IF(.NOT.ALLOCATED(sr_phy)        ) ALLOCATE(sr_phy(ims:ime,jms:jme)          )
+ IF(.NOT.ALLOCATED(rainnc_phy)    ) ALLOCATE(rainnc_phy(ims:ime,jms:jme)      )
+ IF(.NOT.ALLOCATED(rainncv_phy)   ) ALLOCATE(rainncv_phy(ims:ime,jms:jme)     )
+ IF(.NOT.ALLOCATED(snownc_phy)    ) ALLOCATE(snownc_phy(ims:ime,jms:jme)      )
+ IF(.NOT.ALLOCATED(snowncv_phy)   ) ALLOCATE(snowncv_phy(ims:ime,jms:jme)     )
+ IF(.NOT.ALLOCATED(graupelnc_phy) ) ALLOCATE(graupelnc_phy(ims:ime,jms:jme)   )
+ IF(.NOT.ALLOCATED(graupelncv_phy)) ALLOCATE(graupelncv_phy(ims:ime,jms:jme)  )
+
+ END SUBROUTINE physics_allocate_microphysics
+
+!==============================================================================
  SUBROUTINE physics_wrf_deallocate
 !==============================================================================
 
 !DE-ALLOCATION OF ALL PHYSICS ARRAYS:
- IF(ALLOCATED(u_phy)       )  DEALLOCATE(u_phy       )
- IF(ALLOCATED(v_phy)       )  DEALLOCATE(v_phy       )
- IF(ALLOCATED(w_phy)       )  DEALLOCATE(w_phy       )
- IF(ALLOCATED(p_phy)       )  DEALLOCATE(p_phy       )
- IF(ALLOCATED(pi_phy)      )  DEALLOCATE(pi_phy      )
- IF(ALLOCATED(dz_phy)      )  DEALLOCATE(dz_phy      )
- IF(ALLOCATED(t_phy)       )  DEALLOCATE(t_phy       )
- IF(ALLOCATED(th_phy)      )  DEALLOCATE(th_phy      )
- IF(ALLOCATED(al_phy)      )  DEALLOCATE(al_phy      )
- IF(ALLOCATED(rho_phy)     )  DEALLOCATE(rho_phy     ) 
+ IF(ALLOCATED(u_phy)         ) DEALLOCATE(u_phy           )
+ IF(ALLOCATED(v_phy)         ) DEALLOCATE(v_phy           )
+ IF(ALLOCATED(w_phy)         ) DEALLOCATE(w_phy           )
+ IF(ALLOCATED(p_phy)         ) DEALLOCATE(p_phy           )
+ IF(ALLOCATED(pi_phy)        ) DEALLOCATE(pi_phy          )
+ IF(ALLOCATED(dz_phy)        ) DEALLOCATE(dz_phy          )
+ IF(ALLOCATED(t_phy)         ) DEALLOCATE(t_phy           )
+ IF(ALLOCATED(th_phy)        ) DEALLOCATE(th_phy          )
+ IF(ALLOCATED(al_phy)        ) DEALLOCATE(al_phy          )
+ IF(ALLOCATED(rho_phy)       ) DEALLOCATE(rho_phy         ) 
 
- IF(ALLOCATED(qv_phy)      )  DEALLOCATE(qv_phy      )
- IF(ALLOCATED(qc_phy)      )  DEALLOCATE(qc_phy      )
- IF(ALLOCATED(qr_phy)      )  DEALLOCATE(qr_phy      )
- IF(ALLOCATED(qi_phy)      )  DEALLOCATE(qi_phy      )
- IF(ALLOCATED(qs_phy)      )  DEALLOCATE(qs_phy      )
- IF(ALLOCATED(qg_phy)      )  DEALLOCATE(qg_phy      )
+ IF(ALLOCATED(qv_phy)        ) DEALLOCATE(qv_phy          )
+ IF(ALLOCATED(qc_phy)        ) DEALLOCATE(qc_phy          )
+ IF(ALLOCATED(qr_phy)        ) DEALLOCATE(qr_phy          )
+ IF(ALLOCATED(qi_phy)        ) DEALLOCATE(qi_phy          )
+ IF(ALLOCATED(qs_phy)        ) DEALLOCATE(qs_phy          )
+ IF(ALLOCATED(qg_phy)        ) DEALLOCATE(qg_phy          )
 
- IF(ALLOCATED(qnr_phy)     )  DEALLOCATE(qnr_phy     )
- IF(ALLOCATED(qni_phy)     )  DEALLOCATE(qni_phy     )
+ IF(ALLOCATED(qnr_phy)       ) DEALLOCATE(qnr_phy         )
+ IF(ALLOCATED(qni_phy)       ) DEALLOCATE(qni_phy         )
 
- IF(ALLOCATED(cu_act_flag) )  DEALLOCATE(cu_act_flag )
- IF(ALLOCATED(cubot_phy)   )  DEALLOCATE(cubot_phy   )
- IF(ALLOCATED(cutop_phy)   )  DEALLOCATE(cutop_phy   )
- IF(ALLOCATED(raincv_phy)  )  DEALLOCATE(raincv_phy  )
- IF(ALLOCATED(pratec_phy)  )  DEALLOCATE(pratec_phy  )
- IF(ALLOCATED(nca_phy)     )  DEALLOCATE(nca_phy     )
- IF(ALLOCATED(w0avg_phy)   )  DEALLOCATE(w0avg_phy   )
+ IF(ALLOCATED(rthten_phy)    ) DEALLOCATE(rthten_phy      )
+ IF(ALLOCATED(rqten_phy)     ) DEALLOCATE(rqten_phy       )
 
- IF(ALLOCATED(rthcuten_phy))  DEALLOCATE(rthcuten_phy)
- IF(ALLOCATED(rqvcuten_phy))  DEALLOCATE(rqvcuten_phy)
- IF(ALLOCATED(rqccuten_phy))  DEALLOCATE(rqccuten_phy)
- IF(ALLOCATED(rqrcuten_phy))  DEALLOCATE(rqrcuten_phy)
- IF(ALLOCATED(rqicuten_phy))  DEALLOCATE(rqicuten_phy)
- IF(ALLOCATED(rqscuten_phy))  DEALLOCATE(rqscuten_phy)
+!DEALLOCATE ARRAYS RELATED TO MICROPHYSICS:
+ IF(ALLOCATED(sr_phy)        ) DEALLOCATE(sr_phy          )
+ IF(ALLOCATED(rainnc_phy)    ) DEALLOCATE(rainnc_phy      )
+ IF(ALLOCATED(rainncv_phy)   ) DEALLOCATE(rainncv_phy     )
+ IF(ALLOCATED(snownc_phy)    ) DEALLOCATE(snownc_phy      )
+ IF(ALLOCATED(snowncv_phy)   ) DEALLOCATE(snowncv_phy     )
+ IF(ALLOCATED(graupelnc_phy) ) DEALLOCATE(graupelnc_phy   )
+ IF(ALLOCATED(graupelncv_phy)) DEALLOCATE(graupelncv_phy  )
 
+!DEALLOCATE ARRAYS RELATED TO CONVECTION:
+ IF(ALLOCATED(cu_act_flag)   )  DEALLOCATE(cu_act_flag    )
+ IF(ALLOCATED(cubot_phy)     )  DEALLOCATE(cubot_phy      )
+ IF(ALLOCATED(cutop_phy)     )  DEALLOCATE(cutop_phy      )
+ IF(ALLOCATED(raincv_phy)    )  DEALLOCATE(raincv_phy     )
+ IF(ALLOCATED(pratec_phy)    )  DEALLOCATE(pratec_phy     )
+ IF(ALLOCATED(nca_phy)       )  DEALLOCATE(nca_phy        )
+ IF(ALLOCATED(w0avg_phy)     )  DEALLOCATE(w0avg_phy      )
+
+ IF(ALLOCATED(rthcuten_phy)  )  DEALLOCATE(rthcuten_phy   )
+ IF(ALLOCATED(rqvcuten_phy)  )  DEALLOCATE(rqvcuten_phy   )
+ IF(ALLOCATED(rqccuten_phy)  )  DEALLOCATE(rqccuten_phy   )
+ IF(ALLOCATED(rqrcuten_phy)  )  DEALLOCATE(rqrcuten_phy   )
+ IF(ALLOCATED(rqicuten_phy)  )  DEALLOCATE(rqicuten_phy   )
+ IF(ALLOCATED(rqscuten_phy)  )  DEALLOCATE(rqscuten_phy   )
+
  END SUBROUTINE physics_wrf_deallocate
 
 !==============================================================================

</font>
</pre>