<p><b>dwj07@fsu.edu</b> 2012-11-29 13:50:09 -0700 (Thu, 29 Nov 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Some small cleanups to the coupling branch.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/cesm_coupling/src/framework/mpas_configure.F
===================================================================
--- branches/ocean_projects/cesm_coupling/src/framework/mpas_configure.F        2012-11-29 00:06:44 UTC (rev 2327)
+++ branches/ocean_projects/cesm_coupling/src/framework/mpas_configure.F        2012-11-29 20:50:09 UTC (rev 2328)
@@ -12,7 +12,7 @@
       implicit none
 
       type (dm_info), intent(in) :: dminfo
-      character (len=StrKIND), optional :: nml_filename
+      character (len=*), optional :: nml_filename
 
       character (len=StrKIND) :: filename
 

Modified: branches/ocean_projects/cesm_coupling/src/framework/mpas_dmpar.F
===================================================================
--- branches/ocean_projects/cesm_coupling/src/framework/mpas_dmpar.F        2012-11-29 00:06:44 UTC (rev 2327)
+++ branches/ocean_projects/cesm_coupling/src/framework/mpas_dmpar.F        2012-11-29 20:50:09 UTC (rev 2328)
@@ -83,9 +83,7 @@
          dminfo % comm = mpi_comm
          dminfo % using_external_comm = .true.
       else
-#ifndef MPAS_CESM
          call MPI_Init(mpi_ierr)
-#endif
          dminfo % comm = MPI_COMM_WORLD
          dminfo % using_external_comm = .false.
       end if
@@ -100,7 +98,9 @@
       write(0,'(a,i5,a,i5,a)') 'task ', mpi_rank, ' of ', mpi_size, &amp;
         ' is running'
 
+#ifndef MPAS_CESM
       call open_streams(dminfo % my_proc_id)
+#endif
 
       dminfo % info = MPI_INFO_NULL
 #else

Modified: branches/ocean_projects/cesm_coupling/src/framework/mpas_framework.F
===================================================================
--- branches/ocean_projects/cesm_coupling/src/framework/mpas_framework.F        2012-11-29 00:06:44 UTC (rev 2327)
+++ branches/ocean_projects/cesm_coupling/src/framework/mpas_framework.F        2012-11-29 20:50:09 UTC (rev 2328)
@@ -13,7 +13,7 @@
    contains
 
    
-   subroutine mpas_framework_init(dminfo, domain, mpi_comm, nml_filename)
+   subroutine mpas_framework_init(dminfo, domain, mpi_comm, nml_filename, io_system)
 
       implicit none
 
@@ -21,7 +21,8 @@
       type (domain_type), pointer :: domain
       integer, intent(in), optional :: mpi_comm
 
-      character (len=StrKIND), optional :: nml_filename
+      character (len=*), optional :: nml_filename
+      type (iosystem_desc_t), optional, pointer :: io_system
 
       integer :: pio_num_iotasks
       integer :: pio_stride
@@ -29,11 +30,7 @@
       allocate(dminfo)
       call mpas_dmpar_init(dminfo, mpi_comm)
 
-      if(present(nml_filename)) then
-         call mpas_read_namelist(dminfo, nml_filename)
-      else
-         call mpas_read_namelist(dminfo)
-      end if
+      call mpas_read_namelist(dminfo, nml_filename)
 
       call mpas_allocate_domain(domain, dminfo)
       
@@ -44,19 +41,20 @@
       if (pio_num_iotasks == 0) then
          pio_num_iotasks = domain % dminfo % nprocs
       end if
-      call MPAS_io_init(dminfo, pio_num_iotasks, pio_stride)
+      call MPAS_io_init(dminfo, pio_num_iotasks, pio_stride, io_system)
 
    end subroutine mpas_framework_init
 
    
-   subroutine mpas_framework_finalize(dminfo, domain)
+   subroutine mpas_framework_finalize(dminfo, domain, io_system)
   
       implicit none
 
       type (dm_info), pointer :: dminfo
       type (domain_type), pointer :: domain
+      type (iosystem_desc_t), optional, pointer :: io_system
 
-      call MPAS_io_finalize()
+      call MPAS_io_finalize(io_system)
 
       call mpas_deallocate_domain(domain)
 

Modified: branches/ocean_projects/cesm_coupling/src/framework/mpas_io.F
===================================================================
--- branches/ocean_projects/cesm_coupling/src/framework/mpas_io.F        2012-11-29 00:06:44 UTC (rev 2327)
+++ branches/ocean_projects/cesm_coupling/src/framework/mpas_io.F        2012-11-29 20:50:09 UTC (rev 2328)
@@ -187,37 +187,34 @@
 
    contains
 
-   subroutine MPAS_io_set_iosys(io_system)
-      type (iosystem_desc_t), pointer :: io_system
+   subroutine MPAS_io_init(dminfo, io_task_count, io_task_stride, io_system, ierr)
 
-      pio_iosystem =&gt; io_system
-   end subroutine MPAS_io_set_iosys
-
-   subroutine MPAS_io_init(dminfo, io_task_count, io_task_stride, ierr)
-
       implicit none
 
       type (dm_info), intent(in) :: dminfo
       integer, intent(in) :: io_task_count
       integer, intent(in) :: io_task_stride
+      type (iosystem_desc_t), optional, pointer :: io_system
       integer, intent(out), optional :: ierr
 
       if (present(ierr)) ierr = MPAS_IO_NOERR
 
       local_dminfo = dminfo
 
-#ifndef MPAS_CESM
-      call PIO_init(local_dminfo % my_proc_id, &amp;     ! comp_rank
-                    local_dminfo % comm,       &amp;     ! comp_comm
-                    io_task_count,             &amp;     ! num_iotasks
-                    0,                         &amp;     ! num_aggregator
-                    io_task_stride,            &amp;     ! stride
-                    PIO_rearr_box,             &amp;     ! rearr
-                    pio_iosystem)                    ! iosystem
+      if(present(io_system)) then
+        pio_iosystem =&gt; io_system
+      else
+        call PIO_init(local_dminfo % my_proc_id, &amp;     ! comp_rank
+                      local_dminfo % comm,       &amp;     ! comp_comm
+                      io_task_count,             &amp;     ! num_iotasks
+                      0,                         &amp;     ! num_aggregator
+                      io_task_stride,            &amp;     ! stride
+                      PIO_rearr_box,             &amp;     ! rearr
+                      pio_iosystem)                    ! iosystem
+  
+        call pio_seterrorhandling(pio_iosystem, PIO_BCAST_ERROR)
+      end if
 
-      call pio_seterrorhandling(pio_iosystem, PIO_BCAST_ERROR)
-#endif
-
    end subroutine MPAS_io_init
 
    
@@ -3390,10 +3387,11 @@
    end subroutine MPAS_io_close
 
 
-   subroutine MPAS_io_finalize(ierr)
+   subroutine MPAS_io_finalize(io_system, ierr)
 
       implicit none
 
+      type (iosystem_desc_t), optional, pointer :: io_system
       integer, intent(out), optional :: ierr
 
       integer :: pio_ierr
@@ -3416,13 +3414,13 @@
       end do
 
 !write(0,*) 'MGD PIO_finalize'
-#ifndef MPAS_CESM
-      call PIO_finalize(pio_iosystem, pio_ierr)
-      if (pio_ierr /= PIO_noerr) then
-         if (present(ierr)) ierr = MPAS_IO_ERR_PIO
-         return
+      if(.not.present(io_system)) then
+        call PIO_finalize(pio_iosystem, pio_ierr)
+        if (pio_ierr /= PIO_noerr) then
+           if (present(ierr)) ierr = MPAS_IO_ERR_PIO
+           return
+        end if
       end if
-#endif
 
    end subroutine MPAS_io_finalize
 

Modified: branches/ocean_projects/cesm_coupling/src/framework/streams.c
===================================================================
--- branches/ocean_projects/cesm_coupling/src/framework/streams.c        2012-11-29 00:06:44 UTC (rev 2327)
+++ branches/ocean_projects/cesm_coupling/src/framework/streams.c        2012-11-29 20:50:09 UTC (rev 2328)
@@ -20,7 +20,6 @@
 
 #ifndef MPAS_DEBUG
    if(*id == 0){
-#ifndef MPAS_CESM
            sprintf(fname, &quot;log.%4.4i.err&quot;, *id);
            fd_err = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);
            if (dup2(fd_err, 2) &lt; 0) {
@@ -34,7 +33,6 @@
                    printf(&quot;Error duplicating STDOUT</font>
<font color="gray">&quot;);
                    return;
            }
-#endif
    } else {
            sprintf(fname, &quot;/dev/null&quot;, *id);
            fd_err = open(fname,O_CREAT|O_WRONLY|O_TRUNC,0644);

Modified: branches/ocean_projects/cesm_coupling/src/ocean_cesm_driver/ocn_comp_mct.F
===================================================================
--- branches/ocean_projects/cesm_coupling/src/ocean_cesm_driver/ocn_comp_mct.F        2012-11-29 00:06:44 UTC (rev 2327)
+++ branches/ocean_projects/cesm_coupling/src/ocean_cesm_driver/ocn_comp_mct.F        2012-11-29 20:50:09 UTC (rev 2328)
@@ -76,6 +76,7 @@
    character(len=StrKIND) :: runtype         
 
    type(seq_infodata_type), pointer :: infodata   
+   type (iosystem_desc_t), pointer :: io_system 
 
    !! MPAS-O Datatypes
    type (dm_info), pointer :: dminfo
@@ -137,9 +138,6 @@
 
     integer :: lbnum
 
-!   type (iosystem_desc_t), pointer, private :: io_system 
-    type (iosystem_desc_t), pointer :: io_system 
-
 !-----------------------------------------------------------------------
 !
 !  set cdata pointers
@@ -208,9 +206,8 @@
    nml_filename = &quot;mpaso.in&quot;
 
    io_system =&gt; shr_pio_getiosys(ocnid)
-   call mpas_io_set_iosys(io_system)
 
-   call mpas_framework_init(dminfo, domain, mpi_communicator_ocn, nml_filename)
+   call mpas_framework_init(dminfo, domain, mpi_communicator_ocn, nml_filename, io_system)
 
    my_task = dminfo % my_proc_id
    call mpas_timer_start(&quot;total time&quot;)
@@ -711,7 +708,7 @@
     call mpas_timer_stop(&quot;total time&quot;)
     call mpas_timer_write()
     call mpas_core_finalize(domain)
-    call mpas_framework_finalize(dminfo, domain)
+    call mpas_framework_finalize(dminfo, domain, io_system)
 
   end subroutine ocn_final_mct!}}}
 

</font>
</pre>