[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-----------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.