[Myrinet] mpich-gm-1.2.4..8a and IO from STDIN
Bill Wichser <[email protected]>
| Newsgroups | gmane.network.myrinet.general |
|---|---|
| Message-ID | <[email protected]> |
When running a Fortran program compiled with mpif90 using the Intel 6.0
compiler, we see a problem with redirected input files in that the
program will not read. If there is an explicit open, without the
redirect, this is not an issue. Testing with mpich-1.2.4 on a non-gm
host shows no problems.
The command we use is "mpirun -np 1 test.exe <test.inp" executed on a
node.
The output:
Input/Output Error 174: Illegal seek
In Procedure: main program
At Line: 12
Statement: REWIND
Unit: 5
Connected To: Stdin
Form: Formatted
Access: Sequential
Records Read : 0
Records Written: 0
End of diagnostics
Attached are the two files test2.f and common.a needed to test.
Any help on how to proceed?
Thanks...Bill
common.a
(text/plain, 5.1 KB)
integer imax,jmax,kmax,kl,ns
integer inode,jnode,nodes,nodesm1
integer nx,ny,klm1,klm2,klm3,klm4,ns2,ns3,ns4,ns5
integer ixo,mexpx,ixomax,jyomax,jyo,mexpy,kzomax,kzo,mexpz
integer ibc,jbc,nvars,nvars2,nx1,nx2,ny1,ny2,jnum,inum
integer ijkmax,naout,nvars_du,nx1_du,nx2_du,ny1_du,ny2_du
parameter(imax=384,jmax=256,kmax=129,kl=kmax-1,ns=2) !04CASE
c parameter(imax=384,jmax=128,kmax=129,kl=kmax-1,ns=2) !04CASE
c parameter(imax=384,jmax=128,kmax=151,kl=kmax-1,ns=2) !03CASE
c parameter(imax=576,jmax=384,kmax=129,kl=kmax-1,ns=2) !03CASE
parameter(inode=16,jnode=16,nodes=inode*jnode,nodesm1=nodes-1)
parameter(nx=imax/inode+1,ny=jmax/jnode+1)
parameter(klm1=kl-1,klm2=kl-2,klm3=kl-3,klm4=kl-4)
parameter(ns2=ns+1,ns3=ns+2,ns4=ns+3,ns5=ns+4)
parameter(ixomax=3,ixo=3,mexpx=1) ! make ibc.ge.ixo
parameter(jyomax=3,jyo=3,mexpy=1) ! make jbc.ge.jyo
parameter(kzomax=3,kzo=3,mexpz=1) ! make kzo.eq.3
parameter(ibc=3,jbc=3,nvars=ns+8,nvars2=ns+4)
parameter(nx1=1-ibc,nx2=nx+ibc,ny1=1-jbc,ny2=ny+jbc)
parameter(jnum=ny+2*jbc,inum=nx+2*ibc)
parameter(ijkmax=inum*jnum*kmax,naout=nx*ny*kmax*nvars2)
parameter(nvars_du=ns+4)
parameter(nx1_du=0,nx2_du=nx+1)
parameter(ny1_du=0,ny2_du=ny+1)
integer iauxall(10,0:nodes-1)
integer status(MPI_STATUS_SIZE),comm2d,iaux(10)
integer req(4),status_array(MPI_STATUS_SIZE,4)
integer myid,itype,jtype1,jtype2
integer nleft,nright,nbottom,ntop
integer ibe,iend,jbe,jend,il,jl
integer itype_du,jtype1_du,jtype2_du
integer nadv,iturb,nstart,nend,iout,ivisc,iadiabatic,ichem
integer ifrin,iwf
integer implt,ipmax,irelax
common/iinput/nadv,iturb,nstart,nend,iout,ivisc,iadiabatic,
. ifrin,iwf,implt,ipmax,irelax,ichem
Real*8 rho1(kmax,nx1:nx2,ny1:ny2),rho2(kmax,nx1:nx2,ny1:ny2)
Real*8 u(kmax,nx1:nx2,ny1:ny2),v(kmax,nx1:nx2,ny1:ny2)
Real*8 w(kmax,nx1:nx2,ny1:ny2),e(kmax,nx1:nx2,ny1:ny2)
Real*8 p(kmax,nx1:nx2,ny1:ny2),t(kmax,nx1:nx2,ny1:ny2)
Real*8 mu(kmax,nx1:nx2,ny1:ny2),a(kmax,nx1:nx2,ny1:ny2)
Real*8 time_c(kmax,nx1:nx2,ny1:ny2)
Real*8 aout(naout)
Real*8 du(ns+4,kmax,nx,ny)
Real*8 rbarinf,rbar_w,cvinf,gammainf,r
Real*8 Ma,Re_L,rleng,cfl,cflv
Real*8 dx,dy,dxi,dyi,dxi2,dyi2,z2,z2plus,
. flna,alpha,xLd,yLd,zLd,xL,yL,zkl,delta0,dstar0
Real*8 x(imax),y(jmax),z(kl),dzdk(kl),dzdki(kl)
Real*8 dt,time,dtref,dtrefi
common/timecom/dt,time,dtref,dtrefi
Real*8 uinf,rhoinf,pinf,tinf,tinfi,ainf,rmuinf,twall,power
Real*8 u0(kl),t0(kl),ab(kl),bb(kl),cc(kl)
Real*8 wf(kmax,nx)
Real*8 fsource,x1r,z1star,zd,error
common/rinput/fsource,x1r,z1star,zd,error
Real*8 um1(kmax,nx,ny),vm1(kmax,nx,ny),wm1(kmax,nx,ny)
Real*8 rhom1(ns,kmax,nx,ny),em1(kmax,nx,ny)
Real*8 un(kmax,nx,ny),vn(kmax,nx,ny),wn(kmax,nx,ny)
Real*8 rhon(ns,kmax,nx,ny),en(kmax,nx,ny)
Real*8 dq11(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 dq12(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 dq2(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 dq3(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 dq4(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 dq5(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 dq6(kmax,nx1_du:nx2_du,ny1_du:ny2_du)
Real*8 csinf(ns),rm(ns),rmi(ns),cvr(ns),cvs(ns),hs(ns)
Real*8 Da,Le,cf,etam,activt,a1m,a2m,a3m,a4m,a5m,tchem
common/reac/Da,Le,cf,etam,activt,a1m,a2m,a3m,a4m,a5m,tchem
Real*8 ws(ns,kmax,nx1:nx2,ny1:ny2)
Real*8 padx(8)
Real*8 cxml(0:ixomax-1,0:ixomax),
. dxml(0:ixomax-1,ixomax-1,0:ixomax),
. cxmopt(0:ixomax)
Real*8 pady(8)
Real*8 cyml(0:jyomax-1,0:jyomax),
. dyml(0:jyomax-1,jyomax-1,0:jyomax),
. cymopt(0:jyomax)
Real*8 padz(8)
Real*8 czml(0:kzomax-1,0:kzomax),
. dzml(0:kzomax-1,kzomax-1,0:kzomax),
. czmopt(0:kzomax)
c
common/mpid/iauxall
common/uvw/u,v,w,p,t,rho1,rho2,e,mu,a,time_c
equivalence(aout(1),du(1,1,1,1))
common/res/du
common/m1/comm2d,myid,itype,jtype1,jtype2
common/m2/nleft,nright,nbottom,ntop
common/m3/ibe,iend,jbe,jend,il,jl
common/m4/itype_du,jtype1_du,jtype2_du
common/ac1/rbarinf,rbar_w,cvinf,gammainf,r
common/ac2/Ma,Re_L,rleng,cfl,cflv
common/ac3/dx,dy,dxi,dyi,dxi2,dyi2,z2,z2plus,
. flna,alpha,xLd,yLd,zLd,xL,yL,zkl,delta0,dstar0
common/ac4/x,y,z,dzdk,dzdki
common/ac6/uinf,rhoinf,pinf,tinf,tinfi,ainf,rmuinf,twall,
. power
common/ac7/u0,t0,ab,bb,cc
common/uvwn/um1,vm1,wm1,rhom1,em1,un,vn,wn,rhon,en
common/dqcom/dq11,dq12,dq2,dq3,dq4,dq5,dq6
common/c2/csinf,rm,rmi,cvr,cvs,hs,ws
CDIR$ CACHE_ALIGN/comeno/
common/comeno/ cxmopt,cxml,dxml,
. cymopt,cyml,dyml,
. czmopt,czml,dzml
real*8 a1,a2,a3,a4
parameter(a1=4./5.,a2=-1./5.,a3=4./105.,a4=-1./280.)
test2.f
(text/plain, 1.2 KB)
program test2
c mpif90 test2.f -o test2
include 'mpif.h'
include 'common.a'
c
call MPI_INIT( ierr )
runtime=MPI_WTIME()
c
do nid=0,nodesm1
if(nid.eq.myid)then
! open(unit=5 ,file='test.inp',status='old')
rewind 5
read(5,*)
read(5,*) nstep,iread,iwrite,iout,ivisc,iadiabatic
read(5,*)
read(5,*) rhoinf,tinf,tchem,Ma,Re_L
read(5,*)
read(5,*) iturb,z2plus,xLd,yLd,zLd
read(5,*)
read(5,*) cfl,cflv,power
read(5,*)
read(5,*) ifrin,fsource,z1star,x1r,zd
read(5,*)
read(5,*) implt,ipmax,irelax,error
read(5,*)
read(5,*) iwf
read(5,*)
read(5,*) ichem,Da,Le
read(5,*)
read(5,*) cf,etam,activt
read(5,*)
read(5,*) a1m,a2m,a3m,a4m,a5m
read(5,*)
do 300 m=1,ns
read(5,*) csinf(m)
read(5,*) rm(m)
read(5,*) cvr(m)
read(5,*) hs(m)
300 continue
close(5)
endif
call MPI_BARRIER(MPI_COMM_WORLD,ierr)
enddo
c
runtime=(MPI_WTIME()-runtime)/60.
print *,'Runtime minutes: ',runtime
call MPI_FINALIZE(ierr)
stop
end
c-----------------------------------------------------------------------