24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1566  |  回复: 14

superhugo

木虫 (正式写手)

【答案】应助回帖

引用回帖:
8楼: Originally posted by huruiusst at 2012-05-15 14:02:37:
请问动态数组怎么定义为全局变量?

试试将数组定义修改为如下格式看看。我曾经也遇到过和你一样的情况。
real,allocatable:: TE(:,

allocate(TE(100,5000))
11楼2012-05-15 15:37:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huruiusst

木虫 (小有名气)

引用回帖:
11楼: Originally posted by superhugo at 2012-05-15 15:37:56:
试试将数组定义修改为如下格式看看。我曾经也遇到过和你一样的情况。
real,allocatable:: TE(:,

allocate(TE(100,5000))

但是将动态数组放入全局变量commn当中,编译就出错了?
SLS,MD,HRSG
12楼2012-05-15 15:51:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huruiusst

木虫 (小有名气)

引用回帖:
10楼: Originally posted by Carpathia at 2012-05-15 15:04:19:
编译选项用/heep-arrays

你说的不是很清楚,能否具体点,我用的是CVF 6
SLS,MD,HRSG
13楼2012-05-15 15:53:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

superhugo

木虫 (正式写手)

【答案】应助回帖

引用回帖:
12楼: Originally posted by huruiusst at 2012-05-15 15:51:42:
但是将动态数组放入全局变量commn当中,编译就出错了?

要使用全局变量,在FORTRAN90和VF6.5中只需在MODULE中定义好,在使用到这些变量的主/子程序中只需USE 该MODULE名即可,在任何一个程序中改变了变量的值,那么在任何一处该变量的值就发生了改变,程序调用中无需传递参数或返回参数值。而局部变量则只在子程序中定义,子程序结束该变量也就无效了。  
要定义动态数组的话,只需在MODULE中定义迟型数组(只知道数组维数不知道大小),而后在程序中USE 该MODULE名,再给该数组分配空间,实现动态数组的定义。在传统有限元编程中,使用两个预先定义好的整型数组和实型数组,确定实际内存空间需要后还要去检查内存需要是否大于预定义数组大小,没有使用动态分配数组方便。  
示例程序(有限元网格信息的获取部分)如下:  
MODULE DATA_MODULE  
  
INTEGER, POINTER :: EL_NODE(:, ! 单元组成节点  
REAL, POINTER :: ND_XY(:, ) ! 节点坐标  
  
   ......  
  
END MODULE  
  
PROGRAM MAIN  
  
  USE DATA_MODULE  
        
  CALL INFO_MESH()  ! 获取有限元网格信息  
  
   ......  
  
END   
  
SUBROUTINE INFO_MESH()  
  
    USE DATA_MODULE  
  
   ! 确定节点、单元总数  
    CALL NUM_ND_EL()   
    ! 分配单元组成节点、节点坐标数组空间  
    ALLOCATE (EL_NODE(3, NELEM), ND_XY(2, NNODE))   
    ! 获得节点坐标、单元组成节点信息  
    CALL INFO_ND_EL()   
   
END  
  
SUBROUTINE NUM_ND_EL()  
  
   USE DATA_MODULE  
  
   ! 顺序读取节点坐标文件,确定总节点数NNODE  
   OPEN (10, DEFAULTFILE='D:/TEST DATA', FILE='NODE1.DAT', ACCESS='SEQUENTIAL', STATUS='OLD', IOSTAT=IV)  
   NNODE=0  
   1 READ (10, FMT=*, END=2, IOSTAT=IV)  
   ! 在此没有读入数据,每执行READ语句一次,文件指针下移一条记录位置,直至文件结束  
   NNODE=NNODE+1  
   GOTO 1  
   2 CLOSE(10)  
  
   ! 顺序读取单元节点文件,确定总单元数NELEM  
   100 OPEN (12, DEFAULTFILE='D:/TEST DATA', FILE='ELEMENT1.DAT', ACCESS='SEQUENTIAL', STATUS='OLD', IOSTAT=IV)  
    NELEM=0  
   3 READ (12, FMT=*, END=4, IOSTAT=IV)  
    NELEM=NELEM+1  
    GOTO 3  
    4 CLOSE(12)  
  
END  
  
SUBROUTINE INFO_ND_EL()  
  
  USE DATA_MODULE  
  
  OPEN (10, DEFAULTFILE='D:/TEST DATA', FILE='NODE1.DAT', ACCESS='SEQUENTIAL', STATUS='OLD', IOSTAT=IV)  
  READ (10, FMT="(I12, 2F12.5)", IOSTAT=IV) (K, (ND_XY(I, J), I=1, 2), J=1, NNODE) ! NNODE为总节点数  
  
  OPEN (12, DEFAULTFILE='D:/TEST DATA', FILE='ELEMENT1.DAT', ACCESS='SEQUENTIAL', STATUS='OLD', IOSTAT=IV)  
  READ (12, FMT="(4I8)", IOSTAT=IV) (K, (EL_NODE(I, J), I=1, 3), J=1, NELEM) ! NELEM为总单元数  
  
END

参考:http://www.baisi.net/thread-767035-1-1.html

» 本帖已获得的红花(最新10朵)

14楼2012-05-15 17:16:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huruiusst

木虫 (小有名气)

送鲜花一朵
引用回帖:
14楼: Originally posted by superhugo at 2012-05-15 17:16:29:
要使用全局变量,在FORTRAN90和VF6.5中只需在MODULE中定义好,在使用到这些变量的主/子程序中只需USE 该MODULE名即可,在任何一个程序中改变了变量的值,那么在任何一处该变量的值就发生了改变,程序调用中无需传 ...

感谢
SLS,MD,HRSG
15楼2012-05-17 13:55:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 huruiusst 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 302分 085601求调剂推荐 +11 zyx上岸! 2026-04-05 11/550 2026-04-05 22:13 by dongzh2009
[考研] 生物与医药086000调剂一志愿西北农林320分 +3 美美女士 2026-04-03 3/150 2026-04-05 21:55 by 学员8dgXkO
[考研] 求助071001调剂!!! +3 黄守松 2026-04-05 4/200 2026-04-05 21:01 by barlinike
[考研] 322求调剂 +3 嗯哼哼恒 2026-04-05 3/150 2026-04-05 19:52 by nepu_uu
[考研] 材料专硕(0856) 339分求调剂 +10 哈哈哈鹅哈哈哈 2026-04-04 10/500 2026-04-05 18:51 by 蓝云思雨
[考研] 求调剂 +4 wos666 2026-04-03 4/200 2026-04-05 11:48 by arrow8852
[考研] 一志愿江南大学085501机械工程专硕326分,本科佳木斯大学 +5 顾若浮生 2026-04-03 9/450 2026-04-05 09:57 by 1753564080
[考研] 考研调剂 +11 小sun要好运 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[考研] 324求调剂 +14 想上学求调 2026-04-02 15/750 2026-04-04 20:31 by 无际的草原
[考研] 调剂0855-288 +5 x熊二a 2026-04-03 5/250 2026-04-04 00:19 by 猪会飞
[考研] 303求调剂 +9 DLkz1314. 2026-03-30 9/450 2026-04-03 18:34 by ls刘帅
[考研] 求调剂 +3 心想事成可 2026-04-03 3/150 2026-04-03 11:22 by wangjy2002
[考研] 一志愿中国科学院大学265求调剂 +9 恬淡ye 2026-03-31 10/500 2026-04-03 11:10 by txp1986
[考研] 312求调剂 +4 赊月色 2026-04-02 5/250 2026-04-03 08:21 by fangshan711
[考研] 调剂 +3 osbbx 2026-04-02 3/150 2026-04-03 07:47 by cc8418
[考研] 22408 266求调剂 +3 masss11222 2026-04-02 3/150 2026-04-02 18:11 by 笔落锦州
[考研] 279求调剂 +5 傅文秋 2026-04-02 5/250 2026-04-02 18:10 by 笔落锦州
[考研] 一志愿北交大材料工程总分358 +3 cs0106 2026-04-02 5/250 2026-04-02 11:37 by olim
[考研] 279求调剂 +6 学而思兮知 2026-04-01 6/300 2026-04-02 09:16 by vgtyfty
[考研] 江苏苏北高校诚邀调剂同学 +3 zzll406 2026-03-31 3/150 2026-03-31 16:54 by 及时行乐fan
信息提示
请填处理意见