Arrays 用gfortran读取数据
我想用一行fortran代码读取数据数组:Arrays 用gfortran读取数据,arrays,gfortran,Arrays,Gfortran,我想用一行fortran代码读取数据数组:read(irdcld,9101,end=9000)ctest,lay,frac,(datbinsa(ibin),&ibin=1,nbins),(datbinsb(ibin),ibin=1,nbins) 我正在用gfortran编译。不幸的是,出现此错误消息:read(irdcld,9101,end=9000)ctest,lay,frac,(datbina(ibin),&1错误:read语句中的预期变量位于(1) 如果我只输入:read(irdcld,9
read(irdcld,9101,end=9000)ctest,lay,frac,(datbinsa(ibin),&ibin=1,nbins),(datbinsb(ibin),ibin=1,nbins)
我正在用gfortran编译。不幸的是,出现此错误消息:read(irdcld,9101,end=9000)ctest,lay,frac,(datbina(ibin),&1错误:read语句中的预期变量位于(1)
如果我只输入:
read(irdcld,9101,end=9000)ctest,lay,frac,datbinsa(ibin),我就可以读取这些行
但我想阅读整个数组!当使用ggfortran作为编译器时,我如何读取数组?感谢您的帮助!!&
是自由源代码格式Fortran文件中的语句延续符号。它应该是行中最后一个非空符号,语句将在下一行继续:
read(irdcld, 9101,end=9000) ctest, lay, frac, (datbinsa(ibin), &
ibin= 1, nbins), (datbinsb(ibin), ibin= 1, nbins)
如果将两行连接在一起,则应删除
&
。但是,您还必须遵守最大行长,即自由源代码形式中的132个字符。感谢您的解释。有两个问题:一个是我应该放在一行中。第二个是像这样更改数组读数:read(irdcld,9101,end=9000)ctest,lay,frac,datbinsa(1:nbins),datbinsb(1:nbins)datbinsa(1:nbins)
和(datbinsa(ibin),ibin=1,nbins)
在这种情况下应该是一样的。后一种形式被称为隐含do循环,在语言引入向量运算之前,在旧的Fortran代码中被大量使用。不幸的是(datbina(ibin),ibin=1,nbins)不起作用,因为gfortran似乎不喜欢“(”符号。它将错误消息“error:Expected variable in READ statement at(1)”放在“(”符号处。这是我的问题,为什么???@user1809699,源文件的扩展名是什么?.f
,.f90
,.f
,还有什么?