<p><b>laura@ucar.edu</b> 2010-11-12 10:34:20 -0700 (Fri, 12 Nov 2010)</p><p>cleanup and consistency with revised Registry for hydrostatic and non-hydrostatic cores<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_physics/module_driver_convection_deep.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_convection_deep.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_driver_convection_deep.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -352,8 +352,10 @@
enddo
do i = its,ite
- diag_physics % rainc % array(i) = diag_physics % rainc % array(i) &
- + diag_physics % raincv % array(i)
+ diag_physics % rainc % array(i) = diag_physics % rainc % array(i) &
+ + diag_physics % raincv % array(i)
+ if(diag_physics % rainc % array(i) .gt. 0.) &
+ write(0,201) i,diag_physics%raincv%array(i),diag_physics%raincv%array(i)
enddo
convection_select: select case(conv_deep_scheme)
@@ -379,7 +381,7 @@
end select convection_select
!formats:
- 201 format(' after convection :',i6,10(1x,e15.8))
+ 201 format('--- rainc:',i6,10(1x,e15.8))
end subroutine convection_to_MPAS
Modified: branches/atmos_physics/src/core_physics/module_driver_microphysics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -116,25 +116,20 @@
end subroutine microphysics_init
!=============================================================================================
-#ifdef non_hydrostatic_core
- subroutine microphysics_driver(state,diag,tend,grid,itimestep)
-#elif hydrostatic_core
- subroutine microphysics_driver(state,grid,itimestep)
-#endif
+ subroutine microphysics_driver(state,diag,diag_physics,tend,mesh,itimestep)
!=============================================================================================
!input arguments:
!----------------
- type(mesh_type),intent(in):: grid
+ type(mesh_type),intent(in):: mesh
integer,intent(in):: itimestep
!inout arguments:
!----------------
type(state_type),intent(inout):: state
-#ifdef non_hydrostatic_core
type(diag_type),intent(inout):: diag
+ type(diag_physics_type),intent(inout):: diag_physics
type(tend_type),intent(inout):: tend
-#endif
!local variables and arrays:
!---------------------------
@@ -162,18 +157,14 @@
!... initialization of precipitation related arrays:
- call precip_from_MPAS(state,grid)
+ call precip_from_MPAS(diag_physics,mesh)
!... initialization of soundings for non-hydrostatic or hydrostatic dynamical cores.
#ifdef non_hydrostatic_core
-
- call microphysics_from_MPAS(state,diag,grid)
-
+ call microphysics_from_MPAS(state,diag,mesh)
#elif hydrostatic_core
-
call microphysics_from_MPAS(state)
-
#endif
!---------------------------------------------------------------------------------------------
@@ -223,19 +214,15 @@
!... copy updated precipitation from the wrf-physics grid back to the geodesic-dynamics grid:
- call precip_to_MPAS(state)
+ call precip_to_MPAS(diag_physics)
!... copy updated cloud microphysics variables from the wrf-physics grid back to the geodesic-
! dynamics grid:
#ifdef non_hydrostatic_core
-
- call microphysics_to_MPAS(state,diag,tend,grid,itimestep)
-
+ call microphysics_to_MPAS(state,diag,tend,mesh,itimestep)
#elif hydrostatic_core
-
- call microphysics_to_MPAS(state)
-
+ call microphysics_to_MPAS(state,tend)
#endif
!formats:
@@ -246,17 +233,17 @@
end subroutine microphysics_driver
!=============================================================================================
- subroutine precip_from_MPAS(state, grid)
+ subroutine precip_from_MPAS(diag_physics,mesh)
!=============================================================================================
!input variables:
- type(mesh_type) ,intent(in):: grid
+ type(mesh_type) ,intent(in):: mesh
!output variables:
- type(state_type),intent(inout):: state
+ type(diag_physics_type),intent(inout):: diag_physics
!local variables:
- integer:: i,icell,j
+ integer:: i,iCell,j
!---------------------------------------------------------------------------------------------
@@ -268,8 +255,8 @@
enddo
enddo
- do icell = 1, grid % nCellsSolve
- state%rainncv%array(icell) = 0.
+ do iCell = 1, mesh % nCellsSolve
+ diag_physics % rainncv % array(iCell) = 0.
enddo
!variables specific to different cloud microphysics schemes:
@@ -288,10 +275,10 @@
enddo
enddo
- do icell = 1, grid % nCellsSolve
- state%snowncv%array(icell) = 0.
- state%graupelncv%array(icell) = 0.
- state%sr%array(icell) = 0.
+ do iCell = 1, mesh % nCellsSolve
+ diag_physics % snowncv % array(iCell) = 0.
+ diag_physics % graupelncv % array(iCell) = 0.
+ diag_physics % sr % array(iCell) = 0.
enddo
case default
@@ -301,11 +288,11 @@
end subroutine precip_from_MPAS
!=============================================================================================
- subroutine precip_to_MPAS(state)
+ subroutine precip_to_MPAS(diag_physics)
!=============================================================================================
!output variables:
- type(state_type),intent(inout):: state
+ type(diag_physics_type),intent(inout):: diag_physics
!local variables:
integer:: i,j
@@ -318,10 +305,11 @@
do i = its,ite
!time-step precipitation:
- state%rainncv%array(i) = rainnc_p(i,j)
+ diag_physics % rainncv % array(i) = rainnc_p(i,j)
!accumulated precipitation:
- state%rainnc%array(i) = state%rainnc%array(i) + state%rainncv%array(i)
+ diag_physics % rainnc % array(i) = diag_physics % rainnc % array(i) &
+ + diag_physics % rainncv % array(i)
enddo
enddo
@@ -336,13 +324,16 @@
do i = its,ite
!time-step precipitation:
- state%snowncv%array(i) = snownc_p(i,j)
- state%graupelncv%array(i) = graupelnc_p(i,j)
- state%sr%array(i) = (snownc_p(i,j) + graupelnc_p(i,j)) / (rainnc_p(i,j)+1.e-12)
+ diag_physics % snowncv % array(i) = snownc_p(i,j)
+ diag_physics % graupelncv % array(i) = graupelnc_p(i,j)
+ diag_physics % sr % array(i) = &
+ (snownc_p(i,j) + graupelnc_p(i,j)) / (rainnc_p(i,j)+1.e-12)
!accumulated precipitation:
- state%snownc%array(i) = state%snownc%array(i) + state%snowncv%array(i)
- state%graupelnc%array(i) = state%graupelnc%array(i) + state%graupelncv%array(i)
+ diag_physics % snownc % array(i) = diag_physics % snownc % array(i) &
+ + diag_physics % snowncv % array(i)
+ diag_physics % graupelnc % array(i) = diag_physics % graupelnc % array(i) &
+ + diag_physics % graupelncv % array(i)
enddo
enddo
Modified: branches/atmos_physics/src/core_physics/module_physics_control.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_control.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_control.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -140,14 +140,15 @@
end subroutine physics_namelist_check
!=============================================================================================
- subroutine physics_registry_init(config_do_restart,grid,s)
+ subroutine physics_registry_init(config_do_restart,mesh,diag_physics,tend_physics)
!=============================================================================================
!input and output arguments:
!---------------------------
logical,intent(in):: config_do_restart
- type(mesh_type),intent(in):: grid
- type(state_type),intent(inout):: s
+ type(mesh_type),intent(in):: mesh
+ type(diag_physics_type),intent(inout):: diag_physics
+ type(tend_physics_type),intent(inout):: tend_physics
!local variables:
integer:: k,icell
@@ -156,16 +157,16 @@
!initialization of non-restart variables, namely diagnostics only:
- do icell = 1, grid%nCells
+ do icell = 1, mesh % nCells
- s % qv_col % array(icell) = 0.
- s % qc_col % array(icell) = 0.
- s % qr_col % array(icell) = 0.
- s % qi_col % array(icell) = 0.
- s % qs_col % array(icell) = 0.
- s % qg_col % array(icell) = 0.
+ diag_physics % qv_col % array(icell) = 0.
+ diag_physics % qc_col % array(icell) = 0.
+ diag_physics % qr_col % array(icell) = 0.
+ diag_physics % qi_col % array(icell) = 0.
+ diag_physics % qs_col % array(icell) = 0.
+ diag_physics % qg_col % array(icell) = 0.
- s % sr % array(icell) = 0.
+ diag_physics % sr % array(icell) = 0.
enddo
@@ -173,137 +174,138 @@
if(.not. config_do_restart) then
!.. 1-d variables:
- do icell = 1, grid%nCells
+ do icell = 1, mesh % nCells
!.. cloud microphysics:
- s % rainnc % array(icell) = 0.
- s % rainncv % array(icell) = 0.
- s % snownc % array(icell) = 0.
- s % snowncv % array(icell) = 0.
- s % graupelnc % array(icell) = 0.
- s % graupelncv % array(icell) = 0.
+ diag_physics % rainnc % array(icell) = 0.
+ diag_physics % rainncv % array(icell) = 0.
+ diag_physics % snownc % array(icell) = 0.
+ diag_physics % snowncv % array(icell) = 0.
+ diag_physics % graupelnc % array(icell) = 0.
+ diag_physics % graupelncv % array(icell) = 0.
!.. 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.
+ diag_physics % rainc % array(icell) = 0.
+ diag_physics % raincv % array(icell) = 0.
+ diag_physics % nca % array(icell) = 0.
+ diag_physics % cubot % array(icell) = 0.
+ diag_physics % cutop % array(icell) = 0.
!.. pbl layer:
- s % kpbl % array(icell) = 0.
+ diag_physics % 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.
- s % lh % array(icell) = 0.
- 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 % 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 % wspd % array(icell) = 0.
- s % zol % array(icell) = 0.
- s % znt % array(icell) = 0.
+ diag_physics % br % array(icell) = 0.
+ diag_physics % cd % array(icell) = 0.
+ diag_physics % cda % array(icell) = 0.
+ diag_physics % chs % array(icell) = 0.
+ diag_physics % chs2 % array(icell) = 0.
+ diag_physics % cpm % array(icell) = 0.
+ diag_physics % cqs2 % array(icell) = 0.
+ diag_physics % ck % array(icell) = 0.
+ diag_physics % cka % array(icell) = 0.
+ diag_physics % gz1oz0 % array(icell) = 0.
+ diag_physics % flhc % array(icell) = 0.
+ diag_physics % flqc % array(icell) = 0.
+ diag_physics % hfx % array(icell) = 0.
+ diag_physics % lh % array(icell) = 0.
+ diag_physics % mavail % array(icell) = 0.
+ diag_physics % mol % array(icell) = 0.
+ diag_physics % pblh % array(icell) = 0.
+ diag_physics % psim % array(iCell) = 0.
+ diag_physics % psih % array(iCell) = 0.
+ diag_physics % q2 % array(icell) = 0.
+ diag_physics % qfx % array(icell) = 0.
+ diag_physics % qgh % array(icell) = 0.
+ diag_physics % qsfc % array(icell) = 0.
+ diag_physics % regime % array(icell) = 0.
+ diag_physics % rmol % array(icell) = 0.
+ diag_physics % t2 % array(icell) = 0.
+ diag_physics % th2 % array(icell) = 0.
+ diag_physics % u10 % array(icell) = 0.
+ diag_physics % ust % array(icell) = 0.
+ diag_physics % ustm % array(icell) = 0.
+ diag_physics % v10 % array(icell) = 0.
+ diag_physics % wspd % array(icell) = 0.
+ diag_physics % zol % array(icell) = 0.
+ diag_physics % 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.
+ diag_physics % gsw % array(icell) = 0.
+ diag_physics % swcf % array(icell) = 0.
+ diag_physics % swdnb % array(icell) = 0.
+ diag_physics % swdnbc % array(icell) = 0.
+ diag_physics % swdnt % array(icell) = 0.
+ diag_physics % swdntc % array(icell) = 0.
+ diag_physics % swupb % array(icell) = 0.
+ diag_physics % swupbc % array(icell) = 0.
+ diag_physics % swupt % array(icell) = 0.
+ diag_physics % swuptc % array(icell) = 0.
+ diag_physics % swdnflx % array(icell) = 0.
+ diag_physics % swdnflxc % array(icell) = 0.
+ diag_physics % swupflx % array(icell) = 0.
+ diag_physics % 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.
+ diag_physics % glw % array(icell) = 0.
+ diag_physics % lwcf % array(icell) = 0.
+ diag_physics % lwdnb % array(icell) = 0.
+ diag_physics % lwdnbc % array(icell) = 0.
+ diag_physics % lwdnt % array(icell) = 0.
+ diag_physics % lwdntc % array(icell) = 0.
+ diag_physics % lwupb % array(icell) = 0.
+ diag_physics % lwupbc % array(icell) = 0.
+ diag_physics % lwupt % array(icell) = 0.
+ diag_physics % lwuptc % array(icell) = 0.
+ diag_physics % lwdnflx % array(icell) = 0.
+ diag_physics % lwdnflxc % array(icell) = 0.
+ diag_physics % lwupflx % array(icell) = 0.
+ diag_physics % lwupflxc % array(icell) = 0.
+ diag_physics % 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.
+ diag_physics % emiss % array(icell) = 0.
+ diag_physics % snow % array(icell) = 0.
+ diag_physics % tsk % array(icell) = 0.
+ diag_physics % xice % array(icell) = 0.
+ diag_physics % xland % array(icell) = 0.
enddo
!2-d variables:
- do icell = 1, grid % nCells
- do k = 1, grid % nVertLevels
+ do icell = 1, mesh % nCells
+ do k = 1, mesh % nVertLevels
!.. cloud fraction:
- s % cldfrac % array(k,icell) = 0.
+ diag_physics % cldfrac % array(k,icell) = 0.
!.. convection:
- s % w0avg % array(k,icell) = 0.
- s % rthcuten % array(k,icell) = 0.
- s % rqvcuten % array(k,icell) = 0.
- s % rqccuten % array(k,icell) = 0.
- s % rqrcuten % array(k,icell) = 0.
- s % rqicuten % array(k,icell) = 0.
- s % rqscuten % array(k,icell) = 0.
+ diag_physics % w0avg % array(k,icell) = 0.
+ tend_physics % rthcuten % array(k,icell) = 0.
+ tend_physics % rqvcuten % array(k,icell) = 0.
+ tend_physics % rqccuten % array(k,icell) = 0.
+ tend_physics % rqrcuten % array(k,icell) = 0.
+ tend_physics % rqicuten % array(k,icell) = 0.
+ tend_physics % rqscuten % array(k,icell) = 0.
+
!.. surface layer:
- s % exch_h % array(k,iCell) = 0.
+ diag_physics % 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.
- s % rqvblten % array(k,icell) = 0.
- s % rqcblten % array(k,icell) = 0.
- s % rqiblten % array(k,icell) = 0.
+ tend_physics % rublten % array(k,icell) = 0.
+ tend_physics % rvblten % array(k,icell) = 0.
+ tend_physics % rthblten % array(k,icell) = 0.
+ tend_physics % rqvblten % array(k,icell) = 0.
+ tend_physics % rqcblten % array(k,icell) = 0.
+ tend_physics % rqiblten % array(k,icell) = 0.
!.. shortwave radiation:
- s % rthratensw % array(k,icell) = 0.
+ tend_physics % rthratensw % array(k,icell) = 0.
!.. longwave radiation:
- s % rthratenlw % array(k,icell) = 0.
+ tend_physics % 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-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_driver.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -48,13 +48,6 @@
block => domain % blocklist
do while(associated(block))
- !compute relative humidity:
-#ifdef non_hydrostatic_core
- !call compute_relhum(block%mesh, block%diag, block%state%time_levs(1)%state)
-#elif hydrostatic_core
- !call compute_relhum(block%mesh, block%state%time_levs(1)%state)
-#endif
-
!physics prep step:
#ifdef non_hydrostatic_core
call MPAS_to_physics(block%mesh,block%state%time_levs(1)%state,block%diag)
@@ -64,25 +57,16 @@
!call to convection:
if(config_conv_deep_scheme .ne. 'off') &
- call convection_deep_driver(itimestep,block%mesh,block%state%time_levs(1)%state)
+ call convection_deep_driver(itimestep,block%mesh,block%diag_physics,block%tend_physics)
!call to pbl schemes:
! if(config_pbl_scheme .ne. 'off') &
! call pbl_driver(itimestep,block%mesh,block%state%time_levs(1)%state)
- !add all physics tendencies:
- !call physics_add_tendencies
-
- !move physics time_levs(1) to time_levs(2):
-#ifdef non_hydrostatic_core
- call nhyd_copy_state_physics(block%state%time_levs(1)%state,block%state%time_levs(2)%state)
-#endif
-
block => block % next
end do
endif
- write(0,*)
end subroutine physics_driver
Modified: branches/atmos_physics/src/core_physics/module_physics_init.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_init.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_init.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -17,13 +17,14 @@
contains
!=============================================================================================
- subroutine physics_init(mesh,s)
+ subroutine physics_init(mesh,state,diag_physics)
!=============================================================================================
!input and output arguments:
!---------------------------
type(mesh_type),intent(in):: mesh
- type(state_type),intent(inout):: s
+ type(state_type),intent(inout):: state
+ type(diag_physics_type),intent(inout):: diag_physics
!=============================================================================================
write(0,*)
@@ -31,7 +32,7 @@
!initialization of parameterized deep convective processes:
if(config_conv_deep_scheme .ne. 'off') then
- call convection_deep_init(s)
+ call convection_deep_init(state)
endif
!initialization of cloud microphysics processes:
@@ -40,7 +41,7 @@
!initialization of surface layer processes:
if(config_sfclayer_scheme .ne. 'off') then
- call sfclayer_interface_init(s)
+ call sfclayer_interface_init(diag_physics)
write(0,*) '--- end subroutine sfclayer_interface_init:'
endif
Modified: branches/atmos_physics/src/core_physics/module_physics_interface_hyd.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_interface_hyd.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_interface_hyd.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -147,18 +147,19 @@
end subroutine microphysics_from_MPAS
!=============================================================================================
- subroutine microphysics_to_MPAS(state)
+ subroutine microphysics_to_MPAS(state,tend)
!=============================================================================================
!output variables:
type(state_type),intent(inout):: state
+ type(tend_type) ,intent(inout):: tend
!---------------------------------------------------------------------------------------------
write(0,*) '--- enter subroutine microphysics_to_MPAS:'
!initialization:
- state % h_diabatic % array(:,:) = state % theta % array(:,:)
+ tend % h_diabatic % array(:,:) = state % theta % array(:,:)
!copy all arrays back to the MPAS grid:
do j = jts, jte
@@ -170,8 +171,8 @@
state % scalars % array(state%index_qc,k,i) = qc_p(i,k,j)
state % scalars % array(state%index_qr,k,i) = qr_p(i,k,j)
- state % h_diabatic % array(k,i) = (state % theta % array(k,i) &
- - state % h_diabatic % array(k,i)) / dt_dyn
+ tend % h_diabatic % array(k,i) = (state % theta % array(k,i) &
+ - tend % h_diabatic % array(k,i)) / dt_dyn
enddo
enddo
enddo
Modified: branches/atmos_physics/src/core_physics/module_physics_sfclayer.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_sfclayer.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_sfclayer.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -83,11 +83,11 @@
end subroutine sfclayer_deallocate
!=============================================================================================
- subroutine sfclayer_interface_init(s)
+ subroutine sfclayer_interface_init(diag_physics)
!=============================================================================================
!input arguments:
- type(state_type),intent(in):: s
+ type(diag_physics_type),intent(in):: diag_physics
!---------------------------------------------------------------------------------------------
@@ -100,27 +100,27 @@
psim_p(i,j) = 0.
wspd_p(i,j) = 0.
- flhc_p(i,j) = s % flhc % array(i)
- flqc_p(i,j) = s % flqc % array(i)
- hfx_p(i,j) = s % hfx % array(i)
- lh_p(i,j) = s % lh % array(i)
- mavail_p(i,j) = s % mavail % array(i)
- mol_p(i,j) = s % mol % array(i)
- pblh_p(i,j) = s % pblh % array(i)
- q2_p(i,j) = s % q2 % array(i)
- qfx_p(i,j) = s % qfx % array(i)
- qsfc_p(i,j) = s % qsfc % array(i)
- regime_p(i,j) = s % regime % array(i)
- rmol_p(i,j) = s % rmol % array(i)
- t2_p(i,j) = s % t2 % array(i)
- tsk_p(i,j) = s % tsk % array(i)
- th2_p(i,j) = s % th2 % array(i)
- u10_p(i,j) = s % u10 % array(i)
- ust_p(i,j) = s % ust % array(i)
- ustm_p(i,j) = s % ustm % array(i)
- v10_p(i,j) = s % v10 % array(i)
- xland_p(i,j) = s % xland % array(i)
- znt_p(i,j) = s % znt % array(i)
+ flhc_p(i,j) = diag_physics % flhc % array(i)
+ flqc_p(i,j) = diag_physics % flqc % array(i)
+ hfx_p(i,j) = diag_physics % hfx % array(i)
+ lh_p(i,j) = diag_physics % lh % array(i)
+ mavail_p(i,j) = diag_physics % mavail % array(i)
+ mol_p(i,j) = diag_physics % mol % array(i)
+ pblh_p(i,j) = diag_physics % pblh % array(i)
+ q2_p(i,j) = diag_physics % q2 % array(i)
+ qfx_p(i,j) = diag_physics % qfx % array(i)
+ qsfc_p(i,j) = diag_physics % qsfc % array(i)
+ regime_p(i,j) = diag_physics % regime % array(i)
+ rmol_p(i,j) = diag_physics % rmol % array(i)
+ t2_p(i,j) = diag_physics % t2 % array(i)
+ tsk_p(i,j) = diag_physics % tsk % array(i)
+ th2_p(i,j) = diag_physics % th2 % array(i)
+ u10_p(i,j) = diag_physics % u10 % array(i)
+ ust_p(i,j) = diag_physics % ust % array(i)
+ ustm_p(i,j) = diag_physics % ustm % array(i)
+ v10_p(i,j) = diag_physics % v10 % array(i)
+ xland_p(i,j) = diag_physics % xland % array(i)
+ znt_p(i,j) = diag_physics % znt % array(i)
enddo
enddo
Modified: branches/atmos_physics/src/core_physics/module_physics_todynamics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -10,16 +10,16 @@
contains
!=============================================================================================
- subroutine physics_addtend(tend,vars,mass,grid)
+ subroutine physics_addtend(mesh,tend,tend_physics,mass)
!=============================================================================================
!input variables:
!----------------
- type(mesh_type),intent(in):: grid
- type(state_type),intent(in):: vars
+ type(mesh_type),intent(in) :: mesh
+ type(tend_physics_type),intent(in):: tend_physics
- real(kind=RKIND),intent(in),dimension(grid%nVertLevels,grid%nCells):: mass
-
+ real(kind=RKIND),dimension(mesh%nCells,mesh%nVertLevels):: mass
+
!inout variables:
!----------------
type(tend_type),intent(inout):: tend
@@ -37,15 +37,15 @@
!write(0,*)
!write(0,*) '--- enter subroutine physics_add_tend:'
- nCellsSolve = grid % nCellsSolve
- nVertLevels = grid % nVertLevels
+ nCellsSolve = mesh % nCellsSolve
+ nVertLevels = mesh % nVertLevels
- rthcuten => vars % rthcuten % array
- rqvcuten => vars % rqvcuten % array
- rqccuten => vars % rqccuten % array
- rqrcuten => vars % rqrcuten % array
- rqicuten => vars % rqicuten % array
- rqscuten => vars % rqscuten % array
+ rthcuten => tend_physics % rthcuten % array
+ rqvcuten => tend_physics % rqvcuten % array
+ rqccuten => tend_physics % rqccuten % array
+ rqrcuten => tend_physics % rqrcuten % array
+ rqicuten => tend_physics % rqicuten % array
+ rqscuten => tend_physics % rqscuten % array
tend_theta => tend % theta % array
tend_scalars => tend % scalars % array
@@ -57,18 +57,11 @@
do i = 1, nCellsSolve
do k = 1, nVertLevels
tend_theta(k,i)=tend_theta(k,i)+rthcuten(k,i)*mass(k,i)
- tend_scalars(vars%index_qv,k,i)=tend_scalars(vars%index_qv,k,i)+rqvcuten(k,i)*mass(k,i)
- tend_scalars(vars%index_qc,k,i)=tend_scalars(vars%index_qc,k,i)+rqccuten(k,i)*mass(k,i)
- tend_scalars(vars%index_qr,k,i)=tend_scalars(vars%index_qr,k,i)+rqrcuten(k,i)*mass(k,i)
- tend_scalars(vars%index_qi,k,i)=tend_scalars(vars%index_qi,k,i)+rqicuten(k,i)*mass(k,i)
- tend_scalars(vars%index_qs,k,i)=tend_scalars(vars%index_qs,k,i)+rqscuten(k,i)*mass(k,i)
-! write(0,201) i,k,tend_theta(k,i), &
-! tend_scalars(vars%index_qv,k,i), &
-! tend_scalars(vars%index_qc,k,i), &
-! tend_scalars(vars%index_qr,k,i), &
-! tend_scalars(vars%index_qi,k,i), &
-! tend_scalars(vars%index_qs,k,i), &
-! tend_scalars(vars%index_qg,k,i)
+ tend_scalars(tend%index_qv,k,i)=tend_scalars(tend%index_qv,k,i)+rqvcuten(k,i)*mass(k,i)
+ tend_scalars(tend%index_qc,k,i)=tend_scalars(tend%index_qc,k,i)+rqccuten(k,i)*mass(k,i)
+ tend_scalars(tend%index_qr,k,i)=tend_scalars(tend%index_qr,k,i)+rqrcuten(k,i)*mass(k,i)
+ tend_scalars(tend%index_qi,k,i)=tend_scalars(tend%index_qi,k,i)+rqicuten(k,i)*mass(k,i)
+ tend_scalars(tend%index_qs,k,i)=tend_scalars(tend%index_qs,k,i)+rqscuten(k,i)*mass(k,i)
enddo
enddo
</font>
</pre>