<p><b>laura@ucar.edu</b> 2012-01-03 14:22:35 -0700 (Tue, 03 Jan 2012)</p><p>added initialization of the sea-surface temperature, sea-ice fraction, and sea-ice flag needed when an auxillary file of the sea-surface temperature and sea-ice is not available for the initialization. added the calculation of uReconstructZonal and uReconstructMeridional, as requested by Soyoung. corrected the calculation of the surface pressure, as in the subroutine microphysics_to_MPAS<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_init_nhyd_atmos/module_test_cases.F
===================================================================
--- branches/atmos_physics/src/core_init_nhyd_atmos/module_test_cases.F        2012-01-03 21:19:16 UTC (rev 1281)
+++ branches/atmos_physics/src/core_init_nhyd_atmos/module_test_cases.F        2012-01-03 21:22:35 UTC (rev 1282)
@@ -7,6 +7,8 @@
use advection
use sort
use mpas_timekeeping
+ use RBF_interpolation
+ use vector_reconstruction
use module_physics_initialize_real
@@ -3169,6 +3171,13 @@
if (config_met_interp) then
+ !ldf (2011-11-19): added initialization of the sea-surface temperature, seaice fraction, and
+ !seaice flag:
+ fg % sst % array = 0.
+ fg % xice % array = 0.
+ fg % seaice % array = 0.
+ !ldf end.
+
!
! First, try to locate the LANDSEA field for use as an interpolation mask
!
@@ -3686,7 +3695,8 @@
! Set SST based on SKINTEMP field if it wasn't found in input data
if (minval(fg % sst % array) == 0.0 .and. maxval(fg % sst % array) == 0.0) then
write(0,*) 'Setting SST from SKINTEMP'
- where (grid % landmask % array == 0) fg % sst % array = fg % skintemp % array
+ !where (grid % landmask % array == 0) fg % sst % array = fg % skintemp % array
+ fg % sst % array = fg % skintemp % array
end if
! Set SNOWC (snow-cover flag) based on SNOW
@@ -3948,6 +3958,20 @@
!
+ ! Reconstruct zonal and meridional winds for diagnostic puposes:
+ !
+ call rbfInterp_initialize(grid)
+ call init_reconstruct(grid)
+ call reconstruct(grid, state % u % array, &
+ diag % uReconstructX % array, &
+ diag % uReconstructY % array, &
+ diag % uReconstructZ % array, &
+ diag % uReconstructZonal % array, &
+ diag % uReconstructMeridional % array &
+ )
+
+
+ !
! Adjust surface pressure for difference in topography
!
do sfc_k=1,config_nfglevels
@@ -4108,7 +4132,7 @@
! Calculate surface pressure
do iCell=1,grid%nCells
- diag % surface_pressure % array(iCell) = 0.5*gravity/rdzw(1) &
+ diag % surface_pressure % array(iCell) = 0.5*gravity*(zgrid(2,i)-zgrid(1,i)) &
* (1.25* rho_zz(1,iCell) * (1. + scalars(state % index_qv, 1, iCell)) &
- 0.25* rho_zz(2,iCell) * (1. + scalars(state % index_qv, 2, iCell)))
diag % surface_pressure % array(iCell) = diag % surface_pressure % array(iCell) + pp(1,iCell) + ppb(1,iCell)
</font>
</pre>