little_kar 发表于 2016-11-10 21:20:24

子程序+赋值

小的初来乍道,希望得到大神的帮助。程序如下:      program attempt_initial_fai
      dimension fai(300,300)
      !open(101,file='E:\试验程序\one dimension random seed\test_fai.dat')
      open(101,file='E:\试验程序\one dimension random seed\fai.dat')
      call initial_data(fai(i,j))
      write(101,20) ((fai(i,j),j=1,300),i=1,300)
20    FORMAT (1X,300D15.6)
      !end do
      end program attempt_initial_fai

      subroutine initial_data(a(i,j))
      open(1,file='E:\试验程序\one dimension random seed\data1.dat')
      DO i=1,300
      READ(1,'(300D15.6)') fai(:,i)
      end do
      do i=1,300
          do j=1,300
                  a(i,j)=mod(a(i,j),1.0)
          end do
      end do
      close(1)
      return
      end subroutine
1里面是300*300的数据,想实现的是用子程序把1里面的值赋到二维数组fai(i,j)并输出到101里面。
还有,小弟用的是visual studio 2012,代码写出来提示错误,但是不提示在哪一行了,很苦恼。比如上面这段,就有一下错误。
错误      1         error #5082: Syntax error, found '(' when expecting one of: ) ,      E:\\mass of disorder\mass of disorder\Source1.for      
错误      2         error #5082: Syntax error, found ')' when expecting one of: , : ]      E:\\mass of disorder\mass of disorder\Source1.for      
错误      3         error #7271: Not a valid attribute for the DEC$ ATTRIBUTES directive.         E:\\mass of disorder\mass of disorder\Source1.for      
错误      4         error #6911: The syntax of this substring is invalid.         E:\\mass of disorder\mass of disorder\Source1.for      
错误      5      Compilation Aborted (code 1)      E:\试验程序\mass of disorder\mass of disorder\Source1.for      1      



little_kar 发表于 2016-11-10 21:47:04

有没有人啊,有点急,我说的不明白的,过来讨论一下也感谢

fcode 发表于 2016-11-10 22:03:08

参考下面的注释program attempt_initial_fai
Implicit None
Real :: fai(300,300)
open(101,file='E:\试验程序\one dimension random seed\fai.dat')
call initial_data(fai) !//去掉 i j
write(101,20) fai
20 FORMAT (1X,300D15.6)
end program attempt_initial_fai

subroutine initial_data(a) !//去掉 i j
Implicit None
Real :: a(300,300) !//要定义 a
integer :: i !//要定义 i
open(1,file='E:\试验程序\one dimension random seed\data1.dat')
Do i = 1 , 300
    READ(1,*) a(:,i) !//此处读入 a,用表控读入即可
End do
a = mod( a , 1.0 ) !// 此处可以直接对 a 操作,无需循环
close(1)
end subroutine initial_data

little_kar 发表于 2016-11-11 15:15:32

fcode 发表于 2016-11-10 22:03
参考下面的注释program attempt_initial_fai
Implicit None
Real :: fai(30 ...

多谢大师兄:-lol,谢谢谢谢

fcode 发表于 2016-11-11 19:19:31

二师弟不用客气。

little_kar 发表于 2016-11-14 10:39:13

fcode 发表于 2016-11-11 19:19
二师弟不用客气。

大师兄,还有一个问题,我的软件怎么不提示错误行了,比如少了一个单括号,下面的错误提示就只是说少了个单括号,不提示在哪一行少的了,怎么设置回来

fcode 发表于 2016-11-14 13:09:12

little_kar 发表于 2016-11-14 10:39
大师兄,还有一个问题,我的软件怎么不提示错误行了,比如少了一个单括号,下面的错误提示就只是说少了个 ...请看“输出(Output)”窗口,永远不要看“错误列表(Error List)”窗口



little_kar 发表于 2016-11-14 19:43:39

fcode 发表于 2016-11-14 13:09
请看“输出(Output)”窗口,永远不要看“错误列表(Error List)”窗口




roger,多谢大师兄:-lol
页: [1]
查看完整版本: 子程序+赋值