<p><b>duda</b> 2010-11-11 15:30:06 -0700 (Thu, 11 Nov 2010)</p><p>BRANCH COMMIT<br>
<br>
Update high-level structure to use less-generic names<br>
for routines and module names, with the goal of avoiding<br>
potential naming conflicts in code that uses MPAS <br>
together with other models.<br>
<br>
Now, the calling structure looks like<br>
<br>
   mpas_init()                     [module_mpas_subdriver]<br>
        mpas_framework_init()      [module_mpas_framework]<br>
        mpas_core_init()           [module_mpas_core]<br>
<br>
   mpas_run()                      [module_mpas_subdriver]<br>
         mpas_core_run()           [module_mpas_core]<br>
<br>
   mpas_finalize()                 [module_mpas_subdriver]<br>
        mpas_core_finalize()       [module_mpas_core]<br>
        mpas_framework_finalize()  [module_mpas_framework]<br>
<br>
<br>
D    src/core_hyd_atmos/module_core.F<br>
A    src/core_hyd_atmos/module_mpas_core.F<br>
M    src/core_hyd_atmos/Makefile<br>
D    src/core_init_nhyd_atmos/module_core.F<br>
A    src/core_init_nhyd_atmos/module_mpas_core.F<br>
M    src/core_init_nhyd_atmos/Makefile<br>
D    src/core_sw/module_core.F<br>
A    src/core_sw/module_mpas_core.F<br>
M    src/core_sw/module_time_integration.F<br>
M    src/core_sw/Makefile<br>
M    src/driver/mpas.F<br>
M    src/driver/Makefile<br>
D    src/driver/module_subdriver.F<br>
A    src/driver/module_mpas_subdriver.F<br>
D    src/core_nhyd_atmos/module_core.F<br>
A    src/core_nhyd_atmos/module_mpas_core.F<br>
M    src/core_nhyd_atmos/Makefile<br>
D    src/core_ocean/module_core.F<br>
A    src/core_ocean/module_mpas_core.F<br>
M    src/core_ocean/Makefile<br>
D    src/framework/module_framework.F<br>
A    src/framework/module_mpas_framework.F<br>
M    src/framework/Makefile<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_nonhydrostatic/src/core_hyd_atmos/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/core_hyd_atmos/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_hyd_atmos/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,6 +1,6 @@
 .SUFFIXES: .F .o
 
-OBJS = module_core.o \
+OBJS = module_mpas_core.o \
        module_test_cases.o \
        module_time_integration.o \
        module_advection.o
@@ -16,7 +16,7 @@
 
 module_advection.o: 
 
-module_core.o: module_advection.o module_test_cases.o module_time_integration.o
+module_mpas_core.o: module_advection.o module_test_cases.o module_time_integration.o
 
 clean:
         $(RM) *.o *.mod *.f90 libdycore.a

Deleted: branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_core.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_core.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,201 +0,0 @@
-module core
-
-   use framework
-
-   type (io_output_object) :: restart_obj
-   integer :: restart_frame
-
-  
-   contains
-
-
-     subroutine mpas_init(domain)
-
-      use configure
-      use grid_types
-      use test_cases
-
-      implicit none
-
-      type (domain_type), intent(inout) :: domain
-
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block
-
-
-      if (.not. config_do_restart) call setup_hyd_test_case(domain)
-
-      !
-      ! Initialize core
-      !
-      dt = config_dt
-      block =&gt; domain % blocklist
-      do while (associated(block))
-         call mpas_init_block(block, block % mesh, dt)
-         block =&gt; block % next
-      end do
-
-      restart_frame = 1
-
-   end subroutine mpas_init

-
-   subroutine mpas_init_block(block, mesh, dt)
-   
-      use grid_types
-      use advection
-      use time_integration
-      use RBF_interpolation
-      use vector_reconstruction
-   
-      implicit none
-   
-      type (block_type), intent(inout) :: block
-      type (mesh_type), intent(inout) :: mesh
-      real (kind=RKIND), intent(in) :: dt
-   
-   
-      call compute_solver_constants(block % state % time_levs(1) % state, mesh)
-      call compute_state_diagnostics(block % state % time_levs(1) % state, mesh)
-      call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, mesh)
-      call initialize_advection_rk(mesh)
-      call rbfInterp_initialize(mesh)
-      call init_reconstruct(mesh)
-      call reconstruct(block % state % time_levs(1) % state, block % diag, mesh)
-   
-      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
-   
-   end subroutine mpas_init_block
-   
-   
-   subroutine mpas_run(domain, output_obj, output_frame)
-   
-      use grid_types
-      use io_output
-      use timer
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-      integer, intent(inout) :: output_frame
-   
-      integer :: ntimesteps, itimestep
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block_ptr
-   
-      ! Eventually, dt should be domain specific
-      dt = config_dt
-      ntimesteps = config_ntimesteps
-   
-      call write_output_frame(output_obj, output_frame, domain)
-   
-      ! During integration, time level 1 stores the model state at the beginning of the
-      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
-      do itimestep = 1,ntimesteps
-         write(0,*) 'Doing timestep ', itimestep
-         call timer_start(&quot;time integration&quot;)
-         call mpas_timestep(domain, itimestep, dt)
-         call timer_stop(&quot;time integration&quot;)
-   
-         ! Move time level 2 fields back into time level 1 for next time step
-         call shift_time_levels_state(domain % blocklist % state)
-   
-         if (mod(itimestep, config_output_interval) == 0) then
-            call write_output_frame(output_obj, output_frame, domain)
-         end if
-         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
-            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
-            call output_state_for_domain(restart_obj, domain, restart_frame)
-            restart_frame = restart_frame + 1
-         end if
-      end do
-   
-   end subroutine mpas_run
-   
-   
-   subroutine write_output_frame(output_obj, output_frame, domain)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain and write model state to output file
-   !
-   ! Input/Output: domain - contains model state; diagnostic field are computed
-   !                        before returning
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-      use io_output
-   
-      implicit none
-   
-      integer, intent(inout) :: output_frame
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-   
-      integer :: i, j, k
-      integer :: eoe
-      type (block_type), pointer :: block_ptr
-   
-      block_ptr =&gt; domain % blocklist
-      do while (associated(block_ptr))
-         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
-         block_ptr =&gt; block_ptr % next
-      end do
-   
-      call output_state_for_domain(output_obj, domain, output_frame)
-      output_frame = output_frame + 1
-   
-   end subroutine write_output_frame
-   
-   
-   subroutine compute_output_diagnostics(state, grid)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain
-   !
-   ! Input: state - contains model prognostic fields
-   !        grid  - contains grid metadata
-   !
-   ! Output: state - upon returning, diagnostic fields will have be computed
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-   
-      implicit none
-   
-      type (state_type), intent(inout) :: state
-      type (mesh_type), intent(in) :: grid
-   
-      integer :: i, eoe
-      integer :: iEdge, k
-   
-   end subroutine compute_output_diagnostics
-   
-   
-   subroutine mpas_timestep(domain, itimestep, dt)
-   
-      use grid_types
-      use time_integration
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-      integer, intent(in) :: itimestep
-      real (kind=RKIND), intent(in) :: dt
-   
-      call timestep(domain, dt)
-   
-   end subroutine mpas_timestep
-   
-   
-   subroutine mpas_finalize(domain)
-   
-      use grid_types
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-
-      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
-   
-   end subroutine mpas_finalize
-
-end module core

