24小时热门版块排行榜    

查看: 2741  |  回复: 5

kardrine

新虫 (初入文坛)

[求助] Visual Studio 2012 已有1人参与

用的是Visual Studio 2012,调试的时候,只说有错误,不提示错在第几行了,怎么让它继续显示第几行呢?比如下面的小程序:
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)!//这个地方就实现了你的要求,冒号代表将从1~100,它是根据你声明部分的多少而定的   
      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      

但是1,2个错误都不提示在第几行了,很急 怎么办
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
kardrine(jjdg代发): 金币+1, 感谢参与,剩下的由lz发吧 2016-11-11 11:31:05
kardrine: 金币+4, ★★★★★最佳答案 2016-11-14 10:44:14
program attempt_initial_fai
    implicit none
      real*8::fai( 300,300 )
      integer i,j
      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 ) !//传递数组的时候,不能写成类似于fai(300,300),要写成fai
      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 )
      implicit none
      real*8::a( 300,300 )
      integer::i,j
      open( 1,file='E:\试验程序\one dimension random seed\data1.dat' )
      DO i=1,300
      READ( 1,'( 300D15.6 )' ) a( :,i )!//这个地方就实现了你的要求,冒号代表将从1~100,它是根据你声明部分的多少而定的   
      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
PS:implicit none大法好,注意一定要用它。需要注意的是,这个程序并不严格,因为数组的传递正常是需要interface的,我暂时不想给你加太大的难度,写了之后怕你晕。你记住有这么回事就行了,等你熟悉了Fortran的语法,熟练写出程序后,你再看看书(其实我个人还是喜欢module的,但是说多了,恐怕你又晕了)。
Chemistry
2楼2016-11-11 08:59:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kardrine

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 7152075 at 2016-11-11 08:59:24
program attempt_initial_fai
    implicit none
      real*8::fai( 300,300 )
      integer i,j
      open( 101,file='E:\试验程序\one dimension random seed\test_fai.dat' )
      open( 101,file='E:\ ...

刚才看了一下书,是说函数返回值为数组时,需要特别说明他们的“使用接口”,书上是有个例子,有点长,前辈把interface在这里给我加上吧,我对照着书看一下,既然遇到了,也不能忽略了,还有,我VS不提示错误行了,调试起来很费劲,能设置回来吗?短代码还能一行一行的看,长一点实在扛不住啊
3楼2016-11-14 10:47:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iamshitizen

铜虫 (小有名气)

引用回帖:
3楼: Originally posted by kardrine at 2016-11-14 10:47:23
刚才看了一下书,是说函数返回值为数组时,需要特别说明他们的“使用接口”,书上是有个例子,有点长,前辈把interface在这里给我加上吧,我对照着书看一下,既然遇到了,也不能忽略了,还有,我VS不提示错误行了, ...

按照错误提示,貌似说的不是接口的问题。而且这么简短的一个程序,用不着搞interface什么的吧?
错误        1         error #5082: Syntax error, found '(' when expecting one of: ) ,     !====这个提示的意思是括号有问题。我理解可能是 ===READ( 1,'( 300D15.6 )' ) a( :,i ) ===这一行是不是有问题?  我自己写一般是“(300D15.6)”,用双引号,而不用单引号,而且读的时候一般也懒得给格式。
4楼2016-11-14 11:09:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

引用回帖:
3楼: Originally posted by kardrine at 2016-11-14 10:47:23
刚才看了一下书,是说函数返回值为数组时,需要特别说明他们的“使用接口”,书上是有个例子,有点长,前辈把interface在这里给我加上吧,我对照着书看一下,既然遇到了,也不能忽略了,还有,我VS不提示错误行了, ...

program attempt_initial_fai
    implicit none
    interface
    subroutine initial_data(a) !//加入接口
      real*8::a( : ,: )
      end subroutine initial_data
    end interface
    real*8::fai( 300,300 )
      integer i,j
      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 ) !//传递数组的时候,不能写成类似于fai(300,300),要写成fai
      write( 101,20 ) (( fai(i,j),j=1,300 ),i=1,300 )
20    FORMAT ( 1X,300D15.6 )
      !end do
      close( 101 )
      close( 102 )
    end program attempt_initial_fai
      

      subroutine initial_data( a )
      implicit none
      real*8::a(:,
      integer::i,j
      open( 1,file='E:\试验程序\one dimension random seed\data1.dat' )
      DO i=1,300
      READ( 1,'( 300D15.6 )' ) a( i ,!//这个地方就实现了你的要求,冒号代表将从1~100,它是根据你声明部分的多少而定的   
      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
你一定是点击output右边的叉号,导致再无法再出现output错误输出窗口。重新调用出来的过程是tools->options->projects and solutions->general->挑上show output window when bulid starts具体如图1所示。PS:interface我建议你forget这个,建议你学习module,因此随着你会的知识增多,一旦子程序都要调用这个的话,都要加一个接口,十分麻烦。看推荐那个网站,有一期叫module的那个。还是建议你都看看吧。
Visual Studio 2012
2016-11-14_142053.png

Chemistry
5楼2016-11-14 14:45:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7152075

铁杆木虫 (著名写手)

解决问题的方法比遇到的问题多

real*8: :,: )

      READ( 1,'( 300D15.6 )' ) a( i ,: )
笑脸处的代码分别是上面那两个。
Chemistry
6楼2016-11-14 14:46:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kardrine 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +55 医学老男孩 2026-08-13 123/6150 2026-08-19 23:44 by stan_et
[基金申请] 今天基金会出结果吗?20260819 +13 kkkl_v 2026-08-19 13/650 2026-08-19 22:37 by 宝贝虫子
[基金申请] 时间戳变了,能看出什么问题? +12 基诺咪客 2026-08-17 16/800 2026-08-19 22:04 by kk 的小木虫
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] filecode=后面第一个是大写字母 +10 wangze12014 2026-08-14 12/600 2026-08-19 16:56 by 苦难博士
[基金申请] 2027广东省杰青 +4 奶牛小黑 2026-08-15 10/500 2026-08-19 11:02 by wanfengnew
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +6 Tide man 2026-08-14 7/350 2026-08-19 09:56 by ZJTJZ
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
信息提示
请填处理意见