<p><b>dwj07@fsu.edu</b> 2012-12-20 13:54:13 -0700 (Thu, 20 Dec 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Changing forcing fields to be in state so I can output them and visualize what happens with them.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/generic_forcing/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/Registry        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/Registry        2012-12-20 20:54:13 UTC (rev 2369)
@@ -221,12 +221,12 @@
var persistent integer cellMask ( nVertLevels nCells ) 0 o cellMask mesh - -
% Forcing variables.
-var persistent real windStress ( nVertLevels nEdges ) 0 - windStress mesh - -
-var persistent real temperatureRestore ( nCells ) 0 - temperatureRestore mesh - -
-var persistent real salinityRestore ( nCells ) 0 - salinityRestore mesh - -
-var persistent real windStressInput ( nForcing nEdges ) 0 - windStressInput mesh - -
-var persistent real temperatureRestoreInput ( nForcing nCells ) 0 - temperatureRestoreInput mesh - -
-var persistent real salinityRestoreInput ( nForcing nCells ) 0 - salinityRestoreInput mesh - -
+var persistent real windStress ( nVertLevels nEdges Time ) 2 - windStress state - -
+var persistent real temperatureRestore ( nCells Time ) 2 - temperatureRestore state - -
+var persistent real salinityRestore ( nCells Time ) 2 - salinityRestore state - -
+var persistent real windStressInput ( nForcing nEdges Time ) 2 - windStressInput state - -
+var persistent real temperatureRestoreInput ( nForcing nCells Time ) 2 - temperatureRestoreInput state - -
+var persistent real salinityRestoreInput ( nForcing nCells Time ) 2 - salinityRestoreInput state - -
% Prognostic variables: read from input, saved in restart, and written to output
var persistent real u ( nVertLevels nEdges Time ) 2 ir u state - -
@@ -330,45 +330,44 @@
var persistent integer kiteIndexOnCell ( maxEdges nCells ) 0 - kiteIndexOnCell mesh - -
% Surface flux fields, for coupled runs
-var persistent real surfaceMassFlux ( nCells ) 0 - surfaceMassFlux mesh - -
-var persistent real temperatureFlux ( nCells ) 0 - temperatureFlux mesh surfaceTracerFlux forcing
-var persistent real salinityFlux ( nCells ) 0 - salinityFlux mesh surfaceTracerFlux forcing
-var persistent real tracer1Flux ( nCells ) 0 - tracer1Flux mesh surfaceTracerFlux forcing
+var persistent real surfaceMassFlux ( nCells Time ) 2 o surfaceMassFlux state - -
+var persistent real temperatureFlux ( nCells Time ) 2 o temperatureFlux state surfaceTracerFlux forcing
+var persistent real salinityFlux ( nCells Time ) 2 o salinityFlux state surfaceTracerFlux forcing
+var persistent real tracer1Flux ( nCells Time ) 2 o tracer1Flux state surfaceTracerFlux forcing
#ifdef MPAS_CESM
% Coupler input fields, for coupled runs
-var persistent real meridionalWindStress ( nCells ) 0 - meridionalWindStress mesh - -
-var persistent real zonalWindStress ( nCells ) 0 - zonalWindStress mesh - -
-var persistent real latentHeatFlux ( nCells ) 0 - latentHeatFlux mesh - -
-var persistent real sensibleHeatFlux ( nCells ) 0 - sensibleHeatFlux mesh - -
-var persistent real longWaveHeatFluxUp ( nCells ) 0 - longWaveHeatFluxUp mesh - -
-var persistent real longWaveHeatFluxDown ( nCells ) 0 - longWaveHeatFluxDown mesh - -
-var persistent real evaporationFlux ( nCells ) 0 - evaporationFlux mesh - -
-var persistent real seaIceHeatFlux ( nCells ) 0 - seaIceHeatFlux mesh - -
-var persistent real snowFlux ( nCells ) 0 - snowFlux mesh - -
-var persistent real seaIceFreshWaterFlux ( nCells ) 0 - seaIceFreshWaterFlux mesh - -
-var persistent real seaIceSalinityFlux ( nCells ) 0 - seaIceSalinityFlux mesh - -
-var persistent real riverRunoffFlux ( nCells ) 0 - riverRunoffFlux mesh - -
-var persistent real iceRunoffFlux ( nCells ) 0 - iceRunoffFlux mesh - -
-var persistent real shortWaveHeatFlux ( nCells ) 0 - shortWaveHeatFlux mesh - -
-var persistent real rainFlux ( nCells ) 0 - rainFlux mesh - -
-var persistent real seaLevelPressure ( nCells ) 0 - seaLevelPressure mesh - -
-var persistent real iceFraction ( nCells ) 0 - iceFraction mesh - -
-var persistent real prognosticCO2 ( nCells ) 0 - prognosticCO2 mesh - -
-var persistent real diagnosticCO2 ( nCells ) 0 - diagnosticCO2 mesh - -
-var persistent real squaredWindSpeed10Meter ( nCells ) 0 - squaredWindSpeed10Meter mesh - -
+var persistent real meridionalWindStress ( nCells Time ) 2 o meridionalWindStress state - -
+var persistent real zonalWindStress ( nCells Time ) 2 o zonalWindStress state - -
+var persistent real latentHeatFlux ( nCells Time ) 2 - latentHeatFlux state - -
+var persistent real sensibleHeatFlux ( nCells Time ) 2 - sensibleHeatFlux state - -
+var persistent real longWaveHeatFluxUp ( nCells Time ) 2 - longWaveHeatFluxUp state - -
+var persistent real longWaveHeatFluxDown ( nCells Time ) 2 - longWaveHeatFluxDown state - -
+var persistent real evaporationFlux ( nCells Time ) 2 - evaporationFlux state - -
+var persistent real seaIceHeatFlux ( nCells Time ) 2 - seaIceHeatFlux state - -
+var persistent real snowFlux ( nCells Time ) 2 - snowFlux state - -
+var persistent real seaIceFreshWaterFlux ( nCells Time ) 2 - seaIceFreshWaterFlux state - -
+var persistent real seaIceSalinityFlux ( nCells Time ) 2 - seaIceSalinityFlux state - -
+var persistent real riverRunoffFlux ( nCells Time ) 2 - riverRunoffFlux state - -
+var persistent real iceRunoffFlux ( nCells Time ) 2 - iceRunoffFlux state - -
+var persistent real shortWaveHeatFlux ( nCells Time ) 2 - shortWaveHeatFlux state - -
+var persistent real rainFlux ( nCells Time ) 2 - rainFlux state - -
+var persistent real seaLevelPressure ( nCells Time ) 2 - seaLevelPressure state - -
+var persistent real iceFraction ( nCells Time ) 2 - iceFraction state - -
+var persistent real prognosticCO2 ( nCells Time ) 2 - prognosticCO2 state - -
+var persistent real diagnosticCO2 ( nCells Time ) 2 - diagnosticCO2 state - -
+var persistent real squaredWindSpeed12Meter ( nCells Time ) 2 - squaredWindSpeed12Meter state - -
% Coupler output fields, for coupled runs
-var persistent real surfaceMeltHeatFlux ( nCells ) 0 - surfaceMeltHeatFlux mesh - -
-var persistent real temperatureState ( nCells ) 0 - temperatureState mesh - -
-var persistent real salinityState ( nCells ) 0 - salinityState mesh - -
-var persistent real zonalVelocityState ( nCells ) 0 - zonalVelocityState mesh - -
-var persistent real meridionalVelocityState ( nCells ) 0 - meridionalVelocityState mesh - -
-var persistent real zonalSSHGradientState ( nCells ) 0 - zonalSSHGradientState mesh - -
-var persistent real meridionalSSHGradientState ( nCells ) 0 - meridionalSSHGradientState mesh - -
-var persistent real CO2Flux ( nCells ) 0 - CO2Flux mesh - -
-var persistent real DMSFlux ( nCells ) 0 - DMSFlux mesh - -
-var persistent real surfaceUpwardCO2Flux ( nCells ) 0 - surfaceUpwardCO2Flux mesh - -
-
+var persistent real surfaceMeltHeatFlux ( nCells Time ) 2 - surfaceMeltHeatFlux state - -
+var persistent real temperatureState ( nCells Time ) 2 - temperatureState state - -
+var persistent real salinityState ( nCells Time ) 2 - salinityState state - -
+var persistent real zonalVelocityState ( nCells Time ) 2 - zonalVelocityState state - -
+var persistent real meridionalVelocityState ( nCells Time ) 2 - meridionalVelocityState state - -
+var persistent real zonalSSHGradientState ( nCells Time ) 2 - zonalSSHGradientState state - -
+var persistent real meridionalSSHGradientState ( nCells Time ) 2 - meridionalSSHGradientState state - -
+var persistent real CO2Flux ( nCells Time ) 2 - CO2Flux state - -
+var persistent real DMSFlux ( nCells Time ) 2 - DMSFlux state - -
+var persistent real surfaceUpwardCO2Flux ( nCells Time ) 2 - surfaceUpwardCO2Flux state - -
#endif
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -61,7 +61,7 @@
!
!-----------------------------------------------------------------------
- subroutine ocn_build_forcing_arrays(timeStamp, grid, err)!{{{
+ subroutine ocn_build_forcing_arrays(timeStamp, grid, state, err)!{{{
!-----------------------------------------------------------------
!
@@ -80,6 +80,7 @@
type (mesh_type), intent(inout) :: &
grid !< Input: grid information
+ type (state_type), intent(inout) :: state !< Input: State information
!-----------------------------------------------------------------
!
@@ -95,8 +96,8 @@
!
!-----------------------------------------------------------------
- call ocn_build_forcing_arrays_monthly(timeStamp, grid, err)
- call ocn_build_forcing_arrays_coupled(timeStamp, grid, err)
+ call ocn_build_forcing_arrays_monthly(timeStamp, grid, state, err)
+ call ocn_build_forcing_arrays_coupled(timeStamp, grid, state, err)
!--------------------------------------------------------------------
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing_coupled.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing_coupled.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing_coupled.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -64,7 +64,7 @@
!
!-----------------------------------------------------------------------
- subroutine ocn_build_forcing_arrays_coupled(timeStamp, grid, err)!{{{
+ subroutine ocn_build_forcing_arrays_coupled(timeStamp, grid, state, err)!{{{
!-----------------------------------------------------------------
!
@@ -80,10 +80,11 @@
!
!-----------------------------------------------------------------
- type (mesh_type), intent(inout) :: &
- grid !< Input: grid information
+ type (mesh_type), intent(in) :: grid !< Input: grid information
+ type (state_type), intent(inout) :: state !< Input: State information
+
!-----------------------------------------------------------------
!
! output variables
@@ -125,29 +126,29 @@
cellsOnEdge => grid % cellsOnEdge % array
- windStress => grid % windStress % array
- zonalWindStress => grid % zonalWindStress % array
- meridionalWindStress => grid % meridionalWindStress % array
- latentHeatFlux => grid % latentHeatFlux % array
- sensibleHeatFlux => grid % sensibleHeatFlux % array
- longWaveHeatFluxUp => grid % longWaveHeatFluxUp % array
- longWaveHeatFluxDown => grid % longWaveHeatFluxDown % array
- evaporationFlux => grid % evaporationFlux % array
- seaIceHeatFlux => grid % seaIceHeatFlux % array
- snowFlux => grid % snowFlux % array
+ windStress => state % windStress % array
+ zonalWindStress => state % zonalWindStress % array
+ meridionalWindStress => state % meridionalWindStress % array
+ latentHeatFlux => state % latentHeatFlux % array
+ sensibleHeatFlux => state % sensibleHeatFlux % array
+ longWaveHeatFluxUp => state % longWaveHeatFluxUp % array
+ longWaveHeatFluxDown => state % longWaveHeatFluxDown % array
+ evaporationFlux => state % evaporationFlux % array
+ seaIceHeatFlux => state % seaIceHeatFlux % array
+ snowFlux => state % snowFlux % array
- seaIceFreshWaterFlux => grid % seaIceFreshWaterFlux % array
- seaIceSalinityFlux => grid % seaIceSalinityFlux % array
- riverRunoffFlux => grid % riverRunoffFlux % array
- iceRunoffFlux => grid % iceRunoffFlux % array
+ seaIceFreshWaterFlux => state % seaIceFreshWaterFlux % array
+ seaIceSalinityFlux => state % seaIceSalinityFlux % array
+ riverRunoffFlux => state % riverRunoffFlux % array
+ iceRunoffFlux => state % iceRunoffFlux % array
- rainFlux => grid % rainFlux % array
+ rainFlux => state % rainFlux % array
- seaLevelPressure => grid % seaLevelPressure % array
- iceFraction => grid % iceFraction % array
+ seaLevelPressure => state % seaLevelPressure % array
+ iceFraction => state % iceFraction % array
- surfaceMassFlux => grid % surfaceMassFlux % array
- surfaceTracerFlux => grid % surfaceTracerFlux % array
+ surfaceMassFlux => state % surfaceMassFlux % array
+ surfaceTracerFlux => state % surfaceTracerFlux % array
! Convert CESM wind stress to MPAS-O windstress
do iEdge = 1, grid % nEdges
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing_monthly.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing_monthly.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_forcing_monthly.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -62,7 +62,7 @@
!
!-----------------------------------------------------------------------
- subroutine ocn_build_forcing_arrays_monthly(timeStamp, grid, err)!{{{
+ subroutine ocn_build_forcing_arrays_monthly(timeStamp, grid, state, err)!{{{
!-----------------------------------------------------------------
!
@@ -81,6 +81,7 @@
type (mesh_type), intent(inout) :: &
grid !< Input: grid information
+ type (state_type), intent(inout) :: state !< Input: State information
!-----------------------------------------------------------------
!
@@ -116,13 +117,13 @@
! nForcing = grid % nForcing
nForcing = 1
- temperatureRestore => grid % temperatureRestore % array
- salinityRestore => grid % salinityRestore % array
- windStress => grid % windStress % array
+ temperatureRestore => state % temperatureRestore % array
+ salinityRestore => state % salinityRestore % array
+ windStress => state % windStress % array
- temperatureRestoreInput => grid % temperatureRestoreInput % array
- salinityRestoreInput => grid % salinityRestoreInput % array
- windStressInput => grid % windStressInput % array
+ temperatureRestoreInput => state % temperatureRestoreInput % array
+ salinityRestoreInput => state % salinityRestoreInput % array
+ windStressInput => state % windStressInput % array
call mpas_get_time(timeStamp, MM = iMonth, DD = iDayInMonth, ierr = ierr)
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_mpas_core.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_mpas_core.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -35,6 +35,8 @@
use ocn_tracer_surface_flux
use ocn_tracer_short_wave_absorption
+ use ocn_tracer_short_wave_absorption
+
type (io_output_object), save :: restart_obj
integer :: current_outfile_frames
@@ -294,7 +296,7 @@
)
!TDR
- call mpas_reconstruct(mesh, mesh % windStress % array, &
+ call mpas_reconstruct(mesh, block % state % time_levs(1) % state % windStress % array, &
block % state % time_levs(1) % state % windStressReconstructX % array, &
block % state % time_levs(1) % state % windStressReconstructY % array, &
block % state % time_levs(1) % state % windStressReconstructZ % array, &
@@ -390,7 +392,7 @@
block_ptr => domain % blocklist
do while(associated(block_ptr))
- call ocn_build_forcing_arrays(currTime, block_ptr % mesh, ierr)
+ call ocn_build_forcing_arrays(currTime, block_ptr % mesh, block_ptr % state % time_levs(1) % state, ierr)
block_ptr => block_ptr % next
end do
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_restoring.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_restoring.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_restoring.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -65,7 +65,7 @@
!
!-----------------------------------------------------------------------
- subroutine ocn_restoring_tend(grid, h, indexT, indexS, tracers, tend, err)!{{{
+ subroutine ocn_restoring_tend(grid, h, temperatureRestore, salinityRestore, indexT, indexS, tracers, tend, err)!{{{
!-----------------------------------------------------------------
!
@@ -79,6 +79,9 @@
type (mesh_type), intent(in) :: &
grid !< Input: grid information
+
+ real (kind=RKIND), dimension(:), intent(in) :: temperatureRestore, salinityRestore !< Input: Restoring fields
+
real (kind=RKIND), dimension(:,:,:), intent(in) :: &
tracers !< Input: tracer quantities
@@ -110,7 +113,6 @@
integer :: iCell, nCellsSolve, k
- real (kind=RKIND), dimension(:), pointer :: temperatureRestore, salinityRestore
real (kind=RKIND) :: invTemp, invSalinity
err = 0
@@ -119,9 +121,6 @@
nCellsSolve = grid % nCellsSolve
- temperatureRestore => grid % temperatureRestore % array
- salinityRestore => grid % salinityRestore % array
-
invTemp = 1.0 / (temperatureTimeScale * 86400.0)
invSalinity = 1.0 / (salinityTimeScale * 86400.0)
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_tendency.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_tendency.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -119,7 +119,7 @@
call mpas_timer_start("ocn_tend_h")
- surfaceMassFlux => grid % surfaceMassFlux % array
+ surfaceMassFlux => s % surfaceMassFlux % array
uTransport => s % uTransport % array
wTop => s % wTop % array
h_edge => s % h_edge % array
@@ -207,7 +207,7 @@
tend_u => tend % u % array
- windStress => grid % windStress % array
+ windStress => s % windStress % array
!
! velocity tendency: start accumulating tendency terms
@@ -293,7 +293,7 @@
type (mesh_type), intent(in) :: grid !< Input: Grid information
real (kind=RKIND), intent(in) :: dt !< Input: Time step
- real (kind=RKIND), dimension(:), pointer :: shortWaveHeatFlux
+ real (kind=RKIND), dimension(:), pointer :: shortWaveHeatFlux, temperatureRestore, salinityRestore
real (kind=RKIND), dimension(:,:), pointer :: surfaceTracerFlux
real (kind=RKIND), dimension(:,:), pointer :: &
uTransport, h,wTop, h_edge, vertDiffTopOfCell, tend_h, uh
@@ -311,9 +311,11 @@
h_edge => s % h_edge % array
vertDiffTopOfCell => d % vertDiffTopOfCell % array
- surfaceTracerFlux => grid % surfaceTracerFlux % array
+ surfaceTracerFlux => s % surfaceTracerFlux % array
+ temperatureRestore => s % temperatureRestore % array
+ salinityRestore => s % salinityRestore % array
#ifdef MPAS_CESM
- shortWaveHeatFlux => grid % shortWaveHeatFlux % array
+ shortWaveHeatFlux => s % shortWaveHeatFlux % array
#endif
tend_tr => tend % tracers % array
@@ -381,7 +383,7 @@
! add restoring to T and S in top model layer
!
call mpas_timer_start("restoring", .false., tracerRestoringTimer)
- call ocn_restoring_tend(grid, h, s%index_temperature, s%index_salinity, tracers, tend_tr, err)
+ call ocn_restoring_tend(grid, h, temperatureRestore, salinityRestore, s%index_temperature, s%index_salinity, tracers, tend_tr, err)
call mpas_timer_stop("restoring", tracerRestoringTimer)
call mpas_timer_start("surfaceTracerFlux", .false.)
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -330,7 +330,7 @@
)
!TDR
- call mpas_reconstruct(block % mesh, block % mesh % windStress % array, &
+ call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % windStress % array, &
block % state % time_levs(2) % state % windStressReconstructX % array, &
block % state % time_levs(2) % state % windStressReconstructY % array, &
block % state % time_levs(2) % state % windStressReconstructZ % array, &
Modified: branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_time_integration_split.F        2012-12-20 20:37:48 UTC (rev 2368)
+++ branches/ocean_projects/generic_forcing/src/core_ocean/mpas_ocn_time_integration_split.F        2012-12-20 20:54:13 UTC (rev 2369)
@@ -1000,7 +1000,7 @@
)
!TDR
- call mpas_reconstruct(block % mesh, block % mesh % windStress % array, &
+ call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % windStress % array, &
block % state % time_levs(2) % state % windStressReconstructX % array, &
block % state % time_levs(2) % state % windStressReconstructY % array, &
block % state % time_levs(2) % state % windStressReconstructZ % array, &
</font>
</pre>