Copied: branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_mpas_core.F (from rev 599, branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_core.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_mpas_core.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/core_hyd_atmos/module_mpas_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,201 @@
+module mpas_core
+
+   use mpas_framework
+
+   type (io_output_object) :: restart_obj
+   integer :: restart_frame
+
+  
+   contains
+
+
+     subroutine mpas_core_init(domain)
+
+      use configure
+      use grid_types
+      use test_cases
+
+      implicit none
+
+      type (domain_type), intent(inout) :: domain
+
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block
+
+
+      if (.not. config_do_restart) call setup_hyd_test_case(domain)
+
+      !
+      ! Initialize core
+      !
+      dt = config_dt
+      block =&gt; domain % blocklist
+      do while (associated(block))
+         call mpas_init_block(block, block % mesh, dt)
+         block =&gt; block % next
+      end do
+
+      restart_frame = 1
+
+   end subroutine mpas_core_init

+
+   subroutine mpas_init_block(block, mesh, dt)
+   
+      use grid_types
+      use advection
+      use time_integration
+      use RBF_interpolation
+      use vector_reconstruction
+   
+      implicit none
+   
+      type (block_type), intent(inout) :: block
+      type (mesh_type), intent(inout) :: mesh
+      real (kind=RKIND), intent(in) :: dt
+   
+   
+      call compute_solver_constants(block % state % time_levs(1) % state, mesh)
+      call compute_state_diagnostics(block % state % time_levs(1) % state, mesh)
+      call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, mesh)
+      call initialize_advection_rk(mesh)
+      call rbfInterp_initialize(mesh)
+      call init_reconstruct(mesh)
+      call reconstruct(block % state % time_levs(1) % state, block % diag, mesh)
+   
+      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
+   
+   end subroutine mpas_init_block
+   
+   
+   subroutine mpas_core_run(domain, output_obj, output_frame)
+   
+      use grid_types
+      use io_output
+      use timer
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+      integer, intent(inout) :: output_frame
+   
+      integer :: ntimesteps, itimestep
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block_ptr
+   
+      ! Eventually, dt should be domain specific
+      dt = config_dt
+      ntimesteps = config_ntimesteps
+   
+      call write_output_frame(output_obj, output_frame, domain)
+   
+      ! During integration, time level 1 stores the model state at the beginning of the
+      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
+      do itimestep = 1,ntimesteps
+         write(0,*) 'Doing timestep ', itimestep
+         call timer_start(&quot;time integration&quot;)
+         call mpas_timestep(domain, itimestep, dt)
+         call timer_stop(&quot;time integration&quot;)
+   
+         ! Move time level 2 fields back into time level 1 for next time step
+         call shift_time_levels_state(domain % blocklist % state)
+   
+         if (mod(itimestep, config_output_interval) == 0) then
+            call write_output_frame(output_obj, output_frame, domain)
+         end if
+         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
+            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
+            call output_state_for_domain(restart_obj, domain, restart_frame)
+            restart_frame = restart_frame + 1
+         end if
+      end do
+   
+   end subroutine mpas_core_run
+   
+   
+   subroutine write_output_frame(output_obj, output_frame, domain)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain and write model state to output file
+   !
+   ! Input/Output: domain - contains model state; diagnostic field are computed
+   !                        before returning
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+      use io_output
+   
+      implicit none
+   
+      integer, intent(inout) :: output_frame
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+   
+      integer :: i, j, k
+      integer :: eoe
+      type (block_type), pointer :: block_ptr
+   
+      block_ptr =&gt; domain % blocklist
+      do while (associated(block_ptr))
+         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
+         block_ptr =&gt; block_ptr % next
+      end do
+   
+      call output_state_for_domain(output_obj, domain, output_frame)
+      output_frame = output_frame + 1
+   
+   end subroutine write_output_frame
+   
+   
+   subroutine compute_output_diagnostics(state, grid)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain
+   !
+   ! Input: state - contains model prognostic fields
+   !        grid  - contains grid metadata
+   !
+   ! Output: state - upon returning, diagnostic fields will have be computed
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+   
+      implicit none
+   
+      type (state_type), intent(inout) :: state
+      type (mesh_type), intent(in) :: grid
+   
+      integer :: i, eoe
+      integer :: iEdge, k
+   
+   end subroutine compute_output_diagnostics
+   
+   
+   subroutine mpas_timestep(domain, itimestep, dt)
+   
+      use grid_types
+      use time_integration
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+      integer, intent(in) :: itimestep
+      real (kind=RKIND), intent(in) :: dt
+   
+      call timestep(domain, dt)
+   
+   end subroutine mpas_timestep
+   
+   
+   subroutine mpas_core_finalize(domain)
+   
+      use grid_types
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+
+      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
+   
+   end subroutine mpas_core_finalize
+
+end module mpas_core

Modified: branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,6 +1,6 @@
 .SUFFIXES: .F .o
 
-OBJS = module_core.o \
+OBJS = module_mpas_core.o \
        module_test_cases.o \
        module_advection.o
 
@@ -13,7 +13,7 @@
 
 module_advection.o: 
 
-module_core.o: module_advection.o module_test_cases.o
+module_mpas_core.o: module_advection.o module_test_cases.o
 
 clean:
         $(RM) *.o *.mod *.f90 libdycore.a

Deleted: branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_core.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_core.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,68 +0,0 @@
-module core
-
-
-   contains
-
-
-   subroutine mpas_init(domain)
-   
-      use grid_types
-      use configure
-      use test_cases
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-   
-   end subroutine mpas_init
-   
-   
-   subroutine mpas_run(domain, output_obj, output_frame)
-   
-      use grid_types
-      use io_output
-      use timer
-      use test_cases
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-      integer, intent(inout) :: output_frame
-   
-      integer :: ntimesteps, itimestep
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block
-   
-   
-      call setup_nhyd_test_case(domain)
-   
-   !
-   ! Note: The following initialization calls have been moved to mpas_setup_test_case()
-   !       since values computed by these routines are needed to produce initial fields
-   !
-   !   call initialize_advection_rk(mesh)
-   !   call initialize_deformation_weights(mesh)
-   
-      block =&gt; domain % blocklist
-      do while (associated(block))
-         block % state % time_levs(1) % state % xtime % scalar = 0.0
-         block =&gt; block % next
-      end do 
-   
-      call output_state_for_domain(output_obj, domain, output_frame)
-   
-   end subroutine mpas_run
-   
-   
-   subroutine mpas_finalize(domain)
-   
-      use grid_types
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-   
-   end subroutine mpas_finalize
-   
-end module core

