<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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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, &
nx, ny, nzz, &
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>