<p><b>duda</b> 2010-10-29 12:52:14 -0600 (Fri, 29 Oct 2010)</p><p>BRANCH COMMIT<br>
<br>
Remove pressure_p and exner from input, and instead compute them<br>
upon a cold-start in init_coupled_diagnostics().<br>
<br>
<br>
M src/core_nhyd_atmos/Registry<br>
M src/core_nhyd_atmos/module_time_integration.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Registry
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Registry        2010-10-29 17:06:59 UTC (rev 586)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Registry        2010-10-29 18:52:14 UTC (rev 587)
@@ -168,7 +168,7 @@
var persistent real rt_diabatic_tend ( nVertLevels nCells Time ) 1 - rt_diabatic_tend tend - -
# state variables diagnosed from prognostic state
-var persistent real pressure_p ( nVertLevels nCells Time ) 1 iro pressure_p diag - -
+var persistent real pressure_p ( nVertLevels nCells Time ) 1 ro pressure_p diag - -
var persistent real u_init ( nVertLevels ) 0 iro u_init mesh - -
var persistent real t_init ( nVertLevels nCells ) 0 iro t_init mesh - -
@@ -196,7 +196,7 @@
var persistent real gradPVn ( nVertLevels nEdges Time ) 1 - gradPVn diag - -
var persistent real h_divergence ( nVertLevels nCells Time ) 1 o h_divergence diag - -
-var persistent real exner ( nVertLevels nCells Time ) 1 iro exner diag - -
+var persistent real exner ( nVertLevels nCells Time ) 1 ro exner diag - -
var persistent real exner_base ( nVertLevels nCells Time ) 1 iro exner_base diag - -
var persistent real rtheta_base ( nVertLevels nCells Time ) 1 r rtheta_base diag - -
var persistent real pressure_base ( nVertLevels nCells Time ) 1 iro pressure_base diag - -
Modified: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_time_integration.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_time_integration.F        2010-10-29 17:06:59 UTC (rev 586)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_time_integration.F        2010-10-29 18:52:14 UTC (rev 587)
@@ -3237,7 +3237,11 @@
type (mesh_type), intent(inout) :: grid
integer :: k,iCell,iEdge,i,iCell1,iCell2
+ real (kind=RKIND) :: p0, rcv
+ rcv = rgas / (cp-rgas)
+ p0 = 1.e5 ! this should come from somewhere else...
+
do iEdge = 1, grid % nEdges
iCell1 = grid % cellsOnEdge % array(1,iEdge)
iCell2 = grid % cellsOnEdge % array(2,iEdge)
@@ -3275,6 +3279,21 @@
end do
end do
+ do iCell=1,grid % nCells
+ do k=1,grid % nVertLevels
+ diag % exner % array(k,iCell) = (grid % zz % array(k,iCell) * (rgas/p0) * (diag % rtheta_p % array(k,iCell) + diag % rtheta_base % array(k,iCell)))**rcv
+ end do
+ end do
+
+ do iCell=1,grid % nCells
+ do k=1,grid % nVertLevels
+ diag % pressure_p % array(k,iCell) = grid % zz % array(k,iCell) * rgas &
+ * ( diag % exner % array(k,iCell) * diag % rtheta_p % array(k,iCell) &
+ + diag % rtheta_base % array(k,iCell) * (diag % exner % array(k,iCell) - diag % exner_base % array(k,iCell)) &
+ )
+ end do
+ end do
+
end subroutine init_coupled_diagnostics
! ------------------------
</font>
</pre>