Copied: branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_mpas_core.F (from rev 599, branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_core.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_mpas_core.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/core_init_nhyd_atmos/module_mpas_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,68 @@
+module mpas_core
+
+
+   contains
+
+
+   subroutine mpas_core_init(domain)
+   
+      use grid_types
+      use configure
+      use test_cases
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+   
+   end subroutine mpas_core_init
+   
+   
+   subroutine mpas_core_run(domain, output_obj, output_frame)
+   
+      use grid_types
+      use io_output
+      use timer
+      use test_cases
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+      integer, intent(inout) :: output_frame
+   
+      integer :: ntimesteps, itimestep
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block
+   
+   
+      call setup_nhyd_test_case(domain)
+   
+   !
+   ! Note: The following initialization calls have been moved to mpas_setup_test_case()
+   !       since values computed by these routines are needed to produce initial fields
+   !
+   !   call initialize_advection_rk(mesh)
+   !   call initialize_deformation_weights(mesh)
+   
+      block =&gt; domain % blocklist
+      do while (associated(block))
+         block % state % time_levs(1) % state % xtime % scalar = 0.0
+         block =&gt; block % next
+      end do 
+   
+      call output_state_for_domain(output_obj, domain, output_frame)
+   
+   end subroutine mpas_core_run
+   
+   
+   subroutine mpas_core_finalize(domain)
+   
+      use grid_types
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+   
+   end subroutine mpas_core_finalize
+   
+end module mpas_core

Modified: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,6 +1,6 @@
 .SUFFIXES: .F .o
 
-OBJS = module_core.o \
+OBJS = module_mpas_core.o \
        module_test_cases.o \
        module_time_integration.o \
        module_advection.o
@@ -16,7 +16,7 @@
 
 module_advection.o: 
 
-module_core.o: module_advection.o module_test_cases.o module_time_integration.o
+module_mpas_core.o: module_advection.o module_test_cases.o module_time_integration.o
 
 clean:
         $(RM) *.o *.mod *.f90 libdycore.a

Deleted: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_core.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_core.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,204 +0,0 @@
-module core
-
-   use framework
-
-   type (io_output_object) :: restart_obj
-   integer :: restart_frame
-
-
-   contains
-
-
-   subroutine mpas_init(domain)
-
-      use configure
-      use grid_types
-      use test_cases
-
-      implicit none
-
-      type (domain_type), intent(inout) :: domain
-
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block
-
-
-      if (.not. config_do_restart) call setup_nhyd_test_case(domain)
-
-      !
-      ! Initialize core
-      !
-      dt = config_dt
-      block =&gt; domain % blocklist
-      do while (associated(block))
-         call mpas_init_block(block, block % mesh, dt)
-         block =&gt; block % next
-      end do
-
-      restart_frame = 1
-
-   end subroutine mpas_init
-
-
-   subroutine mpas_init_block(block, mesh, dt)
-   
-      use grid_types
-   !   use advection
-      use time_integration
-      use configure
-   
-      implicit none
-   
-      type (block_type), intent(inout) :: block
-      type (mesh_type), intent(inout) :: mesh
-      real (kind=RKIND), intent(in) :: dt
-   
-   
-      if (.not. config_do_restart) then
-         call init_coupled_diagnostics( block % state % time_levs(1) % state, block % diag, mesh)
-         call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, block % diag, mesh)
-      end if
-   
-   !
-   ! Note: The following initialization calls have been moved to mpas_setup_test_case()
-   !       since values computed by these routines are needed to produce initial fields
-   !
-   !   call initialize_advection_rk(mesh)
-   !   call initialize_deformation_weights(mesh)
-   
-      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
-   
-   end subroutine mpas_init_block
-   
-   
-   subroutine mpas_run(domain, output_obj, output_frame)
-   
-      use grid_types
-      use io_output
-      use timer
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-      integer, intent(inout) :: output_frame
-   
-      integer :: ntimesteps, itimestep
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block_ptr
-   
-      ! Eventually, dt should be domain specific
-      dt = config_dt
-      ntimesteps = config_ntimesteps
-   
-      call write_output_frame(output_obj, output_frame, domain)
-   
-      ! During integration, time level 1 stores the model state at the beginning of the
-      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
-      do itimestep = 1,ntimesteps
-         write(0,*) 'Doing timestep ', itimestep
-         call timer_start(&quot;time integration&quot;)
-         call mpas_timestep(domain, itimestep, dt)
-         call timer_stop(&quot;time integration&quot;)
-   
-         ! Move time level 2 fields back into time level 1 for next time step
-         call shift_time_levels_state(domain % blocklist % state)
-   
-         if (mod(itimestep, config_output_interval) == 0) then
-            call write_output_frame(output_obj, output_frame, domain)
-         end if
-         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
-            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
-            call output_state_for_domain(restart_obj, domain, restart_frame)
-            restart_frame = restart_frame + 1
-         end if
-      end do
-   
-   end subroutine mpas_run
-   
-   
-   subroutine write_output_frame(output_obj, output_frame, domain)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain and write model state to output file
-   !
-   ! Input/Output: domain - contains model state; diagnostic field are computed
-   !                        before returning
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-      use io_output
-   
-      implicit none
-   
-      integer, intent(inout) :: output_frame
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-   
-      integer :: i, j, k
-      integer :: eoe
-      type (block_type), pointer :: block_ptr
-   
-      block_ptr =&gt; domain % blocklist
-      do while (associated(block_ptr))
-         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
-         block_ptr =&gt; block_ptr % next
-      end do
-   
-      call output_state_for_domain(output_obj, domain, output_frame)
-      output_frame = output_frame + 1
-   
-   end subroutine write_output_frame
-   
-   
-   subroutine compute_output_diagnostics(state, grid)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain
-   !
-   ! Input: state - contains model prognostic fields
-   !        grid  - contains grid metadata
-   !
-   ! Output: state - upon returning, diagnostic fields will have be computed
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-   
-      implicit none
-   
-      type (state_type), intent(inout) :: state
-      type (mesh_type), intent(in) :: grid
-   
-      integer :: i, eoe
-      integer :: iEdge, k
-   
-   end subroutine compute_output_diagnostics
-   
-   
-   subroutine mpas_timestep(domain, itimestep, dt)
-   
-      use grid_types
-      use time_integration
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-      integer, intent(in) :: itimestep
-      real (kind=RKIND), intent(in) :: dt
-   
-      call timestep(domain, dt)
-   
-   end subroutine mpas_timestep
-   
-   
-   subroutine mpas_finalize(domain)
-   
-      use grid_types
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-
-      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
-   
-   end subroutine mpas_finalize
-
-end module core

