Fortran Coder

查看: 15558|回复: 7

[子程序] 子程序+赋值

[复制链接]

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
发表于 2016-11-10 21:20:24 | 显示全部楼层 |阅读模式
小的初来乍道,希望得到大神的帮助。程序如下:      
[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        



35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
 楼主| 发表于 2016-11-10 21:47:04 | 显示全部楼层
有没有人啊,有点急,我说的不明白的,过来讨论一下也感谢

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2016-11-10 22:03:08 | 显示全部楼层
参考下面的注释
[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

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
 楼主| 发表于 2016-11-11 15:15:32 | 显示全部楼层
fcode 发表于 2016-11-10 22:03
参考下面的注释[mw_shl_code=fortran,true]program attempt_initial_fai
  Implicit None
  Real :: fai(30 ...

多谢大师兄,谢谢谢谢

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2016-11-11 19:19:31 | 显示全部楼层
二师弟不用客气。

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
 楼主| 发表于 2016-11-14 10:39:13 | 显示全部楼层
fcode 发表于 2016-11-11 19:19
二师弟不用客气。

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

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

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

QQ图片20161114130833.png

35

帖子

11

主题

0

精华

熟手

F 币
129 元
贡献
118 点
 楼主| 发表于 2016-11-14 19:43:39 | 显示全部楼层
fcode 发表于 2016-11-14 13:09
请看“输出(Output)”窗口,永远不要看“错误列表(Error List)”窗口

roger,多谢大师兄
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-3-28 18:05

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表