在bash中,我可以编写一个简单的脚本,如下所示;在使用环境变量"fileplace“定义文件路径时,读取文件夹中的文件内容。
#!/bin/bash
fileplace="/home/vijay/data1/process-folder1/"
cat $file/file1.dat
我想在FORTRAN90中通过使用变量定义路径来实现与上面相同的功能。我之所以这样做,是因为我的文件夹位置路径很长,并且我想避免在FORTRAN90中对长行使用&和+符号。
为了测试,我尝试编写了简单的FORTRAN90代码,如下所示。
program test_read
im
我试图在R中打开一个文件,它是二进制的,用Fortran编写的。该文件名为GlobalLakeDepth.dat,可在:上使用。
说明指定要打开GlobalLakeDepth.dat (在Fortran中),需要执行以下操作:
An example of opening the binary file in FORTRAN90:
-- open(1, file = 'GlobalLakeDepth.dat', form='unformatted', access='direct', recl=2)
An example of reading t
我需要写一个Fortran程序,它可以读取和打印一个.dat文件。
( homework_6.dat文件包含书籍记录:名称(最多25个字符)、出版年份(4位整数)、价格(6位实际数)、ISBN (13位整数)。编写一个程序,以下列格式读取文件(homework_6.dat)并打印出(屏幕上或另一个文件)的详细信息:
Publish
Name Year ($) ISBN
------------------------
免责声明:我使用了一个用FORTRAN编写的程序,我在使用它时遇到了麻烦。我一点也不精通FORTRAN。如果这是个愚蠢的问题,我很抱歉。
我得到了以下错误:
At line 1494 of file phot_star_fit18.f90 (unit = 45)
Fortran runtime error: Cannot open file '/Users/.../SSPFITTING/GASFIT/ssp/ssplist.d': No such file or directory
Error termination. Backtrace:
#0 0x10a0a97
我正在用Fortran 95编写代码,以读取一些类似1.dat,2.dat,......,9999.dat的文件。我有一个代码是0001.dat,0002.dat,..........9999.dat。看起来像是
character*12, fn
..
DO i=1,n
write(fn,*)i
open(1,file=fn)
do j=1,5
read(1,*)x(i,j),y(i,j),z(i,j)
end do
10 format(i4.4,'.dat')
你能建议我怎样才能阅读我有的文件吗?Thanks.u
我想使用Fortran将GNUPLOT命令写到txt文件中,我可以对大多数简单的命令这样做,但是编写包含特殊字符或AWK命令的命令有问题。
假设我有一个三列输入文件。第一列用于设置其坐标存储在列2和3中的点的颜色。
例如,我的输入文件"Input.dat“如下所示:
blue 1 1
red 2 1
red 3 0
blue 4 1
red 5 1
blue 6 1
我使用以下txt文件,其中包含GNUPLOT命令,并用于绘制输入文件。
GNUPLOT.txt:
plot "< awk '{if($1 == \"blue\") print}&
我正在用fortran (90)编写代码。我的程序必须读取file1,对其中的每一行执行一些操作,并将结果写入file2。但问题是- file1在第一行有一些不需要的信息。
如何使用Fortran跳过输入文件中的一行?
代码:
open (18, file='m3dv.dat')
open (19, file='m3dv2.dat')
do
read(18,*) x
tmp = sqrt(x**2 + 1)
write(19, *) tmp
end do
第一行是文本和数字的组合。
我有一个数值例程,我需要运行它来求解某个方程,其中包含几个嵌套的四个循环。最初,我将这个例程写入Python中,使用numba.jit实现可接受的性能。然而,对于较大的系统规模,这个方法变得非常慢,所以我一直在将例程重写为Fortran,希望能够实现加速。然而,我发现我的Fortran版本比Python中的第一个版本慢得多,比第一个版本慢了2-3倍。
我相信瓶颈是一个线性插值函数,它在每个最里面的循环上被调用。在Python实现中,我使用numpy.interp,它与numba.jit结合起来似乎非常快。在Fortran中,我编写了我自己的插值函数,它是这样的:
complex*16 fu
我有一个由Fortran程序(格式化)编写的现有文件,我想在该文件的开头添加几行。这样做的想法是在不复制原始文件的情况下这样做。
我可以使用以下命令在文件末尾添加一行:
open(21,file=myfile.dat,status='old',action='write',
form='formatted',position="append")
write(21,*) "a new line"
但当我尝试的时候:
open(21,file=myfile.dat,status='old'
我正在编写代码,并使用Fortran中的输入和输出特性。代码如下(仅用于简化):
PROGRAM TEST
REAL, DIMENSION(1000):: A
REAL:: B
INTEGER::T
!Defining input and output
OPEN(UNIT=1, FILE='input.dat', STATUS='OLD')
OPEN(UNIT=2, FILE='output.dat', STATUS='NEW')
!Reading from file "input.d
我使用Fortran创建一个包含多行的二进制文件:
Program write_binary
implicit none
integer i
real x
open(10,file="test.dat",form="unformatted")
do i=1,10
write(10),i*1.0,i*2.0
end do
close(10)
end
然后我使用Python,试图读取整个文件。但是,FortranFile包只能逐行读取(参见下面的代码)。有没有办法可以读取Fortran创建的二进制文件的所有行?非常感谢。
from scipy.io impor
我有一个程序的可执行文件,用Fortran编写,需要交互输入,例如20个输入。我想要的是,通过输入重定向提供前19个输入,但最后一个从我的键盘输入。原因是当我运行这个程序时,我会收到一条消息
file list_wall.dat written - modify it to group walls
modify wallList.dat (add flag type) - enter 1 when ready
因此,在按1之前,我需要手动修改文件,然后手动按1。我已经试过这样做了
./my_interactive_program < input.in
其中,我在这个input.in文件中
下面是测试代码:
program testcase
implicit none
integer :: ios, lu
type derived
integer :: a
end type derived
type (derived) :: d
namelist /test/ d
lu = 3
open (lu, file = 'test.dat', status='old', iostat=ios)
read (lu, nml = test, iostat=ios)
我有一个非常大的big-endian二进制文件。我知道这个文件里有多少个数字。我找到了一个解决方案,如何使用struct读取big-endian文件,如果文件很小,它非常有效:
data = []
file = open('some_file.dat', 'rb')
for i in range(0, numcount)
data.append(struct.unpack('>f', file.read(4))[0])
但是,如果文件大小大于~100mb,则此代码的运行速度非常慢。我当前的文
我正在以NxMxL矩阵的二进制格式编写输出Fortran数据,如下所示
open(94, file = 'mean_flow_sp.dat', status = 'replace', action = 'write', form = 'unformatted')
do k = 0,L-1
do j = 0,M-1
do i = 0,N-1
write(94) u(i,j,k), v(i,j,k), w(i,j,k)
enddo
enddo
enddo
close(94
我想把我的结果写到一个在递归子程序中产生的文件中。我还想将文件中的数据(读取)赋值给fortran90主程序中的一个数组。
program permutations
implicit none
call generate (position_min)
open(unit=20, file="a.dat", status="old")
do i=1,720
read(20,*)(G(i,j),j=1,6)
end do
contains
recursive subroutine generate (position)
im