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

MPI error


Hi, I am trying to run a test case of the Wavewatch III model. I compiled the routines with ifort and all of the programs run as they should, except for the last one (ww3_multi) that gives me this error:

MPI: Global rank 1 is aborting with error code 51.
     Process ID: 21874, Host: r1i1n0, Program: /u/emilioe/WW3/exe/ww3_multi

MPI: --------stack traceback-------
MPI: Using host libthread_db library "/lib64/".
MPI: Attaching to program: /proc/21874/exe, process 21874
MPI: [Thread debugging using libthread_db enabled]
MPI: [New Thread 47480284834560 (LWP 21874)]
MPI: 0x00002b2edcfb76f5 in waitpid () from /lib64/
MPI: (gdb) #0  0x00002b2edcfb76f5 in waitpid () from /lib64/
MPI: #1  0x00002b2edcb972dc in MPI_SGI_stacktraceback (
MPI:     header=<value optimized out>) at sig.c:98
MPI: #2  0x00002b2edcb22872 in print_traceback (ecode=51) at abort.c:168
MPI: #3  0x00002b2edcb229e4 in PMPI_Abort (comm=<value optimized out>,
MPI:     errorcode=51) at abort.c:59
MPI: #4  0x00002b2edcb22a29 in pmpi_abort__ () from /usr/lib64/
MPI: #5  0x00000000006b5573 in w3servmd_mp_extcde_ ()
MPI: #6  0x0000000000649cc3 in w3iogrmd_mp_w3iogr_ ()
MPI: #7  0x00000000005ac98d in w3initmd_mp_w3init_ ()
MPI: #8  0x00000000004c8fc5 in wminitmd_mp_wminit_ ()
MPI: #9  0x0000000000404750 in w3mlti () at ww3_multi.F90:134
MPI: #10 0x000000000040450c in main ()
MPI: (gdb) The program is running.  Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal]
MPI: Detaching from program: /proc/21874/exe, process 21874

MPI: -----stack traceback ends-----
MPI: MPI_COMM_WORLD rank 1 has terminated without calling MPI_Finalize()
MPI: aborting job


Does anyone have an idea of what is going on here? Any help/suggestion will be truly appreciated!


0 Kudos
1 Reply
Black Belt

This is a guess....

Your program has (appears to have) a C main as opposed to Fortran PROGRAM entry.
ww3_multi.F90 is being called from the C main, which in turn appears to be initializing MPI

There is nothing inherently wrong with this design...
... provided that the Fortran runtime system is properly initialized.

See the IVF documentation:


Jim Dempsey