<p><b>laura@ucar.edu</b> 2010-10-14 10:35:28 -0600 (Thu, 14 Oct 2010)</p><p>updated with additional physics<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_physics/module_physics_control.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_control.F        2010-10-14 16:32:35 UTC (rev 553)
+++ branches/atmos_physics/src/core_physics/module_physics_control.F        2010-10-14 16:35:28 UTC (rev 554)
@@ -2,13 +2,18 @@
  module module_physics_control
 
 ! ... description:
-! ... module_physics_namelist controls namelist parameters read in namelist.input.
+! ... module_physics_control controls namelist parameters read in namelist.input.
 !     physics_namelist_check: checks that physics namelist parameters are defined correctly.
 !                             if not, mpas aborts cleanly.
+
+! ... physics_registry_init : initializes physics arrays declared in Registry for non-restart
+!                             runs.
+
 ! Laura D. Fowler (laura@ucar.edu).
 
 ! revision history:
 ! 06-29-2010: creation of module.
+! 09-09-2010: added initialization of arrays related to surface parameterization.
 
  use configure
  use grid_types
@@ -36,7 +41,7 @@
  write(0,*) '    config_pbl_scheme          = ', config_pbl_scheme
  write(0,*) '    config_radt_lw_scheme      = ', config_radt_lw_scheme
  write(0,*) '    config_radt_sw_scheme      = ', config_radt_sw_scheme
- write(0,*) '    config_sfclay_scheme       = ', config_sfclay_scheme
+ write(0,*) '    config_sfclayer_scheme     = ', config_sfclayer_scheme
 
 !cloud microphysics scheme:
  if(.not. (config_microp_scheme .eq. 'off'     .or. &amp;
@@ -88,7 +93,8 @@
  endif
 
 !lw radiation scheme:
- if(.not. (config_radt_lw_scheme .eq. 'off ')) then
+ if(.not. (config_radt_lw_scheme .eq. 'off ' .or. &amp;
+           config_radt_lw_scheme .eq. 'rrtmg_lw')) then
  
     write(0,*) 'illegal value for radt_lw_scheme: ', config_radt_lw_scheme
 !   call mpas_physics_abort('illegal value for longwave radiation scheme')
@@ -97,7 +103,8 @@
  endif
 
 !sw radiation scheme:
- if(.not. (config_radt_sw_scheme .eq. 'off ')) then
+ if(.not. (config_radt_sw_scheme .eq. 'off ' .or. &amp;
+           config_radt_sw_scheme .eq. 'rrtmg_sw')) then
  
     write(0,*) 'illegal value for radt_sw_scheme: ', config_radt_sw_scheme
 !   call mpas_physics_abort('illegal value for shortwave radiation scheme')
@@ -106,10 +113,10 @@
  endif
 
 !surface layer scheme:
- if(.not. (config_sfclay_scheme .eq. 'off ' .or. &amp;
-           config_sfclay_scheme .eq. 'monin_obukhov')) then
+ if(.not. (config_sfclayer_scheme .eq. 'off ' .or. &amp;
+           config_sfclayer_scheme .eq. 'monin_obukhov')) then
  
-    write(0,*) 'illegal value for sfclay_scheme: ', config_sfclay_scheme
+    write(0,*) 'illegal value for sfclayer_scheme: ', config_sfclayer_scheme
 !   call mpas_physics_abort('illegal value for surface layer scheme')
     stop
 
@@ -125,7 +132,7 @@
     config_eddy_scheme         .eq. 'off' .and. &amp;
     config_radt_lw_scheme      .eq. 'off' .and. &amp;
     config_radt_sw_scheme      .eq. 'off' .and. &amp;
-    config_sfclay_scheme       .eq. 'off') moist_physics = .false.
+    config_sfclayer_scheme     .eq. 'off') moist_physics = .false.
 
  write(0,*) '--- end subroutine physics_namelist_check:'
 
@@ -167,7 +174,7 @@
 !.. 1-d variables:
     do icell = 1, grid%nCells
   
-       !cloud microphysics:
+       !.. cloud microphysics:
        s % rainnc     % array(icell) = 0.
        s % rainncv    % array(icell) = 0.
        s % snownc     % array(icell) = 0.
@@ -175,14 +182,27 @@
        s % graupelnc  % array(icell) = 0.
        s % graupelncv % array(icell) = 0.
 
-       !convection:
+       !.. convection:
        s % rainc      % array(icell) = 0.
        s % raincv     % array(icell) = 0.
        s % nca        % array(icell) = 0.
        s % cubot      % array(icell) = 0.
        s % cutop      % array(icell) = 0.
 