Copied: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_mpas_core.F (from rev 599, branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_core.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_mpas_core.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_mpas_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,204 @@
+module mpas_core
+
+   use mpas_framework
+
+   type (io_output_object) :: restart_obj
+   integer :: restart_frame
+
+
+   contains
+
+
+   subroutine mpas_core_init(domain)
+
+      use configure
+      use grid_types
+      use test_cases
+
+      implicit none
+
+      type (domain_type), intent(inout) :: domain
+
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block
+
+
+      if (.not. config_do_restart) call setup_nhyd_test_case(domain)
+
+      !
+      ! Initialize core
+      !
+      dt = config_dt
+      block =&gt; domain % blocklist
+      do while (associated(block))
+         call mpas_init_block(block, block % mesh, dt)
+         block =&gt; block % next
+      end do
+
+      restart_frame = 1
+
+   end subroutine mpas_core_init
+
+
+   subroutine mpas_init_block(block, mesh, dt)
+   
+      use grid_types
+   !   use advection
+      use time_integration
+      use configure
+   
+      implicit none
+   
+      type (block_type), intent(inout) :: block
+      type (mesh_type), intent(inout) :: mesh
+      real (kind=RKIND), intent(in) :: dt
+   
+   
+      if (.not. config_do_restart) then
+         call init_coupled_diagnostics( block % state % time_levs(1) % state, block % diag, mesh)
+         call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, block % diag, mesh)
+      end if
+   
+   !
+   ! Note: The following initialization calls have been moved to mpas_setup_test_case()
+   !       since values computed by these routines are needed to produce initial fields
+   !
+   !   call initialize_advection_rk(mesh)
+   !   call initialize_deformation_weights(mesh)
+   
+      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
+   
+   end subroutine mpas_init_block
+   
+   
+   subroutine mpas_core_run(domain, output_obj, output_frame)
+   
+      use grid_types
+      use io_output
+      use timer
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+      integer, intent(inout) :: output_frame
+   
+      integer :: ntimesteps, itimestep
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block_ptr
+   
+      ! Eventually, dt should be domain specific
+      dt = config_dt
+      ntimesteps = config_ntimesteps
+   
+      call write_output_frame(output_obj, output_frame, domain)
+   
+      ! During integration, time level 1 stores the model state at the beginning of the
+      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
+      do itimestep = 1,ntimesteps
+         write(0,*) 'Doing timestep ', itimestep
+         call timer_start(&quot;time integration&quot;)
+         call mpas_timestep(domain, itimestep, dt)
+         call timer_stop(&quot;time integration&quot;)
+   
+         ! Move time level 2 fields back into time level 1 for next time step
+         call shift_time_levels_state(domain % blocklist % state)
+   
+         if (mod(itimestep, config_output_interval) == 0) then
+            call write_output_frame(output_obj, output_frame, domain)
+         end if
+         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
+            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
+            call output_state_for_domain(restart_obj, domain, restart_frame)
+            restart_frame = restart_frame + 1
+         end if
+      end do
+   
+   end subroutine mpas_core_run
+   
+   
+   subroutine write_output_frame(output_obj, output_frame, domain)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain and write model state to output file
+   !
+   ! Input/Output: domain - contains model state; diagnostic field are computed
+   !                        before returning
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+      use io_output
+   
+      implicit none
+   
+      integer, intent(inout) :: output_frame
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+   
+      integer :: i, j, k
+      integer :: eoe
+      type (block_type), pointer :: block_ptr
+   
+      block_ptr =&gt; domain % blocklist
+      do while (associated(block_ptr))
+         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
+         block_ptr =&gt; block_ptr % next
+      end do
+   
+      call output_state_for_domain(output_obj, domain, output_frame)
+      output_frame = output_frame + 1
+   
+   end subroutine write_output_frame
+   
+   
+   subroutine compute_output_diagnostics(state, grid)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain
+   !
+   ! Input: state - contains model prognostic fields
+   !        grid  - contains grid metadata
+   !
+   ! Output: state - upon returning, diagnostic fields will have be computed
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+   
+      implicit none
+   
+      type (state_type), intent(inout) :: state
+      type (mesh_type), intent(in) :: grid
+   
+      integer :: i, eoe
+      integer :: iEdge, k
+   
+   end subroutine compute_output_diagnostics
+   
+   
+   subroutine mpas_timestep(domain, itimestep, dt)
+   
+      use grid_types
+      use time_integration
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+      integer, intent(in) :: itimestep
+      real (kind=RKIND), intent(in) :: dt
+   
+      call timestep(domain, dt)
+   
+   end subroutine mpas_timestep
+   
+   
+   subroutine mpas_core_finalize(domain)
+   
+      use grid_types
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+
+      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
+   
+   end subroutine mpas_core_finalize
+
+end module mpas_core

Modified: branches/atmos_nonhydrostatic/src/core_ocean/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/core_ocean/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_ocean/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,6 +1,6 @@
 .SUFFIXES: .F .o
 
-OBJS = module_core.o \
+OBJS = module_mpas_core.o \
        module_test_cases.o \
        module_advection.o \
        module_time_integration.o \
@@ -19,7 +19,7 @@
 
 module_global_diagnostics.o: 
 
-module_core.o: module_advection.o module_global_diagnostics.o module_test_cases.o module_time_integration.o
+module_mpas_core.o: module_advection.o module_global_diagnostics.o module_test_cases.o module_time_integration.o
 
 clean:
         $(RM) *.o *.mod *.f90 libdycore.a

Deleted: branches/atmos_nonhydrostatic/src/core_ocean/module_core.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_ocean/module_core.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_ocean/module_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,225 +0,0 @@
-module core
-
-   use framework
-
-   type (io_output_object) :: restart_obj
-   integer :: restart_frame
-
-
-   contains
-
-
-   subroutine mpas_init(domain)
-
-      use configure
-      use grid_types
-      use test_cases
-
-      implicit none
-
-      type (domain_type), intent(inout) :: domain
-
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block
-
-
-      if (.not. config_do_restart) call setup_sw_test_case(domain)
-
-      !
-      ! Initialize core
-      !
-      dt = config_dt
-      block =&gt; domain % blocklist
-      do while (associated(block))
-         call mpas_init_block(block, block % mesh, dt)
-         block =&gt; block % next
-      end do
-
-   ! mrp 100316 In order for this to work, we need to pass domain % dminfo as an 
-   ! input arguement into mpas_init.  Ask about that later.  For now, there will be
-   ! no initial statistics write.
-   
-   !   call timer_start(&quot;global diagnostics&quot;)
-   !   call computeGlobalDiagnostics(domain % dminfo, block % state % time_levs(1) % state, mesh, 0, dt)
-   !   call timer_stop(&quot;global diagnostics&quot;)
-   !   call output_state_init(output_obj, domain, &quot;OUTPUT&quot;)
-   !   call write_output_frame(output_obj, domain)
-
-      restart_frame = 1
-
-   end subroutine mpas_init
-
-
-   subroutine mpas_init_block(block, mesh, dt)
-   
-      use grid_types
-      use time_integration
-      use RBF_interpolation
-      use vector_reconstruction
-   
-      implicit none
-   
-      type (block_type), intent(inout) :: block
-      type (mesh_type), intent(inout) :: mesh
-      real (kind=RKIND), intent(in) :: dt
-   
-   
-      call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, mesh)
-   
-      call rbfInterp_initialize(mesh)
-      call init_reconstruct(mesh)
-      call reconstruct(block % state % time_levs(1) % state, block % diag, mesh)
-   
-      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
-   
-   end subroutine mpas_init_block
-   
-   
-   subroutine mpas_run(domain, output_obj, output_frame)
-   
-      use grid_types
-      use io_output
-      use timer
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-      integer, intent(inout) :: output_frame
-   
-      integer :: ntimesteps, itimestep
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block_ptr
-   
-      ! Eventually, dt should be domain specific
-      dt = config_dt
-      ntimesteps = config_ntimesteps
-   
-      call write_output_frame(output_obj, output_frame, domain)
-   
-      ! During integration, time level 1 stores the model state at the beginning of the
-      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
-      do itimestep = 1,ntimesteps
-         write(0,*) 'Doing timestep ', itimestep
-         call timer_start(&quot;time integration&quot;)
-         call mpas_timestep(domain, itimestep, dt)
-         call timer_stop(&quot;time integration&quot;)
-   
-         ! Move time level 2 fields back into time level 1 for next time step
-         call shift_time_levels_state(domain % blocklist % state)
-   
-         if (mod(itimestep, config_output_interval) == 0) then
-            call write_output_frame(output_obj, output_frame, domain)
-         end if
-         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
-            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
-            call output_state_for_domain(restart_obj, domain, restart_frame)
-            restart_frame = restart_frame + 1
-         end if
-      end do
-
-   end subroutine mpas_run
-   
-   
-   subroutine write_output_frame(output_obj, output_frame, domain)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain and write model state to output file
-   !
-   ! Input/Output: domain - contains model state; diagnostic field are computed
-   !                        before returning
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-      use io_output
-   
-      implicit none
-   
-      integer, intent(inout) :: output_frame
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-   
-      integer :: i, j, k
-      integer :: eoe
-      type (block_type), pointer :: block_ptr
-   
-      block_ptr =&gt; domain % blocklist
-      do while (associated(block_ptr))
-         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
-         block_ptr =&gt; block_ptr % next
-      end do
-   
-      call output_state_for_domain(output_obj, domain, output_frame)
-      output_frame = output_frame + 1
-   
-   end subroutine write_output_frame
-   
-   
-   subroutine compute_output_diagnostics(state, grid)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain
-   !
-   ! Input: state - contains model prognostic fields
-   !        grid  - contains grid metadata
-   !
-   ! Output: state - upon returning, diagnostic fields will have be computed
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-   
-      implicit none
-   
-      type (state_type), intent(inout) :: state
-      type (mesh_type), intent(in) :: grid
-   
-      integer :: i, eoe
-      integer :: iEdge, k
-   
-   end subroutine compute_output_diagnostics
-   
-   
-   subroutine mpas_timestep(domain, itimestep, dt)
-   
-      use grid_types
-      use time_integration
-      use timer
-      use global_diagnostics
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-      integer, intent(in) :: itimestep
-      real (kind=RKIND), intent(in) :: dt
-      type (block_type), pointer :: block_ptr
-   
-      call timestep(domain, dt)
-   
-      if (mod(itimestep, config_stats_interval) == 0) then
-         block_ptr =&gt; domain % blocklist
-         if(associated(block_ptr % next)) then
-            write(0,*) 'Error: computeGlobalDiagnostics assumes ',&amp;
-               'that there is only one block per processor.'
-         end if
-   
-         call timer_start(&quot;global diagnostics&quot;)
-         call computeGlobalDiagnostics(domain % dminfo, &amp;
-            block_ptr % state % time_levs(2) % state, block_ptr % mesh, &amp;
-            itimestep, dt)
-         call timer_stop(&quot;global diagnostics&quot;)
-      end if
-   
-   end subroutine mpas_timestep
-   
-   
-   subroutine mpas_finalize(domain)
-   
-      use grid_types
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-
-      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
-   
-   end subroutine mpas_finalize
-
-end module core

