24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1085  |  回复: 8
当前主题已经存档。
本帖产生 1 个 程序强帖 ,点击这里进行查看

guangdang

新虫 (初入文坛)

[交流] 【求助】fortran 变量传递的问题 已有1人参与

变量调用的问题

如我在循环调用子程序,
do k=1,num

子程序

enddo

我想在循环第10次的情况下把子程序中的某个变量保存的数据读出来,也就是在子程序中加个对k的判断条件: if k.eq.10,then的条件,可是我把k设置为common或者是public都不行,应该怎么做呢
回复此楼
努力学习中
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
Implicit Real*8(A-H,O-Z)

        Common  Iere
      
        Do I=1,30
                 Iere=I
        Call Subemuch
        EndDo

        End

        Subroutine Subemuch
      Implicit Real*8(A-H,O-Z)
        Common  Jere
      

      If(Jere.Eq.10) Then
        Write(*,*) 'I am from Emuch'
        Endif
       
        Return
        End
2楼2009-11-26 18:35:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

★ ★ ★ ★
波不动(金币+2,VIP+0):辛苦! 11-26 19:13
波不动(金币+2,VIP+0):辛苦! 11-26 19:13
引用回帖:
Originally posted by guangdang at 2009-11-26 18:17:
变量调用的问题

如我在循环调用子程序,
do k=1,num

子程序

enddo

我想在循环第10次的情况下把子程序中的某个变量保存的数据读出来,也就是在子程序中加个对k的判断条件: if k.eq.10,then的条件,可是我 ...

Implicit Real*8(A-H,O-Z)
        Common  Iere  
        Do I=1,30
                    Iere=I
        Call Subemuch
        EndDo
        End

        Subroutine Subemuch
               Implicit Real*8(A-H,O-Z)
        Common  Jere
                  If(Jere.Eq.10) Then
        Write(*,*) 'I am from Emuch'
        Endif       
        Return
        End
3楼2009-11-26 18:36:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guangdang

新虫 (初入文坛)


jjdg(金币+1,VIP+0):欢迎新虫! 1-6 02:26
引用回帖:
Originally posted by maomao1210 at 2009-11-26 18:36:


      Implicit Real*8(A-H,O-Z)
        Common  Iere  
        Do I=1,30
                    Iere=I
        Call Subemuch
        EndDo
        End

        Subroutine Subemuch
               Implicit Real*8(A-H,O-Z)
        Common  ...

因为我用的是Implicit  none 可不可以对Iere进行单独的定义为integer也就是:
integer Iere
努力学习中
4楼2009-11-26 19:49:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):辛苦了! 1-4 21:34
引用回帖:
Originally posted by guangdang at 2009-11-26 19:49:


因为我用的是Implicit  none 可不可以对Iere进行单独的定义为integer也就是:
integer Iere

I think so.
5楼2009-11-26 20:07:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jylisace

新虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1,VIP+0):谢谢交流!欢迎常来程序软件版。 1-4 12:12
为什么现在还要用老的语法。建议用Implicit none
6楼2010-01-04 09:20:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1,VIP+0):谢谢参与应助! 1-4 21:35
你这个可以在子程序里面加一个具有save属性的变量就可以了
7楼2010-01-04 16:56:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
jjdg(金币+1,VIP+0):辛苦了 1-6 02:27
do k=1,num

子程序

enddo

子程序加个参数,把 K 传过去,也是可以的。
8楼2010-01-05 21:30:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

figgers

铜虫 (初入文坛)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
jjdg(金币+1):辛苦了 2010-04-03 21:09
nono2009(金币+2, 程序强帖+1):鼓励应助! 2010-04-04 08:25
引用回帖:
Originally posted by maomao1210 at 2009-11-26 18:35:57:
Implicit Real*8(A-H,O-Z)

        Common  Iere
      
        Do I=1,30
                 Iere=I
        Call Subemuch
        EndDo

        End

        Subroutine Subemuch
      Implicit Real*8(A-H,O-Z)
        Common  Jere
      ...

implicit real + common...这样下去迟早把beginner们都吓跑了...
全局变量可以用module来实现啊


module global_mod
   implicit none
    public
    integer :: i_global
endmodule global_mod


subroutine main(a,b,c,d,e,f,g)
   use global_mod
   implicit none

   ...
  do i_global=1,num

       call sub_a(x,y)

  enddo
endsubroutine

subroutine  sub_a(xi,yi)
    use global_mod   
    implicit none
    ....
    if(i_global == 100) then
      ....
    endif

endsubroutine

一般都是把全局变量放一个public 的module里写入一个单独的f90文件中
把功能相近的程序封到别的module中在放入单独的f90文件里,需要哪个module
就调哪个(use), 每个module都用implicit none确保变量有显性数值类型,能不用common就不用common,一定不用equivalence.

唉..中文的fortran教材都太烂,除了那本台湾教授的fortran95程序设计。
英文的fortran书,我强烈推荐Fortran 90 Programming, by T.M.R. Ellis, et. al, 不过似乎没有e版,我也花了N元买的纸版。

[ Last edited by figgers on 2010-4-3 at 15:51 ]
9楼2010-04-03 15:49:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guangdang 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 现在不知道怎么办,感觉很痛苦 +5 qweww 2026-05-11 6/300 2026-05-16 19:57 by Equinoxhua
[博后之家] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 k37jurhrau 2026-05-16 3/150 2026-05-16 19:10 by j6b2pdz07o
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 ky2p12rrjj 2026-05-15 4/200 2026-05-16 18:45 by j6b2pdz07o
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 ky2p12rrjj 2026-05-15 3/150 2026-05-16 18:35 by j6b2pdz07o
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 x0mp7owy2b 2026-05-15 3/150 2026-05-16 17:55 by j6b2pdz07o
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 x0mp7owy2b 2026-05-15 3/150 2026-05-16 17:50 by j6b2pdz07o
[基金申请] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 v9tggjlwd0 2026-05-15 3/150 2026-05-16 17:37 by j6b2pdz07o
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +5 l7k6xnh0yc 2026-05-14 5/250 2026-05-16 16:35 by x28q7dxf75
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +5 cjf4bx70cj 2026-05-14 6/300 2026-05-16 16:17 by 0i5p09z61n
[硕博家园] 考博自荐 +3 科研狗111 2026-05-13 4/200 2026-05-16 11:45 by 科研狗111
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 6/300 2026-05-16 11:29 by h3oerqvkv9
[考博] 2026博士还有哪些学校有名额 +5 小王求读研 2026-05-15 6/300 2026-05-16 10:44 by a4742549
[基金申请] 这年头没有找到涵评专家,还有中面上的可能吗 +11 dd921ww 2026-05-12 13/650 2026-05-16 09:16 by Howard28
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 3/150 2026-05-16 01:49 by k37jurhrau
[论文投稿] 有带发论文的吗 +4 山楂之术 2026-05-09 4/200 2026-05-15 15:40 by 妹子不好惹
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[基金申请] 青C资助名额大幅增加! +11 西葫芦炒鸡蛋 2026-05-13 15/750 2026-05-15 14:36 by ambravo
[考博] 材料类只有一篇综述能申博么 +4 乐逍遥谷 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
[论文投稿] 求助大佬sci投稿哪个好中 +3 江沅188 2026-05-12 4/200 2026-05-13 14:35 by 江沅188
信息提示
请填处理意见