+       !.. pbl layer:
+       s % kpbl       % array(icell) = 0.
+
        !.. surface layer:
+       s % br         % array(icell) = 0.
+       s % cd         % array(icell) = 0.
+       s % cda        % array(icell) = 0.
+       s % chs        % array(icell) = 0.
+       s % chs2       % array(icell) = 0.
+       s % cpm        % array(icell) = 0.
+       s % cqs2       % array(icell) = 0.
+       s % ck         % array(icell) = 0.
+       s % cka        % array(icell) = 0.
+       s % gz1oz0     % array(icell) = 0.
        s % flhc       % array(icell) = 0.
        s % flqc       % array(icell) = 0.
        s % hfx        % array(icell) = 0.
@@ -190,21 +210,64 @@
        s % mavail     % array(icell) = 0.
        s % mol        % array(icell) = 0.
        s % pblh       % array(icell) = 0.
+       s % psim       % array(iCell) = 0.
+       s % psih       % array(iCell) = 0.
        s % q2         % array(icell) = 0.
        s % qfx        % array(icell) = 0.
+       s % qgh        % array(icell) = 0.
        s % qsfc       % array(icell) = 0.
        s % regime     % array(icell) = 0.
        s % rmol       % array(icell) = 0.
        s % t2         % array(icell) = 0.
-       s % tsk        % array(icell) = 0.
        s % th2        % array(icell) = 0.
        s % u10        % array(icell) = 0.
        s % ust        % array(icell) = 0.
        s % ustm       % array(icell) = 0.
        s % v10        % array(icell) = 0.
-       s % xland      % array(icell) = 0.       
+       s % wspd       % array(icell) = 0.
+       s % zol        % array(icell) = 0.
        s % znt        % array(icell) = 0.
 
+       !.. shortwave radiation:
+       s % gsw        % array(icell) = 0.
+       s % swcf       % array(icell) = 0.
+       s % swdnb      % array(icell) = 0.
+       s % swdnbc     % array(icell) = 0.
+       s % swdnt      % array(icell) = 0.
+       s % swdntc     % array(icell) = 0.
+       s % swupb      % array(icell) = 0.
+       s % swupbc     % array(icell) = 0.
+       s % swupt      % array(icell) = 0.
+       s % swuptc     % array(icell) = 0.
+       s % swdnflx    % array(icell) = 0.
+       s % swdnflxc   % array(icell) = 0.
+       s % swupflx    % array(icell) = 0.
+       s % swupflxc   % array(icell) = 0.
+
+       !.. longwave radiation:
+       s % glw        % array(icell) = 0.
+       s % lwcf       % array(icell) = 0.
+       s % lwdnb      % array(icell) = 0.
+       s % lwdnbc     % array(icell) = 0.
+       s % lwdnt      % array(icell) = 0.
+       s % lwdntc     % array(icell) = 0.
+       s % lwupb      % array(icell) = 0.
+       s % lwupbc     % array(icell) = 0.
+       s % lwupt      % array(icell) = 0.
+       s % lwuptc     % array(icell) = 0.
+       s % lwdnflx    % array(icell) = 0.
+       s % lwdnflxc   % array(icell) = 0.
+       s % lwupflx    % array(icell) = 0.
+       s % lwupflxc   % array(icell) = 0.
+       s % olrtoa     % array(icell) = 0.
+
+       !.. surface characteristics:
+       s % emiss      % array(icell) = 0.
+       s % snow       % array(icell) = 0.
+       s % tsk        % array(icell) = 0.
+       s % xice       % array(icell) = 0.       
+       s % xland      % array(icell) = 0.       
+
     enddo
 
 !2-d variables:
@@ -212,7 +275,10 @@
     do icell = 1, grid % nCells
     do k = 1, grid % nVertLevels
 
-       !convection:
+       !.. cloud fraction:
+       s % cldfrac    % array(k,icell) = 0.
+
+       !.. convection:
        s % w0avg      % array(k,icell) = 0.
        s % rthcuten   % array(k,icell) = 0.
        s % rqvcuten   % array(k,icell) = 0.
@@ -221,7 +287,10 @@
        s % rqicuten   % array(k,icell) = 0.
        s % rqscuten   % array(k,icell) = 0.
 
-      !pbl:
+       !.. surface layer:
+       s % exch_h     % array(k,iCell) = 0.
+
+       !.. pbl:
        s % rublten    % array(k,icell) = 0.
        s % rvblten    % array(k,icell) = 0.
        s % rthblten   % array(k,icell) = 0.