Copied: branches/atmos_nonhydrostatic/src/core_ocean/module_mpas_core.F (from rev 599, branches/atmos_nonhydrostatic/src/core_ocean/module_core.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/core_ocean/module_mpas_core.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/core_ocean/module_mpas_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,225 @@
+module mpas_core
+
+   use mpas_framework
+
+   type (io_output_object) :: restart_obj
+   integer :: restart_frame
+
+
+   contains
+
+
+   subroutine mpas_core_init(domain)
+
+      use configure
+      use grid_types
+      use test_cases
+
+      implicit none
+
+      type (domain_type), intent(inout) :: domain
+
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block
+
+
+      if (.not. config_do_restart) call setup_sw_test_case(domain)
+
+      !
+      ! Initialize core
+      !
+      dt = config_dt
+      block =&gt; domain % blocklist
+      do while (associated(block))
+         call mpas_init_block(block, block % mesh, dt)
+         block =&gt; block % next
+      end do
+
+   ! mrp 100316 In order for this to work, we need to pass domain % dminfo as an 
+   ! input arguement into mpas_init.  Ask about that later.  For now, there will be
+   ! no initial statistics write.
+   
+   !   call timer_start(&quot;global diagnostics&quot;)
+   !   call computeGlobalDiagnostics(domain % dminfo, block % state % time_levs(1) % state, mesh, 0, dt)
+   !   call timer_stop(&quot;global diagnostics&quot;)
+   !   call output_state_init(output_obj, domain, &quot;OUTPUT&quot;)
+   !   call write_output_frame(output_obj, domain)
+
+      restart_frame = 1
+
+   end subroutine mpas_core_init
+
+
+   subroutine mpas_init_block(block, mesh, dt)
+   
+      use grid_types
+      use time_integration
+      use RBF_interpolation
+      use vector_reconstruction
+   
+      implicit none
+   
+      type (block_type), intent(inout) :: block
+      type (mesh_type), intent(inout) :: mesh
+      real (kind=RKIND), intent(in) :: dt
+   
+   
+      call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, mesh)
+   
+      call rbfInterp_initialize(mesh)
+      call init_reconstruct(mesh)
+      call reconstruct(block % state % time_levs(1) % state, block % diag, mesh)
+   
+      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
+   
+   end subroutine mpas_init_block
+   
+   
+   subroutine mpas_core_run(domain, output_obj, output_frame)
+   
+      use grid_types
+      use io_output
+      use timer
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+      integer, intent(inout) :: output_frame
+   
+      integer :: ntimesteps, itimestep
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block_ptr
+   
+      ! Eventually, dt should be domain specific
+      dt = config_dt
+      ntimesteps = config_ntimesteps
+   
+      call write_output_frame(output_obj, output_frame, domain)
+   
+      ! During integration, time level 1 stores the model state at the beginning of the
+      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
+      do itimestep = 1,ntimesteps
+         write(0,*) 'Doing timestep ', itimestep
+         call timer_start(&quot;time integration&quot;)
+         call mpas_timestep(domain, itimestep, dt)
+         call timer_stop(&quot;time integration&quot;)
+   
+         ! Move time level 2 fields back into time level 1 for next time step
+         call shift_time_levels_state(domain % blocklist % state)
+   
+         if (mod(itimestep, config_output_interval) == 0) then
+            call write_output_frame(output_obj, output_frame, domain)
+         end if
+         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
+            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
+            call output_state_for_domain(restart_obj, domain, restart_frame)
+            restart_frame = restart_frame + 1
+         end if
+      end do
+
+   end subroutine mpas_core_run
+   
+   
+   subroutine write_output_frame(output_obj, output_frame, domain)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain and write model state to output file
+   !
+   ! Input/Output: domain - contains model state; diagnostic field are computed
+   !                        before returning
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+      use io_output
+   
+      implicit none
+   
+      integer, intent(inout) :: output_frame
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+   
+      integer :: i, j, k
+      integer :: eoe
+      type (block_type), pointer :: block_ptr
+   
+      block_ptr =&gt; domain % blocklist
+      do while (associated(block_ptr))
+         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
+         block_ptr =&gt; block_ptr % next
+      end do
+   
+      call output_state_for_domain(output_obj, domain, output_frame)
+      output_frame = output_frame + 1
+   
+   end subroutine write_output_frame
+   
+   
+   subroutine compute_output_diagnostics(state, grid)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain
+   !
+   ! Input: state - contains model prognostic fields
+   !        grid  - contains grid metadata
+   !
+   ! Output: state - upon returning, diagnostic fields will have be computed
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+   
+      implicit none
+   
+      type (state_type), intent(inout) :: state
+      type (mesh_type), intent(in) :: grid
+   
+      integer :: i, eoe
+      integer :: iEdge, k
+   
+   end subroutine compute_output_diagnostics
+   
+   
+   subroutine mpas_timestep(domain, itimestep, dt)
+   
+      use grid_types
+      use time_integration
+      use timer
+      use global_diagnostics
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+      integer, intent(in) :: itimestep
+      real (kind=RKIND), intent(in) :: dt
+      type (block_type), pointer :: block_ptr
+   
+      call timestep(domain, dt)
+   
+      if (mod(itimestep, config_stats_interval) == 0) then
+         block_ptr =&gt; domain % blocklist
+         if(associated(block_ptr % next)) then
+            write(0,*) 'Error: computeGlobalDiagnostics assumes ',&amp;
+               'that there is only one block per processor.'
+         end if
+   
+         call timer_start(&quot;global diagnostics&quot;)
+         call computeGlobalDiagnostics(domain % dminfo, &amp;
+            block_ptr % state % time_levs(2) % state, block_ptr % mesh, &amp;
+            itimestep, dt)
+         call timer_stop(&quot;global diagnostics&quot;)
+      end if
+   
+   end subroutine mpas_timestep
+   
+   
+   subroutine mpas_core_finalize(domain)
+   
+      use grid_types
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+
+      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
+   
+   end subroutine mpas_core_finalize
+
+end module mpas_core

Modified: branches/atmos_nonhydrostatic/src/core_sw/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/core_sw/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_sw/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,6 +1,6 @@
 .SUFFIXES: .F .o
 
