Arrays 读取文件和存储在阵列中时出现问题

Arrays 读取文件和存储在阵列中时出现问题,arrays,fortran,fortran95,Arrays,Fortran,Fortran95,使用g96编译器时,我遇到一个错误,错误是: INTENT(OUT) at variable 'SIZE' is never set. 下面是我的子程序。你知道我如何修复这个错误吗?非常感谢 SUBROUTINE getFileItems(size,itemarray,pricearray,quantityarray) INTEGER:: iost=0, i=0 INTEGER, INTENT(OUT):: quantityarray(50) INTEGER, INTENT(OUT):: s

使用g96编译器时,我遇到一个错误,错误是:

INTENT(OUT) at variable 'SIZE' is never set.
下面是我的子程序。你知道我如何修复这个错误吗?非常感谢

SUBROUTINE getFileItems(size,itemarray,pricearray,quantityarray)

INTEGER:: iost=0, i=0
INTEGER, INTENT(OUT):: quantityarray(50)
INTEGER, INTENT(OUT):: size
REAL, INTENT(OUT):: pricearray(50)
CHARACTER(20),INTENT(OUT)::itemarray(50)
CHARACTER(20)::namefiletoread

PRINT*,"Enter the name of file you would like to read: "
READ*,namefiletoread

OPEN(UNIT=44,FILE = namefiletoread, ACTION = "READ", !POSITION="REWIND",IOSTAT=iost)
IF(iost>0)STOP "Problem opening the file!"

DO i=1, size
READ(44,'(A,F6.2,I8)',IOSTAT=iost), itemarray(i), pricearray(i),quantityarray(i)
IF(iost<0)STOP
END DO


END SUBROUTINE
子例程getFileItems(大小、itemarray、pricearray、quantityarray) 整数::iost=0,i=0 整数,意图(输出)::quantityarray(50) 整数,意图(输出)::大小 真实,意图(输出):价格数组(50) 字符(20),意图(输出)::itemarray(50) 字符(20)::namefiletoread 打印*,“输入要读取的文件名:” 读取*,名称文件读取 打开(单位=44,文件=namefiletoread,操作=READ,!POSITION=“倒带”,IOSTAT=iost) 如果(iost>0)停止“打开文件时出现问题!” i=1,尺寸吗 读取(44),(A,F6.2,I8)’,IOSTAT=iost),itemarray(i),pricearray(i),quantityarray(i)
如果(iost您需要以某种方式初始化“size”的值。有几种可能的方法: 1) 如果子例程外部知道大小,则在调用例程中设置大小意图(in)并设置值, 2) 提示用户输入值, 3) 将数组的长度放在文件的第一行并读取它。 4) 如果文件中的项目数可变,请读取该文件,直到达到EOF,并计算项目数。使用无限循环并在点击EOF时退出,将大小设置为读取的项目数