24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1038  |  回复: 8
当前主题已经存档。
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

guangdang

新虫 (初入文坛)

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

变量调用的问题

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

子程序

enddo

我想在循环第10次的情况下把子程序中的某个变量保存的数据读出来,也就是在子程序中加个对k的判断条件: if k.eq.10,then的条件,可是我把k设置为common或者是public都不行,应该怎么做呢
回复此楼

» 猜你喜欢

努力学习中
已阅   回复此楼   关注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的回帖
查看全部 9 个回答

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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085701求调剂初试286分 +4 secret0328 2026-03-28 4/200 2026-03-28 21:09 by 15366876211
[考研] 332求调剂 +5 蕉蕉123 2026-03-28 5/250 2026-03-28 20:50 by 唐沐儿
[考研] 083000学硕274求调剂 +8 Li李鱼 2026-03-26 8/400 2026-03-28 20:33 by 加油向未来啊
[考研] 085600,专业课化工原理,321分求调剂 +3 大馋小子 2026-03-28 3/150 2026-03-28 20:10 by wxiongid
[考研] 一志愿北化085600材料专硕275|有文章专利|求调剂 +7 Micky11223 2026-03-25 7/350 2026-03-28 18:34 by 无际的草原
[考研] 化学0703 调剂 306分 一志愿211 +4 26要上岸 2026-03-28 4/200 2026-03-28 15:30 by 1018329917
[考研] 286求调剂 +4 丢掉懒惰 2026-03-27 7/350 2026-03-28 08:07 by baoball
[考研] 求调剂推荐 材料 304 +15 荷包蛋hyj 2026-03-26 15/750 2026-03-28 04:13 by fmesaito
[考研] 291求调剂 +7 孅華 2026-03-22 7/350 2026-03-28 04:02 by fmesaito
[考研] 化学调剂 +4 爱吃番茄的旭 2026-03-24 5/250 2026-03-27 17:50 by kiokin
[考研] 085600,材料与化工321分,求调剂 +9 大馋小子 2026-03-27 9/450 2026-03-27 14:30 by mmm just
[考研] 085601 材料工程 313分 求调剂 +5 Ong3 2026-03-27 5/250 2026-03-27 12:24 by goldfish51
[考研] 298调剂 +3 jiyingjie123 2026-03-27 3/150 2026-03-27 11:57 by wxiongid
[考研] 材料调剂 5+4 想要一壶桃花水 2026-03-25 10/500 2026-03-26 19:56 by 不吃魚的貓
[考研] 085602化学工程求调剂。 +4 平乐乐乐 2026-03-26 4/200 2026-03-26 17:57 by fmesaito
[考研] 281求调剂 +6 Koxui 2026-03-24 7/350 2026-03-26 15:37 by 无际的草原
[考研] 263求调剂 +6 yqdszhdap- 2026-03-22 10/500 2026-03-26 13:11 by 公瑾逍遥
[考研] 材料调剂 +3 iwinso 2026-03-23 3/150 2026-03-25 11:29 by greychen00
[考研] 一志愿山东大学药学学硕求调剂 +3 开开心心没烦恼 2026-03-23 4/200 2026-03-24 00:06 by 开开心心没烦恼
[考研] 333求调剂 +3 ALULU4408 2026-03-23 3/150 2026-03-23 19:04 by macy2011
信息提示
请填处理意见