-OBJS =         module_core.o \
+OBJS =         module_mpas_core.o \
         module_test_cases.o \
         module_advection.o \
         module_time_integration.o \
@@ -19,7 +19,7 @@
 
 module_global_diagnostics.o:
 
-module_core.o: module_global_diagnostics.o module_test_cases.o module_time_integration.o module_advection.o
+module_mpas_core.o: module_global_diagnostics.o module_test_cases.o module_time_integration.o module_advection.o
 
 clean:
         $(RM) *.o *.mod *.f90 libdycore.a

Deleted: branches/atmos_nonhydrostatic/src/core_sw/module_core.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_sw/module_core.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_sw/module_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,217 +0,0 @@
-module core
-
-   use framework
-
-   type (io_output_object) :: restart_obj
-   integer :: restart_frame
-
-
-   contains
-
-
-   subroutine mpas_init(domain)
-   
-      use configure
-      use grid_types
-      use test_cases
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-   
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block
-
-
-      if (.not. config_do_restart) call setup_sw_test_case(domain)
-
-      !
-      ! Initialize core
-      !
-      dt = config_dt
-      block =&gt; domain % blocklist
-      do while (associated(block))
-         call mpas_init_block(block, block % mesh, dt)
-         block =&gt; block % next
-      end do
-
-      restart_frame = 1
-   
-   end subroutine mpas_init
-   
-   
-   subroutine mpas_init_block(block, mesh, dt)
-   
-      use grid_types
-      use time_integration
-      use RBF_interpolation
-      use vector_reconstruction
-   
-      implicit none
-   
-      type (block_type), intent(inout) :: block
-      type (mesh_type), intent(inout) :: mesh
-      real (kind=RKIND), intent(in) :: dt
-   
-   
-      call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, mesh)
-   
-      call rbfInterp_initialize(mesh)
-      call init_reconstruct(mesh)
-      call reconstruct(block % state % time_levs(1) % state, block % diag, mesh)
-   
-      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
-   
-   end subroutine mpas_init_block
-   
-   
-   subroutine mpas_run(domain, output_obj, output_frame)
-   
-      use grid_types
-      use io_output
-      use timer
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-      integer, intent(inout) :: output_frame
-   
-      integer :: ntimesteps, itimestep
-      real (kind=RKIND) :: dt
-      type (block_type), pointer :: block_ptr
-   
-      ! Eventually, dt should be domain specific
-      dt = config_dt
-      ntimesteps = config_ntimesteps
-   
-      call write_output_frame(output_obj, output_frame, domain)
-   
-      ! During integration, time level 1 stores the model state at the beginning of the
-      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
-      do itimestep = 1,ntimesteps
-         write(0,*) 'Doing timestep ', itimestep
-         call timer_start(&quot;time integration&quot;)
-         call mpas_timestep(domain, itimestep, dt)
-         call timer_stop(&quot;time integration&quot;)
-   
-         ! Move time level 2 fields back into time level 1 for next time step
-         call shift_time_levels_state(domain % blocklist % state)
-   
-         if (mod(itimestep, config_output_interval) == 0) then
-            call write_output_frame(output_obj, output_frame, domain)
-         end if
-         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
-            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
-            call output_state_for_domain(restart_obj, domain, restart_frame)
-            restart_frame = restart_frame + 1
-         end if
-      end do
-
-   end subroutine mpas_run
-   
-   
-   subroutine write_output_frame(output_obj, output_frame, domain)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain and write model state to output file
-   !
-   ! Input/Output: domain - contains model state; diagnostic field are computed
-   !                        before returning
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-      use io_output
-   
-      implicit none
-   
-      integer, intent(inout) :: output_frame
-      type (domain_type), intent(inout) :: domain
-      type (io_output_object), intent(inout) :: output_obj
-   
-      integer :: i, j, k
-      integer :: eoe
-      type (block_type), pointer :: block_ptr
-   
-      block_ptr =&gt; domain % blocklist
-      do while (associated(block_ptr))
-         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
-         block_ptr =&gt; block_ptr % next
-      end do
-   
-      call output_state_for_domain(output_obj, domain, output_frame)
-      output_frame = output_frame + 1
-   
-   end subroutine write_output_frame
-   
-   
-   subroutine compute_output_diagnostics(state, grid)
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Compute diagnostic fields for a domain
-   !
-   ! Input: state - contains model prognostic fields
-   !        grid  - contains grid metadata
-   !
-   ! Output: state - upon returning, diagnostic fields will have be computed
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   
-      use grid_types
-   
-      implicit none
-   
-      type (state_type), intent(inout) :: state
-      type (mesh_type), intent(in) :: grid
-   
-      integer :: i, eoe
-      integer :: iEdge, k
-   
-   end subroutine compute_output_diagnostics
-   
-   
-   subroutine mpas_timestep(domain, itimestep, dt)
-   
-      use grid_types
-      use time_integration
-      use timer
-      use global_diagnostics
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-      integer, intent(in) :: itimestep
-      real (kind=RKIND), intent(in) :: dt
-      type (block_type), pointer :: block_ptr
-   
-      call timestep(domain, dt)
-   
-      if(config_stats_interval .gt. 0) then
-          if(mod(itimestep, config_stats_interval) == 0) then
-              block_ptr =&gt; domain % blocklist
-              if(associated(block_ptr % next)) then
-                  write(0,*) 'Error: computeGlobalDiagnostics assumes ',&amp;
-                             'that there is only one block per processor.'
-              end if
-   
-              call timer_start(&quot;global_diagnostics&quot;)
-              call computeGlobalDiagnostics(domain % dminfo, &amp;
-                       block_ptr % state % time_levs(2) % state, block_ptr % mesh, &amp;
-                       itimestep, dt)
-              call timer_stop(&quot;global_diagnostics&quot;)
-          end if
-      end if
-   
-   end subroutine mpas_timestep
-   
-   
-   subroutine mpas_finalize(domain)
-   
-      use grid_types
-   
-      implicit none
-   
-      type (domain_type), intent(inout) :: domain 
-
-      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
-   
-   end subroutine mpas_finalize
-
-end module core

