<p><b>laura@ucar.edu</b> 2011-04-05 13:14:06 -0600 (Tue, 05 Apr 2011)</p><p>updated to compile with updated physics<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_hyd_atmos/Registry
===================================================================
--- branches/atmos_physics/src/core_hyd_atmos/Registry        2011-04-05 19:12:31 UTC (rev 782)
+++ branches/atmos_physics/src/core_hyd_atmos/Registry        2011-04-05 19:14:06 UTC (rev 783)
@@ -45,6 +45,7 @@
dim nVertLevels namelist:config_nvertlevels
#dim nTracers nTracers
dim nVertLevelsP1 nVertLevels+1
+dim nMonths 12
#
# var persistence type name_in_file ( dims ) time_levs iro- name_in_code struct super-array array_class
@@ -197,7 +198,6 @@
var persistent real coeffs_reconstruct ( R3 maxEdges nCells ) 0 - coeffs_reconstruct mesh - -
# ADDED DECLARATIONS MADE BY LDF:
-var persistent real surface_pressure ( nCells Time ) 1 o surface_pressure diag - -
var persistent real surface_temperature ( nCells Time ) 1 o surface_temperature diag - -
#==================================================================================================
@@ -205,6 +205,19 @@
# hydrostatic and non-hydrostatic dynamical cores):
#==================================================================================================
+#... NAMELIST VARIABLES ADDED FOR INITIALIZATION OF SURFACE CHARACTERISTICS:
+namelist logical physics input_sfc_albedo false
+namelist character physics input_landuse_data USGS
+namelist character physics input_soil_data STAS
+namelist integer physics num_soil_layers 4
+
+#... DIMENSION NEEDED FOR LONGWAVE AND SHORTWAVE RADIATION FLUXES TO INCLUDE AN ADDITIONAL LAYER
+#... BETWEEN THE TOP OF THE MODEL AND THE TOP OF THE ATMOSPHERE
+dim nVertLevelsP2 nVertLevels+2
+
+#... DIMENSION NEEDED FOR NUMBER OF SOIL LAYERS:
+dim nSoilLevels namelist:num_soil_layers
+
#... NAMELIST VARIABLES ADDED FOR PHYSICS CONFIGURATION:
namelist integer physics config_n_physics 01
namelist integer physics config_n_microp 01
@@ -233,6 +246,9 @@
# qi_col : vertically-integrated cloud ice mixing ratio (kg/m2)
# qs_col " vertically-integrated snow mixing ratio (kg/m2)
+var persistent real east ( R3 nCells ) 0 r east mesh - -
+var persistent real north ( R3 nCells ) 0 r north mesh - -
+
var persistent real qv_col ( nCells Time ) 1 o qv_col diag_physics - -
var persistent real qc_col ( nCells Time ) 1 o qc_col diag_physics - -
var persistent real qr_col ( nCells Time ) 1 o qr_col diag_physics - -
@@ -329,22 +345,21 @@
#--------------------------------------------------------------------------------------------------
# br :bulk richardson number [-]
-# cd :???
-# cda :???
+# cd :drag coefficient at 10m [-]
+# cda :drag coefficient at lowest model level [-]
# chs :???
# chs2 :???
# cpm :???
# cqs2 :???
-# ck :???
-# cka :???
+# ck :enthalpy exchange coefficient at 10 m [-]
+# cka :enthalpy exchange coefficient at lowest model level [-]
# gz1oz0 :log of z1 over z0 [-]
# flhc :exchange coefficient for heat [-]
# flqc :exchange coefficient for moisture [-]
-# hfx :upward heat flux at the surface [W/m2]
+# hfx :upward heat flux at the surface [W/m2/s]
# lh :latent heat flux at the surface [W/m2]
# mavail :surface moisture availability [-]
# mol :T* in similarity theory [K]
-# pblh :PBL height [m]
# psih :similarity theory for heat [-]
# psim :similarity theory for momentum [-]
# q2 :specific humidity at 2m [kg/kg]
@@ -360,7 +375,7 @@
# ustm :u* in similarity theory without vconv [m/s]
# v10 :v at 10 m [m/s]
# wspd :wind speed [m/s]
-# zol_p :z/L height over Monin-Obukhov length [-]
+# zol :z/L height over Monin-Obukhov length [-]
# znt :time-varying roughness length [m]
var persistent real br ( nCells Time ) 1 ro br diag_physics - -
@@ -379,7 +394,6 @@
var persistent real lh ( nCells Time ) 1 ro lh diag_physics - -
var persistent real mavail ( nCells Time ) 1 ro mavail diag_physics - -
var persistent real mol ( nCells Time ) 1 ro mol diag_physics - -
-var persistent real pblh ( nCells Time ) 1 ro pblh diag_physics - -
var persistent real psim ( nCells Time ) 1 ro psim diag_physics - -
var persistent real psih ( nCells Time ) 1 ro psih diag_physics - -
var persistent real q2 ( nCells Time ) 1 ro q2 diag_physics - -
@@ -409,7 +423,7 @@
# swdnb :all-sky downwelling shortwave flux at bottom-of-atmosphere [J m-2]
# swdnbc :clear-sky downwelling shortwave flux at bottom-of-atmosphere [J m-2]
# swdnt :all-sky downwelling shortwave flux at top-of-atmosphere [J m-2]
-# swdntc :clear-sky downelling shortwave flux at top-of-atmosphere [J m-2]
+# swdntc :clear-sky downwelling shortwave flux at top-of-atmosphere [J m-2]
# swupb :all-sky upwelling shortwave flux at bottom-of-atmosphere [J m-2]
# swupbc :clear-sky upwelling shortwave flux at bottom-of-atmosphere [J m-2]
# swupt :all-sky upwelling shortwave flux at top-of-atmosphere [J m-2]
@@ -420,29 +434,35 @@
# swupflxc :
# rthratensw:uncoupled theta tendency due to shortwave radiation [K s-1]
-var persistent real coszr ( nCells Time ) 1 o coszr diag_physics - -
-var persistent real gsw ( nCells Time ) 1 o gsw diag_physics - -
-var persistent real swcf ( nCells Time ) 1 o swcf diag_physics - -
-var persistent real swdnb ( nCells Time ) 1 o swdnb diag_physics - -
-var persistent real swdnbc ( nCells Time ) 1 o swdnbc diag_physics - -
-var persistent real swdnt ( nCells Time ) 1 o swdnt diag_physics - -
-var persistent real swdntc ( nCells Time ) 1 o swdntc diag_physics - -
-var persistent real swupb ( nCells Time ) 1 o swupb diag_physics - -
-var persistent real swupbc ( nCells Time ) 1 o swupbc diag_physics - -
-var persistent real swupt ( nCells Time ) 1 o swupt diag_physics - -
-var persistent real swuptc ( nCells Time ) 1 o swuptc diag_physics - -
-var persistent real swdnflx ( nCells Time ) 1 o swdnflx diag_physics - -
-var persistent real swdnflxc ( nCells Time ) 1 o swdnflxc diag_physics - -
-var persistent real swupflx ( nCells Time ) 1 o swupflx diag_physics - -
-var persistent real swupflxc ( nCells Time ) 1 o swupflxc diag_physics - -
+var persistent real coszr ( nCells Time ) 1 o coszr diag_physics - -
+var persistent real gsw ( nCells Time ) 1 o gsw diag_physics - -
+var persistent real swcf ( nCells Time ) 1 o swcf diag_physics - -
+var persistent real swdnb ( nCells Time ) 1 o swdnb diag_physics - -
+var persistent real swdnbc ( nCells Time ) 1 o swdnbc diag_physics - -
+var persistent real swdnt ( nCells Time ) 1 o swdnt diag_physics - -
+var persistent real swdntc ( nCells Time ) 1 o swdntc diag_physics - -
+var persistent real swupb ( nCells Time ) 1 o swupb diag_physics - -
+var persistent real swupbc ( nCells Time ) 1 o swupbc diag_physics - -
+var persistent real swupt ( nCells Time ) 1 o swupt diag_physics - -
+var persistent real swuptc ( nCells Time ) 1 o swuptc diag_physics - -
-var persistent real rthratensw ( nVertLevels nCells Time ) 1 o rthratensw tend_physics - -
+var persistent real swdnflx ( nVertLevelsP2 nCells Time ) 1 o swdnflx diag_physics - -
+var persistent real swdnflxc ( nVertLevelsP2 nCells Time ) 1 o swdnflxc diag_physics - -
+var persistent real swupflx ( nVertLevelsP2 nCells Time ) 1 o swupflx diag_physics - -
+var persistent real swupflxc ( nVertLevelsP2 nCells Time ) 1 o swupflxc diag_physics - -
+var persistent real rthratensw ( nVertLevels nCells Time ) 1 o rthratensw tend_physics - -
+
#--------------------------------------------------------------------------------------------------
#... PARAMETERIZATION OF LONGWAVE RADIATION:
#--------------------------------------------------------------------------------------------------
-# glw :net longwave flux at surface (or just downward??) [W m-2]
+# note: glw is the same diagnostic as lwdnb and is used in the land-surface scheme for the calcula-
+# tion of the surface budget. glw is always an output argument to the subroutine rrtmg_lwrad.
+# in contrast,lwdnb is an optional ouput argument to the subroutine rrtmg_lwrad depending on
+# the presence of lwupt (or not).
+
+# glw :all-sky downwelling longwave flux at bottom-of-atmosphere [W m-2]
# lwcf :longwave cloud forcing at top-of-atmosphere [W m-2]
# lwdnb :all-sky downwelling longwave flux at bottom-of-atmosphere [W m-2]
# lwdnbc :clear-sky downwelling longwave flux at bottom-of-atmosphere [W m-2]
@@ -459,24 +479,25 @@
# olrtoa :outgoing longwave radiation at top-of-the-atmosphere [W m-2]
# rthratenlw:uncoupled theta tendency due to longwave radiation [K s-1]
-var persistent real glw ( nCells Time ) 1 o glw diag_physics - -
-var persistent real lwcf ( nCells Time ) 1 o lwcf diag_physics - -
-var persistent real lwdnb ( nCells Time ) 1 o lwdnb diag_physics - -
-var persistent real lwdnbc ( nCells Time ) 1 o lwdnbc diag_physics - -
-var persistent real lwdnt ( nCells Time ) 1 o lwdnt diag_physics - -
-var persistent real lwdntc ( nCells Time ) 1 o lwdntc diag_physics - -
-var persistent real lwupb ( nCells Time ) 1 o lwupb diag_physics - -
-var persistent real lwupbc ( nCells Time ) 1 o lwupbc diag_physics - -
-var persistent real lwupt ( nCells Time ) 1 o lwupt diag_physics - -
-var persistent real lwuptc ( nCells Time ) 1 o lwuptc diag_physics - -
-var persistent real lwdnflx ( nCells Time ) 1 o lwdnflx diag_physics - -
-var persistent real lwdnflxc ( nCells Time ) 1 o lwdnflxc diag_physics - -
-var persistent real lwupflx ( nCells Time ) 1 o lwupflx diag_physics - -
-var persistent real lwupflxc ( nCells Time ) 1 o lwupflxc diag_physics - -
-var persistent real olrtoa ( nCells Time ) 1 o olrtoa diag_physics - -
+var persistent real glw ( nCells Time ) 1 o glw diag_physics - -
+var persistent real lwcf ( nCells Time ) 1 o lwcf diag_physics - -
+var persistent real lwdnb ( nCells Time ) 1 o lwdnb diag_physics - -
+var persistent real lwdnbc ( nCells Time ) 1 o lwdnbc diag_physics - -
+var persistent real lwdnt ( nCells Time ) 1 o lwdnt diag_physics - -
+var persistent real lwdntc ( nCells Time ) 1 o lwdntc diag_physics - -
+var persistent real lwupb ( nCells Time ) 1 o lwupb diag_physics - -
+var persistent real lwupbc ( nCells Time ) 1 o lwupbc diag_physics - -
+var persistent real lwupt ( nCells Time ) 1 o lwupt diag_physics - -
+var persistent real lwuptc ( nCells Time ) 1 o lwuptc diag_physics - -
+var persistent real olrtoa ( nCells Time ) 1 o olrtoa diag_physics - -
-var persistent real rthratenlw ( nVertLevels nCells Time ) 1 ro rthratenlw tend_physics - -
+var persistent real lwdnflx ( nVertLevelsP2 nCells Time ) 1 o lwdnflx diag_physics - -
+var persistent real lwdnflxc ( nVertLevelsP2 nCells Time ) 1 o lwdnflxc diag_physics - -
+var persistent real lwupflx ( nVertLevelsP2 nCells Time ) 1 o lwupflx diag_physics - -
+var persistent real lwupflxc ( nVertLevelsP2 nCells Time ) 1 o lwupflxc diag_physics - -
+var persistent real rthratenlw ( nVertLevels nCells Time ) 1 ro rthratenlw tend_physics - -
+
#--------------------------------------------------------------------------------------------------
#... PARAMERIZATION OF CLOUDINESS:
#--------------------------------------------------------------------------------------------------
@@ -486,22 +507,122 @@
var persistent real cldfrac ( nVertLevels nCells Time ) 1 o cldfrac diag_physics - -
#--------------------------------------------------------------------------------------------------
-#... SURFACE CHARACTERISTICS THAT SHOULD BE GIVEN AS INPUTS.
+#... PARAMETERIZATION OF LAND-SURFACE SCHEME:
#--------------------------------------------------------------------------------------------------
+# acsnom :accumulated melted snow [kg m-2]
+# acsnow :accumulated snow [kg m-2]
+# canwat :canopy water [kg m-2]
+# chklowq :surface saturation flag [-]
+# grdflx :ground heat flux [W m-2]
+# lai :leaf area index [-]
+# noahres :residual of the noah land-surface scheme energy budget [W m-2]
+# potevp :potential evaporation [W m-2]
+# qz0 :specific humidity at znt [kg kg-1]
+# rib :??
+# sfcrunoff :surface runoff [m s-1]
+# smstav :moisture availability [-]
+# smstot :total moisture [m3 m-3]
+# snopcx :snow phase change heat flux [W m-2]
+# snotime :??
+# snowh :physical snow depth [m]
+# thc :thermal inertia [Cal cm-1 K-1 s-0.5]
+# udrunoff :sub-surface runoff [m s-1]
+# z0 :background roughness length [m]
+# zs :depth of centers of soil layers [m]
+
+var persistent real acsnom ( nCells Time ) 1 ro acsnom diag_physics - -
+var persistent real acsnow ( nCells Time ) 1 ro acsnow diag_physics - -
+var persistent real canwat ( nCells Time ) 1 ro canwat diag_physics - -
+var persistent real chklowq ( nCells Time ) 1 ro chklowq diag_physics - -
+var persistent real grdflx ( nCells Time ) 1 ro grdflx diag_physics - -
+var persistent real lai ( nCells Time ) 1 ro lai diag_physics - -
+var persistent real noahres ( nCells Time ) 1 ro noahres diag_physics - -
+var persistent real potevp ( nCells Time ) 1 ro potevp diag_physics - -
+var persistent real qz0 ( nCells Time ) 1 ro qz0 diag_physics - -
+var persistent real rib ( nCells Time ) 1 ro rib diag_physics - -
+var persistent real sfcrunoff ( nCells Time ) 1 ro sfcrunoff diag_physics - -
+var persistent real smstav ( nCells Time ) 1 ro smstav diag_physics - -
+var persistent real smstot ( nCells Time ) 1 ro smstot diag_physics - -
+var persistent real snopcx ( nCells Time ) 1 ro snopcx diag_physics - -
+var persistent real snotime ( nCells Time ) 1 ro snotime diag_physics - -
+var persistent real snowh ( nCells Time ) 1 ro snowh diag_physics - -
+var persistent real thc ( nCells Time ) 1 ro thc diag_physics - -
+var persistent real udrunoff ( nCells Time ) 1 ro udrunoff diag_physics - -
+var persistent real z0 ( nCells Time ) 1 ro z0 diag_physics - -
+var persistent real zs ( nCells Time ) 1 ro zs diag_physics - -
+
+#--------------------------------------------------------------------------------------------------
+#... SURFACE CHARACTERISTICS THAT NEED TO BE READ FROM GRID.NC:
+#--------------------------------------------------------------------------------------------------
+
+# albedo12m :monthly climatological albedo [-]
+# greenfrac :monthly climatological greeness fraction [-]
+# isltyp :dominant soil category [-]
+# ivgtyp :dominant vegetation category [-]
+# landmask :=0 for ocean;=1 for land [-]
+# shdmin :minimum areal fractional coverage of annual green vegetation [-]
+# shdmax :maximum areal fractional coverage of annual green vegetation [-]
+# skintemp :skin temperature [K]
+# snoalb :annual max snow albedo [-]
+# snow :snow water equivalent [kg m-2]
+# sst :sea-surface temperature [K]
+# snowc :flag indicating snow coverage (1 for snow cover) [-]
+# tmn :soil temperature at lower boundary [K]
+# vegfra :vegetation fraction [-]
+# xice :sea-ice mask [-]
+
+# dzs :thickness of soil layers [m]
+# smcrel :soil moisture threshold below which transpiration begins to stress [-]
+# sh2o :soil liquid water [m3 m-3]
+# smois :soil moisture [m3 m-3]
+# tslb :soil temperature [K]
+
+var persistent integer isltyp ( nCells ) 0 iro isltyp sfc_input - -
+var persistent integer ivgtyp ( nCells ) 0 iro ivgtyp sfc_input - -
+var persistent integer landmask ( nCells ) 0 iro landmask sfc_input - -
+var persistent real shdmin ( nCells ) 0 iro shdmin sfc_input - -
+var persistent real shdmax ( nCells ) 0 iro shdmax sfc_input - -
+var persistent real snoalb ( nCells ) 0 iro snoalb sfc_input - -
+
+var persistent real albedo12m ( nMonths nCells ) 0 io albedo12m sfc_input - -
+var persistent real greenfrac ( nMonths nCells ) 0 io greenfrac sfc_input - -
+
+var persistent real skintemp ( nCells Time ) 1 iro skintemp sfc_input - -
+var persistent real snow ( nCells Time ) 1 iro snow sfc_input - -
+var persistent real snowc ( nCells Time ) 1 iro snowc sfc_input - -
+var persistent real sst ( nCells Time ) 1 iro sst sfc_input - -
+var persistent real tmn ( nCells Time ) 1 iro tmn sfc_input - -
+var persistent real vegfra ( nCells Time ) 1 iro vegfra sfc_input - -
+var persistent real xice ( nCells Time ) 1 iro xice sfc_input - -
+
+var persistent real dzs ( nSoilLevels nCells Time ) 1 iro dzs sfc_input - -
+var persistent real smcrel ( nSoilLevels nCells Time ) 1 ro smcrel sfc_input - -
+var persistent real sh2o ( nSoilLevels nCells Time ) 1 iro sh2o sfc_input - -
+var persistent real smois ( nSoilLevels nCells Time ) 1 iro smois sfc_input - -
+var persistent real tslb ( nSoilLevels nCells Time ) 1 iro tslb sfc_input - -
+
+#--------------------------------------------------------------------------------------------------
+#... OTHER SURFACE CHARACTERISTICS INITIALIZED USING SFC FIELDS FROM GRID.NC:
+#--------------------------------------------------------------------------------------------------
+
+# sfc_albbck :background albedo [-]
+# sfc_embck :background emissivity [-]
+
# sfc_albedo :surface albedo [-]
-# sfc_emissivity :land surface emissivity [-]
-# snow :snow water equivalent [kg m-2]
+# sfc_emiss :surface emissivity [-]
# tsk :surface-skin temperature [K]
-
# xland :land mask (1 for land; 2 for water) [-]
-# xice :ice mask [-]
+# xicem :ice mask from previous time-step [-]
-var persistent real snow ( nCells Time ) 1 ro snow diag_physics - -
-var persistent real sfc_emissivity ( nCells Time ) 1 ro sfc_emissivity diag_physics - -
-var persistent real sfc_albedo ( nCells Time ) 1 ro sfc_albedo diag_physics - -
-var persistent real tsk ( nCells Time ) 1 ro tsk diag_physics - -
-var persistent real xice ( nCells Time ) 1 r xice diag_physics - -
-var persistent real xland ( nCells Time ) 1 r xland diag_physics - -
+var persistent real sfc_albbck ( nCells Time ) 1 ro sfc_albbck sfc_physics - -
+var persistent real sfc_emibck ( nCells Time ) 1 ro sfc_emibck sfc_physics - -
+var persistent real xicem ( nCells Time ) 1 ro xicem sfc_physics - -
+var persistent real xland ( nCells Time ) 1 ro xland sfc_physics - -
+var persistent real sfc_albedo ( nCells Time ) 1 ro sfc_albedo diag_physics - -
+var persistent real sfc_emiss ( nCells Time ) 1 ro sfc_emiss diag_physics - -
+var persistent real tsk ( nCells Time ) 1 ro tsk diag_physics - -
+
+
#==================================================================================================
Modified: branches/atmos_physics/src/core_hyd_atmos/module_mpas_core.F
===================================================================
--- branches/atmos_physics/src/core_hyd_atmos/module_mpas_core.F        2011-04-05 19:12:31 UTC (rev 782)
+++ branches/atmos_physics/src/core_hyd_atmos/module_mpas_core.F        2011-04-05 19:14:06 UTC (rev 783)
@@ -40,7 +40,7 @@
end subroutine mpas_core_init
- subroutine mpas_init_block(domain % dminfo, block, mesh, dt)
+ subroutine mpas_init_block(dminfo, block, mesh, dt)
use grid_types
use advection
@@ -76,9 +76,11 @@
!proceed with initialization of physics parameterization if moist_physics is set to true:
if(moist_physics) then
- call physics_registry_init(config_do_restart, mesh, block % diag_physics, block % tend_physics)
+ call physics_registry_init(config_do_restart, mesh, block % state % time_levs(1) % state, &
+ block % diag, block % diag_physics, block % sfc_input )
call physics_wrf_interface(mesh)
- call physics_init(dminfo, mesh, block % state % time_levs(1) % state, block % diag_physics)
+ call physics_init(dminfo, mesh, block % state % time_levs(1) % state, block % diag_physics, &
+ block % sfc_physics, block % sfc_input)
endif
#endif
@@ -208,7 +210,7 @@
#ifdef DO_PHYSICS
!proceed with physics if moist_physics is set to true:
if(moist_physics) then
- call physics_timetracker(itimestep)
+ call physics_timetracker(domain,dt,itimestep)
if(l_physics) call physics_driver(domain,itimestep)
endif
#endif
Modified: branches/atmos_physics/src/core_hyd_atmos/module_time_integration.F
===================================================================
--- branches/atmos_physics/src/core_hyd_atmos/module_time_integration.F        2011-04-05 19:12:31 UTC (rev 782)
+++ branches/atmos_physics/src/core_hyd_atmos/module_time_integration.F        2011-04-05 19:14:06 UTC (rev 783)
@@ -167,8 +167,10 @@
if (debug) write(0,*) ' add physics tendencies '
block => domain % blocklist
do while (associated(block))
- call physics_addtend( block % mesh, block % tend, block % tend_physics, &
- block % state % time_levs(2) % state % h % array(:,:) )
+ call physics_addtend( domain % dminfo , block % parinfo % cellsToSend, block % parinfo % cellsToRecv , &
+ block % mesh, block % tend, block % tend_physics, &
+ block % state % time_levs(2) % state % h % array(:,:), &
+ block % state % time_levs(2) % state % h_edge % array(:,:))
block => block % next
end do
if (debug) write(0,*) ' finished add physics tendencies '
</font>
</pre>