Fortran Coder

标题: 子程序+赋值 [打印本页]

作者: little_kar    时间: 2016-11-10 21:20
标题: 子程序+赋值
小的初来乍道,希望得到大神的帮助。程序如下:      
[Fortran] 纯文本查看 复制代码
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.   [I]        E:\\mass of disorder\mass of disorder\Source1.for        
错误        4         error #6911: The syntax of this substring is invalid.   [FAI]        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
有没有人啊,有点急,我说的不明白的,过来讨论一下也感谢
作者: fcode    时间: 2016-11-10 22:03
参考下面的注释
[Fortran] 纯文本查看 复制代码
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
fcode 发表于 2016-11-10 22:03
参考下面的注释[mw_shl_code=fortran,true]program attempt_initial_fai
  Implicit None
  Real :: fai(30 ...

多谢大师兄,谢谢谢谢
作者: fcode    时间: 2016-11-11 19:19
二师弟不用客气。
作者: little_kar    时间: 2016-11-14 10:39
fcode 发表于 2016-11-11 19:19
二师弟不用客气。

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




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

roger,多谢大师兄




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2