Copied: branches/atmos_nonhydrostatic/src/core_sw/module_mpas_core.F (from rev 599, branches/atmos_nonhydrostatic/src/core_sw/module_core.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/core_sw/module_mpas_core.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/core_sw/module_mpas_core.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,217 @@
+module mpas_core
+
+   use mpas_framework
+
+   type (io_output_object) :: restart_obj
+   integer :: restart_frame
+
+
+   contains
+
+
+   subroutine mpas_core_init(domain)
+   
+      use configure
+      use grid_types
+      use test_cases
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+   
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block
+
+
+      if (.not. config_do_restart) call setup_sw_test_case(domain)
+
+      !
+      ! Initialize core
+      !
+      dt = config_dt
+      block =&gt; domain % blocklist
+      do while (associated(block))
+         call mpas_init_block(block, block % mesh, dt)
+         block =&gt; block % next
+      end do
+
+      restart_frame = 1
+   
+   end subroutine mpas_core_init
+   
+   
+   subroutine mpas_init_block(block, mesh, dt)
+   
+      use grid_types
+      use time_integration
+      use RBF_interpolation
+      use vector_reconstruction
+   
+      implicit none
+   
+      type (block_type), intent(inout) :: block
+      type (mesh_type), intent(inout) :: mesh
+      real (kind=RKIND), intent(in) :: dt
+   
+   
+      call compute_solve_diagnostics(dt, block % state % time_levs(1) % state, mesh)
+   
+      call rbfInterp_initialize(mesh)
+      call init_reconstruct(mesh)
+      call reconstruct(block % state % time_levs(1) % state, block % diag, mesh)
+   
+      if (.not. config_do_restart) block % state % time_levs(1) % state % xtime % scalar = 0.0
+   
+   end subroutine mpas_init_block
+   
+   
+   subroutine mpas_core_run(domain, output_obj, output_frame)
+   
+      use grid_types
+      use io_output
+      use timer
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+      integer, intent(inout) :: output_frame
+   
+      integer :: ntimesteps, itimestep
+      real (kind=RKIND) :: dt
+      type (block_type), pointer :: block_ptr
+   
+      ! Eventually, dt should be domain specific
+      dt = config_dt
+      ntimesteps = config_ntimesteps
+   
+      call write_output_frame(output_obj, output_frame, domain)
+   
+      ! During integration, time level 1 stores the model state at the beginning of the
+      !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
+      do itimestep = 1,ntimesteps
+         write(0,*) 'Doing timestep ', itimestep
+         call timer_start(&quot;time integration&quot;)
+         call mpas_timestep(domain, itimestep, dt)
+         call timer_stop(&quot;time integration&quot;)
+   
+         ! Move time level 2 fields back into time level 1 for next time step
+         call shift_time_levels_state(domain % blocklist % state)
+   
+         if (mod(itimestep, config_output_interval) == 0) then
+            call write_output_frame(output_obj, output_frame, domain)
+         end if
+         if (mod(itimestep, config_restart_interval) == 0 .and. config_restart_interval &gt; 0) then
+            if (restart_frame == 1) call output_state_init(restart_obj, domain, &quot;RESTART&quot;)
+            call output_state_for_domain(restart_obj, domain, restart_frame)
+            restart_frame = restart_frame + 1
+         end if
+      end do
+
+   end subroutine mpas_core_run
+   
+   
+   subroutine write_output_frame(output_obj, output_frame, domain)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain and write model state to output file
+   !
+   ! Input/Output: domain - contains model state; diagnostic field are computed
+   !                        before returning
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+      use io_output
+   
+      implicit none
+   
+      integer, intent(inout) :: output_frame
+      type (domain_type), intent(inout) :: domain
+      type (io_output_object), intent(inout) :: output_obj
+   
+      integer :: i, j, k
+      integer :: eoe
+      type (block_type), pointer :: block_ptr
+   
+      block_ptr =&gt; domain % blocklist
+      do while (associated(block_ptr))
+         call compute_output_diagnostics(block_ptr % state % time_levs(1) % state, block_ptr % mesh)
+         block_ptr =&gt; block_ptr % next
+      end do
+   
+      call output_state_for_domain(output_obj, domain, output_frame)
+      output_frame = output_frame + 1
+   
+   end subroutine write_output_frame
+   
+   
+   subroutine compute_output_diagnostics(state, grid)
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Compute diagnostic fields for a domain
+   !
+   ! Input: state - contains model prognostic fields
+   !        grid  - contains grid metadata
+   !
+   ! Output: state - upon returning, diagnostic fields will have be computed
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   
+      use grid_types
+   
+      implicit none
+   
+      type (state_type), intent(inout) :: state
+      type (mesh_type), intent(in) :: grid
+   
+      integer :: i, eoe
+      integer :: iEdge, k
+   
+   end subroutine compute_output_diagnostics
+   
+   
+   subroutine mpas_timestep(domain, itimestep, dt)
+   
+      use grid_types
+      use time_integration
+      use timer
+      use global_diagnostics
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+      integer, intent(in) :: itimestep
+      real (kind=RKIND), intent(in) :: dt
+      type (block_type), pointer :: block_ptr
+   
+      call timestep(domain, dt)
+   
+      if(config_stats_interval .gt. 0) then
+          if(mod(itimestep, config_stats_interval) == 0) then
+              block_ptr =&gt; domain % blocklist
+              if(associated(block_ptr % next)) then
+                  write(0,*) 'Error: computeGlobalDiagnostics assumes ',&amp;
+                             'that there is only one block per processor.'
+              end if
+   
+              call timer_start(&quot;global_diagnostics&quot;)
+              call computeGlobalDiagnostics(domain % dminfo, &amp;
+                       block_ptr % state % time_levs(2) % state, block_ptr % mesh, &amp;
+                       itimestep, dt)
+              call timer_stop(&quot;global_diagnostics&quot;)
+          end if
+      end if
+   
+   end subroutine mpas_timestep
+   
+   
+   subroutine mpas_core_finalize(domain)
+   
+      use grid_types
+   
+      implicit none
+   
+      type (domain_type), intent(inout) :: domain 
+
+      if (restart_frame &gt; 1) call output_state_finalize(restart_obj, domain % dminfo)
+   
+   end subroutine mpas_core_finalize
+
+end module mpas_core

Modified: branches/atmos_nonhydrostatic/src/core_sw/module_time_integration.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_sw/module_time_integration.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/core_sw/module_time_integration.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -779,16 +779,10 @@
       !
       circulation(:,:) = 0.0
       do iEdge=1,nEdges
-         if (verticesOnEdge(1,iEdge) &lt;= nVertices) then
-            do k=1,nVertLevels
-               circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * u(k,iEdge)
-            end do
-         end if
-         if (verticesOnEdge(2,iEdge) &lt;= nVertices) then
-            do k=1,nVertLevels
-               circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * u(k,iEdge)
-            end do
-         end if
+         do k=1,nVertLevels
+            circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * u(k,iEdge)
+            circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * u(k,iEdge)
+         end do
       end do
       do iVertex=1,nVertices
          do k=1,nVertLevels
@@ -845,11 +839,9 @@
       do iEdge = 1,nEdges
          do i=1,nEdgesOnEdge(iEdge)
             eoe = edgesOnEdge(i,iEdge)
-            if (eoe &lt;= nEdges) then
-               do k = 1,nVertLevels
-                 v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
-              end do
-            end if
+            do k = 1,nVertLevels
+               v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
+            end do
          end do
       end do
 
@@ -902,20 +894,19 @@
 
       !
       ! Compute pv at the edges
-      !   ( this computes pv_edge at all edges bounding real cells and distance-1 ghost cells )
+      !   ( this computes pv_edge at all edges bounding real cells )
       !
       pv_edge(:,:) = 0.0
       do iVertex = 1,nVertices
         do i=1,grid % vertexDegree
-          iEdge = edgesOnVertex(i,iVertex)
-          if(iEdge &lt;= nEdges) then
-            do k=1,nVertLevels
+           iEdge = edgesOnVertex(i,iVertex)
+           do k=1,nVertLevels
               pv_edge(k,iEdge) =  pv_edge(k,iEdge)  + 0.5 * pv_vertex(k,iVertex)
-            enddo
-          endif
+           end do
         end do
       end do
 
+
       !
       ! Modify PV edge with upstream bias. 
       !

Modified: branches/atmos_nonhydrostatic/src/driver/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/driver/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/driver/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,13 +1,13 @@
 .SUFFIXES: .F .o
 
-OBJS = module_subdriver.o \
+OBJS = module_mpas_subdriver.o \
        mpas.o
 
 all: $(OBJS)
 
-module_subdriver.o: 
+module_mpas_subdriver.o: 
 
-mpas.o: module_subdriver.o
+mpas.o: module_mpas_subdriver.o
 
 clean:
         $(RM) *.o *.mod *.f90

Copied: branches/atmos_nonhydrostatic/src/driver/module_mpas_subdriver.F (from rev 599, branches/atmos_nonhydrostatic/src/driver/module_subdriver.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/driver/module_mpas_subdriver.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/driver/module_mpas_subdriver.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,86 @@
+module mpas_subdriver
+
+   use mpas_framework
+   use mpas_core
+
+   type (dm_info), pointer :: dminfo
+   type (domain_type), pointer :: domain
+   type (io_output_object) :: output_obj
+   integer :: output_frame
+
+
+   contains
+
+
+   subroutine mpas_init()

+      implicit none
+
+      real (kind=RKIND) :: dt
+
+      call timer_start(&quot;total time&quot;)
+      call timer_start(&quot;initialize&quot;)
+
+
+      !
+      ! Initialize infrastructure
+      !
+      call mpas_framework_init(dminfo, domain)
+
+
+      call input_state_for_domain(domain)
+
+
+      !
+      ! Initialize core
+      !
+      call mpas_core_init(domain)
+
+      call timer_stop(&quot;initialize&quot;)
+
+
+      !
+      ! Set up output streams to be written to by the MPAS core
+      !
+      output_frame = 1
+      call output_state_init(output_obj, domain, &quot;OUTPUT&quot;)
+
+   end subroutine mpas_init
+
+
+   subroutine mpas_run()
+
+      implicit none
+
+      call mpas_core_run(domain, output_obj, output_frame)
+
+   end subroutine mpas_run
+
+
+   subroutine mpas_finalize()
+   
+      implicit none
+
+      !
+      ! Finalize output streams
+      !
+      call output_state_finalize(output_obj, domain % dminfo)
+
+
+      !
+      ! Finalize core
+      !
+      call mpas_core_finalize(domain)
+
+      call timer_stop(&quot;total time&quot;)
+      call timer_write()
+
+
+      !
+      ! Finalize infrastructure
+      !
+      call mpas_framework_finalize(dminfo, domain)
+
+   end subroutine mpas_finalize
+
+end module mpas_subdriver

Deleted: branches/atmos_nonhydrostatic/src/driver/module_subdriver.F
===================================================================
--- branches/atmos_nonhydrostatic/src/driver/module_subdriver.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/driver/module_subdriver.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,86 +0,0 @@
-module subdriver
-
-   use framework
-   use core
-
-   type (dm_info), pointer :: dminfo
-   type (domain_type), pointer :: domain
-   type (io_output_object) :: output_obj
-   integer :: output_frame
-
-
-   contains
-
-
-   subroutine init()

-      implicit none
-
-      real (kind=RKIND) :: dt
-
-      call timer_start(&quot;total time&quot;)
-      call timer_start(&quot;initialize&quot;)
-
-
-      !
-      ! Initialize infrastructure
-      !
-      call framework_init(dminfo, domain)
-
-
-      call input_state_for_domain(domain)
-
-
-      !
-      ! Initialize core
-      !
-      call mpas_init(domain)
-
-      call timer_stop(&quot;initialize&quot;)
-
-
-      !
-      ! Set up output streams to be written to by the MPAS core
-      !
-      output_frame = 1
-      call output_state_init(output_obj, domain, &quot;OUTPUT&quot;)
-
-   end subroutine init
-
-
-   subroutine run()
-
-      implicit none
-
-      call mpas_run(domain, output_obj, output_frame)
-
-   end subroutine run
-
-
-   subroutine finalize()
-   
-      implicit none
-
-      !
-      ! Finalize output streams
-      !
-      call output_state_finalize(output_obj, domain % dminfo)
-
-
-      !
-      ! Finalize core
-      !
-      call mpas_finalize(domain)
-
-      call timer_stop(&quot;total time&quot;)
-      call timer_write()
-
-
-      !
-      ! Finalize infrastructure
-      !
-      call framework_finalize(dminfo, domain)
-
-   end subroutine finalize
-
-end module subdriver

Modified: branches/atmos_nonhydrostatic/src/driver/mpas.F
===================================================================
--- branches/atmos_nonhydrostatic/src/driver/mpas.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/driver/mpas.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,14 +1,14 @@
 program mpas
 
-   use subdriver
+   use mpas_subdriver
 
    implicit none
 
-   call init()
+   call mpas_init()
 
-   call run() 
+   call mpas_run() 
 
-   call finalize()
+   call mpas_finalize()
 
    stop
 

Modified: branches/atmos_nonhydrostatic/src/framework/Makefile
===================================================================
--- branches/atmos_nonhydrostatic/src/framework/Makefile        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/framework/Makefile        2010-11-11 22:30:06 UTC (rev 607)
@@ -4,7 +4,7 @@
    ZOLTANOBJ = module_zoltan_interface.o
 endif
 
-OBJS = module_framework.o \
+OBJS = module_mpas_framework.o \
        module_timer.o \
        module_configure.o \
        module_constants.o \
@@ -23,7 +23,7 @@
 framework: $(OBJS)
         ar -ru libframework.a $(OBJS)
 
-module_framework.o: module_dmpar.o module_io_input.o module_io_output.o module_grid_types.o module_configure.o module_timer.o
+module_mpas_framework.o: module_dmpar.o module_io_input.o module_io_output.o module_grid_types.o module_configure.o module_timer.o
 
 module_configure.o: module_dmpar.o
 

Deleted: branches/atmos_nonhydrostatic/src/framework/module_framework.F
===================================================================
--- branches/atmos_nonhydrostatic/src/framework/module_framework.F        2010-11-11 20:36:40 UTC (rev 606)
+++ branches/atmos_nonhydrostatic/src/framework/module_framework.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -1,44 +0,0 @@
-module framework
-
-   use dmpar
-   use grid_types
-   use io_input
-   use io_output
-   use configure
-   use timer
-
-
-   contains
-
-   
-   subroutine framework_init(dminfo, domain)
-
-      implicit none
-
-      type (dm_info), pointer :: dminfo
-      type (domain_type), pointer :: domain
-
-      allocate(dminfo)
-      call dmpar_init(dminfo)
-
-      call read_namelist(dminfo)
-
-      call allocate_domain(domain, dminfo)
-
-   end subroutine framework_init
-
-   
-   subroutine framework_finalize(dminfo, domain)
-  
-      implicit none
-
-      type (dm_info), pointer :: dminfo
-      type (domain_type), pointer :: domain
-
-      call deallocate_domain(domain)
-
-      call dmpar_finalize(dminfo)
-
-   end subroutine framework_finalize
-
-end module framework

Copied: branches/atmos_nonhydrostatic/src/framework/module_mpas_framework.F (from rev 599, branches/atmos_nonhydrostatic/src/framework/module_framework.F)
===================================================================
--- branches/atmos_nonhydrostatic/src/framework/module_mpas_framework.F                                (rev 0)
+++ branches/atmos_nonhydrostatic/src/framework/module_mpas_framework.F        2010-11-11 22:30:06 UTC (rev 607)
@@ -0,0 +1,44 @@
+module mpas_framework
+
+   use dmpar
+   use grid_types
+   use io_input
+   use io_output
+   use configure
+   use timer
+
+
+   contains
+
+   
+   subroutine mpas_framework_init(dminfo, domain)
+
+      implicit none
+
+      type (dm_info), pointer :: dminfo
+      type (domain_type), pointer :: domain
+
+      allocate(dminfo)
+      call dmpar_init(dminfo)
+
+      call read_namelist(dminfo)
+
+      call allocate_domain(domain, dminfo)
+
+   end subroutine mpas_framework_init
+
+   
+   subroutine mpas_framework_finalize(dminfo, domain)
+  
+      implicit none
+
+      type (dm_info), pointer :: dminfo
+      type (domain_type), pointer :: domain
+
+      call deallocate_domain(domain)
+
+      call dmpar_finalize(dminfo)
+
+   end subroutine mpas_framework_finalize
+
+end module mpas_framework

</font>
</pre>