Skip to content

Commit

Permalink
Merge pull request #155 from climbfuji/fix_grib2_errors_mrwapp
Browse files Browse the repository at this point in the history
release/public-v1: attempt to fix grib2 read errors with large task counts (draft PR)
  • Loading branch information
climbfuji authored Sep 28, 2020
2 parents 77d0099 + 790a760 commit 2837e2c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 9 deletions.
13 changes: 10 additions & 3 deletions sorc/chgres_cube.fd/model_grid.F90
Original file line number Diff line number Diff line change
Expand Up @@ -609,11 +609,14 @@ subroutine define_input_grid_gfs_grib2(localpet, npets)

implicit none

include "mpif.h"

integer, intent(in) :: localpet, npets

character(len=250) :: the_file

integer :: i, j, rc, clb(2), cub(2)
integer :: ierr

real(esmf_kind_r8), allocatable :: latitude(:,:)
real(esmf_kind_r8), allocatable :: longitude(:,:)
Expand All @@ -631,10 +634,14 @@ subroutine define_input_grid_gfs_grib2(localpet, npets)
num_tiles_input_grid = 1

the_file = trim(data_dir_input_grid) // "/" // grib2_file_input_grid
print*,'- OPEN AND INVENTORY GRIB2 FILE: ',trim(the_file)
rc=grb2_mk_inv(the_file,inv_file)
if (rc /=0) call error_handler("OPENING GRIB2 FILE",rc)
if(localpet==0) then
print*,'- OPEN AND INVENTORY GRIB2 FILE: ',trim(the_file)
rc=grb2_mk_inv(the_file,inv_file)
if (rc /=0) call error_handler("OPENING GRIB2 FILE",rc)
endif

! Wait for localpet 0 to create inventory
call mpi_barrier(mpi_comm_world, ierr)
rc = grb2_inq(the_file,inv_file,':PRES:',':surface:',nx=i_input, ny=j_input, &
lat=lat4, lon=lon4)
if (rc /= 1) call error_handler("READING GRIB2 FILE", rc)
Expand Down
9 changes: 7 additions & 2 deletions sorc/chgres_cube.fd/utils.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ subroutine error_handler(string, rc)

implicit none

include 'mpif.h'

character(len=*), intent(in) :: string

integer, intent(in) :: rc

integer :: ierr

print*,"- FATAL ERROR: ", string
print*,"- IOSTAT IS: ", rc
call mpi_abort
call mpi_abort(mpi_comm_world, 999, ierr)

end subroutine error_handler

Expand All @@ -20,6 +24,7 @@ subroutine netcdf_err( err, string )
integer, intent(in) :: err
character(len=*), intent(in) :: string
character(len=256) :: errmsg
integer :: iret

include "mpif.h"

Expand All @@ -28,7 +33,7 @@ subroutine netcdf_err( err, string )
print*,''
print*,'FATAL ERROR: ', trim(string), ': ', trim(errmsg)
print*,'STOP.'
call mpi_abort(mpi_comm_world, 999)
call mpi_abort(mpi_comm_world, 999, iret)

return
end subroutine netcdf_err
Expand Down
4 changes: 2 additions & 2 deletions sorc/sfc_climo_gen.fd/interp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ subroutine adjust_for_landice(field, vegt, idim, jdim, field_ch)

integer, parameter :: landice=15

integer :: i, j
integer :: i, j, ierr

real :: landice_value

Expand Down Expand Up @@ -348,7 +348,7 @@ subroutine adjust_for_landice(field, vegt, idim, jdim, field_ch)
enddo
case default
print*,'- FATAL ERROR IN ROUTINE ADJUST_FOR_LANDICE. UNIDENTIFIED FIELD : ', field_ch
call mpi_abort(mpi_comm_world, 57)
call mpi_abort(mpi_comm_world, 57, ierr)
end select

end subroutine adjust_for_landice
6 changes: 4 additions & 2 deletions sorc/sfc_climo_gen.fd/model_grid.F90
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,14 @@ subroutine define_model_grid(localpet, npets)

implicit none

include 'mpif.h'

integer, intent(in) :: localpet, npets

character(len=500) :: the_file

integer :: error, id_dim, id_tiles, ncid
integer :: id_grid_tiles
integer :: id_grid_tiles, ierr
integer :: extra, rc, tile
integer, allocatable :: decomptile(:,:)

Expand Down Expand Up @@ -124,7 +126,7 @@ subroutine define_model_grid(localpet, npets)
if (mod(npets,num_tiles) /= 0) then
print*,'- FATAL ERROR: MUST RUN THIS PROGRAM WITH A TASK COUNT THAT'
print*,'- IS A MULTIPLE OF THE NUMBER OF TILES.'
call mpi_abort
call mpi_abort(mpi_comm_world, 44, ierr)
endif

!-----------------------------------------------------------------------
Expand Down

0 comments on commit 2837e2c

Please sign in to comment.