[mpich-discuss] MPI_Info_get()

Wei-keng Liao wkliao at ece.northwestern.edu
Sat Mar 1 22:17:44 CST 2008


According to MPI-2, function MPI_Info_get() is defined as:
  MPI_INFO_GET(info, key, valuelen, value, flag)
"If such a key exists, it sets flag to true and returns the value in 
value, otherwise it sets flag to false and leaves value unchanged."

I found that C programs of mpich2-1.0.6p1 follow the definition, but
Fortran programs have problems for the otherwise case.
I.e. when the flag is returned false, the content of value was changed.
Attached is a test program to reproduce the problem.

Wei-keng
--------------------------------------------------------------
        program main
        use mpi
        implicit none

        integer i, argc, fp, info, ierr
        integer iargc
        logical flag
        character(len = 256) :: argv(2), value

        call MPI_Init(ierr)

        argc = IARGC()
        if (argc .NE. 2) then
            print *, 'Usage: filename key'
            goto 999
        endif
        do i=1, argc
            call getarg(i, argv(i))
        enddo

        call MPI_File_open(MPI_COMM_WORLD, argv(1), &
                           MPI_MODE_RDWR+MPI_MODE_CREATE, &
                           MPI_INFO_NULL, fp, ierr)
        call MPI_File_get_info(fp, info, ierr)

        value = "undefined"
        call MPI_Info_get(info, argv(2), 256, value, flag, ierr)

        print*,'MPI_Info_get -- flag = ',flag
        print*,'MPI File Info: ',trim(argv(2)),' = ',trim(value)

        call MPI_File_close(fp, ierr)
        call MPI_Info_free(info, ierr)
 999    call MPI_Finalize(ierr)

        end program main





More information about the mpich-discuss mailing list