C C $Id: opnfil.F,v 1.5 1998/07/16 16:40:09 jjv5 Exp arjan $ C C------------------------------------------------------------------------ SUBROUTINE OPNFIL(IFILE,IERROR) C C ROUTINE TO OPEN FILE NUMBER IFILE. SEE BLOCK DATA ROUTINE FOR C UNIT NUMBERS, FILE NAMES, ETC. ERROR MESSAGES ARE WRITTEN C TO THE MAIN OUTPUT FILE AND TO STANDARD OUTPUT. THIS ASSUMES C THAT THE MAIN OUTPUT FILE IS OPENED BEFORE ANY OTHER FILE, AND C THAT NO PROBLEMS ARE ENCOUNTERED OPENING IT. C implicit double precision(a-h,o-z) #include "divcon.dim" #include "divcon.h" C IERROR = 0 C if (ifile.ne.1) return IF(IFILE.LT.1.OR.IFILE.GT.NFILES)THEN IERROR = 1 C-RDC WRITE(IOUT,10) IFILE C-RDC WRITE(ISCR,10) IFILE 10 FORMAT(/' ERROR IN OPNFIL -- FILE NUMBER ',I5,' OUT OF RANGE'/) GO TO 1000 ENDIF OPEN(IUNIT(IFILE),FILE=FNAME(IFILE),STATUS=FSTAT(IFILE), . ERR=100) GO TO 1000 100 IERROR = 1 C-RDC WRITE(IOUT,110) IUNIT(IFILE),FNAME(IFILE) C-RDC WRITE(ISCR,110) IUNIT(IFILE),FNAME(IFILE) 110 FORMAT(/' ERROR IN OPNFIL -- CANNOT OPEN UNIT ',I3,' FILE ',A20/) 1000 RETURN END CC-------------------------------------------------------------------CC SUBROUTINE OPNPFIL(IFILE,IERROR) C C parallel I/O C C works analogous to opnfil, but the filename is C generated and is fname(ifile).ext(ifile) C implicit double precision(a-h,o-z) #include "divcon.dim" #include "divcon.h" #ifdef MPI #include "mpif.h" #endif C local: character name*20, namemcf*20 C IERROR = 0 c if (ifile.ne.1) return IF(IFILE.LT.1.OR.IFILE.GT.NFILES)THEN IERROR = 1 C-RDC WRITE(IOUT,10) IFILE C-RDC WRITE(ISCR,10) IFILE 10 FORMAT(/' ERROR IN OPNFIL -- FILE NUMBER ',I5,' OUT OF RANGE'/) GO TO 1000 ENDIF #ifdef MPI name = '/dev/null' #else name = namemcf(fname(ifile),myid,ext(ifile)) #endif OPEN(IUNIT(IFILE),FILE=NAME,STATUS=FSTAT(IFILE), . ERR=100) GO TO 1000 100 IERROR = 1 C-RDC WRITE(IOUT,110) IUNIT(IFILE),NAME C-RDC WRITE(ISCR,110) IUNIT(IFILE),NAME 110 FORMAT(/' ERROR IN OPNFIL -- CANNOT OPEN UNIT ',I3,' FILE ',A20/) 1000 RETURN END CC--------------------------------------------------------------CC