Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

end-of-file during read error

oforion
Beginner
727 Views
Hi all, I have just begun to try my hand at parallel programming and am using mpich. however with my first code I cannot seem to run it because I keep on recieving the following error with its outputs;

enter the number of processors available
enter the number of processors available
enter the number of processors available
forrtl: severe (24): end-of-file during read, unit -4, file stdin
Image PC Routine Line Source
phase 080D2BAC Unknown Unknown Unknown
phase 080D26A4 Unknown Unknown Unknown
phase 080AB601 Unknown Unknown Unknown
phase 0808DA78 Unknown Unknown Unknown
phase 0808DF1B Unknown Unknown Unknown
phase 0809A772 Unknown Unknown Unknown
phase 0804AB27 Unknown Unknown Unknown
phase 0804AA48 Unknown Unknown Unknown
Unknown B7E57E80 Unknown Unknown Unknown
phase 0804A901 Unknown Unknown Unknown
forrtl: severe (24): end-of-file during read, unit -4, file stdin
Image PC Routine Line Source
phase 080D2BAC Unknown Unknown Unknown
phase 080D26A4 Unk nown Unknown Unknown
phase 080AB601 Unknown Unknown Unknown
phase 0808DA78 Unknown Unknown Unknown
phase 0808DF1B Unknown Unknown Unknown
phase 0809A772 Unknown Unknown Unknown
phase 0804AB27 Unknown Unknown Unknown
phase 0804AA48 Unknown Unknown Unknown
Unknown B7E57E80 Unknown Unknown Unknown
phase 0804A901 Unknown Unknown Unknown

which repeats for a bit more. whats even more odd is that after these error messages i am still allowed to enter the input however the program doesn't run accordingly. the read statement requires input from a user and is as follows;

print*, 'enter the number of processors available'
read *, procrqd

print*, 'enter the nucleation frequency, i.e. lambda (ensure dimensionless)'
read *, lambda

print*, 'enter maximum simulation time and linear sample size'
read*, max_time,system_size

print*, 'enter dt'
read*, dt

print*, 'enter dx'
read*, dx

print*, 'enter nucleation radius'
read*, Rad

print*, 'enter how often to print files'
read*, print_freq


when I comment out the first read statement is jus gives me the same error with the second statement.

anyone have anythoughts and or solutions.
thanks

nana
0 Kudos
1 Reply
Ron_Green
Moderator
727 Views

Nana,

It could be many things - most likely though you are not restricting your code path for the read to the rank 0 process.

In a parallel program it is traditional for only process rank 0 to receive input from the user. Do you have something like:

integer : rank, mpierr, foo

call MPI_Comm_rank(MPI_COMM_WORLD,rank,mpierr)
if ( rank == 0 ) then

print*, "enter foo"

read*, foo

end if

call MPI_Broadcast( foo, 1, MPI_INTEGER, 0, MPI_COMM_WORLD)

0 Kudos
Reply