Overflow when type cast to 4-byte integer" using nfmpi_get_vara_int

Wei-keng Liao wkliao at eecs.northwestern.edu
Fri Sep 16 10:18:05 CDT 2016


Hi, Xueli

Could you print the values of startxy and countxy before calling
nfmpi_get_vara_real_all? I suspect their values are too large,
based on the error message you got.


Wei-keng

On Sep 14, 2016, at 8:42 PM, Xueli Huo wrote:

> Hi, all,
> 
> I am trying to use nfmpi_get_vara_all to get variable values from a CDF-1 file with pnetcdf 1.6.1 and mpi 3. 
> There is a problem that I am not able to solve though I already spent three days trying to figure out what it was on earth.
> 
> The error message is "Overflow when type cast to 4-byte integer."  Here is my code. It is also attached.
> 
> 
> program trypnetcdf
>   2 
>   3 use pnetcdf ! Replace nf_ functions with nfmpi_ functions. Huo, 28/08/2016
>   4 use module_mpp_land, only: io_id, global_nx, global_ny, my_id, mpp_land_sync,MPP_LAND_PAR_INI, mpp_land_init, getLocalXY
>   5 
>   6 implicit none
>   7 
>   8 include 'mpif.h'
>   9 
>  10 integer ::  i, j
>  11 integer ::  ix_tmp, jx_tmp
>  12 integer :: ierr
>  13 integer                              ::  xstart, xend, ystart, yend
>  14 real, ALLOCATABLE, DIMENSION(:,:)    ::  IVGTYP    ! vegetation type
>  15 character(len=256) :: hrldas_constants_file
>  16 
>  17 call  MPP_LAND_INIT()
>  18 ix_tmp = 1600
>  19 jx_tmp =1040
>  20 
>  21 call MPP_LAND_PAR_INI(1,ix_tmp,jx_tmp,1)
>  22 call getLocalXY(ix_tmp,jx_tmp,xstart,ystart,xend,yend)
>  23 
>  24 
>  25 hrldas_constants_file="/HOME/gcess_weigong_1/WORKSPACE/CLDASIN/2008010101.LDASIN_DOMAIN0"
>  26 
>  27 ALLOCATE ( IVGTYP    (XSTART:XEND,YSTART:YEND) )    ! vegetation type
>  28 
>  29 call get_ivgtyp(trim(hrldas_constants_file), xstart, xend, ystart, yend, ivgtyp, "PSFC")
>  30 
>  31 
>  32 call MPI_COMM_RANK(MPI_COMM_WORLD, my_id, ierr) ! Huo, 29/08/2016
>  33 if (ierr /= MPI_SUCCESS) stop "MPI_COMM_RANK"
>  34 
>  35 if(my_id == 0) then
>  36     print *, 'xstart = ',xstart,'xend = ',xend,'ystart = ',ystart,'yend = ',yend
>  37     do i = xstart, xend
>  38         do j = ystart, yend
>  39             print *, ivgtyp(i,j)
>  40         end do
>  41     end do
>  42 endif
>  43 
>  44 contains
>  45 
>  46 subroutine get_ivgtyp(flnm, xstart, xend, ystart, yend, array, varname)
>  47 implicit none
>  48 character(len=*),                             intent(in):: flnm
>  49 integer                      ,                intent(in):: xstart, xend, ystart, yend
>  50 real, dimension(xstart:xend,ystart:yend),     intent(out):: array
>  51 character(len=*),                             intent(in):: varname
>  52 integer(KIND=MPI_OFFSET_KIND),dimension(2)              ::startxy, countxy
>  53 integer :: ierr, ncid, varid
>  54 
>  55 startxy=(/xstart,ystart/)
>  56 countxy=(/xend-xstart+1, yend-ystart+1/)
>  57 
>  58 if(my_id == 0) then
>  59 print *, xstart, xend, ystart, yend
>  60 endif
>  61 
>  62 ierr = nfmpi_open(MPI_COMM_WORLD, trim(flnm), NF_NOWRITE, MPI_INFO_NULL, ncid)
>  63 if (ierr /= 0) stop "NFMPI_OPEN"
>  64 ierr = nfmpi_inq_varid(ncid, varname, varid)
>  65 if (ierr /= 0) stop "NFMPI_INQ_VARID"
>  66 
>  67 !ierr = nfmpi_get_vara_int_all(ncid, varid, (/xstart,ystart/), (/xend-xstart+1, yend-ystart+1/), array) ! 06/09/2016, Huo.
>  68 ierr = nfmpi_get_vara_real_all(ncid, varid, startxy, countxy, array) ! 06/09/2016, Huo.
>  69 print *, ierr
>  70 if (ierr /= 0) stop "NFMPI_GET_VARA_INT_ALL"
>  71 
>  72 ierr=nfmpi_close(ncid)
>  73 if (ierr /= 0) stop "NFMPI_CLOSE"
>  74 
>  75 end subroutine get_ivgtyp
>  76 
>  77 end program trypnetcdf
> 
> 
> 
> --
> Xueli Huo,
> College of Global Change and Earth System Science
> Beijing Normal Unviersity
> Xinjiekouwai Street, No 19
> Haidian District 
> Beijing, 100875, China
> 
> <trypnetcdf.F>



More information about the parallel-netcdf mailing list