@@ -430,6 +430,11 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
430430 sunklabels, &
431431 varid)
432432
433+ if (indep_io) then
434+ err = nfmpi_begin_indep_data(ncid)
435+ if (err .NE. NF_NOERR) call check(err, " nfmpi_begin_indep_data" )
436+ endif
437+
433438 global_offset = n_to_left(MyPE)
434439!- ----------------------------------------------------------------------------
435440! store the tree information
@@ -442,17 +447,27 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
442447 err = nfmpi_iput_vara_int(ncid, varid(1 ), starts, counts, lrefine, reqs(1 ))
443448 if (err .NE. NF_NOERR) call check(err, " nfmpi_iput_vara_int: lrefine sp" )
444449 else
445- err = nfmpi_put_vara_int_all(ncid, varid(1 ), starts, counts, lrefine)
446- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int_all: lrefine sp" )
450+ if (indep_io) then
451+ err = nfmpi_put_vara_int(ncid, varid(1 ), starts, counts, lrefine)
452+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int: lrefine sp" )
453+ else
454+ err = nfmpi_put_vara_int_all(ncid, varid(1 ), starts, counts, lrefine)
455+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int_all: lrefine sp" )
456+ endif
447457 endif
448458
449459! store the nodetype
450460 if (use_nonblocking_io) then
451461 err = nfmpi_iput_vara_int(ncid, varid(2 ), starts, counts, nodetype, reqs(2 ))
452462 if (err .NE. NF_NOERR) call check(err, " nfmpi_iput_vara_int: nodetype sp" )
453463 else
454- err = nfmpi_put_vara_int_all(ncid, varid(2 ), starts, counts, nodetype)
455- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int_all: nodetype sp" )
464+ if (indep_io) then
465+ err = nfmpi_put_vara_int(ncid, varid(2 ), starts, counts, nodetype)
466+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int: nodetype sp" )
467+ else
468+ err = nfmpi_put_vara_int_all(ncid, varid(2 ), starts, counts, nodetype)
469+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int_all: nodetype sp" )
470+ endif
456471 endif
457472
458473! store the global id
@@ -464,8 +479,13 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
464479 err = nfmpi_iput_vara_int(ncid, varid(3 ), starts, counts, gid, reqs(3 ))
465480 if (err .NE. NF_NOERR) call check(err, " nfmpi_iput_vara_int: gid sp" )
466481 else
467- err = nfmpi_put_vara_int_all(ncid, varid(3 ), starts, counts, gid)
468- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int_all: gid sp" )
482+ if (indep_io) then
483+ err = nfmpi_put_vara_int(ncid, varid(3 ), starts, counts, gid)
484+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int: gid sp" )
485+ else
486+ err = nfmpi_put_vara_int_all(ncid, varid(3 ), starts, counts, gid)
487+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_int_all: gid sp" )
488+ endif
469489 endif
470490
471491!- ----------------------------------------------------------------------------
@@ -484,8 +504,13 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
484504 err = nfmpi_iput_vara_real(ncid, varid(4 ), starts, counts, coord_single, reqs(4 ))
485505 if (err .NE. NF_NOERR) call check(err, " nfmpi_iput_vara_real: coord sp" )
486506 else
487- err = nfmpi_put_vara_real_all(ncid, varid(4 ), starts, counts, coord_single)
488- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_read_all: coord sp" )
507+ if (indep_io) then
508+ err = nfmpi_put_vara_real(ncid, varid(4 ), starts, counts, coord_single)
509+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_read: coord sp" )
510+ else
511+ err = nfmpi_put_vara_real_all(ncid, varid(4 ), starts, counts, coord_single)
512+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_read_all: coord sp" )
513+ endif
489514 endif
490515
491516! store the block size
@@ -501,8 +526,13 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
501526 err = nfmpi_iput_vara_real(ncid, varid(5 ), starts, counts, blk_sz_single, reqs(5 ))
502527 if (err .NE. NF_NOERR) call check(err, " nfmpi_iput_vara_real: size sp" )
503528 else
504- err = nfmpi_put_vara_real_all(ncid, varid(5 ), starts, counts, blk_sz_single)
505- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: size sp" )
529+ if (indep_io) then
530+ err = nfmpi_put_vara_real(ncid, varid(5 ), starts, counts, blk_sz_single)
531+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real: size sp" )
532+ else
533+ err = nfmpi_put_vara_real_all(ncid, varid(5 ), starts, counts, blk_sz_single)
534+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: size sp" )
535+ endif
506536 endif
507537
508538! store the bounding box
@@ -522,8 +552,13 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
522552 err = nfmpi_iput_vara_real(ncid, varid(6 ), starts, counts, bnd_single, reqs(6 ))
523553 if (err .NE. NF_NOERR) call check(err, " nfmpi_iput_vara_real: bnd_box" )
524554 else
525- err = nfmpi_put_vara_real_all(ncid, varid(6 ), starts, counts, bnd_single)
526- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: bnd_box" )
555+ if (indep_io) then
556+ err = nfmpi_put_vara_real(ncid, varid(6 ), starts, counts, bnd_single)
557+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real: bnd_box" )
558+ else
559+ err = nfmpi_put_vara_real_all(ncid, varid(6 ), starts, counts, bnd_single)
560+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: bnd_box" )
561+ endif
527562 endif
528563
529564 if (use_nonblocking_io) then
@@ -614,8 +649,13 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
614649 err = nfmpi_bput_vara_real(ncid, varid(6 + ivar), starts, counts, unkt_crn, reqs(ivar+6 ))
615650 if (err .NE. NF_NOERR) call check(err, " nfmpi_bput_vara_real: unknowns sp" )
616651 else
617- err = nfmpi_put_vara_real_all(ncid, varid(6 + ivar), starts, counts, unkt_crn)
618- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: unknowns sp" )
652+ if (indep_io) then
653+ err = nfmpi_put_vara_real(ncid, varid(6 + ivar), starts, counts, unkt_crn)
654+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real: unknowns sp" )
655+ else
656+ err = nfmpi_put_vara_real_all(ncid, varid(6 + ivar), starts, counts, unkt_crn)
657+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: unknowns sp" )
658+ endif
619659 endif
620660
621661 else
@@ -638,8 +678,13 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
638678 err = nfmpi_bput_vara_real(ncid, varid(6 + ivar), starts, counts, unkt, reqs(ivar+6 ))
639679 if (err .NE. NF_NOERR) call check(err, " nfmpi_bput_vara_real: unknowns sp" )
640680 else
641- err = nfmpi_put_vara_real_all(ncid, varid(6 + ivar), starts, counts, unkt)
642- if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: unknowns sp" )
681+ if (indep_io) then
682+ err = nfmpi_put_vara_real(ncid, varid(6 + ivar), starts, counts, unkt)
683+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real: unknowns sp" )
684+ else
685+ err = nfmpi_put_vara_real_all(ncid, varid(6 + ivar), starts, counts, unkt)
686+ if (err .NE. NF_NOERR) call check(err, " nfmpi_put_vara_real_all: unknowns sp" )
687+ endif
643688 endif
644689 endif
645690
@@ -648,15 +693,19 @@ double precision function plotfile_ncmpi_par(filenum, simtime, corners)
648693 ! wait for all nonblocking requests to complete
649694 if (use_nonblocking_io) then
650695 ! wait for the nonblocking I/O to complete
651- err = nfmpi_wait_all(ncid, num_out+6 , reqs, stats)
652- if (err .NE. NF_NOERR) &
653- call check(err, " (sp) nfmpi_wait_all: " )
696+ if (indep_io) then
697+ err = nfmpi_wait(ncid, num_out+6 , reqs, stats)
698+ if (err .NE. NF_NOERR) call check(err, " (sp) nfmpi_wait: " )
699+ else
700+ err = nfmpi_wait_all(ncid, num_out+6 , reqs, stats)
701+ if (err .NE. NF_NOERR) call check(err, " (sp) nfmpi_wait_all: " )
702+ endif
654703
655704 ! check the status of each nonblocking request
656705 do i= 1 , num_out+6
657706 write (str,' (I2)' ) i
658707 if (stats(i) .NE. NF_NOERR) &
659- call check(stats(i), ' (sp) nfmpi_wait_all req ' // trim (str))
708+ call check(stats(i), ' (sp) nfmpi_wait(_all) req ' // trim (str))
660709 enddo
661710
662711 ! detach the temporary buffer
0 commit comments