@@ -229,6 +298,12 @@
        s % rqcblten   % array(k,icell) = 0.
        s % rqiblten   % array(k,icell) = 0.
 
+       !.. shortwave radiation:
+       s % rthratensw % array(k,icell) = 0.
+
+       !.. longwave radiation:
+       s % rthratenlw % array(k,icell) = 0.
+
     enddo
     enddo
 

Modified: branches/atmos_physics/src/core_physics/module_physics_driver.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_driver.F        2010-10-14 16:32:35 UTC (rev 553)
+++ branches/atmos_physics/src/core_physics/module_physics_driver.F        2010-10-14 16:35:28 UTC (rev 554)
@@ -43,7 +43,7 @@
     config_eddy_scheme         .ne. 'off' .or. &amp;
     config_radt_lw_scheme      .ne. 'off' .or. &amp;
     config_radt_sw_scheme      .ne. 'off' .or. &amp;
-    config_sfclay_scheme       .ne. 'off') then
+    config_sfclayer_scheme     .ne. 'off') then
 
  block =&gt; domain % blocklist
  do while(associated(block))

Modified: branches/atmos_physics/src/core_physics/module_physics_init.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_init.F        2010-10-14 16:32:35 UTC (rev 553)
+++ branches/atmos_physics/src/core_physics/module_physics_init.F        2010-10-14 16:35:28 UTC (rev 554)
@@ -4,7 +4,7 @@
  use configure, only: config_do_restart,       &amp;
                       config_microp_scheme,    &amp;
                       config_conv_deep_scheme, &amp;
-                      config_sfclay_scheme
+                      config_sfclayer_scheme
 
  use module_driver_convection_deep
  use module_driver_microphysics
@@ -36,7 +36,7 @@
  if(config_microp_scheme .ne. 'off') call microphysics_init
 
 !initialization of surface layer processes:
- if(config_sfclay_scheme .ne. 'off') then
+ if(config_sfclayer_scheme .ne. 'off') then
  
     call sfclayer_interface_init(s)
     write(0,*) '--- end subroutine sfclayer_interface_init:'

Modified: branches/atmos_physics/src/core_physics/module_physics_manager.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_manager.F        2010-10-14 16:32:35 UTC (rev 553)
+++ branches/atmos_physics/src/core_physics/module_physics_manager.F        2010-10-14 16:35:28 UTC (rev 554)
@@ -124,23 +124,11 @@
  endif
 
 !initialization of variables and allocation of arrays related to pbl processes:
+ if(config_pbl_scheme .ne. 'off') pbl_scheme = trim(config_pbl_scheme)
 
- if(config_pbl_scheme .ne. 'off') then
-
-    if(config_pbl_scheme .eq. 'ysu') pbl_scheme = pbl_ysu
-    call pbl_allocate
-
- endif
-
 !initialization of variables and allocation of arrays related to surface processes:
+ if(config_sfclayer_scheme .ne. 'off') sfclayer_scheme = trim(config_sfclayer_scheme)
 
- if(config_sfclay_scheme .ne. 'off') then
-
-    if(config_sfclay_scheme .eq. 'monin_obukhov') sfclayer_scheme = sfc_mnkhov
-    call sfclayer_allocate
-
- endif
-
  end subroutine physics_wrf_interface
 
 !=============================================================================================

Modified: branches/atmos_physics/src/core_physics/module_physics_vars.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_vars.F        2010-10-14 16:32:35 UTC (rev 553)
+++ branches/atmos_physics/src/core_physics/module_physics_vars.F        2010-10-14 16:35:28 UTC (rev 554)
@@ -12,8 +12,10 @@
  integer,public:: microp_scheme
  integer,public:: conv_deep_scheme
  integer,public:: conv_shallow_scheme
- integer,public:: pbl_scheme
- integer,public:: sfclayer_scheme
+ character(len=32),public:: pbl_scheme
+ character(len=32),public:: radiation_lw_scheme
+ character(len=32),public:: radiation_sw_scheme
+ character(len=32),public:: sfclayer_scheme
 
 !--- parameterizations of cloud microphysics:
  integer,parameter,public:: microp_kessler  = 0
@@ -25,12 +27,6 @@
 !--- parameterizations of shallow convection:
  integer,parameter,public:: conv_shallow_uw = 0
 
-!--- parameterization of pbl processes:
- integer,parameter,public:: pbl_ysu         = 0
-
-!--- parameterization of surface processes:
- integer,parameter,public:: sfc_mnkhov      = 0
-
 !=============================================================================================
 !wrf-variables:these variables are needed to keep calls to different physics parameterizations
 !as in wrf model.

</font>
</pre>