Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File io 使用数组包含fortran中已打开文件的单位或名称_File Io_Fortran - Fatal编程技术网

File io 使用数组包含fortran中已打开文件的单位或名称

File io 使用数组包含fortran中已打开文件的单位或名称,file-io,fortran,File Io,Fortran,有没有办法让数组(由fortran内部子例程返回)包含已由fortran程序打开的文件的单位或名称 提前感谢是这里有一个将单位编号放入数组的示例 PROGRAM LUN_ARRAY_TEST INTEGER N PARAMETER(N=10) INTEGER LUNS(N) INTEGER I CALL OPEN_FILES(N,LUNS) DO I=1,N WRITE(6,*) "L

有没有办法让数组(由
fortran
内部子例程返回)包含已由
fortran
程序打开的文件的单位或名称


提前感谢

是这里有一个将单位编号放入数组的示例

      PROGRAM LUN_ARRAY_TEST
      INTEGER N
      PARAMETER(N=10)
      INTEGER LUNS(N)      
      INTEGER I
      CALL OPEN_FILES(N,LUNS)
      DO I=1,N
        WRITE(6,*) "LUN ",I," = ",LUNS(I)
      ENDDO
      CALL WRITE_LINES(N,LUNS)
      CALL CLOSE_FILES(N,LUNS)
      END

      SUBROUTINE OPEN_FILES(N,LUNS)
      INTEGER N
      INTEGER LUNS(N)
      INTEGER I, LUN
      CHARACTER*80 FILENAME
      DO I=1,N
        LUN=60+I
        WRITE(FILENAME,100) I
 100    FORMAT('FILE',I3.3)
        OPEN(UNIT=LUN,FILE=FILENAME,ACTION='WRITE')
        LUNS(I)=LUN
      ENDDO
      END

      SUBROUTINE WRITE_LINES(N,LUNS)
      INTEGER N
      INTEGER LUNS(N)
      INTEGER I
      DO I=1,N
        WRITE(LUNS(I),*) I
      ENDDO
      END

      SUBROUTINE CLOSE_FILES(N,LUNS)
      INTEGER N
      INTEGER LUNS(N)
      INTEGER I
      DO I=1,N
        CLOSE(LUNS(I))
      ENDDO
      END

您忘了包含测试代码。答案是肯定的。我可以通过do循环获取已打开文件的单位或名称,但我希望将它们作为泛型子例程返回的数组来获取。是否要使用内部子例程?如果没有,您将不得不编写自己的routineThere没有内在的子例程来执行此操作。此外,任何用户编写的子例程都必须面对预连接的挑战。鉴于这一挑战,如果您能够进一步准确描述您的需求,可能会有所帮助。文件和单元可能是解决方案的一部分。谢谢,在您的代码中,您知道现在打开了哪些文件,因为您自己已经打开了它们。这不是我的情况。在我的情况下,我不知道现在有多少文件是以什么名称和单元号打开的。所以我需要一个子程序,它告诉我,例如,有N个文件,这些文件的名称和单元号现在是打开的。