<p><b>duda</b> 2011-11-07 15:52:37 -0700 (Mon, 07 Nov 2011)</p><p>BRANCH COMMIT<br>
<br>
Add error checking for static data file reads in initialization core.<br>
<br>
<br>
M    src/core_init_nhyd_atmos/module_test_cases.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_init_nhyd_atmos/module_test_cases.F
===================================================================
--- branches/atmos_physics/src/core_init_nhyd_atmos/module_test_cases.F        2011-11-07 22:39:45 UTC (rev 1177)
+++ branches/atmos_physics/src/core_init_nhyd_atmos/module_test_cases.F        2011-11-07 22:52:37 UTC (rev 1178)
@@ -2247,8 +2247,8 @@
                               rarray, &amp;
                               nx, ny, nzz, &amp;
                               isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+            call check_read_error(istatus, fname, dminfo)
+
             iPoint = 1
             do j=4,ny-3
             do i=4,nx-3
@@ -2307,7 +2307,7 @@
                               rarray, &amp;
                               nx, ny, nzz, &amp;
                               isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
+            call check_read_error(istatus, fname, dminfo)
 
             iPoint = 1
             do j=1,ny
@@ -2369,7 +2369,7 @@
                               rarray, &amp;
                               nx, ny, nzz, &amp;
                               isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
+            call check_read_error(istatus, fname, dminfo)
 
             iPoint = 1
             do j=1,ny
@@ -2431,7 +2431,7 @@
                               rarray, &amp;
                               nx, ny, nzz, &amp;
                               isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
+            call check_read_error(istatus, fname, dminfo)
 
             iPoint = 1
             do j=1,ny
@@ -2533,8 +2533,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       soiltemp_1deg(1:180,1:180) = rarray(4:183,4:183,1)
 
       write(fname,'(a,i5.5,a1,i5.5,a1,i5.5,a1,i5.5)') trim(config_geog_data_path)//'soiltemp_1deg/',181,'-',360,'.',1,'-',180
@@ -2543,8 +2543,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       soiltemp_1deg(181:360,1:180) = rarray(4:183,4:183,1)
 
       interp_list(1) = FOUR_POINT
@@ -2608,8 +2608,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       maxsnowalb(1:180,1:180) = rarray(4:183,4:183,1)
 
       write(fname,'(a,i5.5,a1,i5.5,a1,i5.5,a1,i5.5)') trim(config_geog_data_path)//'maxsnowalb/',181,'-',360,'.',1,'-',180
@@ -2618,8 +2618,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       maxsnowalb(181:360,1:180) = rarray(4:183,4:183,1)
 
       interp_list(1) = FOUR_POINT
@@ -2686,8 +2686,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       vegfra(1:1250,1:1250,1:12) = rarray(4:1253,4:1253,1:12)
 
       write(fname,'(a,i5.5,a1,i5.5,a1,i5.5,a1,i5.5)') trim(config_geog_data_path)//'greenfrac/',1251,'-',2500,'.',1,'-',1250
@@ -2696,8 +2696,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       vegfra(1251:2500,1:1250,1:12) = rarray(4:1253,4:1253,1:12)
 
       do iCell=1,grid%nCells
@@ -2757,8 +2757,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       vegfra(1:1250,1:1250,1:12) = rarray(4:1253,4:1253,1:12)
 
       write(fname,'(a,i5.5,a1,i5.5,a1,i5.5,a1,i5.5)') trim(config_geog_data_path)//'albedo_ncep/',1251,'-',2500,'.',1,'-',1250
@@ -2767,8 +2767,8 @@
                         rarray, &amp;
                         nx, ny, nzz, &amp;
                         isigned, endian, scalefactor, wordsize, istatus)
-write(0,*) istatus
-write(0,*) 'min/max = ',minval(rarray(:,:,:)),maxval(rarray(:,:,:))
+      call check_read_error(istatus, fname, dminfo)
+
       vegfra(1251:2500,1:1250,1:12) = rarray(4:1253,4:1253,1:12)
 
       do iCell=1,grid%nCells
@@ -4586,4 +4586,20 @@
 
    end function vertical_interp
 
+
+   subroutine check_read_error(istatus, fname, dminfo)
+
+      implicit none
+
+      integer, intent(in) :: istatus
+      character (len=*), intent(in) :: fname
+      type (dm_info), intent(in) :: dminfo
+
+      if (istatus /= 0) then
+         write(0,*) 'ERROR: Could not read file '//trim(fname)
+         call dmpar_abort(dminfo)
+      end if
+
+   end subroutine check_read_error
+
 end module test_cases

</font>
</pre>