Skip to content

Commit 508657b

Browse files
committed
fix issue with mpi-serial io
1 parent eb2e04e commit 508657b

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/share/util/shr_pio_mod.F90

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -506,12 +506,17 @@ subroutine shr_pio_read_default_namelist(nlfilename, Comm, pio_stride, pio_root,
506506
call shr_mpi_bcast(pio_buffer_size_limit, Comm)
507507
call shr_mpi_bcast(pio_async_interface, Comm)
508508
call shr_mpi_bcast(pio_rearranger, Comm)
509+
if (npes == 1) then
510+
pio_rearr_comm_max_pend_req_comp2io = 0
511+
pio_rearr_comm_max_pend_req_io2comp = 0
512+
endif
513+
509514

510-
call shr_pio_rearr_opts_set(Comm, pio_rearr_comm_type, pio_rearr_comm_fcd, &
511-
pio_rearr_comm_max_pend_req_comp2io, pio_rearr_comm_enable_hs_comp2io, &
512-
pio_rearr_comm_enable_isend_comp2io, &
513-
pio_rearr_comm_max_pend_req_io2comp, pio_rearr_comm_enable_hs_io2comp, &
514-
pio_rearr_comm_enable_isend_io2comp, pio_numiotasks)
515+
call shr_pio_rearr_opts_set(Comm, pio_rearr_comm_type, pio_rearr_comm_fcd, &
516+
pio_rearr_comm_max_pend_req_comp2io, pio_rearr_comm_enable_hs_comp2io, &
517+
pio_rearr_comm_enable_isend_comp2io, &
518+
pio_rearr_comm_max_pend_req_io2comp, pio_rearr_comm_enable_hs_io2comp, &
519+
pio_rearr_comm_enable_isend_io2comp, pio_numiotasks)
515520

516521
end subroutine shr_pio_read_default_namelist
517522

@@ -807,7 +812,7 @@ subroutine shr_pio_rearr_opts_set(comm, pio_rearr_comm_type, pio_rearr_comm_fcd,
807812
end select
808813

809814
! buf(3) = max_pend_req_comp2io
810-
if((pio_rearr_comm_max_pend_req_comp2io <= 0) .and. &
815+
if((pio_rearr_comm_max_pend_req_comp2io < 0) .and. &
811816
(pio_rearr_comm_max_pend_req_comp2io /= PIO_REARR_COMM_UNLIMITED_PEND_REQ)) then
812817

813818
! Small multiple of pio_numiotasks has proven to perform
@@ -839,7 +844,7 @@ subroutine shr_pio_rearr_opts_set(comm, pio_rearr_comm_type, pio_rearr_comm_fcd,
839844
end if
840845

841846
! buf(6) = max_pend_req_io2comp
842-
if((pio_rearr_comm_max_pend_req_io2comp <= 0) .and. &
847+
if((pio_rearr_comm_max_pend_req_io2comp < 0) .and. &
843848
(pio_rearr_comm_max_pend_req_io2comp /= PIO_REARR_COMM_UNLIMITED_PEND_REQ)) then
844849
write(shr_log_unit, *) "Invalid PIO rearranger comm max pend req (io2comp), ", pio_rearr_comm_max_pend_req_io2comp
845850
write(shr_log_unit, *) "Resetting PIO rearranger comm max pend req (io2comp) to ", PIO_REARR_COMM_DEF_MAX_PEND_REQ

0 commit comments

Comments
 (0)